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 批次总结,涵盖移除的模块、变更文件、关键修复、校验结果和阻塞项。它还规定了严格的 scope 限制和向管理者升级的条件。
适用场景
适用于运行并行 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 从公开仓库中收录这些内容。

举报或申请下架