diff --git a/AGENTS.md b/AGENTS.md index bc5a244..92008fa 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4670,3257 +4670,3 @@ membership currency) · **Q49** (the two §4 rows Q47 needs) · **Q50** and `/about/` is now the page that makes it live), **R10** (event-triggered), **R11**, **R13**, **R14**, **R15**, **R16** (PDF bio, step 9), **R17** (key rotation, 2026-11-26). - - -## 2026-08-28 (x) — Build step 3: `/about/` ships without its memberships. Q40–Q43 close; four review passes found nine defects in their own predecessors' fixes - -**Task, in Pouya's words:** rulings on **Q42**, **Q41(a)(b)(c)**, **Q43** and -**Q40**, then *"step 3, `/about/` — and R10 first: re-confirm the memberships, -which now includes CTF."* - -**Headline, because it is the one thing to read if nothing else:** `/about/` -ships **without a memberships group**. R10 is written as a prohibition on -shipping a page that lists memberships before they are re-confirmed; the -re-confirmation is a fact only Pouya holds; it was not obtained. The first -version of the page published all four and *disclosed* the gap in five places -instead — both review agents rejected that, and they were right. **Q44** carries -the exact question. - ---- - -### Standing reminders surfaced (§12) - -- **R1 — licensure. Raised again, and `/about/` is why the stakes moved.** It is - the site's credential spine, it now carries designations, education, - certifications and the boutique role, and it states no licence status either - way. On `/` that reads as brevity; on a dedicated credentials page a - sophisticated reader notices. Q41(a)'s ruling is now load-bearing on the same - page — the copy says the legal half is *"training I hold"*, which is the closest - the site comes to addressing the question. **Nothing here asks to change D13.** -- **R10 — raised and NOT discharged.** See the headline. Now Q44. -- **R13 — the mark is still a raster.** Unchanged; no vector master has landed. -- **R11 — phase-boundary currency check RUN, not recalled.** Every pin in - `package.json` against `npm view`: 13 of 14 exact. The one hold is - `typescript ^6.0.3` against `7.0.2`, and the reason was re-verified rather than - carried forward — `@astrojs/check` peers `^5.0.0 || ^6.0.0` and - `typescript-eslint` peers `>=4.8.4 <6.1.0`. Both bar 7. `npm audit`: **0 - vulnerabilities.** `[verified 2026-08-28]` -- **R15 — NEW.** The single portrait OG image across nineteen pages, per Pouya's - Q40 ruling, with build step 7 as the removal trigger. - -### Rulings applied - -**Q42 — three offerings rowed, settlement counsel struck.** ENE, dispute-system -design and pre-dispute technical advisory gained rows; `settlement counsel` was -struck as Pouya's own error in `docs/01`, on the ground he named first — -*"it undercuts the brand's central claim"* — with the D13 half as aggravation -rather than reason. Swept by command; output below. - -**And the strike exposed a hole in the offering test.** Settlement counsel fails -neither question 1 nor question 2; run mechanically the test would have **passed** -it. It fails a prior question the test does not ask. §4 now states that prior -question — *is this a role in which the practice is partisan between the parties -to a dispute?* — with the Q42 worked example kept as the 3–1 table. - -**Q41(a) — Q37 reaches prose, and prose is held to a HIGHER bar.** Deleting the -parallel was half the fix; a reader supplies the missing symmetry from silence. -The sentence that names which half is which is now **one constant**, -`ASYMMETRY_LINE`, because it had been typed into two pages and the two copies had -**already diverged inside the same session** — a comma on one, full stops on the -other. - -**Q41(b) — not restored, and the comparative turned out to be in three places, -not one.** Pouya's replacement wording is used verbatim in `docs/03`'s core -positioning statement. Then the second audit found the implication had been -*relocated, not removed*: a new instance written into the `/about/` biography, -plus **two pre-existing instances on `/` that had survived the sweep that closed -Q41(b) the day before** — *"usually arrives as a separate expert report"* and -*"not something a party has to commission and wait for"*. All three gone. - -**Q41(c) — verified against the Tribunal's own materials, and the interim was -ambiguous in the one word that mattered.** New extract: -`docs/reference/lat-case-conference.md`. Rule 2.4 makes *"Pre-Hearing -Conference"* the LAT's own term for a **case conference**; Rule 14.3 puts a -**Member** in the chair and disqualifies them from the hearing panel; Rule 14.6 -makes attendance mandatory; the Rules contain **zero** occurrences of `mediat` or -`arbitrat` in 66,593 characters. The affirmative basis is the Tribunal's own AABS -page: *"you may want to consider negotiation or mediation services… including -before filing at the LAT-AABS, and continuing… after a claim has been filed."* - -**Q43 — the timings are service commitments; framing, not a row.** Numbers -unchanged. `PROCESS_FRAMING` renders adjacent to the strip, not in a lede above -it, because a reader who scans the strip and skips the lede has read a -commitment. `docs/03` §Process amended to record that its *"real timing"* -requirement had been over-read as barring the word "typical". - -**Q40 — bundled to step 7, not shipped as a second interim.** Portrait is the -*decided* card for `/` and `/about/`; the generated typed card covers the rest, -built once with Insights. Tracked as **R15**, blocking cutover, not step 3. - -### `/about/` — what shipped - -Six of `docs/01`'s seven items. Item 6 (Speaking) omitted on the spec's own -instruction. Item 7's PDF **not** shipped — **Q45**. Item 3 ships Designations, -Education and Certifications; **Memberships withheld** — Q44. Sections ordered -4-before-3 deliberately: the arc is the part a reader has a question about. - -### Four review passes, and what they cost - -Two agents, twice. **28 findings, then 15 more.** Nine of the second round's -findings were defects in the first round's fixes — which is the measurement -`/build` Phase 4 exists on. - -**Three that must never have shipped, all mine:** - -1. **The false universal Q39 struck, on a public page.** The arc's Q.Arb body - read *"arbitral appointments are not gated behind it, which is why I accept - them now"* — unscoped, first person, publishing a proposition of Ontario law - §4 holds only in scoped form and deliberately does **not** stamp. Q39 swept - three instances on 2026-08-27; this was the **fourth** and the first outside a - comment. Found independently by both agents. -2. **A public warranty of currency over an undischarged R10** — *"Memberships are - renewed annually and are listed as current."* Also **widened §4**, which - records yearly renewal for the OBA sections and the CTF only and says nothing - about ADRIC or ADRIO. The widened form had propagated to four files. -3. **A licensure denial** — *"Nothing above asserts a licence to practise law, in - either direction"* — on the page §4 marks `[unestablished]`, where the rule is - *do not assert it, do not deny it*. No spec asked for it. - -**And the same sentence was wrong in both directions, which is the finding worth -keeping.** Audit 1 flagged *"I do not give legal advice"* — "do not" describes an -election, and an election implies the entitlement. So it became *"I cannot give -legal advice"*. Audit 2 flagged that — "cannot" is a **denial**. Both readings -are correct and they point in opposite directions, because **both sentences make -a claim about capacity**. The third version does not: it states the role and its -consequence for the reader. - -**Defects in my own fixes, all found by measuring the fix rather than reading it:** - -- `:where(.prose) > p + p` is **additive with a flex `gap`** — `/`'s approach - paragraphs went 24px → **48px**. My comment said *"Verified: with `:where()` - the flex container's gap governs and this contributes nothing."* False, and - measured false minutes after being written: `:where()` lowers specificity, - which only matters when two rules set the **same property**. -- The 1440w portrait rung removed a 1.07× upscale and imposed **+27,273 B** on - DPR-3 phones (48,799 vs 21,526). Added 1080; that sample is now 27,594 B and - exact. -- Gating the italic preload behind a new prop and **never setting it on `/`**, - which uses the face in a 96px headline. -- `Pill`'s type fix, twice: `interface Props {}` is rejected by eslint and means - "any non-nullish value" anyway; `Record` passes eslint and - rejects `class` **and also rejects `children`**, breaking two real call sites - while the probe page went green on exactly what it tested. -- `.designation-part { white-space: nowrap }` fixed an orphaned separator and - took `/about/` to **108px of overflow at 320px** at a 200% default font size. -- The print override, scoped by class, **missed two elements** and then a third: - `.approach-metaphor`, `.btn-gold`, and — after the token rewrite — the hero - `.btn-primary` at **1.07:1** against white paper, which sits on cream inside no - inverse section at all. - -**The portrait defect was the expensive one, and it was on the shipped home page -too.** Below 66rem the hero is one column, so the portrait is the **full content -width** — 592 to 928 CSS px — while `sizes` declared 52–60vw and the ladder -stopped at 960w. Measured **1.40× upscale at 768/DPR2 and 1.93× at 1024/DPR2**, -identical on both pages, surviving a cleared cache. `/`'s own comment derived the -960 ceiling from the ≥66rem layout: **the range where the image is widest was -never in the arithmetic.** - -**Declined, with reasons:** - -- *"I will tell you whether I am the right neutral for it"* flagged as an unrowed - service commitment. It is a statement about a conversation, not a metric a - slipped date could falsify, and it ships identically on `/`. -- Empty-collection guards on `CREDENTIAL_GROUPS` and `litigationAreas`. Both are - `as const` tuples; neither is reachable without a source edit. -- `Person.hasCredential` currency (Q.Med as `Held`, present tense, on a - `[verified 2026-08-25]` row under a *"currency is not confirmed"* preamble). - The row exists, so it traces. Noted for Pouya rather than resolved. -- The `ContactBand` CTA invites matter details on pages carrying no no-retainer - notice. `docs/03` scopes `NO_RETAINER_NOTICE` to `/contact/`, which is where the - CTA goes. Worth a ruling before the band reaches nineteen pages. - -**Reversed a review finding once, deliberately** — the designation-name -expansions. Audit 1 struck them as §11-Glossary-only; audit 2 then found the page -also publishes *"Provincial Offences Act"*, *"the ADR Institute of Canada and the -ADR Institute of Ontario"* and `recognizedBy`, all on the same footing — -*"one standard or the other."* Standard chosen: **§11 is the source for -definitional expansions; §4 remains the only source for claims about Pouya.** -Sourcing externally was tried and failed — `adric.ca/designations/` redirects and -serves **zero** occurrences of `Q.Med`, `Qualified Mediator` or `Chartered -Mediator` in 114,985 bytes. **Q46(b)** asks Pouya to ratify the standard; if he -declines, all four classes come out together. - -### The third review round, and a process defect of my own - -The code re-review returned **8 more findings**, and it opened with a criticism -of how I ran the loop that is correct and is recorded here rather than softened: -**I edited the tree while it was measuring.** It anchored to SHA-256, re-verified, -and reported that four of the defects it had measured *"were repaired under me -mid-review"* — so its certification covers a snapshot, not the tree, and the -repairs it watched me make **were reviewed by nobody**. `/build` Phase 4 says to -re-review material fixes; it does not say to hold the tree still while a review -is in flight, and it should. Next session: snapshot, review, then fix. - -The four it watched being repaired were all real and all measured: the lost -italic preload on `/`, the 24→48px prose regression, three elements the print -block missed (rasterised from `printToPDF` at 100 dpi: 2.49:1 and 3.96:1 against -white), and dead page-scoped CSS whose compiled selectors carried the old page -cids while the rendered elements carried `ContactBand`'s. - -**Two of the eight were defects in fixes from this same session:** - -- **`/` kept `fetchpriority="high"` while `/about/` withheld it on the identical - measurement.** Portrait visible px: **0 at 320, 0 at 360, 0 at 390**, with LCP - measured as `P.hero-lede` — so the attribute promoted 27–49 KB of image the - reader cannot see above the face that paints the actual LCP element, on the - axis the ≥95 budget is measured on. Removed. `loading="eager"` stays; the - portrait is the LCP element from 768px up. -- **The 1080 rung I added closed the 390px gap and missed the two largest current - iPhones.** 428@3 and 430@3 need 1140/1146 and took **1440 — 48,799 B**, against - 27,594 for the device the rung was tuned for: **+21,205 B, 13% of page weight.** - A 1200 rung closes it at 1.05x. Third iteration of this ladder. - -**And one of my stated reasons was simply wrong about ARIA.** I removed -`role="list"` from the arc `
    ` on the ground that it *"re-announces an ordered -list as an unordered one"*. It does not — **both `