feat: apply six rulings; close Q22/Q44/Q45/Q46(b)/Q47; revert Q47's two graph fields

Pouya's rulings: Q44 (memberships current — ship the group), Q45 (PDF bio
deferred to step 9), Q46(a) (three offerings pass all gates), Q46(b) (§11
ratified as the source for definitional expansions, conditional on committing
the source), Q47 (set jobTitle and worksFor), the legal-advice formulation
ratified without change, and Q22 closed on his own execution evidence.

Q46(b): docs/reference/adrio-designations.md commits all five ADRIO expansions
with reproducible sha256 (four fetches each; both review agents independently
reproduced every digest). It immediately caught the error Pouya raised in the
same message — §11 had said "Chartered Mediator-Arbitrator" since the file was
created, ADRIO's term is "Chartered Med-Arbitrator", and the wrong form was in
dist/about/index.html. Four prior review passes read that string and checked
only whether it was sourced, not whether it was right.

Q47 REVERTED after both review agents struck it independently. jobTitle shipped
for one pass as "Mediator and Commercial Arbitrator" — the string claims-auditor
had removed from this same node's description the previous day, since §4 has no
row for a completed arbitration. The implementation flagged the wrong defect: it
argued about scoping and missed that the whole string was already struck. worksFor
was reverted because ProfessionalService.provider is this Person, so
provider -> Person -> worksFor asserts a same-entity claim transitively. Now
jobTitle: 'Mediator', no worksFor. Q49 asks for the two §4 rows.

Q44: memberships render with NO currency warranty (his condition), and R10 is
re-armed with an event trigger rather than a date since he declined renewal-date
tracking. Q22: §7 goes to PROVISIONED; R17 carries the first rotation date,
2026-11-26. New CLAUDE.md convention, his: never suppress stderr in a
verification script — suppression turns "it failed" into "it found nothing".

Two review rounds resolved 48 findings; the majority of the second round were
defects in the first round's fixes, including a re-widening of §4's renewal
period inside the comment that corrects that widening, a cited guard in
schema.ts that does not exist, and a struck §9 row describing a reverted state.
Three findings were one lift from a public page: docs/03's /for-parties/
directive breached D13 twice, docs/01 told an implementer an unpublishable strip
could ship, and docs/07 priced three ungated offerings with no gate note.

Also commits docs/reference/adrio-extract/ — the extraction script and its five
outputs, since the digests covered raw HTML and said nothing about the text the
term counts were run against. The equivalent gap for Q22's IAM verification is
NOT closed and is Q52.

Verified: astro check 0/0/0, eslint + prettier clean, build 2 pages, 0 .js
emitted, minifier guard silent, animation-timeline intact, no currency-warranty
phrasing in dist, JSON-LD correct on both pages.
NOT run: Lighthouse (tool unavailable until step 7, R11); HTML validator.

