typing-exclusion-worker
by sentry
Python typing exclusion worker: remove assigned mypy exclusion modules in small scoped batches, fix typing issues, run validation, and produce a structured…
npx skills add https://github.com/getsentry/sentry-skills --skill typing-exclusion-workerTyping 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)
- Only remove assigned module entries from the mypy exclusion list in
pyproject.toml. - Keep code changes in assigned scope unless a direct dependency is required to pass typing/tests.
- Do not expand to cross-team modules unless explicitly approved by the manager.
- Avoid blanket
# type: ignore; if unavoidable, use narrowignore[code]with a short reason.
Execution Workflow
-
Apply exclusion change
- Remove assigned modules from the exclusion override in
pyproject.toml.
- Remove assigned modules from the exclusion override in
-
Run mypy on assigned scope
- Prefer targeted paths first for fast feedback.
- Fix errors using explicit typing patterns (
isinstancenarrowing, accurate return types, typed class attrs, relation-safe model access).
-
Run tests for touched area
- Execute targeted pytest for modified modules/tests.
- Fix regressions before continuing.
-
Run pre-commit on changed files
- Run
pre-commit run --files <changed files>. - If hooks auto-fix files, rerun until clean.
- Run
-
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*_idattributes.
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.tomlcannot be resolved safely, - error volume indicates batch is too large and should be split.
More skills from sentry
sentry-cli
sentry
Guide for using the Sentry CLI to interact with Sentry from the command line. Use when the user asks about viewing issues, events, projects, organizations, making API calls, or authenticating with Sentry via CLI.
developmentapidevops
sentry-cocoa-sdk
sentry
Full Sentry SDK setup for Apple platforms (iOS, macOS, tvOS, watchOS, visionOS). Use when asked to "add Sentry to iOS", "add Sentry to Swift", "install…
official
sentry-create-alert
sentry
Create Sentry alerts using the workflow engine API. Use when asked to create alerts, set up notifications, configure issue priority alerts, or build workflow…
official
sentry-dotnet-sdk
sentry
Full Sentry SDK setup for .NET. Use when asked to "add Sentry to .NET", "install Sentry for C#", or configure error monitoring, tracing, profiling, logging, or…
official
sentry-fix-issues
sentry
Find and fix issues from Sentry using MCP. Use when asked to fix Sentry errors, debug production issues, investigate exceptions, or resolve bugs reported in…
official
sentry-go-sdk
sentry
Full Sentry SDK setup for Go. Use when asked to "add Sentry to Go", "install sentry-go", "setup Sentry in Go", or configure error monitoring, tracing, logging,…
official
sentry-ios-swift-setup
sentry
Setup Sentry in iOS/Swift apps. Use when asked to add Sentry to iOS, install sentry-cocoa SDK, or configure error monitoring for iOS applications using Swift…
official
sentry-nextjs-sdk
sentry
Full Sentry SDK setup for Next.js. Use when asked to "add Sentry to Next.js", "install @sentry/nextjs", or configure error monitoring, tracing, session replay,…
official