Typing Exclusion Worker

作者 getsentryd18b7aa8ba87無授權條款1K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫5 天前更新

Python typing exclusion worker: remove assigned mypy exclusion modules in small scoped batches, fix typing issues, run validation, and produce a structured completion summary. Use when running parallel typing-debt workers or when asked to remove modules from pyproject mypy exclusion overrides.

AI 產生的概覽

從 mypy 排除清單移除指定模組,修正型別問題,執行驗證並輸出批次摘要。

功能
此技能執行一個被指派的 typing 債務批次:只從 pyproject.toml 的 mypy 排除覆寫項目中移除被指派的模組項目,接著修正所屬範圍內浮現的型別問題。它對變更的檔案執行針對性的 mypy、pytest 與 pre-commit 檢查,反覆執行直到通過,最後輸出固定格式的 Markdown 批次摘要,涵蓋移除的模組、變更檔案、關鍵修正、驗證結果與阻礙項目。它也定義了嚴格的範圍限制與向管理者升級的條件。
適用情境
適用於執行平行 typing 債務 worker、每個 worker 處理一個有範圍的 mypy 排除批次時。也適合要求從 pyproject mypy 排除覆寫項目中移除特定模組並解決後續型別錯誤的情境。編輯前需要已指派的工作樹或分支、模組清單、歸屬邊界與驗證命令。
執行需求
需要可用的 Python 專案環境,包含 mypy、pytest 與 pre-commit,以及含有 mypy 排除覆寫項目的 pyproject.toml。任務提示中需提供已指派的工作樹或分支、精確的模組清單、歸屬邊界與預期驗證命令。此技能不附帶指令碼,僅為指示。

Typing Exclusion Worker

Purpose

Execute one assigned typing batch safely and predictably:

  • remove only assigned modules from mypy exclusions,
  • fix surfaced typing issues in scope,
  • run required checks,
  • return a consistent summary for the manager/orchestrator.

Inputs Required

Before starting, confirm these inputs exist in the task prompt:

  • worktree/branch name,
  • exact module list to remove from exclusion,
  • ownership/domain boundary,
  • expected validation commands (if customized).

If any are missing, ask for them before editing.

Scope Rules (Hard Constraints)

  1. Only remove assigned module entries from the mypy exclusion list in pyproject.toml.
  2. Keep code changes in assigned scope unless a direct dependency is required to pass typing/tests.
  3. Do not expand to cross-team modules unless explicitly approved by the manager.
  4. Avoid blanket # type: ignore; if unavoidable, use narrow ignore[code] with a short reason.

Execution Workflow

  1. Apply exclusion change

    • Remove assigned modules from the exclusion override in pyproject.toml.
  2. Run mypy on assigned scope

    • Prefer targeted paths first for fast feedback.
    • Fix errors using explicit typing patterns (isinstance narrowing, accurate return types, typed class attrs, relation-safe model access).
  3. Run tests for touched area

    • Execute targeted pytest for modified modules/tests.
    • Fix regressions before continuing.
  4. Run pre-commit on changed files

    • Run pre-commit run --files <changed files>.
    • If hooks auto-fix files, rerun until clean.
  5. Final verification

    • Re-run targeted mypy and tests after final edits.
    • Ensure no unrelated files were changed.

Python Typing Best Practices

  • Prefer precise types over Any.
  • Use type narrowing on unions before attribute access.
  • Keep method overrides signature-compatible with base classes.
  • Annotate class attributes in tests/helpers when inference is weak.
  • Use relation objects (obj.related) when stubs do not expose raw *_id attributes.

Required Output Template

Return this exact structure at the end of each batch:

markdown
## Batch Summary
- Branch/worktree: `<name>`- Ownership/domain: `<team-or-domain>`
### Modules Removed From Exclusion
- `<module.path.one>`- `<module.path.two>`
### Files Changed
- `<path>`- `<path>`
### Key Typing Fixes
- `<short rationale + fix>`- `<short rationale + fix>`
### Validation
- `mypy`: `<pass/fail + scope>`- `pre-commit --files`: `<pass/fail>`- `pytest`: `<pass/fail + scope>`
### Notes
- Remaining blockers: `<none or details>`- Any new ignore entries: `<none or file + ignore code + reason>`

Stop Conditions (Escalate to Manager)

Stop and report instead of widening scope when:

  • fixes require touching another team/domain,
  • exclusion conflicts in pyproject.toml cannot be resolved safely,
  • error volume indicates batch is too large and should be split.

來源與署名

來源:getsentry/skills位於skills/typing-exclusion-worker提交d18b7aa

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架