Opens Q48-Q53. Live reminders: R1, R10, R11, R13, R14, R15, R16, R17.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0148NztQskLKKApP5SzAA78e
This commit is contained in:
Pouya Lajevardi
2026-08-28 13:50:58 -04:00
co-authored by Claude Opus 5
parent c576b9a85f
commit 77a7b410b2
21 changed files with 5223 additions and 183 deletions
+5 -4
View File
@@ -62,10 +62,11 @@ const aboutLinks = [
{
/* The designation strip carries the credentialing STAGE, not just the
held designation, and that is a §4 Offerings condition rather than a
flourish. The masthead says "Mediation · Arbitration · Toronto" on
every page; §4 permits the arbitration half on the condition that the
site "makes the first while stating the second plainly", and
"neither half may be dropped". Before this line rendered
flourish. The masthead names arbitration on every page except `/`,
where SiteHeader suppresses the tagline by design. §4 permits the
arbitration half on the condition that the site "makes the first while
stating the second plainly", and "neither half may be dropped".
Before this line rendered
CREDENTIALS.inProgress, that condition was unmet on every page that
ships — the constant existed in site.ts and was rendered nowhere.
Q.Arb reads as commenced, never as held (§4). */
+76 -19
View File
@@ -16,15 +16,31 @@
* 1. `LegalService` — NEVER. docs/04: schema.org defines it as a business
* providing legal advice and *representation*, which asserts in
* machine-readable form exactly what D13 bars. `ProfessionalService`.
* 2. `worksFor` — omitted. Populating it either names the boutique (D16) or
* misstates the employer. `jobTitle` carries the role on its own.
* 2. `worksFor` — **STILL OMITTED, and the reason has changed.** The original
* ground was "either names the boutique (D16) or misstates the employer".
* Q47 (2026-08-28) answers the **D16 half**: `jobTitle` now describes this
* practice, so naming SML Company Ltd would not name the boutique. It was
* set on that basis for one pass and `adversarial-reviewer` found why that
* is not sufficient — **the second half was never addressed:**
* `ProfessionalService.provider` is this Person, so `provider → Person →
* worksFor → SML` asserts transitively a same-entity claim **no §4 row
* makes** — and one `src/pages/about.astro` DELETED from visible prose as
* *"a corporate-structure claim"*. *(This read "defeats a guard in this
* file… that `aboutGraph`'s comment explicitly declines to assert". That
* comment covers `ProfilePage`, `BreadcrumbList` and `memberOf` and says
* nothing about SML — the citation was EMPTY. Found by
* `adversarial-reviewer`: a claim whose referent cannot be reached is
* unverifiable by construction, this repo's own rule, applied to the
* argument for a revert. The transitive argument stands on its own.)* §4 also says "**alongside** the practice" where Q47 says
* "operates **through**" — different relations, and only the first has a
* row. **Q49** asks Pouya for the row. Until then, withheld.
* 3. `priceRange` — omitted until `/fees/` exists (build step 9). docs/04
* gates it on that page being real.
*
* AND Q.Arb IS NOT IN `hasCredential`. It commenced August 2026 and is not
* held. Q.Med is. That asymmetry is the whole point of the property.
*/
import { CONTACT, CREDENTIALS, ROLE, SITE } from './site';
import { CONTACT, CREDENTIALS, PRACTICE_JOB_TITLE, SITE } from './site';
/** Stable node ids, so pages cross-reference rather than duplicate. */
export const PERSON_ID = `${SITE.url}/about/#person`;
@@ -63,7 +79,14 @@ export function personNode(imageUrl?: string) {
'@id': PERSON_ID,
name: SITE.name,
url: `${SITE.url}/about/`,
jobTitle: ROLE.title,
/* Q47: PRACTICE_JOB_TITLE, not ROLE.title — the boutique role stays in
visible copy and out of this graph, which is what the ruling was for.
The VALUE is the narrowest form §4 rows; it shipped for one pass as
"Mediator and Commercial Arbitrator" and both review agents struck it as
the role-shaped claim removed from `description` the previous day. See the
constant in site.ts for the full reasoning, and Q49 for the open row.
NO `worksFor` beside it — withheld pending the same question. */
jobTitle: PRACTICE_JOB_TITLE,
description:
'Mediator in Toronto, accepting commercial arbitration appointments. ' +
'Q.Med designation through ADRIC and ADRIO; the Q.Arb pathway commenced ' +
@@ -159,23 +182,57 @@ export function homeGraph(imageUrl?: string) {
* no visible breadcrumb, and the header nav marks it as current — so
* emitting one would assert a navigation structure the page does not show.
* Breadcrumbs begin at the two-level pages: `/practice/<area>/`, `/insights/<slug>/`.
* 3. `memberOf` for the four memberships. Declined on R10 / **Q44** — and
* the visible page reached the same answer one round later, which is worth
* recording: `/about/` now publishes **no memberships group at all**,
* because R10 is a prohibition on shipping such a page and the
* re-confirmation was not obtained. So this field is not a stricter
* standard than the page; it is the same one.
* 3. `memberOf` — **STILL WITHHELD, AND NOW ON NARROWER GROUNDS THAN THE
* PAGE.** Q44 closed 2026-08-28 and `/about/` **does** publish all four
* visibly, so the earlier reasoning ("this field is not a stricter standard
* than the page; it is the same one") no longer holds. It is now
* deliberately stricter, for one reason that Q44 did not touch and in fact
* sharpened:
*
* Two earlier versions of this comment were wrong on the facts. They said
* "the page publishes them visibly" (it does not, as of 2026-08-28) and
* "all four renew yearly" — §4 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.
* **The ground is VOLATILITY, not cacheability** — and the first version of
* this comment got that wrong in a way `adversarial-reviewer` showed proves
* too much. It said "a scraped claim is cached and re-served by systems that
* never re-read it", which is equally true of `hasCredential`, and
* `hasCredential` ships. A later reader applying that principle
* consistently would either strip Q.Med from the graph (wrong) or restore
* `memberOf` (possibly wrong), because the stated reason does not
* distinguish the two fields.
*
* The reason a machine-readable membership claim is worse than a visible
* one stands regardless: a list on a page is corrected by editing the page,
* while a scraped claim is cached and re-served by systems that never
* re-read it. OCNI lapsed quietly once already. Add this when Q44 closes.
* **What distinguishes them:** a membership is a fact with a **renewal
* cycle** — §4 records yearly renewal for **the OBA sections and the CTF**
* and says **nothing** about ADRIC's or ADRIO's period — and Pouya has
* declined to track the dates, so the claim's truth can change with nobody
* holding the schedule. A designation is not on a renewal cycle this record
* knows of. *(This paragraph said "a membership list is a set of yearly
* renewing facts" until 2026-08-28 — the widened form, FOURTH occurrence,
* twenty lines above this same comment's own warning that it "is still
* wrong and still must not be written". It was also the stated ground for
* withholding `memberOf`, so the withholding rested on a widened premise.
* Found by `claims-auditor` on re-audit.)* Caching only matters because the
* underlying fact
* moves — so volatility is the reason and caching is the mechanism.
*
* ⚠️ **AND `hasCredential` IS NOT SAFE BY THAT TEST — see Q48**, raised in
* this same change set: ADRIO states a membership-in-good-standing retention
* condition for C.Med and C.Arb and states none for Q.Med, and the reason
* it states none looks like page type rather than absence of a condition.
* **If Q.Med retention IS contingent on ADRIO membership currency, then
* `hasCredential` — which ships — carries the higher exposure of the two.**
* That is an argument for answering Q48, not for adding `memberOf`.
* OCNI lapsed quietly once already; §4 still carries it as "not current, do
* not publish".
*
* **This is a judgement, not an instruction from Pouya.** Q44's Blocks
* column listed `memberOf` among the things it gated, so closing Q44 does
* unblock it; his ruling said "ship the group", which is the visible one,
* and said nothing about the graph. Reversing this is four lines and his
* call — it is flagged in the session report rather than buried here.
*
* *Two earlier versions of this comment were wrong on the facts: they said
* the page published them visibly when it did not, and that "all four renew
* yearly" when §4 records yearly renewal for the OBA sections and the CTF
* only. The first is now true again; the second is still wrong and still
* must not be written.*
*/
export function aboutGraph(imageUrl?: string) {
return {
+157 -13
View File
@@ -49,19 +49,42 @@ export const SITE = {
export const CREDENTIALS = {
designations: ['Q.Med (ADRIC / ADRIO)'],
inProgress: ['Q.Arb — commenced August 2026'], // [verified 2026-08-26]
goal: 'C.Med-Arb (Chartered Mediator-Arbitrator)',
/**
* "Chartered Med-Arbitrator" — ADRIO's own term
* (docs/reference/adrio-designations.md). This read "Chartered
* Mediator-Arbitrator" until 2026-08-28, which was wrong; Pouya caught it and
* it was his own error, carried from the strategy brief and never sourced.
*
* UNCONSUMED AS OF 2026-08-28 — nothing imports `CREDENTIALS.goal`. `/about/`'s
* credential arc hand-types all three designations instead, which is the drift
* shape this repo keeps paying for (see ContactBand's 52ch/46ch divergence).
* It is corrected rather than deleted because `/med-arb/` at build step 4 is
* its natural consumer: either that page uses it, or this line comes out.
*/
goal: 'C.Med-Arb (Chartered Med-Arbitrator)',
education: ['JD, Bond University'],
certifications: [
'Kompass Arbitration Certificate Program',
'Stitt Feld Handy negotiation and ADR workshop series',
/* "sequence", NOT "series" — §4: "Stitt Feld Handy negotiation and ADR
workshop **sequence** — completed". This list said "series" while the bio
prose on the same page said "sequence": one certification, two names, one
page. Found by `claims-auditor` 2026-08-28. Same shape as the C.Med-Arb
error — a third-party programme name that four review passes read without
checking it was right. */
'Stitt Feld Handy — negotiation and ADR workshop sequence',
],
languages: ['English', 'Farsi'],
/**
* [verified 2026-08-26 — Pouya, AGENTS.md Q28 and the CTF addition of the same
* [verified 2026-08-28 — Pouya, AGENTS.md Q44] — re-stamped when Q44 closed;
* the original confirmation was 2026-08-26 (Q28 plus the CTF addition of the same
* date] — and FOR NOW.
*
* WHAT §4 ACTUALLY SAYS ABOUT RENEWAL, because a widened version of it reached
* a public page. §4: *"Both the OBA sections and the CTF renew yearly."* It
* a public page. §4, quoted exactly: *"the OBA sections and the CTF renew
* yearly"* — NOT "Both the OBA sections…", which is how this comment quoted it
* until 2026-08-28. The substance was right and the quotation marks were not,
* in the comment written to stop a widened paraphrase of this exact sentence.
* Found by `claims-auditor`. It
* says **nothing** about ADRIC's or ADRIO's renewal period. An earlier form of
* this comment read "Both the OBA sections and the Canadian Tax Foundation
* renew yearly, so every line below is a fact with a shelf life", which is two
@@ -70,12 +93,21 @@ export const CREDENTIALS = {
* `/about/`, and into §9 Q44. Exactly the SES-DKIM duplication shape: the copy
* that goes stale is the one nobody re-reads, and this copy became public copy.
*
* **NOT PUBLISHED AS OF 2026-08-28 — R10 / Q44.** R10 requires a
* re-confirmation *"before any page listing memberships ships"*, `/about/` is
* that page, and the re-confirmation is a fact only Pouya holds. It was not
* obtained, so `/about/` ships its Credentials section WITHOUT a memberships
* group and carries a `TODO(pouya)`. Do not render this array on a public page
* until Q44 closes.
* **PUBLISHED FROM 2026-08-28 — Q44 CLOSED.** Pouya re-confirmed all four as
* current, which discharges R10's prohibition, and `/about/` now renders a
* Memberships group from this array. Re-stamped `[verified 2026-08-28 —
* Pouya]`; the earlier stamp was 2026-08-26.
*
* ⚠️ **RENDER THE LIST; NEVER RENDER A CLAIM ABOUT ITS CURRENCY.** No
* "renewed annually", no "current as of", no "listed as current", no stamp
* date in the markup. Pouya's ruling: *"List the memberships; promise nothing
* about their future state. The list is a snapshot, and only §4's stamp says
* when it was taken."* He declined renewal-date tracking, so there is no date
* behind such a sentence and nothing in this repo could support one.
*
* R10 stays live and now fires on an **event** rather than a date: re-confirm
* before any cutover or major republish. OCNI is why — §4 carries it as lapsed
* and unpublishable, and that was found roughly a year late.
*
* NOT OCNI (lapsed — §4: "not current, do not publish") and NOT the Law
* Society: listing the LSO implies licensure, which D13 bars. Do not add
@@ -105,9 +137,22 @@ export const BOUTIQUE = 'a Toronto litigation and ADR boutique' as const;
* these are the two where the wording IS the compliance.
*/
export const ROLE = {
/** §4 verbatim. docs/04: this is `jobTitle` in the Person JSON-LD, and
* `worksFor` is OMITTED — populating it either names the boutique (D16) or
* misstates the employer. */
/**
* §4 verbatim, and it is the VISIBLE role only.
*
* NO LONGER THE JSON-LD `jobTitle` — Q47, ruled 2026-08-28. This string was
* both the visible role line and the Person node's `jobTitle`, which put
* "Director of Firm Operations" on a node whose `url` is this ADR practice's
* `/about/` — so a consumer could attach the boutique title to this entity.
* Pouya's ruling splits them: the graph carries PRACTICE_JOB_TITLE below,
* while this string stays exactly where it was in visible copy ("I am
* {ROLE.title} at {ROLE.at}").
*
* **The graph carries NO `worksFor`.** This sentence said it did — "the graph
* now carries PRACTICE_JOB_TITLE below and `worksFor: SML Company Ltd`" —
* which was true for one pass and was reverted the same day (Q49(b)). Verified
* 2026-08-28: zero live `worksFor` properties in `src`.
*/
title: 'Director of Firm Operations', // [verified 2026-08-25 — strategy brief §I]
/** Always rendered with BOUTIQUE, never with a firm name (D16). */
at: BOUTIQUE,
@@ -133,6 +178,105 @@ export const ROLE = {
],
} as const;
/**
* The Person node's `jobTitle` — Q47, ruled by Pouya 2026-08-28.
*
* NOT `ROLE.title`, and that separation IS the ruling. §4's row is one fact with
* two halves — *"Director of Firm Operations, Toronto litigation and ADR
* boutique"* — and visible copy always pairs them. The JSON-LD emitted only the
* first half, on a `Person` whose `url` is this practice's `/about/`, so a
* consumer could attach the boutique title to this entity. `worksFor` could not
* fix it, because D16 bars naming the boutique and there was no value it could
* take.
*
* His ruling breaks the bind by changing what the field is about: *"jobTitle
* describes this practice, not the boutique role, which D16 keeps unnamed"* —
* and that half holds: this constant names no boutique.
*
* **THE `worksFor` HALF OF THE RULING IS NOT IMPLEMENTED — Q49(b).** This
* paragraph said *"`worksFor` becomes SML Company Ltd — verified, federally
* incorporated, and the entity the practice operates through. Both are set"*.
* Two defects, both found by `claims-auditor` on re-audit: **"Both are set" is
* false** (reverted the same day), and *"the entity the practice operates
* through"* was listed inside a run of verified attributes when **§4 rows only
* "Operator of SML Company Ltd. `alongside` the practice"** — a different
* structural relation, and precisely what Q49(b) is open on. Do not restate the
* ruling's phrasing as though the register carried it.
*
* ⚠️ **IT SHIPPED FOR ONE PASS AS "Mediator and Commercial Arbitrator" AND THAT
* WAS WRONG FOR A REASON I HAD NOT SEEN.** Both review agents found it
* independently on 2026-08-28, which is this loop's strongest signal.
*
* The string `claims-auditor` struck from **this same node's `description`** on
* 2026-08-27 was *"Mediator and commercial arbitrator in Toronto"*. The value
* ruled for `jobTitle` is the same words minus the city — **in the most
* role-asserting field in the vocabulary**, thirty lines below the comment in
* `schema.ts` that explains why the words were struck. §4 verifies *"Has
* completed multiple sole mediations"* and has **no counterpart row for a
* completed arbitration** — only that appointments are *accepted*. Consumers
* render `jobTitle` beside `name`: *Pouya Lajevardi — Mediator and Commercial
* Arbitrator*, which invites the reader to supply a track record for both halves.
*
* **I flagged the wrong thing.** My note argued about scoping ("Commercial"),
* and neither the note nor I noticed the whole string had already been struck on
* different grounds. A flag aimed at the wrong defect reads as diligence and
* provides none.
*
* **So this ships as the narrowest form §4 actually rows**, and Q47's purpose is
* still served: Pouya's ruling was that `jobTitle` describe *this practice*
* rather than the boutique role, and "Mediator" does exactly that. Nothing is
* lost from the graph — `description` ("accepting commercial arbitration
* appointments") and `serviceType` ("Commercial arbitration") both carry the
* arbitration **offering**, and both cleared audit. Only the role-assertion is
* gone.
*
* **AGENTS.md Q49 asks Pouya for the row.** If he wants the fuller title it
* needs either a §4 row for arbitrator-as-practised-role, or an offering-shaped
* value — `adversarial-reviewer` proposed `'Mediator; accepts commercial
* arbitration appointments'`, which is honest and reads oddly for a job title.
* His call, not one to take by tidying.
*/
// [derived from §4 — "Q.Med designation through ADRIC / ADRIO" + "Has completed
// multiple sole mediations". NOT a row stamp: §4 has no row reading "Mediator",
// and the row-level wording is what Q49(a) is open on. The 2026-08-25 date this
// comment first carried was inherited from ROLE.title's row.]
export const PRACTICE_JOB_TITLE = 'Mediator' as const;
/* `PRACTICE_ENTITY` LIVED HERE FOR ONE PASS AND IS DELETED WITH `worksFor`.
*
* It existed only to populate `Person.worksFor`, which is withheld pending a §4
* row (Q49). `adversarial-reviewer` found the defect that decided it, and it is
* one the "name only, nothing else" scoping did **not** address: the
* ProfessionalService node's `provider` **is** this Person, so
* `provider → Person → worksFor → SML Company Ltd` asserts transitively exactly
* what `src/pages/about.astro` declines to assert in prose — that the practice
* and the company are the same entity. **The referent matters and the first
* version of this sentence got it wrong:** it said "the comment four lines above
* it", pointing at `aboutGraph`'s note in `schema.ts`, which covers
* `ProfilePage`, `BreadcrumbList` and `memberOf` and says **nothing** about SML
* Company Ltd. `adversarial-reviewer` read it and found the citation empty —
* *"a claim whose referent cannot be reached is unverifiable by construction"*,
* this repo's own rule, applied to the argument for a revert. The real referent
* is `about.astro`'s deleted sentence: *"the company through which the
* engineering work is done" — a corporate-structure claim.* The transitive
* argument stands on its own; the evidence offered for it did not.
*
* Two further grounds, both recorded so this is not re-added casually:
* - §4's row says "Operator of SML Company Ltd **alongside** the practice".
* Q47's ruling says "the entity the practice **operates through**". Those are
* different structural relations and the second has no §4 row.
* - `/about/` already **removed** a sentence of this exact class from visible
* copy — see about.astro: *"the company through which the engineering work is
* done" — a corporate-structure claim*. Publishing it machine-readably while
* declining it in prose is the stricter-in-public, looser-in-metadata shape.
*
* The original omission had TWO grounds — "either names the boutique (D16) **or
* misstates the employer**". Q47 answers the first. The second is Q49.
*
* `SITE.entity` already carries the string for the footer. Re-adding a second
* constant for the same name would be the drift this file keeps paying for.
*/
/**
* THE Q41(a) SENTENCE. It lives here for the reason `ROLE` above lives here:
* *"these are the two where the wording IS the compliance."*
+148 -69
View File
@@ -20,12 +20,22 @@
* section entirely until there is something in it. An empty 'Speaking' heading
* is worse than no heading." Nothing to list.
*
* ITEM 7'S PDF IS NOT SHIPPED, and the omission is stated rather than silent
* AGENTS.md Q45. No such file exists, and a link to a missing file on the page
* an appointing body reads is worse than its absence. It is also not a
* formatting job: a one-page bio is a credential document circulated DETACHED
* from the site, where no build and no reviewer ever re-checks it. Two
* decisions there are Pouya's.
* ITEM 7'S PDF IS NOT SHIPPED, and the omission is stated rather than silent.
* **Q45 CLOSED 2026-08-28 — deferred by Pouya to build step 9, alongside
* `/fees/`, and tracked as AGENTS.md §12 R16.** His reasoning: it is a derived
* artefact, so building it before this page and the fee card are final means
* building it twice. No such file exists yet, and a link to a missing file on
* the page an appointing body reads is worse than its absence.
*
* It is also not a formatting job: a one-page bio is a credential document
* circulated DETACHED from the site, where no build and no reviewer ever
* re-checks it. Two decisions travel with R16 and are NOT settled by the
* deferral — generated-at-build vs authored once, and whether it carries
* anything the site does not.
*
* This paragraph also comes out at step 9 (R16), which now lists this file.
* *(It pointed at Q45 after Q45 closed; `adversarial-reviewer` found that
* `grep -rn R16 src` returned nothing at all.)*
*
* THE PARENT/CHILD SCOPE TRAP, because this page uses <SectionHeading> four
* times. A parent CANNOT style a child component's root element — the rule
@@ -35,15 +45,25 @@
* components have had their `class` props deleted so passing one is a build
* error rather than a silent no-op.
*
* R10 / Q44 — THE MEMBERSHIPS GROUP IS NOT ON THIS PAGE. R10 is written as a
* prohibition — re-confirm *before* any page listing memberships ships — and
* `/about/` is the page it names. The re-confirmation is a fact only Pouya holds
* and was not obtained, so the group is withheld and a `TODO(pouya)` sits on
* CREDENTIAL_GROUPS below with the exact question. §4 is NOT re-stamped:
* nothing was re-checked. Q44.
* R10 / Q44 — THE MEMBERSHIPS GROUP SHIPS, AND IT CARRIES NO CURRENCY
* WARRANTY. Q44 closed 2026-08-28: Pouya re-confirmed all four as current, so
* R10's prohibition is discharged and the group renders. Two conditions came
* with that ruling and both are load-bearing on this page:
*
* A first version of this page published all four and disclosed the gap instead.
* Both review agents rejected that; the reasoning is on CREDENTIAL_GROUPS.
* 1. **Nothing here promises the memberships stay current.** The struck
* sentence ("Memberships are renewed annually and are listed as current")
* stays struck and nothing replaces it. His words: *"List the memberships;
* promise nothing about their future state."* The list is a snapshot, and
* only §4's stamp says when it was taken.
* 2. He declined renewal-date tracking, so **R10 no longer fires on a date —
* it fires on an event**: re-confirm before any cutover or major
* republish. That is why R10 stays live with the group shipped.
*
* The page held all three positions in three days — published-with-a-disclosure
* (rejected by both review agents), withheld-behind-a-TODO (correct while R10
* was undischarged), now published-with-no-warranty. The middle state was not a
* detour; it is what "a build that fails on an unanswered question is a correct
* build" looks like from the inside.
*/
import { Picture, getImage } from 'astro:assets';
import BaseLayout from '../layouts/BaseLayout.astro';
@@ -127,9 +147,20 @@ const designationLine = [
/**
* The credentialing arc — docs/01 item 4, and docs/03: "the credentialing
* pathway from Q.Med through Q.Arb to C.Med-Arb is stated openly as in
* progress. The brief treats that arc as part of the story rather than
* something to obscure."
* pathway from Q.Med through Q.Arb to C.Med-Arb is stated openly, **with Q.Arb
* described as commenced August 2026** and never as 'in progress', which is
* looser than §4 and is barred by docs/06's cutover checklist. The brief treats
* that arc as part of the story rather than something to obscure."
*
* ⚠️ THAT QUOTATION WAS STALE AND THE STALE HALF WAS THE BARRED PHRASE. It
* quoted docs/03's pre-2026-08-28 text, which ended "...stated openly as in
* progress" — so THIS FILE cited docs/03 as REQUIRING the phrase six lines
* above citing it as BARRING the phrase. Found by `adversarial-reviewer`.
*
* **And the Q.Arb-wording sweep missed it because the phrase was line-wrapped**
* as `as in\n * progress`: a grep for "in progress" on one line returns
* nothing. Same defect CLAUDE.md already records for a docs/03 phrase that
* wrapped behind a blockquote marker. Sweep the wrapped form too.
*
* `state` is the load-bearing column. "Commenced August 2026" is §4's exact
* wording and the ONLY permitted wording — docs/03: not "in progress", because
@@ -160,7 +191,12 @@ const designationLine = [
* credential structure, with no row and no source.
* 5. The expansions — "Qualified Mediator", "Qualified Arbitrator",
* "Chartered Mediator-Arbitrator". Flagged as being in §11 Glossary but
* not in §4 Verified.
* not in §4 Verified. **The third was also simply WRONG** — ADRIO's term
* is "Chartered Med-Arbitrator" — but that is not what this finding
* caught, and no review pass caught it either: four passes read the string
* and checked only whether it was *sourced*. Pouya caught it on
* 2026-08-28. The wrong form is quoted here because it is what was
* flagged; it is corrected in the arc below and swept from the repo.
*
* ⚠️ ITEM 5 WAS REMOVED AND IS NOW RESTORED, AND IT IS THE ONE PLACE THIS
* SESSION WENT AGAINST A REVIEW FINDING. The reason is a SECOND finding, from
@@ -170,22 +206,30 @@ const designationLine = [
* Institute of Ontario" — every one of them a §11 Glossary expansion, on exactly
* the ground the designation names were struck. *"One standard or the other."*
*
* The standard chosen is: **§11 Glossary is the source for DEFINITIONAL
* expansions** — what an abbreviation stands for — while §4 Verified remains the
* only source for claims ABOUT POUYA. Expanding `Q.Med` says nothing about him;
* "he holds it" is the claim, and that has a row. The alternative standard would
* have required stripping POA, SABS and the institute names from the prose and
* `recognizedBy` from the JSON-LD, which makes the page materially worse for a
* reader who does not already know the acronyms, in exchange for no reduction in
* risk. **Q46 asks Pouya to ratify that standard** and it is the only thing
* holding it up; if he declines, all four classes come out together.
* ✅ **RATIFIED BY POUYA 2026-08-28 (Q46(b)), AND NO LONGER RESTING ON §11
* ASSERTING ITS OWN CONTENT.** The standard: **§11 Glossary is the source for
* DEFINITIONAL expansions** — what an abbreviation stands for — while §4
* Verified remains the only source for claims ABOUT POUYA. Expanding `Q.Med`
* says nothing about him; "he holds it" is the claim, and that has a row. His
* words: *"the same line the Offerings ruling drew"*, and *"You were right that
* one standard or the other had to apply."*
*
* Sourcing them externally was tried first and failed: `adric.ca/designations/`
* redirects to `/designations-cee/` and its HTML contains **zero** occurrences
* of "Q.Med", "Qualified Mediator" or "Chartered Mediator" in 114,985 bytes —
* navigation only, body assembled client-side. So R14 cannot be met from the
* obvious URL, which is why this rests on §11 and on Q46 rather than on a
* committed extract.
* The alternative standard would have required stripping POA, SABS and the
* institute names from the prose and `recognizedBy` from the JSON-LD — making
* the page materially worse for a reader who does not already know the acronyms,
* in exchange for no reduction in risk.
*
* **R14 IS NOW SATISFIED, which it was not when this comment was first written.**
* Pouya's ruling attached a condition — fetch and commit the source — and
* `docs/reference/adrio-designations.md` is it: all five expansions in ADRIO's
* own words, four independent fetches, reproducible sha256. The earlier attempt
* had failed on the obvious URL (`adric.ca/designations/` redirects to
* `/designations-cee/` and serves **zero** occurrences of "Q.Med", "Qualified
* Mediator" or "Chartered Mediator" in 114,985 bytes — navigation only, body
* assembled client-side), and that failure is why this rested on §11 alone for
* one day. `adr-ontario.ca` serves them server-side. **The lesson is that one
* dead URL is not a sourcing dead end** — the national body's page was
* client-rendered and the provincial affiliate's was not.
*/
const ARC = [
{
@@ -209,8 +253,13 @@ const ARC = [
{
name: 'C.Med-Arb',
state: 'The endpoint',
/* "Chartered Med-Arbitrator", NOT "Chartered Mediator-Arbitrator". The
second form shipped in this string until 2026-08-28 and was in
dist/about/index.html; ADRIO's own term is the first
(docs/reference/adrio-designations.md, Finding 2). Pouya's correction,
and it was his own error carried from the strategy brief. */
body:
'Chartered Mediator-Arbitrator. The designation this practice is built ' +
'Chartered Med-Arbitrator. The designation this practice is built ' +
'toward.',
},
];
@@ -228,43 +277,52 @@ const ARC = [
* NOT PRESENT, AND EACH IS A §4 DIRECTIVE RATHER THAN A GAP:
* - The Law Society. Listing it implies licensure, which D13 bars. §4:
* "Excluded deliberately, not by oversight."
* - OCNI. Not current (§4), so it is not published.
* - OCNI. Not current (§4), so it is not published. **It is the precedent** —
* a membership lapsed quietly and the register now reads "not current, do
* not publish". Nothing told anyone when.
* - Any licence status, in either direction. §4 records it `[unestablished]`.
*
* TODO(pouya): Are ADRIC, ADRIO, the three OBA sections (Construction &
* Infrastructure, ADR, Civil Litigation) and the Canadian Tax Foundation all
* current TODAY, and in which month does each renew? — AGENTS.md Q44.
* ⚠️ MEMBERSHIPS RENDER, AND THE PAGE SAYS NOTHING ABOUT THEIR FUTURE STATE.
* That second clause is the whole ruling, so it is written here beside the
* array rather than in a change log nobody reads at edit time.
*
* ⚠️ MEMBERSHIPS ARE DELIBERATELY NOT RENDERED, AND THIS IS A REVERSAL.
* **Q44 closed 2026-08-28.** Pouya re-confirmed all four as current — ADRIC,
* ADRIO, the three OBA sections, and the Canadian Tax Foundation — which
* discharges R10's prohibition and puts the group back on the page. §4 is
* re-stamped `[verified 2026-08-28 — Pouya]`.
*
* The first version of this page published all four on §4's 2026-08-26 stamp and
* disclosed the outstanding re-confirmation in a note, in this comment, in
* `schema.ts`, in §9 Q44 and on the cutover checklist. Both review agents
* rejected that, and they are right. §12 **R10** is written as a PROHIBITION —
* *"Re-confirm at each renewal, **and before any page listing memberships
* ships** — `/about/` at build step 3 is the first one that will"* — and
* documenting a prohibition is not discharging it. `CLAUDE.md` gives the
* procedure for a fact you do not have, and it is this one: leave
* `TODO(pouya)`, log the question, let the gap be visible. *"A build that fails
* on an unanswered question is a correct build."*
* **DO NOT ADD A CURRENCY SENTENCE.** Not "renewed annually", not "current as
* of", not "listed as current", not a stamp date in the markup. His ruling is
* explicit: *"List the memberships; promise nothing about their future state.
* The list is a snapshot, and only §4's stamp says when it was taken."* The
* struck sentence is quoted in the comment further down this file with the
* three defects it carried; the second of those is now the live one.
*
* The alternative was to ship them and call it disclosed. It was taken once and
* is recorded here as the decision it was, not as an oversight — and it came
* with a second defect on top: the note asserted *"Memberships are renewed
* annually and are listed as current"*, which (a) warranted currency the
* register cannot vouch for and (b) widened §4, which records yearly renewal for
* the **OBA sections and the CTF only** and says nothing about ADRIC or ADRIO.
* **WHY THE ABSENCE OF A WARRANTY IS THE HONEST FORM AND NOT AN EVASION.**
* Pouya declined renewal-date tracking. Without renewal months there is no date
* on which anyone could re-check, so any sentence asserting continued currency
* would be asserting something nothing in this repo can support — which is the
* OCNI shape exactly: §4 carries OCNI as lapsed and unpublishable, and that was
* found roughly a year late. R10 therefore fires on an **event** now (before any
* cutover or major republish), not on a date. That is recorded in §12 R10 with
* this reasoning attached, because a stamp with no trigger behind it goes stale
* silently.
*
* OCNI is the precedent and it is in §4: a membership lapsed, quietly, and the
* register now reads "not current, do not publish". Nothing tells you when.
* "Canadian Tax Foundation" ships WITHOUT a "(CTF)" abbreviation, unlike ADRIC
* and ADRIO. Pouya's ruling wrote "(CTF)" when listing what to confirm, but the
* abbreviation appears nowhere else on this site — ADRIC and ADRIO earn their
* parentheses because "Q.Med (ADRIC / ADRIO)" uses them in the Designations
* group two entries above. An unused abbreviation is noise, so it is omitted;
* one word to reverse if he wants it.
*
* The other three groups ship. Restoring this one is one array entry, the moment
* Q44 closes — and re-stamp §4 and `CREDENTIALS.memberships` that day.
* `memberOf` IS STILL WITHHELD FROM THE JSON-LD — see `src/data/schema.ts`.
* That is a narrower decision than this one and it is explained there.
*/
const CREDENTIAL_GROUPS = [
{ title: 'Designations', items: CREDENTIALS.designations },
{ title: 'Education', items: CREDENTIALS.education },
{ title: 'Certifications', items: CREDENTIALS.certifications },
{ title: 'Memberships', items: CREDENTIALS.memberships },
];
---
@@ -523,7 +581,17 @@ const CREDENTIAL_GROUPS = [
practice, the jurisdiction of incorporation and the place of
business — not which work runs through which vehicle. */
}
<p>I run SML Company Ltd alongside both.</p>
{
/* §4 VERBATIM: "Operator of SML Company Ltd. **alongside the
practice**." This read "alongside both", where "both" resolved to the
law track and the engineering track — a concurrency claim §4 does not
make, flagged by `claims-auditor` 2026-08-28. Two neighbouring
additions were deleted from this section for the same reason (see
below), and the wording had propagated from docs/03, now corrected
too. NOT a corporate-structure claim either — see schema.ts on why
`worksFor` is withheld. */
}
<p>I run SML Company Ltd alongside the practice.</p>
<p>
I have also completed the Kompass Arbitration Certificate Program and
the Stitt Feld Handy negotiation and ADR workshop sequence. Neither is
@@ -558,11 +626,19 @@ const CREDENTIAL_GROUPS = [
Both readings are correct and they point in opposite directions,
because both sentences make a claim about CAPACITY. So this one does
not: it states the ROLE and its consequence for the reader, which is
the form `docs/03` actually sanctions on `/for-parties/` (*"the
mediator is not your lawyer"* — role, not capacity) and the only one
that asserts nothing and denies nothing. The underlying question is
R1's. */
not: it states the ROLE and its consequence for the reader, and it is
the only form that asserts nothing and denies nothing. The underlying
question is R1's.
AN EARLIER VERSION OF THIS COMMENT CITED `docs/03`'s
`/for-parties/` directive as the sanctioned example — *"the mediator
is not your lawyer" — role, not capacity*. That was wrong twice:
"not your lawyer" PRESUPPOSES lawyer status, which §4 Forbidden bars
of Pouya and D13 bars by implication; and the half of that sentence
this comment did not quote was "cannot give you legal advice", which
is the denial the comment itself says was struck twelve lines above.
`docs/03` has since been corrected. Do not re-import an example from
a spec without reading the whole sentence it sits in. */
}
<p>
I act as a neutral. I do not act for a party in a matter I take, and
@@ -661,10 +737,13 @@ const CREDENTIAL_GROUPS = [
the OBA sections and the CTF only and says nothing about ADRIC
or ADRIO. The widened form had already propagated to four places.
(b) "listed as current" was an affirmative public WARRANTY of
currency stacked on top of an undischarged R10 — the reminder
whose entire purpose is that no such warranty be made without a
re-confirmation. The memberships group is now off the page
(Q44), so the sentence has nothing left to warrant either.
currency. **THIS IS NOW THE OPERATIVE DEFECT.** Q44 closed and
the group is back on the page, so the sentence has something to
warrant again — and it still must not return. Pouya, 2026-08-28:
*"NO CURRENCY WARRANTY on the page. The sentence you struck
stays struck, and nothing may replace it."* He declined renewal
tracking, which is exactly why the warranty cannot be made:
there is no date behind it. R10 fires on an event instead.
(c) "Nothing above asserts a licence to practise law, in either
direction" READS AS A DENIAL. §4 on licence status: "Do not
assert it, do not deny it, do not infer it from anything else