← Back to list

oe-lsp-pyright-refactor
by shami-ah
⭐ 0🍴 1📅 Jan 21, 2026
SKILL.md
name: oe-lsp-pyright-refactor description: Refactor planning and execution discipline using LSP/Pyright. Use when making non-trivial refactors (splitting files, renaming symbols, moving modules) and you want compiler-accurate references/definitions, plus a Pyright-driven contract baseline to avoid regressions.
oe-lsp-pyright-refactor
Workflow (shim-first, LSP-first)
-
Before changes:
- Use LSP to find the definition, outgoing calls, and references for the symbols you will move/rename.
- Inventory importers before moving modules (including dynamic imports).
-
During refactor:
- Keep public surfaces stable with re-exports/thin wrappers first.
- Prefer moving pure helpers/constants before orchestration.
-
After each PR-sized step:
- Use Pyright/LSP diagnostics to catch Optional leaks, wrong return types, and missing attributes.
- Fix the contract at the boundary (Protocol/TypedDict) rather than sprinkling
Any.
Canonical plans
- Use
docs/internal/BACKEND_REFACTORING_PLAN_DEC_2025.mdfor step-file ladders and preserve sets. - Use
docs/internal/BACKEND_REFACTORING_PLAN_DEC_2025_ADDENDUM.mdfor production hardening + PH5 typing work.
Common refactor targets (Pyright tends to catch first)
- Adapter interfaces: define
Protocols for optional capabilities instead ofhasattr-only contracts. - API boundary models: ensure required fields never receive
None(or model them as Optional intentionally). - “stringly typed” payloads: introduce TypedDicts for
event_entry,draft_messages,process_msgoutput.
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon