diff --git a/.claude/agents/adversarial-reviewer.md b/.claude/agents/adversarial-reviewer.md index 3068c28..ca87dd7 100644 --- a/.claude/agents/adversarial-reviewer.md +++ b/.claude/agents/adversarial-reviewer.md @@ -54,10 +54,16 @@ full content with JavaScript disabled.** Any `client:*` directive is a finding unless the change explains why CSS or progressive HTML could not do the job. **4. Performance.** Budgets in `docs/04-seo-spec.md`: Lighthouse ≥ 95 mobile on -all four categories, under 100 KB JS per route, LCP under 2.0 s. Check for -base64-inlined images, images without explicit dimensions, runtime font requests, -and third-party scripts. The old build inlined ~1 MB of logo PNGs — watch for -regressions of that shape. +all four categories, under 100 KB JS per route, LCP under 2.0 s. + +**Lighthouse itself cannot be run right now** — `@lhci/cli` was removed on +2026-08-26 and returns at build step 7 (`AGENTS.md` §7, R11). So do not report +"Lighthouse not run" as a finding; it is a known, recorded gap. Review +everything that *would* move those numbers by reading the artefact instead: +base64-inlined images, images without explicit dimensions, runtime font +requests, and third-party scripts. The old build is *said* to have inlined ~1 MB +of logo PNGs — `AGENTS.md` Q34 is open against that figure, so watch for +regressions of that shape without repeating the number as fact. **5. Security and data handling.** Any hardcoded endpoint, key, or credential is a finding. Check CSP compatibility, that form input is validated server-side and diff --git a/.claude/agents/claims-auditor.md b/.claude/agents/claims-auditor.md index 3e28923..ce3f155 100644 --- a/.claude/agents/claims-auditor.md +++ b/.claude/agents/claims-auditor.md @@ -53,9 +53,21 @@ slot. nearly complete. The Arbitration page must state plainly what is available now versus what follows designation. -**Memberships.** ADRIC, ADRIO, OBA sections only. **OCNI is not current** — flag -it. **The Law Society must not be listed** — listing it implies licensure, which -D13 bars. Flag any addition of either, however well-intentioned. +**Memberships.** **Do not hold a list here. Read the memberships row in +`AGENTS.md` §4 at audit time and use what it says.** This paragraph used to +enumerate "ADRIC, ADRIO, OBA sections only"; the Canadian Tax Foundation was +verified into §4 on 2026-08-26 and this line did not move, so for one session +the auditor's own brief contradicted the register — it would have flagged a +verified membership as unverified, and would not have noticed CTF being dropped. +That is the second time a stale claim has been found inside this file, which is +the definition of the agent whose job is to catch exactly that (`CLAUDE.md` +records the first). A copy of a fact is a fact that will go stale, and this one +goes stale where nobody re-reads it. + +**OCNI is not current** — flag it. **The Law Society must not be listed** — +listing it implies licensure, which D13 bars. Flag any addition of either, +however well-intentioned. Memberships renew yearly (§12 R10), so a §4 row can be +verified and still be out of date; check the stamp, not just the presence. **Testimonials, endorsements, third-party quotes.** None exist. Any is a fabrication. diff --git a/.claude/commands/build.md b/.claude/commands/build.md index d685467..dd648fc 100644 --- a/.claude/commands/build.md +++ b/.claude/commands/build.md @@ -61,6 +61,14 @@ so a later reader can see the judgement was made rather than missed. If you fix anything material, **re-run Phase 3 on the fix.** A patch written under review pressure is exactly where the second defect lives. +> **This is not ceremony, and here is the measurement.** On the Astro 5 → 7 +> upgrade (`AGENTS.md` entry (t), 2026-08-26) the second review pass returned +> six findings. **Four of the six were defects in the first round's own fixes** — +> including a date validator whose replacement silently rolled `2026-02-30` +> forward to `2026-03-02`, and a title rule whose fix rejected all five planned +> launch articles. None of the four existed before the review started. Skip the +> re-review and you ship the repair, not the bug. + ## Phase 5 — Verify — run it, do not assert it ```bash @@ -73,9 +81,22 @@ Then, as applicable to what changed: - Serve `dist/` and confirm the page **renders its full content with JavaScript disabled** — the failure this whole project exists to fix - `curl` the built HTML and confirm real content, not a shell -- Lighthouse mobile ≥ 95 on all four categories +- ~~Lighthouse mobile ≥ 95 on all four categories~~ — **UNAVAILABLE.** + `@lhci/cli` was removed on 2026-08-26 and is not re-added until build step 7 + (`AGENTS.md` R11, §7). Report it as *not run, tool unavailable*. Do not + substitute a manual DevTools run and describe it as the same check - Every internal link resolves - Metadata present: unique title, description, canonical, OG, JSON-LD +- **No scroll-driven animation was eaten by the minifier.** This must return + nothing: + + ```bash + grep -rE 'animation:[^;}]*(scroll\(\)|view\(\))' dist --include='*.css' + ``` + + A hit means an `animation` shorthand was written beside `animation-timeline` + and Lightning CSS folded them into an invalid declaration, which the parser + then discards. The effect works in `npm run dev` and is dead in the build. **Never report a check as passing that you did not run.** "Should pass" is not a result. If you could not run something, say which and why.