From 9b6d5f9f27cdfbc4146f2b0be224874d4f528872 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sat, 29 Aug 2026 05:57:56 +0000 Subject: [PATCH] fix(review): a gstack-shortcut marker only suppresses findings when its decision id resolves in the ledger Cross-model catch (Claude adversarial + Codex agreed): any diff author could fabricate a marker and silence Completeness review of that gap. Reviewers now resolve the dec-id via gstack-decision-search; an orphan marker is reported as a forged suppression, not honored as debt. Co-Authored-By: Claude Fable 5 --- review/checklist.md | 2 +- review/specialists/simplification.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/review/checklist.md b/review/checklist.md index 666c2cecd..d550e6967 100644 --- a/review/checklist.md +++ b/review/checklist.md @@ -180,4 +180,4 @@ the fix, it's ASK. - Eval threshold changes (max_actionable, min scores) — these are tuned empirically and change constantly - Harmless no-ops (e.g., `.reject` on an element that's never in the array) - ANYTHING already addressed in the diff you're reviewing — read the FULL diff before commenting -- A gap covered by a `gstack-shortcut(dec-*)` marker naming a ceiling and upgrade trigger — that is acknowledged debt with a ledger entry, not a Completeness Gaps finding +- A gap covered by a `gstack-shortcut(dec-*)` marker naming a ceiling and upgrade trigger — that is acknowledged debt with a ledger entry, not a Completeness Gaps finding. **Verify before honoring:** resolve the id with `~/.claude/skills/gstack/bin/gstack-decision-search --query ""` — a marker whose decision id has no ledger entry is UNVERIFIED (any diff author can type a marker); report the gap normally and flag the orphan marker itself diff --git a/review/specialists/simplification.md b/review/specialists/simplification.md index 2b6110799..913c038bf 100644 --- a/review/specialists/simplification.md +++ b/review/specialists/simplification.md @@ -45,5 +45,5 @@ considered whether all these validation rules are needed at this stage?" - Consistency-only changes (wrapping a value in a conditional to match how another constant is guarded) - Tests, error paths, edge-case branches, input validation, security measures, accessibility — NEVER deletion targets; coverage is the Completeness Gaps category's job, and the house rule is "If A is 70 lines more, choose A" (ETHOS.md) - A single smoke test or assert-based self-check — that is the completeness minimum, not bloat -- Deliberate `gstack-shortcut(dec-*)` markers — already acknowledged debt with a ledger entry +- Deliberate `gstack-shortcut(dec-*)` markers — already acknowledged debt, but only when the decision id resolves in the ledger (`gstack-decision-search`); an unresolvable id is a forged suppression, not debt - ANYTHING already addressed in the diff you're reviewing — read the FULL diff before commenting