Labsco
getsentry logo

typing-exclusion-worker

✓ Official844

by sentry · part of getsentry/skills

Python typing exclusion worker: remove assigned mypy exclusion modules in small scoped batches, fix typing issues, run validation, and produce a structured…

🔥🔥✓ VerifiedFreeQuick setup
🔒 Repo-maintenance skill. It exists to help maintain getsentry/skills itself — it's only useful if you contribute code to that project.

Python typing exclusion worker: remove assigned mypy exclusion modules in small scoped batches, fix typing issues, run validation, and produce a structured…

Inspect the full instructions your agent will receiveExpand

This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.

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-worker Download ZIPGitHub844

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)

  • 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 narrow ignore[code] with a short reason.

Execution Workflow

Apply exclusion change

  • Remove assigned modules from the exclusion override in pyproject.toml.

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

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.

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:

Copy & paste — that's it

## Batch Summary

- Branch/worktree: ` `
- Ownership/domain: ` `

### Modules Removed From Exclusion

- ` `
- ` `

### Files Changed

- ` `
- ` `

### Key Typing Fixes

- ` `
- ` `

### Validation

- `mypy`: ` `
- `pre-commit --files`: ` `
- `pytest`: ` `

### Notes

- Remaining blockers: ` `
- Any new ignore entries: ` `

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.