From 9d323bbb07b8cc5016285fbbd6e7f927d98b0af4 Mon Sep 17 00:00:00 2001 From: "will.anderson" Date: Fri, 21 Aug 2026 17:27:54 -0500 Subject: [PATCH] docs(audit): log S9 per living-document protocol --- FORK-AUDIT.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/FORK-AUDIT.md b/FORK-AUDIT.md index 37994464b..c9cd18bb6 100644 --- a/FORK-AUDIT.md +++ b/FORK-AUDIT.md @@ -160,7 +160,9 @@ what invisible-to-upstream rot never could. | S7 | Several first-draft patches were sloppy and immediately rewritten (duplicate `Parameters` export in remove.ts, `yield` inside non-generator `iife` in provider.ts, clumsy sap-ai-core edit) | Moving too fast, edit-then-hope | Typecheck each time | LOW | | S8 | Wordmark capability gating was written to wait for an event that may never fire before first render; logo silently fell back to ASCII | Guessed at renderer API instead of reading OpenTUI's protocol resolution first | User reported wordmark not rendering | MED | -**Pattern across S1–S8:** every incident came from *editing by pattern-match +**S9** | Guard module got a duplicate `appendFileSync` import from an insert that didn't check existing content | Edit-then-hope again | Typecheck TS2300 | LOW + +**Pattern across S1–S9:** every incident came from *editing by pattern-match instead of reading the whole structure first*, and every one was caught by a gate we kept intact (typecheck, tests, hook) — which is the strongest argument for keeping those gates.