mirror of
https://github.com/garrytan/gstack.git
synced 2026-08-31 18:30:39 +02:00
feat(retro,preamble): gstack-shortcut debt ledger — accepted shortcuts leave a joined trail
When the user accepts an option that is BOTH Completeness <= 7 AND a durable-scope call, the decision ledger entry (gstack-decision-log, ceiling + upgrade trigger in the rationale) is the source of truth, and the agent marks each cut corner in code with gstack-shortcut(dec-<id>): <ceiling>, upgrade when <trigger> — same edit, no follow-up question, never agent-initiated. /retro Step 11.5 harvests markers into a debt ledger (grep || true — zero matches is the healthy case; skill installs and docs excluded), joins on the decision id so nothing double-counts, tags unlinked and no-trigger rot risks, and closes with 'N markers, M with no trigger.' /review suppressions: a marker with ceiling+trigger downgrades a would-be Completeness Gaps finding to acknowledged debt. Redaction test pins that the marker ships untouched (the ledger is the point) — it does not match the TODO(owner) hygiene shape. Format from dietrichgebert/ponytail's ponytail-debt; store inverted to gstack's existing decision ledger. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
86530fe320
commit
80ae2b59fa
@@ -380,6 +380,15 @@ describe("LOW patterns surface only", () => {
|
||||
);
|
||||
expect(f?.tier).toBe("LOW");
|
||||
});
|
||||
test("gstack-shortcut(dec-*) debt marker survives redaction untouched", () => {
|
||||
// The shortcut ledger convention (AskUserQuestion Format / /retro Step 11.5)
|
||||
// ships in commits and PR bodies BY DESIGN — the ledger is the point. It
|
||||
// must not be caught by hygiene.todo's TODO(owner) shape or anything else.
|
||||
const marker =
|
||||
"// gstack-shortcut(dec-a1b2c3): global lock, upgrade when throughput matters";
|
||||
const result = scan(marker, { repoVisibility: "public" });
|
||||
expect(result.findings).toHaveLength(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("placeholder suppression (per-span)", () => {
|
||||
|
||||
Reference in New Issue
Block a user