Nothing ships until review has run, and the record is a file a gate checks.
5 SHOTS verdicts, stamp, gate refusal, validator, estate map
| item | as recorded |
|---|---|
| anthony-web:html-page-validator | PASS, 1 warning |
| anthony-web:accessibility-auditor | PASS, predicted 97-100 (was 93 live) |
| anthony-web:performance-auditor | PASS, 2 warnings, predicted desktop ~93-95 / mobile 72-82 (was 87 / 61) |
| anthony-web:security-auditor | PASS after fix, 0 critical |
| anthony-web:js-behavior-auditor | PASS, 2 warnings WAIVED; focused re-check of setBackgroundInert PASS |
| anthony-web:visual-qa | PASS |
| anthony-web:voice-auditor (routed, Grammar A) | PASS 0/0/0 |
| impeccable detect.mjs | 0 findings (34 before waivers) |
| item | as summarised |
|---|---|
| file | index.html |
| auditors | html-page-validator,accessibility-auditor,performance-auditor,security-auditor,js-behavior-auditor,visual-qa,voice-auditor |
| stamped | 12:49:53 (reviewed_at 2026-09-15T16:49:53Z) |
| key | sha-256 of the file’s bytes, starting 93af10a3; the file committed at 12:49:56 hashes to the same value (checked 2026-10-30) |
| commit | 12:49:56, gate passed because the stamp matched |
| item | as recorded |
|---|---|
| block | FM-1 BLOCK — staged HTML with no fresh review receipt: |
| file | site/cases/how-i-build/index.html |
| why | The review tier did not run on the staged bytes of these files. |
| required | Per .claude/rules/frontend-methodology.md (§1b), before committing HTML run: the 5 universal auditors (html-page-validator, accessibility-auditor, performance-auditor, security-auditor, js-behavior-auditor) + the site-routed grammar/voice auditor; client work = the delivery-gate skill. |
| then | Then stamp the pass (records the current staged/working bytes): node "fm1-record-review.cjs" |
| or | Or, to bypass with an explicit logged reason, add to the commit message: [review-waived: <reason>] |
| item | as summarised |
|---|---|
| summary | ESTATE DRIFT: 2 red / 60 amber. |
| first red | [hooks] settings.json: wired hook not in map (Notification) |
| second red | a memory file missing for one project outside this site’s scope |
I build with Claude Code: agents I configure, packaged as plugins, with hooks on the tools and a review tier that a web page must pass, or carry a logged waiver, before it is committed. The map of that setup lists 48 skills, 19 agents and 11 hooks.
I keep the rule in a file a program reads, not in my memory: nothing ships until review has run. The review tier runs the page past its auditors, and a stamp records the pass against the file’s exact bytes. A commit gate refuses staged HTML with no matching stamp, and one byte edited after the stamp brings the refusal back.
This site’s own build commits carry a logged waiver, and the full tier runs before it deploys. The estate validator reports 2 red and 60 amber findings today. The figure shows 9 of the 48 skills and 15 of the 19 agents, the ones joined to a project this page can show. No hook is, so there is no hook column.
Review to commit, my site, 2026-09-15