instinct-review checks whether one diff got the scrutiny it deserved.
This checks the same question at repo scale: across recent history, did
Critical-tier-shaped changes actually leave the reasoning SKILL.md
obligates, or did they just happen?
What counts as Critical-tier-shaped, retroactively
Look at commits (default: recent history, or whatever range/timeframe the
user names) whose diff shows any of:
- a removed or renamed public function, export, endpoint, or config key
- a new required parameter, or a narrowed/changed default, on something
with more than one caller
- a deleted file, module, or dependency that other code imported
- a changed trust-boundary surface (auth, payment, deletion, data access)
- a change to a canonical rule/prompt/policy text that other files or
hosts derive from (this project's own
SKILL.md; equally, a shared
ESLint config, a schema other services validate against, an IaC module
other stacks import) — easy to miss because the diff is "just words" or
"just config," but the blast radius is every consumer of that text, not
the file itself. Found by actually running this checklist against this
project's own history: the commit tightening SKILL.md's Q2 wording
changes classification behavior across every host this project ships
to, which is a bigger blast radius than most of the literal
code-function bullets above, and none of them would have caught it.
What to check for each one
- Does the commit message state a tradeoff, not just describe the
change? "Removed X" is a description. "Removed X because Y, chose Z
over keeping X deprecated" is a tradeoff.
- Was an alternative named anywhere — commit message, linked PR or
issue, a code comment — or does history show only the path that got
taken, with no evidence anything else was weighed?
- Is there a verification artifact (test, assertion) added or updated
in the same change, given the blast radius the bullet above implies?
Reporting
One row per commit that qualifies as Critical-tier-shaped:
<short-hash> <one-line summary> — provenance: present|missing. verification: present|missing.
Lead with the ones missing both — highest-value findings first, not the
longest list. End with a one-line count, not a restated table. Zero
qualifying commits in range is a real, useful result: say
No Critical-tier-shaped changes found in <range>., not a padded
non-answer.
Boundaries
Reads git history and diffs only; changes nothing and proposes no fixes.
Rewriting old commit messages is out of scope — the point is visibility
into the pattern, not retroactively editing history. If the audit surfaces
a live, current problem (a breaking change with no test that's still
shipping), state it as a finding for a separate, explicit request through
the Gate — don't silently patch it as part of the audit.
1---2name: instinct-audit3description: Use when the user asks for a whole-repo or whole-history audit of engineering judgment — "audit this repo", "did we leave reasoning behind", "find undocumented breaking changes", "provenance audit". Broader than instinct-review, which checks one diff; this looks across history. Explicit invocation only; one-shot report, changes nothing.4---56`instinct-review` checks whether one diff got the scrutiny it deserved.7This checks the same question at repo scale: across recent history, did8Critical-tier-shaped changes actually leave the reasoning `SKILL.md`9obligates, or did they just happen?1011## What counts as Critical-tier-shaped, retroactively1213Look at commits (default: recent history, or whatever range/timeframe the14user names) whose diff shows any of:15- a removed or renamed public function, export, endpoint, or config key16- a new required parameter, or a narrowed/changed default, on something17 with more than one caller18- a deleted file, module, or dependency that other code imported19- a changed trust-boundary surface (auth, payment, deletion, data access)20- **a change to a canonical rule/prompt/policy text that other files or21 hosts derive from** (this project's own `SKILL.md`; equally, a shared22 ESLint config, a schema other services validate against, an IaC module23 other stacks import) — easy to miss because the diff is "just words" or24 "just config," but the blast radius is every consumer of that text, not25 the file itself. Found by actually running this checklist against this26 project's own history: the commit tightening `SKILL.md`'s Q2 wording27 changes classification behavior across every host this project ships28 to, which is a bigger blast radius than most of the literal29 code-function bullets above, and none of them would have caught it.3031## What to check for each one32331. **Does the commit message state a tradeoff**, not just describe the34 change? "Removed X" is a description. "Removed X because Y, chose Z35 over keeping X deprecated" is a tradeoff.362. **Was an alternative named anywhere** — commit message, linked PR or37 issue, a code comment — or does history show only the path that got38 taken, with no evidence anything else was weighed?393. **Is there a verification artifact** (test, assertion) added or updated40 in the same change, given the blast radius the bullet above implies?4142## Reporting4344One row per commit that qualifies as Critical-tier-shaped:4546`<short-hash> <one-line summary> — provenance: present|missing. verification: present|missing.`4748Lead with the ones missing both — highest-value findings first, not the49longest list. End with a one-line count, not a restated table. Zero50qualifying commits in range is a real, useful result: say51`No Critical-tier-shaped changes found in <range>.`, not a padded52non-answer.5354## Boundaries5556Reads git history and diffs only; changes nothing and proposes no fixes.57Rewriting old commit messages is out of scope — the point is visibility58into the pattern, not retroactively editing history. If the audit surfaces59a live, current problem (a breaking change with no test that's still60shipping), state it as a finding for a separate, explicit request through61the Gate — don't silently patch it as part of the audit.