All skills
getsentry avatar

/typing-exclusion-worker

@24361e7 official
by Sentrygetsentry/skills1k stars
53

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.

Use this Skill: https://skilld.dev/gh/getsentry/skills/typing-exclusion-worker

This session only. Nothing lands on disk.

SKILL.md

≈80 tokens always: the name and description. ≈743 when used: this file.

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.

Source: SKILL.md on GitHub

No alerts16d3 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill provides guidelines and operational workflows for removing python type-checking overrides from pyproject.toml, executing local tests, fixing code typing issues, and formatting results into a completion template. No security issues or malicious patterns were detected.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

Signed by skilld at 24361e7. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 6 months ago
  • Python
  • Testing
  • typing
  • mypy
  • type-checking
  • pyproject.toml
  • pre-commit
  • batch-processing

README badge

README badge for getsentry/skills/typing-exclusion-worker

Removes assigned modules from mypy exclusion lists in pyproject.toml, fixes resulting typing errors, and returns a structured completion summary. Designed for parallel typing-debt workers that operate in scoped batches with hard constraints on cross-team changes.

Generated from the current SKILL.md.

What is the scope of this skill?
This skill removes assigned modules from mypy exclusions in pyproject.toml, fixes the resulting typing errors within that scope, runs validation, and reports results. It does not expand to unassigned modules or cross-team dependencies unless explicitly approved.
What inputs do I need to provide before running this skill?
You must supply: the worktree/branch name, the exact list of modules to remove from exclusion, the ownership/domain boundary, and any customized validation commands. If any are missing, the skill will ask before making changes.
What happens if typing fixes require touching code outside the assigned scope?
The skill stops and escalates to the manager rather than widening scope. The only exception is direct dependencies required to pass typing or tests.
Does this skill run tests?
Yes. It runs targeted pytest on modified modules after fixing typing errors, and re-runs both mypy and tests after final edits to ensure no regressions.
Can I use blanket type: ignore comments?
No. The skill avoids blanket ignores and uses narrow ignore[code] with a reason only when unavoidable.

Generated from the current SKILL.md. These answers refresh after source changes.