feat: rule Q58 and close Q57; §4 lists all six areas; docs/03's checklist cites §4 instead of restating it
Build and deploy / build-and-deploy (push) Failing after 4s

Four rulings from Pouya, plus what implementing them turned up.

Q58 — RULED, and he attributed the ambiguity to his own document: "3.5 was meant
as the TOTAL time committed, of which 2 is preparation — leaving 1.5 hours in the
room. Your arithmetic caught it: if prep sat inside, 3.5 and 7 wouldn't be
exactly 2x, because preparation doesn't scale with session length." The card now
reads: half day up to 3 hours of session, fee includes up to 2 hours of
preparation, $2,000; full day up to 6 hours, up to 3 hours of preparation,
$4,000. docs/07's own research table corroborates 3 and 6 — Patey and Zuber both
publish those hours, and ADR Chambers' roster rate counts preparation separately
from "up to three hours of mediation". One provenance note under R14: he recalled
"all or part of 3 hours" as their wording; the committed extract carries the
hours but not the phrase, so docs/07 cites the hours and attributes the phrase to
nobody.

Two things fell out of the ruling that the instruction did not name, and both
were defects. docs/07 §All parameters confirmed was itself prescribing the flat
"including 2 hours of preparation" — the sentence /for-parties/ was built
against, so the spec was generating the defect. And the cap had to reach the
copy: "including up to 2 hours". FEES.mediation.*.hours is corrected 3.5 -> 3 and
7 -> 6; it had no consumer in src/ while the question was open, which is the only
reason no page was ever wrong. /fees/ is unblocked for step 9 on the question Q58
asked.

Q57 — CLOSED with no seventh undertaking. "A reader assumes the outcome, and the
obvious undertaking adds nothing a reader doesn't already infer." The TODO(pouya)
is replaced by the ruling where the question was; src/ now carries zero live
TODO(pouya) markers.

§4's mediation row lists all six published areas. Q56's ruling had named five,
which was four areas plus the word "commercial" — a scope descriptor, not a
seventh area. The hedge is struck on his instruction; the clause saying the six
are not the authorised subject-matter list is restored, because his ruling
supplied a correct value and did not close Q35(c)'s class. Split-stamped.

docs/03's compliance checklist now names what to look for on a page and which §4
row decides it, never the bar's own wording. 12 items before, 12 after — a
structural fix, not a coverage change.

Thirteen review findings across two rounds, all applied, none declined. Three
were mine to own. The capped-form rule was written and then applied to one
surface: /mediation/ shipped an uncapped form in words no barred-string grep
could reach, site.ts quoted a docs/07 sentence Q58 had just deleted, and §9's
Q15/Q16/Q17 row prescribed the flat form — which is what a later implementer
building /fees/ reads. A derived fee term was asserted as applied fact in the
document that is the authority on money: "overtime begins after 3 h and 6 h" is
in no ruling. Struck, and opened as Q59.

And round 2 caught the arithmetic in round 1's own fix. The full-day route is
flat $4,000 until hour 6, so generalising it as 500n+1000 for all n>=3 was valid
only from 6 h, and "cheaper by $500 at every length" was wrong across the whole
3-6 h band. The real spread is $2,000 at three hours narrowing to $500 from six
on — up to four times larger, and largest exactly where a half-day booking
overruns. Written into docs/07 §Recorded dissent and §12's R5 row, which is where
the 12-month fee review will read it. Round 1's fix for the missing consequence
also published the overtime rate on a page that now states an unambiguous cap,
defining the trigger by adjacency with no other quantity for it to attach to; the
rate came off the page.

R11 at the step 6 -> 7 boundary: 13 of 14 pins current. §7's TypeScript hold
named one gate and there are two — typescript-eslint requires <6.1.0, tighter
than @astrojs/check, so the recorded removal trigger was unreachable. Both are
now named.

Verified: check 0 errors, lint 0, build 0 (14 pages), check:claims 0, npm audit
0, minifier tripwire clean, zero JS shipped, all copy present with JavaScript
disabled. Lighthouse not run — tool unavailable until step 7.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md3GndFqWPzK78xAoebsg5
This commit is contained in:
Pouya Lajevardi
2026-08-31 08:17:59 -04:00
co-authored by Claude Opus 5
parent 13b97841b9
commit 6cfe69033f
9 changed files with 594 additions and 132 deletions
+92 -54
View File
@@ -96,12 +96,22 @@ detect padding instantly and discount everything after it.
DO NOT MIRROR THIS SCOPE ONTO MEDIATION.** The scope above exists because of a
**legal gate**: family arbitration in Ontario requires prescribed training, so
"in commercial matters" is load-bearing there. **Mediation has no such gate,
§4's mediation row is unscoped on purpose.** Pouya's list of what he mediates
— *"commercial, construction, insurance/SABS, shareholder and cross-cultural
matters"* — is **illustrative of breadth, not a closed set**: the site
publishes **six** areas and every one of them offers mediation
(`src/data/practice-pages.ts`), technology and energy included. Do not read it
as the authorised subject-matter list; §4's Q35 gate governs that.
§4's mediation row is unscoped on purpose.** **He mediates in all six published
practice areas** — construction, technology, energy, insurance, shareholder,
cross-cultural — and §4's row now enumerates them (`PRACTICE_AREAS` in
`src/data/site.ts`), each named under **Q35(c)'s subject-matter publication
gate**. ⚠️ **The six are the PUBLISHED areas, not the authorised
subject-matter list, and Q35(c)'s gate is not spent by having been used six
times.** A seventh may be named where it clears that gate.
*(Q56's ruling had named five, which was four of the six areas plus the word
"commercial", and this block called the list "illustrative of breadth, not a
closed set" for one day. Pouya struck the hedge on 2026-08-31: "the register
should match the site; 'illustrative' is a hedge covering a gap that has a
correct value." Technology and energy are the two that were missing. The
non-exhaustiveness clause was struck with the hedge in the same pass and
restored the same day — his ruling supplied a correct value, it did not close
the class.)*
The site-wide *"Commercial Mediation"* framing was **under-describing the
offering**, and it was corrected rather than ratified as positioning. The
@@ -461,57 +471,85 @@ Drafted by Claude, **every word reviewed by Pouya before publication**:
## Compliance checklist — before any page ships
⚠️ **EVERY ITEM HERE THAT BARS SOMETHING CITES ITS `AGENTS.md` §4 ROW. IT DOES
NOT RESTATE IT — STRUCTURAL FIX, Pouya, 2026-08-31, after the third instance.**
His ruling: *"the checklist must CITE the §4 row, not restate it. Same
single-source rule as §7 and operational facts."* **This file is what gets
grepped; §4 is what is correct.** Three times a line here paraphrased a §4 row,
dropped a qualifier, and then flagged the copy a spec **requires** — *"no dollar
figures"* for §4's *"attached to **past matters**"*, which forbade the rate card
D8 commits to; *"no testimonials"* for §4's bar on endorsements **of the practice
or of Pouya**, which forbade the institutional quotations `docs/01` directs; and
the licence-capacity item, which rejected the exact sentence the section above
exists to bless. Each was caught by review, never by the checklist, and the row
was never wrong.
**So an item below names what to look for on the page, and which row decides it.
Not both halves of the rule.**
- [ ] Every factual claim appears in `AGENTS.md` §4 Verified
- [ ] No matter counts, settlement rates, claimed matter values, or
time-to-award stats. ⚠️ **SCOPED 2026-08-30, and it read "dollar figures"
until then.** What this bars is the **fabricated-statistic family** the old
site carried — *"420+ matters"*, *"$3.8B resolved"*, *"93% settled"*. It
does **not** bar the **rate card**: D8 commits to publishing it in full and
D14 confirms the numbers `[verified 2026-08-26 — Pouya]`, so `/fees/`
publishes all of them and `/for-parties/` publishes the two mediation rates
because `docs/01` requires that page to answer *"what it costs"*. Read
literally, the old wording forbade the page the architecture spec commits
to. **§4's own row was never wrong** — it reads *"Aggregate value resolved;
any dollar figure attached to **past matters**"*, and this checklist
dropped the qualifier when it mirrored it. A duplicated fact is a fact that
will eventually be wrong in one place, and the copy that goes stale is the
one nobody re-reads. **Third instance of an unscoped checklist line flagging the copy the
spec requires** — the other two are the testimonials item
immediately below and the capacity-phrasing item further down, and in both
cases the checklist is what gets grepped
- [ ] No testimonials, endorsements, or third-party quotes **about the practice
or about Pouya**. Scope matters: `docs/01` §`/med-arb/` **directs** the page
to quote ADRIC's own framing of med-arb, and `/mediation/` and
`/arbitration/` name published rule sets. Quoting an institution about
**its own rules**, from a committed source, is not an endorsement — and an
unscoped version of this line flags the copy the spec requires. Same shape
as the "legal advice" item corrected on 2026-08-28, in the file that gets
grepped. **Keep the source's superlatives inside the quotation marks**
- [ ] No superlatives and no guarantee language
- [ ] No claim or implication of legal licensure anywhere (D13)
- [ ] Q.Arb described as **held** — `Q.Arb (ADRIC / ADRIO)`, no acquisition
date, and never as "commenced", "in progress", "a pathway" or "not yet"
(amended 2026-08-29). `npm run check:claims` enforces the **stage words**
and a **date near `Q.Arb`** on `dist/`. It cannot catch a stage expressed
without naming the designation — the struck h1 "Available now, and open
about the stage" matches nothing — and that gap is `claims-auditor`'s to
close, not this checklist's
- [ ] **C.Med-Arb appears nowhere** — struck entirely 2026-08-29
- [ ] Nothing implies a firm, a team, or offices that do not exist
- [ ] **Numbers that describe the practice** — any count, rate, percentage, time
or dollar figure about matters, hours, years, or outcomes. Decided by §4
Forbidden's *counts of matters closed / hours mediated / years in ADR
practice*, *settlement rates, resolution percentages, median time to
award*, *aggregate value resolved; any dollar figure attached to past
matters*, and *named or describable past matters*. `npm run check:claims`
`counts-and-tenure` sweeps `dist/`. ⚠️ **The rate card is a different
thing and no row reaches it:** D8 commits to publishing it in full, D14
confirms the figures `[verified 2026-08-26 — Pouya]`, and `docs/01`
requires `/for-parties/` to answer *"what it costs"*. A published **price**
is an offer; a published **statistic about past matters** is what the old
site fabricated
- [ ] **Third-party voices** — decided by §4 Forbidden's *testimonials,
endorsements, quotes from counterparties*. ⚠️ **Scope is the whole
question:** that row reaches a third party praising the practice or Pouya.
It does not reach an institution quoted **about its own rules**, from a
committed source — which `docs/01` §`/med-arb/` **directs**, and which
`/mediation/`, `/arbitration/` and `/process/` all do. **Keep the source's
superlatives inside the quotation marks**
- [ ] **Superlatives and guarantee language** — decided by §4 Forbidden's
*guarantees of outcome, or superlatives*. `check:claims` `superlatives`
sweeps `dist/`
- [ ] **Licensure, asserted or implied** — decided by §4 Forbidden's two
licensure rows and D13. The second of the two is the one that catches
copy: it reaches phrasing that *implies* entitlement without saying so.
`check:claims` `licensure-of-pouya` and `acting-for-a-party` sweep `dist/`
- [ ] **The licence-capacity question answered in EITHER direction** — see *When
a fact is `[unestablished]`* above, and §4's own note that its two
licensure rows are verified **directives not to publish**, not a verified
status. Check for *cannot*, *do not*, *am not*, *not permitted*, *not
qualified* **attached to giving legal advice, practising law, or holding a
licence.** ⚠️ **The objection is to answering the capacity question, not
to the words themselves** — the approved sentence contains "do not" and
passes: *"I act as a neutral. I do not act for a party in a matter I take,
and each party should have their own legal advice."* That is **role
conduct**, which he may state freely. `check:claims` `capacity-phrasing`
sweeps `dist/`
- [ ] **Q.Arb** — decided by §4's Q.Arb Verified row and its Forbidden row. The
publishable form is `Q.Arb (ADRIC / ADRIO)`; the acquisition date is
recorded in §4 and is not published. `check:claims` `q-arb-as-a-stage`
enforces the stage words and a date near the designation, on `dist/`.
⚠️ It cannot catch a stage expressed **without naming the designation** —
the struck h1 *"Available now, and open about the stage"* matches nothing —
and that gap belongs to the cutover claims pass, not to this checklist
- [ ] **C.Med-Arb appears nowhere** — decided by §4's struck *C.Med-Arb as a
long-term designation goal* row, which carries the reasoning and the
deliberate deviation from the strategy brief. `check:claims`
`c-med-arb-struck` sweeps `dist/`
- [ ] **A firm, a team, or offices that do not exist** — §4 Forbidden rows the
specific false artefacts (*"Since 2009"*, *"sixteen years"*, the London
and New York offices, the company number, and the fictitious founder);
the general rule is **D16** — the boutique is never named, and the
publishable form is *Director of Firm Operations at a Toronto litigation
and ADR boutique*. `check:claims` `fabricated-founder` sweeps `dist/`
- [ ] Contact page states that an inquiry creates no retainer and no
mediatorparty relationship
- [ ] Any comparative claim is factual and verifiable
- [ ] No sentence answers the licence-capacity question in **either** direction —
see *When a fact is `[unestablished]`* above. Check for *cannot*, *do not*,
*am not*, *not permitted*, *not qualified* **attached to giving legal
advice, practising law, or holding a licence.** The objection is to
answering the *capacity* question, not to the words themselves — the
approved sentence contains "do not" and passes: *"I act as a neutral. I do
not act for a party in a matter I take, and each party should have their
own legal advice."* That is **role conduct**, which he may state freely.
*(This item shipped unscoped for one pass and `adversarial-reviewer` showed
it would fail the exact sentence the section exists to bless — and the
checklist is what gets grepped.)*
- [ ] Any comparative claim is factual and verifiable — **Q41(b), closed
2026-08-27**, which struck a comparative claim about other neutrals from
this file's own positioning statement. Pouya: *"comparative claims must be
factual and verifiable… assert his capability, not the field's
incapability."*
- [ ] Abbreviations expanded on §11 Glossary's authority only — and expansions
for the five ADR designations checked against
`docs/reference/adrio-designations.md`, not from memory. "Chartered