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
+123 -4
View File
@@ -97,11 +97,95 @@ All figures **plus HST**.
| Item | Fee |
|---|---|
| Half day — up to 3.5 h, including 2 h preparation | **$2,000** |
| Full day — up to 7 h, including 3 h preparation | **$4,000** |
| Half day — up to 3 hours of session. Fee includes up to 2 hours of preparation | **$2,000** |
| Full day — up to 6 hours of session. Fee includes up to 3 hours of preparation | **$4,000** |
| Each party beyond two | **$500** |
| Overtime, per hour | **$500** |
⚠️ **THE TWO ROWS ABOVE WERE AMBIGUOUS UNTIL 2026-08-31, AND THE AMBIGUITY WAS
IN THIS DOCUMENT RATHER THAN IN ANY COPY — Q58, ruled by Pouya.** They read
*"Half day — up to 3.5 h, including 2 h preparation"* and *"Full day — up to
7 h, including 3 h preparation"*. Read literally that makes 3.5 the **whole
billed envelope** and the time in the room **1.5 h**. Pouya's ruling: *"3.5 was
meant as the TOTAL time committed, of which 2 is preparation — leaving 1.5 hours
in the room… The intended reading is the market's, and my wording obscured
it."*
**What found it was arithmetic, not reading:** 3.5 and 7 are exactly 2×, which
they would not be if preparation sat inside them, **because preparation does not
scale with session length**. Under the literal reading the room time was 1.5 h
and 4 h, which is not 2× anything.
**The corrected numbers are corroborated by this file's own research table**, one
section up — which is the reason they are 3 and 6 rather than a round guess:
- **Patey** publishes **3 h** half-day and **6 h** full-day in *both* tiers.
- **Zuber** publishes **3 h** video half-day and **6 h** full day.
- **ADR Chambers**' roster rate covers *"one half hour of preparation time per
party **and** up to three hours of mediation"* — preparation counted
**separately from** a three-hour session, which is the shape this card now
has.
Pouya: *"Selling 1.5 hours of room time as a half day would be an outlier nobody
would recognise."* ⚠️ **One provenance note, because this file is the authority
on money:** he recalled Patey and Zuber as publishing *"all or part of 3 hours"*.
The extract above records their **hours** but not that phrase, so **the hours are
what this file relies on** — do not quote the phrase as theirs.
**THE PREPARATION ALLOWANCE IS CAPPED, AND MUST BE PUBLISHED AS CAPPED.**
*"Including **up to** 2 hours of preparation."* Never *"including 2 hours"*,
which reads as a flat entitlement, and never *"preparation included"*, which
sells an uncapped one. See §All parameters confirmed below.
**Consequences, applied 2026-08-31:** `FEES.mediation.*.hours` in
`src/data/site.ts` means the **session** and is corrected 3.5 → 3 and 7 → 6, and
**`/fees/` is unblocked for build step 9** on the question Q58 asked.
⚠️ **BUT WHERE OVERTIME BEGINS IS STILL NOT STATED, AND IT IS NOT SAFE TO INFER
— §9 Q59, OPEN.** A first pass at this paragraph asserted that *"the overtime
rate begins after 3 h and 6 h of session respectively"*. **That is a derived fee
term, not part of the ruling**, and `adversarial-reviewer` was right to strike
it: this file is the authority on money and `/fees/` is now cleared to publish
from it. Nothing in the card, in Q58's ruling, or in Q15Q17's answer says when
the hourly rate starts.
**And the reason it cannot be quietly chosen is that the choice is visible in the
arithmetic.** Take the trigger as the session cap. The half-day route costs
`2000 + 500 × max(0, n 3)`; the full-day route is **flat $4,000 until hour 6**
and `4000 + 500 × (n 6)` after it:
| Session run to | Book a half day + overtime | Book a full day | Gap |
|---|---|---|---|
| 3 h | **$2,000** | **$4,000** | **$2,000** |
| 4 h | $2,000 + 1 × $500 = **$2,500** | **$4,000** | **$1,500** |
| 5 h | $2,000 + 2 × $500 = **$3,000** | **$4,000** | **$1,000** |
| 6 h | $2,000 + 3 × $500 = **$3,500** | **$4,000** | **$500** |
| 7 h | $2,000 + 4 × $500 = **$4,000** | $4,000 + 1 × $500 = **$4,500** | **$500** |
**Booking a half day and paying overtime is cheaper at every length — by $2,000
at three hours, narrowing to $500 from six hours on — and the full-day rate is
never the cheaper choice.** The gap is in D14's figures rather than in the
trigger: the half-to-full step is $2,000 and three hours of overtime is $1,500.
⚠️ **A FIRST PASS AT THIS PARAGRAPH GOT THE ARITHMETIC WRONG, AND WRONG IN THE
DIRECTION THAT MATTERED.** It generalised the full-day route as `500n + 1000` for
all `n ≥ 3`, which is **only valid from hour 6** — the route is flat until then —
and concluded *"$500 cheaper at every length"*. The real spread is **up to four
times larger and is largest at three to five hours, which is the band a half-day
booking actually overruns into.** The document's own table contradicted the
formula three lines above it. Found by `adversarial-reviewer` on round 2, in the
change set that wrote it. *A measurement is a claim about your instrument, and a
formula is an instrument.*
**Moving the trigger out to the 5 h / 9 h billed envelope does not fix it and is
not uniformly better either** — the gap stays at $2,000 through five hours and is
$1,500 at six, worse than the session-cap trigger there, but it closes to **zero**
from nine hours on, where the session-cap trigger holds a permanent $500. So the
two triggers trade one band against another and neither removes the anomaly. **It
is not a defect this file can fix by picking a trigger, which is why the trigger
goes to Pouya and the step goes to R5** — see §Recorded dissent below, where it is
written out for the 12-month review rather than left in this footnote.
### Arbitration
Sole, party-appointed and co-arbitration appointments **in commercial matters**
@@ -182,10 +266,16 @@ page is an offer.
### All parameters confirmed
Q15, Q16, and Q17 were closed on 2026-08-26. **Preparation time is bundled and
must be stated on the page** — "including 2 hours of preparation", "including
3 hours of preparation". Do not quietly fold it into the hours figure. At these
must be stated on the page, IN HOURS AND AS A CAP** — "including **up to** 2
hours of preparation", "including **up to** 3 hours of preparation". Do not
quietly fold it into the session figure, and do not drop the "up to": the
allowance is capped, so the unqualified form sells an uncapped one. At these
rates, saying preparation is included is the selling point, not a footnote.
*(The "up to" was added 2026-08-31 with Q58's ruling. This paragraph previously
prescribed the flat form, and `/for-parties/` shipped it — the one page written
for a reader with no counsel to catch it.)*
---
## Recorded dissent — for the 12-month review (R5)
@@ -227,6 +317,35 @@ unrecoverable, and it is far easier to add a lower tier later than to raise a
headline rate. Setting the ceiling first and discounting privately preserves
more optionality than the reverse.
**And a fourth item, added 2026-08-31: the half-day-plus-overtime route is
strictly cheaper than the full-day rate, at every session length.** This is the
one item in this section that is arithmetic rather than judgement, so it is the
one the review can settle without new market data.
| Session run to | Half day + overtime | Full day | Gap |
|---|---|---|---|
| 3 h | $2,000 | $4,000 | **$2,000** |
| 4 h | $2,500 | $4,000 | **$1,500** |
| 5 h | $3,000 | $4,000 | **$1,000** |
| 6 h | $3,500 | $4,000 | **$500** |
| 7 h | $4,000 | $4,500 | **$500** |
*(Session-cap trigger; the trigger itself is `AGENTS.md` §9 **Q59**, open.)* The
cause is the relationship between two of D14's own numbers rather than anything
about the trigger: **the half-to-full step is $2,000 and three hours of overtime
is $1,500.** Any trigger leaves a gap; the envelope trigger closes it only from
nine hours on.
**What the review has to decide is whether that is a choice.** It is defensible
as one — a full-day booking buys certainty and a reserved diary, and a client who
knows they need six hours may prefer to pay $500 for not having to watch the
clock. It is also exactly the kind of thing counsel comparing published cards
finds in under a minute, and this practice's whole pricing argument is that the
card is published in full and means what it says. **The lever, if it is not a
choice:** either raise the overtime rate so the routes converge, or narrow the
half-to-full step. Both are rate moves, which is why they belong here and not in
a footnote to the card.
---
## Sources