Skip to main content
skill CX Codex

typing-exclusion-worker — Claude Code skill: what it does, install

Removes Python modules from mypy exclusion lists in pyproject.toml, fixes typing errors, and runs scoped validation. Built for parallel typing debt workers.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add getsentry/skills --skill typing-exclusion-worker -a claude-code
Open on GitHub

What typing-exclusion-worker does

This skill guides an agent through resolving Python typing debt in strict, isolated batches. The worker removes assigned modules from mypy exclusion overrides in pyproject.toml, runs targeted mypy checks, and fixes surfaced type errors. Fixes rely on precise typing patterns like isinstance narrowing, accurate return types, and typed class attributes instead of blanket # type: ignore comments.

Scope boundaries are enforced strictly. The agent requires a branch name, exact module paths, team domain ownership, and validation commands before touching code. If resolving a type error demands modifying modules owned by another team or creates configuration conflicts in pyproject.toml, the worker halts immediately and escalates to the manager instead of expanding changes.

Validation follows a clear progression: targeted mypy first, pytest on affected modules, and pre-commit run --files. Once checks pass clean, the agent produces a structured markdown summary documenting removed exclusions, modified files, key type fixes, and remaining blockers.

What it helps with

  • remove assigned modules from mypy exclusions in pyproject.toml
  • fix Python type errors using type narrowing and precise return annotations
  • run scoped pytest and pre-commit checks on touched files
  • generate a structured markdown batch report for the orchestrator

Example prompts for the agent

  • Remove sentry.api.endpoints.user from mypy exclusions in branch typing/user-endpoints. Fix typing errors and run targeted pytest.
  • Remove sentry.models.team from pyproject.toml overrides, fix type issues with isinstance narrowing, and verify with pre-commit.
  • Process module sentry.utils.auth: remove its mypy exclusion, run validation commands, and produce the final batch summary.

How to install typing-exclusion-worker

1Skills CLI (Vercel)

npx skills add getsentry/skills --skill typing-exclusion-worker -a claude-code

2Manually: put the files in place

~/.claude/skills/typing-exclusion-worker/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/typing-exclusion-worker/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about typing-exclusion-worker

How to install typing-exclusion-worker in Claude Code?

Run the command npx skills add getsentry/skills --skill typing-exclusion-worker -a claude-code in your terminal.

What does typing-exclusion-worker do?

It safely eliminates mypy exclusion overrides from pyproject.toml, resolves surfaced Python type errors, verifies fixes with targeted tests, and outputs a formatted completion report.

When does the worker stop and escalate to the manager?

The worker halts when fixes require altering code outside the assigned domain, when pyproject.toml exclusion conflicts cannot be resolved cleanly, or when error counts show the batch is too large.

Source text

SKILL.md · Apache-2.0
---
name: typing-exclusion-worker
description: "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."
---

# 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 · Apache-2.0 · getsentry/skills

Similar skills

All skills for Programming languages →

From the same set20

presentation-creator Creates interactive React and Vite slide decks with Sentry styling. Use it when a presentation needs real metrics, charts, and slide navigation. CX Codex +1 2,900installs django-perf-review This skill reviews Django code for N+1 queries, unbounded querysets and missing indexes. Useful before a release or when a page slows down on large tables. CX Codex +1 2,900installs django-access-review A skill that hunts IDOR and broken authorization in Django: it walks views, DRF viewsets and ORM queries and shows where checks are missing. CX Codex +1 2,700installs brand-guidelines Applies Sentry brand and copy guidelines to user-facing text, error states, and UI flows. Useful when writing UI labels, empty states, or docs. CX Codex +1 2,500installs skill-writer Designs, synthesizes, and refines agent skills following the Agent Skills specification. Helpful when turning raw workflows or prompt templates into structured skills. CX Codex +1 2,500installs prompt-optimizer A skill that rewrites system and agent prompts against a set of eval cases instead of gut feeling. Useful when a prompt exists but behaves inconsistently. CX Codex +1 2,300installs sred-project-organizer Organizes annual engineering projects into SRED-compliant documentation and creates structured Notion pages. CX Codex +1 2,100installs document-api-endpoint Documents and types Sentry API routes using drf-spectacular. It resolves type drift between declared OpenAPI schemas and live endpoint responses. CX Codex +1 1,200installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor