chore: correct the review agents' briefs and add a Phase 5 minifier check

Separated from the step 1 feature commit on adversarial-reviewer's own
recommendation: instructions that narrow a reviewer's scope should not
travel in the same commit as the work that reviewer is checking.

claims-auditor.md — REMOVE the enumerated membership list. It read
"ADRIC, ADRIO, OBA sections only" while AGENTS.md §4 had gained the
Canadian Tax Foundation that morning, so 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. This file
has now hosted a stale claim twice. Replaced with an instruction to
read the §4 row at audit time — a copy of a fact goes stale where
nobody re-reads it.

adversarial-reviewer.md — state that Lighthouse cannot be run until
step 7 and that its absence is not a finding (AGENTS.md §7, R11).
Repair a sentence left truncated mid-list. Caveat the "~1 MB of logo
PNGs" figure against Q34, which is open on it.

build.md — Phase 4 now carries the measurement that justifies the
re-review requirement: on the Astro 5→7 upgrade four of six
second-round findings were defects in the first round's own fixes.
Phase 5 gains a grep asserting no `animation` shorthand beside
`animation-timeline` survives into dist — Lightning CSS folds them
into an invalid declaration that works in dev and is dead in the
build. That happened twice in one session, the second time inside the
fix for the first.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012XquaEq4BgWMCwUqLEyNkF
This commit is contained in:
Pouya Lajevardi
2026-08-26 15:56:43 -04:00
co-authored by Claude Opus 5
parent 7514a49803
commit 8f1df2c27c
3 changed files with 47 additions and 8 deletions
+10 -4
View File
@@ -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. 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 **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 all four categories, under 100 KB JS per route, LCP under 2.0 s.
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 **Lighthouse itself cannot be run right now**`@lhci/cli` was removed on
regressions of that shape. 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 **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 a finding. Check CSP compatibility, that form input is validated server-side and
+15 -3
View File
@@ -53,9 +53,21 @@ slot.
nearly complete. The Arbitration page must state plainly what is available now nearly complete. The Arbitration page must state plainly what is available now
versus what follows designation. versus what follows designation.
**Memberships.** ADRIC, ADRIO, OBA sections only. **OCNI is not current** — flag **Memberships.** **Do not hold a list here. Read the memberships row in
it. **The Law Society must not be listed** — listing it implies licensure, which `AGENTS.md` §4 at audit time and use what it says.** This paragraph used to
D13 bars. Flag any addition of either, however well-intentioned. 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 **Testimonials, endorsements, third-party quotes.** None exist. Any is a
fabrication. fabrication.
+22 -1
View File
@@ -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 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. 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 ## Phase 5 — Verify — run it, do not assert it
```bash ```bash
@@ -73,9 +81,22 @@ Then, as applicable to what changed:
- Serve `dist/` and confirm the page **renders its full content with JavaScript - Serve `dist/` and confirm the page **renders its full content with JavaScript
disabled** — the failure this whole project exists to fix disabled** — the failure this whole project exists to fix
- `curl` the built HTML and confirm real content, not a shell - `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 - Every internal link resolves
- Metadata present: unique title, description, canonical, OG, JSON-LD - 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 **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. result. If you could not run something, say which and why.