typing-exclusion-worker

作者: sentry

Python类型排除工作器:以小范围批次移除已分配的mypy排除模块,修复类型问题,运行验证,并生成结构化的…

npx skills add https://github.com/getsentry/skills --skill typing-exclusion-worker

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:

## 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.

来自 sentry 的更多技能

generate-frontend-forms
sentry
使用Sentry新表单系统创建表单的指南。在实现表单、表单字段、验证或自动保存功能时使用。
official
sentry-snapshots-cocoa
sentry
完整的 Sentry Snapshots 配置,适用于 Apple/Cocoa 项目。当被要求“设置 SnapshotPreviews”、“设置 Apple 快照测试”、“上传 Apple 快照到…”时使用。
official
architecture-review
sentry
员工级代码库健康审查。发现单体模块、静默失败、类型安全漏洞、测试覆盖缺口以及LLM友好性问题。
official
linear-type-labeler
sentry
根据每个问题的标题和描述内容,对Linear问题进行分类,并从Sentry工作区的标签分类体系中应用一个类型标签。
official
sentry-flutter-sdk
sentry
完整的Sentry SDK配置,适用于Flutter和Dart。当被要求“为Flutter添加Sentry”、“安装sentry_flutter”、“在Dart中配置Sentry”或配置错误…时使用。
official
sentry-svelte-sdk
sentry
为Svelte和SvelteKit提供完整的Sentry SDK设置。当被要求“为Svelte添加Sentry”、“为SvelteKit添加Sentry”、“安装@sentry/sveltekit”或配置……时使用。
official
vercel-react-best-practices
sentry
来自 Vercel 工程团队的 React 和 Next.js 性能优化指南。在编写、审查或重构 React/Next.js… 时应使用此技能。
official
sentry-tanstack-start-sdk
sentry
为TanStack Start React提供完整的Sentry SDK设置。当被要求“向TanStack Start添加Sentry”、“安装@sentry/tanstackstart-react”或配置错误…时使用。
official