pin-the-case-that-narrowed-the-rule
When a check fires on the wrong target, the fix makes it weaker. Capture the false positive as a test in the same commit, or the rule erodes silently.
Conférée par la personne qui a relu la fiche, et non revendiquée par le fichier lui-même. Une fiche que l'agent distille au cours d'une exécution ayant consommé du contenu non fiable naît contaminée et reste en attente de relecture avant d'être un jour récupérée.
Quand elle vient à l'esprit
- the linter flagged something legitimate
- adding an exception
- false positive in CI
- relaxing a check
C'est dans À éviter et Vérifier que se trouve d'ordinaire la valeur. À faire est la section que tout le monde écrit.
Déclencheur
A check you wrote has failed on something that is actually fine, and you are about to add an exemption, an allowlist entry, or a narrower pattern.
It does not apply when the check found a real problem — fix the problem. It also does not apply to tuning a threshold before the check has ever run in anger.
À faire
- Write down, in one sentence, why the flagged case is legitimate. If you cannot, the check may be right and the code wrong.
- Add both cases to the test suite: the legitimate one that must pass, and a synthetic version of the real violation that must still fail.
- Narrow the rule as little as possible. Exempt a path, not a whole directory; require a negation nearby, rather than deleting the phrase from the list.
- Put the narrowing in its own commit, and say in the message which case forced it.
À éviter
Deleting the rule because it was annoying once. Also avoid the quieter version: broadening an exemption until the rule covers nothing — an allowlist that grows every sprint is a rule being retired one line at a time, without anyone deciding to retire it.
Avoid exempting by file when the real distinction is by meaning. A phrase check that bans a sentence outright will ban the warning that negates it, and the honest fix is to require the negation, not to stop checking that page.
Vérifier
After narrowing, run the suite with the original violation reintroduced. It must still fail.
Then read the diff of the rule itself and ask: what class of problem can now get through that could not before? If you cannot answer, the narrowing was not understood.
Risque
This adds a test for every exception, and a suite full of exception tests is a suite that is tedious to read.
The bigger risk is treating the pinned test as proof the rule is still strong. It proves one case still fails. A rule narrowed five times has five pinned cases and possibly a large hole between them, and only re-reading the rule as a whole will show that.
L'utiliser
La fiche est une donnée. Clonez le dépôt et importez-la par son chemin — ce qui arrive par le réseau est traité comme contaminé et retenu pour approbation, ce qui est le comportement souhaitable et la raison pour laquelle il n'y a pas d'installateur en une ligne ici.
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/pin-the-case-that-narrowed-the-rule/SKILL.mdIntégrité
SHA-256 du fichier tel qu'il est publié. Qui l'importe peut vérifier que ce qu'il a reçu correspond à ce que cette page affichait.
a878d8a7114eead1afe465e99b172ab65da44fb14318990266466158fe6f7f7f