LE MÉDIA DE L’IA QUI SERT VRAIMENT.Édition française · Comprendre & passer à l’action
Sentry

Retirer des exclusions mypy par lots

typing-exclusion-worker

En bref

Travailleur d’exclusions de typage Python : retire de la liste d’exclusion mypy, par petits lots bornés, les modules assignés, corrige les problèmes de typage apparus, lance les contrôles demandés, et rend un résumé structuré à l’orchestrateur. On l’utilise pour des travailleurs parallèles de dette de typage, ou pour retirer des modules des overrides d’exclusion dans `pyproject`. Avant d’éditer, il faut le nom du worktree ou de la branche, la liste exacte des modules, la frontière d’appartenance, et les commandes de validation. On n’élargit pas à des modules d’une autre équipe, sauf accord explicite. Ce n’est pas un skill de documentation d’API, ni de revue de secrets.

Ce que ça fait

  • Retire un lot borné de modules des exclusions mypy, corrige le typage dans ce périmètre, et rend un résumé structuré
  • Pas d’élargissement hors lot ou hors équipe sans accord ; les entrées manquantes se demandent avant d’éditer

Pour qui, et un exemple

Les travailleurs ou l’orchestrateur de typage Python chez Sentry qui ont un lot de modules à sortir des exclusions mypy, pas une revue de code générale.

Exemple de demande : « Sur cette branche, retire uniquement ces trois modules des exclusions mypy, corrige le typage dans ce périmètre, et rends le résumé du lot, sans élargir. »

Quand un lot d’exclusions mypy doit être retiré et validé, et non typiser un endpoint d’API, scanner une skill, ou trier des issues frontend. Exemple rédigé par iadujour.fr à partir du SKILL.md, non testé.

Installer

npx skills add getsentry/skills ou, dans Claude Code, claude plugin marketplace add getsentry/skills puis claude plugin install sentry-skills@sentry-skills.

npx skills add getsentry/skills
claude plugin marketplace add getsentry/skills
claude plugin install sentry-skills@sentry-skills

Fonctionne avec

  • Claude Code
  • Cursor
  • Cline
  • GitHub Copilot

Source : README : installation Claude Code, et skills.sh « Works with Claude Code, Cursor, Cline, GitHub Copilot, and other compatible agents ».

Niveau : Intermédiaire

Suppose un projet déjà en place chez l’éditeur et les outils décrits dans le SKILL.md.

À savoir

Dépôt officiel Sentry ; le README précise que ces skills sont destinées aux employés Sentry.

Extrait du SKILL.md

La description d’origine, celle que l’agent lit pour décider de charger la skill (en anglais) :

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.

Citée depuis le SKILL.md au commit 24361e7 .

Le SKILL.md compte 106 lignes et 13 sections principales :

  • Purpose
  • Inputs Required
  • Scope Rules (Hard Constraints)
  • Execution Workflow
  • Python Typing Best Practices
  • Required Output Template
  • Batch Summary
  • Modules Removed From Exclusion
  • Files Changed
  • Key Typing Fixes
  • Validation
  • Notes
  • Stop Conditions (Escalate to Manager)

Licence : Apache 2.0

Vérifiée le 10 novembre 2026 sur : fichier LICENSE du dépôt .

La licence autorise la reprise : le texte intégral du SKILL.md est reproduit ci-dessous, sans modification, avec sa mention de licence.

Texte intégral du SKILL.md

Reproduit sans modification depuis getsentry/skills (commit 24361e7) , © Sentry, sous licence Apache 2.0 (fichier de licence d’origine ).

Afficher le SKILL.md original (106 lignes, en anglais)
---
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.
Source. Fiche rédigée par iadujour.fr à partir de : Frontmatter, sections et corps du SKILL.md, README du dépôt. Consultée le 10 novembre 2026. Dépôt : getsentry/skills .
MÊME ÉDITEUR

Autres skills Sentry : DevOps et déploiement

Toute la catégorie
SentryDevOps et déploiement

Co-écrire un document de façon structurée

doc-coauthoring

La skill guide une co-écriture structurée de documentation, propositions, spécifications techniques, documents de décision, PRD ou RFC.

Outils : Claude Code, Cursor, Cline +1Niveau : Débutantmàj 19/04/2026
ÉCHANGES

Commentaires.

Un retour d’expérience, une question, une précision sur cette skill ? Les commentaires sont relus avant publication.

Commentaires publiés

Chargement des commentaires…

    Laisser un commentaire

    Charte de modération. Chaque commentaire est relu avant publication. Sont refusés : l’incitation à la haine, les propos injurieux ou discriminatoires, la publicité, le spam et les liens promotionnels, le hors-sujet et les données personnelles d’autrui.