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
+15 -3
View File
@@ -33,9 +33,21 @@ replaced with something verified.
**Licensure (D13).** The site asserts the JD and nothing further. Flag: "lawyer",
"called to the bar", "licensed", "my law practice", "my litigation practice",
"my clients", "acts for", "represents", "legal advice", or any post-nominal
implying a licence. **Flag implication as hard as assertion** — "my litigation
practice" claims licensure without the word.
"my clients", "acts for", "represents", or any post-nominal implying a licence.
**Flag implication as hard as assertion** — "my litigation practice" claims
licensure without the word.
**"legal advice" — FLAG IT ONLY WHERE IT ATTACHES A CAPACITY TO POUYA.** This
list carried a bare *"legal advice"* until 2026-08-28, which applied literally
flags the **ratified** sentence *"each party should have their own legal
advice"*. Flag *giving* legal advice, *practising law*, or *holding a licence*
predicated of him — not the phrase wherever it appears. `docs/03`'s
*"When a fact is `[unestablished]`"* section carries the pattern and the three
tests; the shipped sentence is its worked example of a **pass**.
*This is the fourth stale claim found inside this brief. The same correction
reached `docs/03`'s compliance checklist and did not reach here — the shape this
paragraph's own memberships note records two sections down.*
The approved phrasing for the boutique role is **"active litigation exposure"**
or **"involvement in litigation and ADR matters"**. The word **"practice"** in
+3805 -25
View File
File diff suppressed because it is too large Load Diff
+26
View File
@@ -176,6 +176,32 @@ from a command that found nothing. Same family as *a sweep is a command, not a
claim*: the claim must rest on output you actually read, from a command that
actually ran.
**And never suppress stderr in a verification script.** *Pouya's convention,
2026-08-28, from verifying the deploy credential (`AGENTS.md` Q22).* This is the
rule above from the other direction, and it is the more dangerous direction:
**`2>/dev/null` converts "it failed" into "it found nothing", and those are
opposite results.** His first pass at eight `simulate-principal-policy` checks
returned empty for all eight; the suppression was hiding an `InvalidInput` error,
and the empty output was then explained with a guess — *"probably lacks the
permission"* — which is the answer the check was supposed to produce, arrived at
without the check running. The actual cause was a **zsh parameter-expansion bug**:
`$ACCT:user/` parses `:u` as a history modifier and yields `327082975128ser/`.
Braces fixed it.
So: no `2>/dev/null` in anything whose output you intend to believe, read the
exit status, and when a result is empty **remove the suppression and look before
proposing a cause.** A guessed explanation for an empty result is worse than no
result, because it closes the question.
*Corroborated the same day, twice, in the same session and both in zsh:*
`grep -rn $EX 'Mediator-Arbitrator'` printed an option error and no matches —
which reads as clean — because zsh does not word-split unquoted variables; and a
digest-comparison loop using `set -- $pair` printed **`DIFFER` on all five rows**,
which reads as "the source changed under me", because the loop body received one
argument and the comparison never ran. Prefer `git grep`, quote or array-expand
anything you pass as flags, and re-check any result whose shape is "uniformly
bad".
**A parent cannot style a child component's root element.** Astro does not pass
a parent's scope attribute down, so `<Button class="header-cta" />` compiles the
parent's rule to `.header-cta[data-astro-cid-<parent>]` while the rendered `<a>`
+20 -12
View File
@@ -59,11 +59,13 @@ both.
`.gitea/workflows/deploy.yml` is the CI pipeline — **Gitea Actions**, not GitHub
Actions. **It has never run**, for two reasons that are not oversights:
- The scoped IAM user does not exist. `aws iam get-user --user-name
adr-sml-deploy` returns `NoSuchEntity` (`AGENTS.md` Q22).
- Actions are not enabled and no runner is registered. The Gitea instance is
jointly administered, so both need its second administrator (Q23).
*(It previously listed a second reason — that the scoped IAM user did not exist.
**It exists**: `adr-sml-deploy`, created 2026-08-26, Q22 closed 2026-08-28. See
`AGENTS.md` §7 for the inventory and the least-privilege verification.)*
Its **first** step is a guard: the run aborts, naming what is missing, if any
required variable or either AWS secret is empty. Only emptiness is tested and no
value is echoed.
@@ -75,11 +77,14 @@ Gitea falls back to that directory when `.gitea/workflows` is absent, so a
workflow file left there with a `push` trigger would be only conditionally
inert. As an `.example` under `docs/` it cannot be picked up at all.
**The pipeline is designed around a long-lived AWS credential, and it does not
exist yet.** Gitea is not an AWS OIDC provider, so there is no role to assume:
deploys are *to* authenticate as a scoped IAM user, `adr-sml-deploy`, with its
access key in the repository's Gitea Actions secrets. `aws iam get-user`
confirms that user has not been created (Q22). In the meantime the local script
**The pipeline is designed around a long-lived AWS credential, and that
credential now exists.** Gitea is not an AWS OIDC provider, so there is no role
to assume: deploys authenticate as a scoped IAM user, `adr-sml-deploy`, with its
access key in the repository's Gitea Actions secrets. **The user was created
2026-08-26 and verified least-privilege by execution — `AGENTS.md` §7, Q22 closed
2026-08-28.** Its access key has **never been used** (`LastUsed` null), because
deploys still run locally. *(This paragraph asserted the user "has not been
created" until 2026-08-28.)* In the meantime the local script
**refuses to run as `user/pouya`**, the broadly-permissioned personal user —
see `AGENTS.md` §10. Two things are meant to bound the risk, and neither is in
place yet:
@@ -93,11 +98,14 @@ place yet:
narrowness is what keeps a compromised runner away from it, and it is
load-bearing rather than hygiene. See `AGENTS.md` §10. If a deploy step needs
a permission the policy lacks, question the step; do not widen the policy.
- **The key must be rotated quarterly, and nobody owns that yet.** Create a
second access key, update the Gitea secrets, confirm a deploy succeeds, then
delete the old one — rotation that leaves the old key active is not
rotation. OIDC would have removed the obligation entirely; it is
unavailable, so this is a standing calendar task still waiting on an owner.
- **The key must be rotated quarterly. It now has an owner and a date: first
rotation due 2026-11-26** (key created 2026-08-26) — `AGENTS.md` §12 **R17**.
Create a second access key, update the Gitea secrets, confirm a deploy
succeeds, **then** delete the old one — rotation that leaves the old key active
is not rotation, and deleting before verifying leaves no way to authenticate
the fix. OIDC would have removed the obligation entirely; it is unavailable, so
this is a standing calendar task. *(It read "nobody owns that yet" until
2026-08-28; R17 is the owner, and the date is the whole point of the row.)*
Full procedure, IAM policy, runner setup, and cutover checklist:
`docs/06-deployment.md`.
+29 -7
View File
@@ -167,7 +167,8 @@ to an appointment. This page carries the verifiable record.
engineering, operating a company — told as one arc rather than three lists.
3. **Credentials**, structured and scannable: designations, education,
certifications, memberships. Every line from `AGENTS.md` §4 Verified.
4. **The credentialing arc.** Q.Med held → Q.Arb in progress → C.Med-Arb as the
4. **The credentialing arc.** Q.Med held → Q.Arb **commenced August 2026**
C.Med-Arb as the
endpoint. The brief (§V) treats the arc itself as part of the story; say so
openly rather than implying a finished state.
5. **Languages and cross-cultural practice.**
@@ -176,8 +177,14 @@ to an appointment. This page carries the verifiable record.
7. `Person` JSON-LD. Downloadable one-page PDF bio — brief §VIII lists this as
an asset for circulation with appointment proposals.
> **The PDF bio does NOT ship with build step 3, and the omission is stated
> rather than silent** — `AGENTS.md` Q45, opened 2026-08-28. No such file exists
> **The PDF bio ships at BUILD STEP 9, alongside `/fees/` — deferred by Pouya
> 2026-08-28 (Q45), tracked as `AGENTS.md` §12 **R16**.** His reasoning: it is a
> derived artefact, so building it before `/about/` and `/fees/` are final means
> building it twice, and an appointment proposal needs the fee card as much as
> the bio. The two decisions below are **not** settled by the deferral and travel
> with R16. Original note follows, and its reasoning is why this is R16 rather
> than a to-do. **The PDF bio does NOT ship with build step 3, and the omission
> is stated rather than silent** — `AGENTS.md` Q45, opened 2026-08-28. No such file exists
> in the repo, and a link to one that does not exist is a broken link on the
> page an appointing body reads. It is also not a formatting job: a one-page bio
> is a **credential document** whose every line has to trace to §4 exactly as a
@@ -214,8 +221,11 @@ neutral.
2. **Tracks:** documents-only, expedited, full hearing.
3. **Rules:** ADRIC, ADR Chambers, ad hoc.
4. Awards — form, reasoning, timing.
5. **Credentialing status, stated plainly.** The Q.Arb pathway is in progress;
the page says so. **What is available now is all three forms — sole,
5. **Credentialing status, stated plainly.** The Q.Arb pathway **commenced
August 2026**; the page says so in those words. *"In progress" was the
wording here until 2026-08-28 and it is barred — `docs/06`'s own cutover
checklist says "§4's wording, not the looser 'in progress'", and this is the
spec for the page that has to get it right.* **What is available now is all three forms — sole,
party-appointed and co-arbitration** — and `AGENTS.md` §4 Offerings carries a
row for each `[verified 2026-08-26 — Pouya]`. The page states that alongside
the credentialing stage: Q.Arb commenced August 2026, C.Med-Arb is the
@@ -247,8 +257,20 @@ long-term narrative.
Six cards, one paragraph each, linking onward. Also the natural home for the
"also offered" strip: **early neutral evaluation, dispute-system design, and
pre-dispute technical advisory** — three, and each now has an `AGENTS.md` §4
Offerings row, which is what the strip needs before it may ship.
pre-dispute technical advisory** — three, and each has an `AGENTS.md` §4
Offerings row.
> 🚫 **THE STRIP MAY NOT SHIP YET, AND HAVING A ROW IS NOT WHAT UNBLOCKS IT.**
> All three rows read **"GATES 0 AND 2 ANSWERED; GATE 1 STILL HAS NO SOURCE —
> NOT YET PUBLISHABLE"**. Pouya ruled on 2026-08-28 that all three pass; §4's
> gate 1 asks *is the activity gated?*, which the register answers with a
> checkable source and not with a ruling, and **no source exists for any of the
> three**. Tracked as **Q46(a)**, which names this strip as the thing it blocks.
>
> This paragraph read *"each now has a §4 Offerings row, which is what the strip
> needs before it may ship"* until 2026-08-28 — **false as stated**, and it would
> have had an implementer at step 5 ship three offerings the register marks
> unpublishable. Found by `claims-auditor` on re-audit.
> **`settlement counsel` IS STRUCK FROM THIS STRIP AND MUST NOT BE RESTORED.**
> `AGENTS.md` Q42, 2026-08-27. Pouya struck it as his own error in this document:
+105 -11
View File
@@ -13,6 +13,47 @@ table before writing any number, statistic, or superlative. If you need a fact
you do not have, write `TODO(pouya): <exact question>` and log it in §9. Do not
infer, do not soften, do not carry anything over from the old site.
### When a fact is `[unestablished]`, write around the capacity question
**Ratified by Pouya 2026-08-28 as a reusable pattern, with the instruction that
it will recur.** §4 records licence status as `[unestablished]` and says: *do not
assert it, do not deny it.* Copy that addresses the question at all must
therefore pick neither side — and the trap is that **both obvious phrasings pick
one.**
The worked example, which took three attempts and two audits:
| Attempt | Copy | Why it failed |
|---|---|---|
| 1 | "I **do not** give legal advice" | *"Do not"* is an **election** — it implies entitlement withheld by choice. Flagged by audit 1 |
| 2 | "I **cannot** give legal advice" | *"Cannot"* is a **denial** of capacity. Flagged by audit 2 |
| 3 ✅ | "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." | Makes **no capacity claim at all** |
**Both audits were right, and that is why the third version works.** Attempts 1
and 2 are opposite answers to the same question, so flagging both is not
inconsistency — it is the correct finding twice. Pouya: *"'do not' elects,
'cannot' denies, and §4 says do neither. The shipped sentence makes no capacity
claim at all — it describes the role and points the reader somewhere useful."*
**The pattern, stated for reuse:**
> Do not look for a *softer* way to answer the capacity question. Any word that
> answers it — *cannot, do not, am not, is not permitted, is not qualified* —
> takes a side of a fact this register does not hold. Instead write the sentence
> so the question **does not arise**: state the **role**, state the
> **consequence** for the reader, and stop.
Three tests before shipping such a sentence. It fails if any is yes:
1. Could a reader infer from it that he **is** entitled to do the thing?
2. Could a reader infer from it that he is **not**?
3. Does it contain a verb of capacity or permission attached to him at all?
**Where this will come up next:** `/practice/` (step 5) and `/for-parties/`, both
of which have to tell an unrepresented party what the neutral will and will not
do for them — the exact place the "cannot" phrasing feels most natural and is
most wrong.
---
## Voice
@@ -38,8 +79,18 @@ detect padding instantly and discount everything after it.
The shape of the bullet still stands, so here is a sentence that fits it and
clears the register: *"I accept sole, party-appointed and co-arbitration
appointments. The Q.Arb designation commenced in August 2026; C.Med-Arb is the
endpoint."* The limit being named is the **stage of the arc**, stated plainly —
appointments **in commercial matters**. The Q.Arb **pathway** commenced in
August 2026; C.Med-Arb is the endpoint."* **"in commercial matters" is not
optional** — every §4 Offerings arbitration row is scoped commercial, family
arbitration has its own NOT OFFERED row, and §4's NOT-NEGOTIABLE boundary
records the unscoped class form as the struck universal (Q39). This model
sentence was unscoped until 2026-08-28 while the shipped page it feeds was
scoped; found by `claims-auditor` on re-audit, one file over from the same
defect fixed in `docs/04` earlier the same day. **"Pathway", never "designation"** — a *designation* that
"commenced in August 2026" reads as in force since then, i.e. **held**, which
§4 Forbidden bars outright. This model sentence said "designation" until
2026-08-28 and it is copy an implementer is told to lift; found by
`claims-auditor`. The limit being named is the **stage of the arc**, stated plainly —
Pouya's instruction is that being open about it is the differentiator, so do
not hedge it into vagueness and do not drop it. (**No tribunal-secretary
work** — D14
@@ -58,8 +109,12 @@ detect padding instantly and discount everything after it.
**The approved phrasing is "active litigation exposure" or "involvement in
litigation and ADR matters" — never "practice" in that context.** Pouya's
wording, 2026-08-26. So: *Director of Firm Operations at a Toronto litigation
and ADR boutique, with active exposure to construction, personal injury, POA,
and SABS matters.* Accurate, specific, and it claims nothing it should not.
and ADR boutique, with **active litigation exposure** across construction,
personal injury, POA, and SABS matters.* Accurate, specific, and it claims
nothing it should not. *(This example read "with active exposure to" until
2026-08-28 — a **third** variant of the phrasing, three lines below the
sentence naming the only two approved forms, in the one place where the wording
IS the compliance. Found by `claims-auditor` on re-audit.)*
This framing is **interim** — see `AGENTS.md` §12 R1. Raise it with Pouya
rather than letting it settle in by default.
@@ -83,7 +138,7 @@ detect padding instantly and discount everything after it.
Reused, adapted, across the hero, the About page, and the PDF bio:
> The dispute resolution practice of Pouya Lajevardi — a credentialed neutral
> who is also close to live litigation and a practising machine-learning and
> with active litigation exposure and a practising machine-learning and
> infrastructure engineer. Built for commercial, construction, energy,
> technology, and cross-cultural disputes that turn on the contract, the code,
> the engineering documents, and the regulatory overlay around them.
@@ -213,9 +268,16 @@ redrawing the loop into a line.* First person: "my mark", not "our mark".
400600 words of narrative, then structured credentials. Tell the three tracks
as one arc, not three lists: a JD and active litigation exposure; a parallel
career in machine learning and infrastructure engineering; a company run
alongside both. The arc is the point — 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.
alongside the practice — §4's wording; "alongside both" was a concurrency claim
the register does not make. The arc is the point — the credentialing 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.
The designation names expand as **Qualified Mediator**, **Qualified Arbitrator**
and **Chartered Med-Arbitrator** — ADRIO's own forms, sourced in
`docs/reference/adrio-designations.md`. Never "Chartered Mediator-Arbitrator".
Omit any section that would be empty. No "Speaking" heading until there is a
talk to list.
@@ -272,9 +334,26 @@ evasions, no "contact for pricing" after promising a rate card.
### For parties
The one page in second person. Grade-9 reading level. Short sentences. Says
explicitly: the mediator is not your lawyer and cannot give you legal advice; the
mediator does not decide who is right. Answers what it costs and what happens if
you do not settle.
explicitly: **the mediator is a neutral and does not act for either party; each
party should have their own legal advice;** and the mediator does not decide who
is right. Answers what it costs and what happens if you do not settle.
> ⚠️ **THIS DIRECTIVE READ *"the mediator is not your lawyer and cannot give you
> legal advice"* UNTIL 2026-08-28, AND IT BREACHED D13 TWICE** — in the file that
> warns, fifty lines above, that `/for-parties/` is *"the exact place the
> 'cannot' phrasing feels most natural and is most wrong"*.
>
> 1. **"not your lawyer" presupposes lawyer status.** §4 Forbidden bars *the word
> "lawyer" used of Pouya*, and D13 treats implication as hard as assertion. A
> negation still carries the presupposition.
> 2. **"cannot give you legal advice" is attempt 2** in this file's own ratified
> table — *"a **denial** of capacity"* — and it fails test 3 and the
> compliance-checklist item, both added to this file in the same change set
> that left this line untouched.
>
> The replacement is the ratified pattern applied verbatim: **role, then
> consequence for the reader, and no verb of capacity.** Found by
> `claims-auditor` on re-audit; the original sweep did not reach this section.
### Insights
1,2001,800 words, monthly cadence (brief §VIII). Territories from §VII:
@@ -313,3 +392,18 @@ Drafted by Claude, **every word reviewed by Pouya before publication**:
- [ ] 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.)*
- [ ] 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
**Med**-Arbitrator", never "Mediator-Arbitrator"
+2 -2
View File
@@ -101,8 +101,8 @@ JSON-LD only. Validate against Google's Rich Results Test before cutover.
| Type | Where | Notes |
|---|---|---|
| `Person` | `/about/`, referenced site-wide | `name`, `jobTitle`, `description`, `alumniOf` (Bond University), `knowsLanguage` (en, fa), `hasCredential` (Q.Med), `sameAs` (LinkedIn), `image`. **`jobTitle` = "Director of Firm Operations"; omit `worksFor`** — populating it either names the boutique (D16) or misstates the employer |
| `ProfessionalService` | Home | `areaServed` Toronto/Ontario, `serviceType` Mediation/Arbitration, `provider` → Person, `priceRange` once `/fees/` is real. **Never `LegalService`** — schema.org defines it as a business providing legal advice and *representation*, which asserts in machine-readable form exactly what D13 bars and §4 Forbidden calls out |
| `Person` | `/about/`, referenced site-wide | **Emitted:** `name`, `url`, `jobTitle`, `description`, `alumniOf` (Bond University), `knowsLanguage` (en, fa), `hasCredential` (Q.Med), `sameAs` (LinkedIn), `email`, `image`. **Withheld:** `worksFor`, `memberOf`. *(This enumeration listed `worksFor` as emitted while the same cell said it was withheld, and omitted `url` and `email`, which are — wrong in both directions. The enumeration is the part an implementer copies. Found by `adversarial-reviewer`.)* **CHANGED 2026-08-28 — Q47.** This row read *"`jobTitle` = 'Director of Firm Operations'; omit `worksFor`"*, which put the boutique title on a node whose `url` is this ADR practice's `/about/` — so a consumer could attach it to this entity. Pouya's ruling reframes the field: `jobTitle` describes **this practice**, not the boutique role, which D16 keeps unnamed. The visible role line is unchanged and still reads "Director of Firm Operations at a Toronto litigation and ADR boutique". **THE VALUE IS `PRACTICE_JOB_TITLE` IN `src/data/site.ts` AND THIS ROW DOES NOT RESTATE IT** — §7's rule, applied to a string with a live revert trigger on it: this row carried the literal text for one pass, and `adversarial-reviewer` noted it would go stale the moment the constant moved. Cite, do not copy. **`worksFor` IS WITHHELD** — set for one pass under Q47, then reverted: `ProfessionalService.provider` is this Person, so `provider → Person → worksFor` asserts the same-entity claim `schema.ts` explicitly declines, and §4 says "alongside the practice" where the ruling says "operates through". **`memberOf` is withheld too**, on volatility grounds, even though Q44 closed. Both are **Q49**. See `src/data/schema.ts` |
| `ProfessionalService` | Home | `areaServed` Toronto/Ontario, `serviceType` **Mediation / Commercial arbitration / Mediation-arbitration (med-arb)***scoped 2026-08-28 on `claims-auditor`'s finding; this row instructed the unscoped class form "Mediation/Arbitration" that Q39 struck and that `schema.ts` deliberately does not follow. Family arbitration carries prescribed training and has its own NOT OFFERED row, so unscoped "Arbitration" is the struck universal in a field nobody reads. Do not widen these strings without a §4 row to widen them from* `provider` → Person, `priceRange` once `/fees/` is real. **Never `LegalService`** — schema.org defines it as a business providing legal advice and *representation*, which asserts in machine-readable form exactly what D13 bars and §4 Forbidden calls out |
| `Service` | Each practice page | `serviceType`, `provider` → Person, `areaServed` |
| `Article` | Each article | `headline`, `description`, `datePublished`, `dateModified`, `author` → Person, `image` |
| `BreadcrumbList` | All nested pages | Matches visible breadcrumbs |
+58 -15
View File
@@ -34,13 +34,27 @@ cache headers, and the same invalidation as the workflow — at this scale the
pipeline changes only **how a deploy is triggered**, not what it does. Treat the
script and the workflow as one artefact in two places: change one, change both.
Two things block the workflow, and neither is a fact to look up:
One thing blocks the workflow, and it is not a fact to look up:
- **`adr-sml-deploy` does not exist** — `aws iam get-user` returns
`NoSuchEntity` (§7, Q22). Create it from *Create the user* below.
- **Actions are not enabled and no runner is registered** (Q23). The Gitea
instance is jointly administered, so both need its second administrator.
> ✅ **`adr-sml-deploy` EXISTS — created 2026-08-26, Q22 closed 2026-08-28.**
> **DO NOT CREATE IT.** This bullet said *"`adr-sml-deploy` does not exist —
> `aws iam get-user` returns `NoSuchEntity`… Create it from Create the user
> below"* until 2026-08-28, and an operator following it would have created a
> **second** IAM user, or hand-provisioned one with a different scope from the
> `adr-sml-deploy-minimal` policy §7 now records. §7 carries the inventory and
> the eight `simulate-principal-policy` results.
>
> *Found by `adversarial-reviewer`: the Q22 flip to PROVISIONED was swept in
> `AGENTS.md` and nowhere else, and the Change Log entry's sweep block covered
> the copy corrections only. Same shape as the SES-DKIM inversion — the stale
> copy instructed an action against a High-risk credential.*
>
> *Create the user* below is retained as the **record of how it was
> provisioned**, not as an instruction. Read it that way.
The script **refuses to run as `user/pouya`** — the broadly-permissioned
personal user that has been authenticating to this account. See §10.
@@ -329,18 +343,47 @@ Then invalidate `/*`.
**Content and compliance**
- [ ] Every claim traced to `AGENTS.md` §4 Verified
- [ ] **Memberships re-confirmed with Pouya, then published**`AGENTS.md` §12
**R10** and **Q44**. ADRIC, ADRIO, the three OBA sections and the Canadian
Tax Foundation are `[verified 2026-08-26]`. **§4 records yearly renewal for
the OBA sections and the CTF only** — it says nothing about ADRIC's or
ADRIO's period, and an earlier version of this line asserted "all renew
yearly", which §4 does not support. **`/about/` currently publishes NO
memberships group**: R10 is a prohibition and the re-confirmation was not
obtained, so the group is withheld behind a `TODO(pouya)`. OCNI already
lapsed quietly and §4 records it as "not current, do not publish" — that is
the failure mode, and a stamp is not a renewal receipt. Re-confirm,
re-stamp §4 and `CREDENTIALS.memberships`, restore the group to
`CREDENTIAL_GROUPS`, and add `memberOf` to the Person JSON-LD
- [ ] **Memberships RE-CONFIRMED AGAIN, on the day of cutover**`AGENTS.md`
§12 **R10**, which is now an **event trigger and cutover is one of its two
events.** Q44 closed 2026-08-28 and the group is published on `/about/`
(ADRIC, ADRIO, the three OBA sections, the CTF, `[verified 2026-08-28 —
Pouya]`), so this item is no longer "publish them" — it is **"ask him
again, then re-stamp §4 with the cutover date."**
**Pouya declined renewal-date tracking**, which is exactly why this sits on
the checklist: there is no date on which anyone would otherwise re-check.
OCNI lapsed quietly and §4 records it as "not current, do not publish" —
found roughly a year late. A stamp is not a renewal receipt.
**Do NOT add a currency sentence to the page while you are here** — his
ruling is *"list the memberships; promise nothing about their future
state"*, and the struck sentence stays struck.
**Do NOT add `memberOf` to the Person JSON-LD** unless Pouya has said to.
It is withheld deliberately and on narrower grounds than the visible page:
the reason is recorded in `src/data/schema.ts` and **it is an open
judgement, not a settled one — `AGENTS.md` Q53.** Do not restate the
reasoning here; a third copy is how the first two went stale.
**§4 records yearly renewal for the OBA sections and the CTF only** — it
says nothing about ADRIC's or ADRIO's period, and an earlier version of
this line asserted "all renew yearly", which §4 does not support.
- [ ] **`AGENTS.md` Q51 answered before cutover** — does listing the **OBA
sections** on `/about/` carry the licensure implication that excludes the
LSO? §4 excludes the Law Society precisely because *"listing the Law Society
among memberships implies licensure"*, and Forbidden bars *any phrasing that
**implies** entitlement to practise law*. The OBA sections **went live on
`/about/` on 2026-08-28** and Q51 was raised the same day, **after** Pouya's
Q44 ruling authorised the group — so the ruling did not consider it.
`adversarial-reviewer` rates it moderate-low confidence as a defect and
**high confidence that the question is unasked**: `grep -n OBA AGENTS.md`
returns rows on renewal, scope and stamping and nothing on implication, and
OBA membership eligibility is not established anywhere in this repo. It sits
beside **R1** — same subject, same page, and not settleable internally. If
the answer is yes, the fix is the LSO fix: exclude deliberately, and record
that it was excluded rather than omitted.
*(This item did not exist until 2026-08-28. Q48, which governs nothing
currently on the site, had a checklist item while Q51, which governs live
public copy, had none.)*
**Also re-check `AGENTS.md` Q48** before re-stamping: if `Q.Med` retention
turns out to depend on ADRIO membership currency, this item covers the
site's central credential and not just a list
- [ ] No `TODO(pouya)` remains in any shipped page
- [ ] No matter counts, rates, dollar figures, or testimonials anywhere
- [ ] Q.Arb described as **commenced August 2026** everywhere it appears — §4's
+19 -3
View File
@@ -104,13 +104,18 @@ All figures **plus HST**.
### Arbitration
Sole, party-appointed and co-arbitration appointments are all accepted now —
`AGENTS.md` §4 Offerings carries a row for each `[verified 2026-08-26 — Pouya]`.
Sole, party-appointed and co-arbitration appointments **in commercial matters**
are all accepted now — `AGENTS.md` §4 Offerings carries a row for each
`[verified 2026-08-26 — Pouya]`. *("in commercial matters" added 2026-08-28: the
line was unscoped, and every §4 arbitration row is scoped commercial with family
arbitration separately NOT OFFERED — Q39's struck universal.)*
*(This line previously read "sole appointments follow the Q.Arb designation",
which understated the offering, and carried a caveat against a since-closed
Q36.)* Whatever `/fees/` says about arbitration must state the Q.Arb stage
plainly alongside it — §4 Offerings, "neither half may be dropped": the Q.Arb
designation commenced August 2026, with C.Med-Arb as the endpoint. See
**pathway** commenced August 2026, with C.Med-Arb as the endpoint. *("pathway",
not "designation" — a designation that commenced reads as held, which §4
Forbidden bars. Corrected 2026-08-28 on `claims-auditor`'s finding.)* See
`03-content-spec.md` for the wording.
| Item | Fee |
@@ -128,6 +133,17 @@ offer tribunal-secretary work on the site.
Early neutral evaluation, dispute-system design, and pre-dispute technical
advisory: **$500 / hour**.
> 🚫 **A RATE IS NOT A PUBLICATION LICENCE, AND THESE THREE ARE NOT PUBLISHABLE
> YET.** §4's ENE row says the pricing here *"is a fee-page question, not a
> publication licence"*, and all three Offerings rows read **NOT YET
> PUBLISHABLE** — gate 1 (*is the activity gated?*) has no source. **Q46(a)**
> names `docs/07-fees.md` pricing directly as something it blocks.
>
> So: the rate is recorded and settled; **the line item does not go on `/fees/`
> until Q46(a) closes.** This note did not exist until 2026-08-28, which meant
> the gate lived only in `AGENTS.md` while this file says "Build `/fees/` from
> it". Found by `claims-auditor` on re-audit.
**THREE services, not four. `settlement counsel` is struck and must not be
priced** — `AGENTS.md` Q42, Pouya 2026-08-27, correcting his own entry in
`docs/01`:
+251
View File
@@ -0,0 +1,251 @@
# Reference — ADRIO's own expansions of the five ADR designations
**Why this file exists.** `AGENTS.md` Q46(b) asked whether §11 Glossary may be
published as the source for **definitional expansions** — what `Q.Med`, `Q.Arb`
and `C.Med-Arb` stand for. Pouya ratified the standard on 2026-08-28 and
attached a condition: *"Fetch and commit
https://adr-ontario.ca/members-practitioners/professional-designations to
docs/reference/ per R14."* This is that fetch.
It also settles a **correction Pouya raised in the same ruling**, and the
correction was his own: §11 had said *"Chartered Mediator-Arbitrator"* since the
file was created. ADRIO's term is **"Chartered Med-Arbitrator"**. See Finding 2.
---
## Provenance — read this before quoting anything below
| | |
|---|---|
| URL as given | `https://adr-ontario.ca/members-practitioners/professional-designations` |
| **Redirects to** | `https://adr-ontario.ca/professional-designations/` — HTTP **301**, one hop |
| Retrieved | **2026-08-28** |
| Method | `curl -sSL -o <file> '<url>'` — HTTP **200** on all five after the redirect |
**The redirect is recorded because the first fetch did not follow it.** `curl -sS`
without `-L` returned HTTP 301 and wrote a **0-byte file**, which a reader of
the output could easily have taken for "the page is empty". It is not; it is
one hop away. `CLAUDE.md`: *a command that did not run is not evidence of
absence* — and a command that ran and returned nothing useful looks the same.
### The five files, with digests
| Page | Bytes | Text | `sha256` |
|---|---|---|---|
| `professional-designations/` | 54,961 | 1,932 | `5eca45791b3629d16186dd2a10df43fdd5981cbe89a6ce23d8b43ec7c4c415a8` |
| `qualified-mediator-q-med-qualified-arbitrator-q-arb/` | 57,174 | 2,814 | `c8cb8ad556b7ffd193cb672f136d4c0b0bdffdcaa8ac20739f31c1ccef84301f` |
| `chartered-mediator-c-med/` | 58,929 | 4,151 | `47cb8edb20681865b55103e265c693405a8dfde369fd5f4eefd340fb58f0c056` |
| `chartered-arbitrator-c-arb/` | 58,013 | 3,524 | `44526cb40f3e99bec03e3b45b13d4dc4b6cb5fd4e13b388ed533f7baa6fb1199` |
| `chartered-med-arbitrator-c-med-arb/` | 55,966 | 2,504 | `4c3a3214383c80209884125703e89625e855b550f01ea8141df496603cdd69c7` |
*Text* = characters remaining after `<script>`/`<style>`/`<noscript>`/comments
and tags are stripped, entities unescaped, whitespace collapsed.
> 📁 **THE EXTRACTED TEXT AND THE SCRIPT THAT PRODUCED IT ARE COMMITTED** —
> `adrio-extract/`. Every term count in this file was run against those `.txt`
> files, and `extract.mjs` is the extraction. **The digests above cover the raw
> HTML; they said nothing about the extraction**, so the counts were unverifiable
> by construction (R14) even while the digests were not —
> `adversarial-reviewer`, 2026-08-28. `adrio-extract/README.md` carries the
> reproduction command and the caveat that a future digest mismatch is most
> likely a WordPress plugin bump rather than a changed designation name.
> ✅ **THESE DIGESTS ARE STAMPED, AND `lat-case-conference.md`'S ARE NOT — THE
> DIFFERENCE WAS CHECKED, NOT ASSUMED.** That file removed its hashes because the
> LAT pages could not reproduce one: `LAT-Rules.html` carries a per-request
> bot-detection nonce (`__uzdbm_1`, `__uzdbm_2`) and the AABS page carries
> rotating WordPress `?ver=` cache-busters.
>
> Both causes were looked for here and **both are absent**:
>
> - `__uzdbm` — **0 occurrences.**
> - `?ver=` — 17 occurrences, and they are **static plugin version strings**
> (`?ver=1.3.12`, `?ver=2.3.2`, `?ver=3.4.1`, `?ver=4.7.0`), not rotating
> values. Same string on every fetch.
>
> Then measured rather than reasoned about: **four independent fetches of each of
> the five URLs, and the file on disk re-hashed against a fresh fetch. All five
> MATCH.** The digests above are of the exact bytes the quotes below came from.
>
> **One instrument failure happened during that check and is recorded because of
> its shape.** The first comparison loop used `set -- $pair` under zsh, which
> does not word-split unquoted variables, so the loop body received one argument
> and every comparison silently failed — printing **`DIFFER` on all five rows**.
> That output reads exactly like *"the pages changed under me"*. It was the
> `timeout 60 ls "$DRIVE"` shape: the comparison had never run. Re-run with
> `while IFS=: read`, all five returned MATCH.
**Instrument note on JS-rendered shells.** The parent page extracts to **1,932
characters from 54,961 bytes — 3.5%**, which is the signature `adric.ca` produced
when it defeated an earlier attempt at this same sourcing (4,840 chars from
114,985). Here the low ratio is **not** a shell: the parent page really is nearly
empty — its body is a title and one sentence pointing elsewhere. The substance is
on the four child pages, which extract at 4.57.0% because ~1,800 characters of
the extraction on every page is the shared navigation. Read the ratio against the
page, not against a threshold.
---
## Finding 1 — all five expansions, verbatim
Present **twice** on the parent page (desktop and mobile navigation), and again
as the `<h1>` of each child page. ADRIO's own words, entities unescaped:
| Abbrev. | ADRIO's expansion | Source |
|---|---|---|
| `Q.Med` | **Qualified Mediator** | nav + child `<h1>` |
| `Q.Arb` | **Qualified Arbitrator** | nav + child `<h1>` |
| `C.Med` | **Chartered Mediator** | nav + child `<h1>` |
| `C.Arb` | **Chartered Arbitrator** | nav + child `<h1>` |
| `C.Med-Arb` | **Chartered Med-Arbitrator** | nav + child `<h1>` |
The navigation markup, verbatim:
```html
<a href="https://adr-ontario.ca/qualified-mediator-q-med-qualified-arbitrator-q-arb/">Qualified Mediator (Q.Med) &#038; Qualified Arbitrator (Q.Arb)</a>
<a href="https://adr-ontario.ca/chartered-mediator-c-med/">Chartered Mediator (C.Med)</a>
<a href="https://adr-ontario.ca/chartered-arbitrator-c-arb/">Chartered Arbitrator (C.Arb)</a>
<a href="https://adr-ontario.ca/chartered-med-arbitrator-c-med-arb/">Chartered Med-Arbitrator (C.Med-Arb)</a>
```
**The URL slugs corroborate independently of the link text**`chartered-med-arbitrator-c-med-arb`, not `chartered-mediator-arbitrator`.
## Finding 2 — the expansion this repo had wrong
`AGENTS.md` §11 read **"Chartered Mediator-Arbitrator"** from the file's creation
until 2026-08-28. Pouya's ruling: *"§11 has said 'Chartered Mediator-Arbitrator'
throughout. ADRIO's own term is 'Chartered Med-Arbitrator'. I took the expansion
from the strategy brief and never sourced it."*
**It had reached a public page.** `src/pages/about.astro`'s credential arc
rendered it as body copy, and `grep -c 'Chartered Mediator-Arbitrator'
dist/about/index.html` returned **1** — so the built artefact carried it too. Four
instances in the repo, swept 2026-08-28.
The child page's own heading and first two sentences, verbatim:
> **Chartered Med-Arbitrator (C.Med-Arb)**
>
> Med-Arb is a distinct, innovative standalone process that is not as well known
> or understood by consumers of ADR services compared to mediation and
> arbitration.
>
> Med-Arb is not merely the merging of separate mediation and arbitration
> processes, but a unique process designed to meet the needs of particular
> disputants. It involves nuances and complexities that can be fine-tuned to the
> needs of the parties as a customized dispute resolution process, which requires
> a high level of practitioner competence to do successfully.
## Finding 3 — how ADRIO characterises the Q-level designations
Verbatim, `qualified-mediator-q-med-qualified-arbitrator-q-arb/`:
> **Qualified Mediator (Q.Med) / Qualified Arbitrator (Q.Arb)**
>
> These designations are to recognize practitioners who have completed sufficient
> mediation / arbitration and related dispute resolution training to be qualified
> to practice. They are an intermediate step for practitioners working to receive
> their Chartered designation.
>
> *Q.Med criteria vary across affiliates. For the criteria specific to Ontario,
> be sure to read the checklist on the application form.*
⚠️ **Do not lift "qualified to practice" into copy, in any form.** It is ADRIO
describing its own designation, and on this site — where §4 records licence
status as `[unestablished]` and D13 bars any phrasing that *implies* entitlement
to practise law — the phrase would do work ADRIO never intended it to do. The
quote is here so a reviewer can see the full sentence, not so it can be reused.
The *"intermediate step … working to receive their Chartered designation"* half
is the sourced basis for describing the arc as an arc. It is a fact about the
designation structure, not about Pouya.
## Finding 4 — two of the four pages state a retention condition, and the split is by PAGE TYPE, not by designation level
> ⚠️ **THIS FINDING'S FIRST VERSION WAS FRAMED WRONG, AND THE PAGE THAT
> FALSIFIED IT WAS ONE THIS FILE HAD ALREADY FETCHED.** It was headed *"the two
> Chartered pages state a retention condition; the Q page does not"* and argued a
> **Qualified-vs-Chartered** asymmetry. There are **three** Chartered pages. The
> count was never run on `chartered-med-arbitrator-c-med-arb/` — the designation
> §4 records as the practice's stated goal, and therefore the one most
> load-bearing for Q48. Found by `claims-auditor`, 2026-08-28.
Counted on the extracted text of **all four** designation pages:
| Page | `good standing` | `annual` | `maintain` | `retain` | `member of the ADR Institute` |
|---|---|---|---|---|---|
| `qualified-mediator-q-med-qualified-arbitrator-q-arb/` | 0 | 0 | 0 | 0 | 0 |
| `chartered-mediator-c-med/` | 1 | 1 | 1 | 1 | 1 |
| `chartered-arbitrator-c-arb/` | 1 | 1 | 1 | 1 | 1 |
| `chartered-med-arbitrator-c-med-arb/` | **0** | **0** | **0** | **0** | **0** |
Verbatim, `chartered-mediator-c-med/`:
> There is an annual fee to maintain your C.Med designation, payable to ADR
> Institute of Canada, Inc. The national organization bills you every year. You
> must also remain a member in good standing with the ADR Institute of Ontario™
> to retain this designation.
`chartered-arbitrator-c-arb/` says the same of C.Arb.
**The corrected reading.** C.Med-Arb scores zero on every term, exactly like the
Q-level page — so the line does **not** fall between Qualified and Chartered. It
falls between **page types**: `chartered-mediator-c-med/` and
`chartered-arbitrator-c-arb/` are long application FAQs with numbered sections
("Are there prerequisites?", "Is there an ongoing cost?"), while the Q page and
the C.Med-Arb page are short descriptions that link out. The C.Med-Arb page says
so in as many words: *"To read more about the C.Med-Arb designation, including
how to apply, click here."*
**And that cuts the opposite way from how the first version read it.** A stub
page's silence is evidence about the *page*, not about the designation — so
Q.Med's silence is most likely "this page does not cover fees or retention", not
"no such condition exists". ADRIC bills annually for the two designations that
say so, and ADRIO notes that *"Q.Med criteria vary across affiliates"*.
**Still: this source does not answer it, in either direction, and must not be
read as doing so.** Raised as **Q48** — if `Q.Med` retention is contingent on
ADRIO membership currency, then §4's Q.Med row, this site's central credential,
inherits the shelf life of the memberships Pouya has declined to track by date
(R10). The answer needs the Q.Med criteria document or ADRIC/ADRIO directly.
## Finding 5 — two superlatives, deliberately not lifted
The Chartered pages call C.Med *"Canada's most senior official designation for
practising mediators"* and C.Arb *"Canada's only official designation for
practising Arbitrators"*. Both are ADRIO's words about its own designations and
both are quotable in principle.
**Neither goes on the site.** §4 Forbidden bars superlatives outright
(*"best", "leading", "top-rated"*), and the reason given there is not only
verifiability — it is that *"they read as insecure to the audience this site is
for"*. A superlative does not stop being one because a third party said it first,
and the credential arc does not need it: **"the designation this practice is built
toward"** is Pouya's own stated goal and has a §4 row.
---
## What this establishes, and what it does not
**Establishes:**
1. All five expansions, in ADRIO's own words, from ADRIO's own site, with
reproducible digests. **R14 is satisfied for Q46(b)** — the standard no longer
rests on §11 asserting its own content.
2. `C.Med-Arb` = **Chartered Med-Arbitrator**. The form this repo published was
wrong.
3. That the Q-level designations are, in ADRIO's characterisation, an
intermediate step toward the Chartered designations.
**Does not establish:**
- **Anything about Pouya.** Not that he holds Q.Med, not that he has commenced
Q.Arb, not that he is a member of ADRIO. Those are §4 Verified rows and this
file is not a substitute for one. The standard Pouya ratified is exactly this
split: *"§11 Glossary is the source for DEFINITIONAL expansions; §4 remains
the only source for claims about Pouya."*
- **Anything about gating** — see `AGENTS.md` §4's offering test, question 1.
ADRIO describes its designations as recognising completed training; it says
nothing about what any activity requires by law, and it is not a source that
could. Q46(a) is not advanced by this file.
- **Anything about Q.Med retention.** Finding 4. That is Q48.
+34
View File
@@ -0,0 +1,34 @@
# The extracted text behind `../adrio-designations.md`
**Why this directory exists.** `adversarial-reviewer` (2026-08-28, C10): the
`sha256` digests in that file cover the **raw HTML**, but Finding 4's term counts
were taken from **extracted text produced by an uncommitted script** — so the
counts were unverifiable by construction (R14) even though the digests were not.
`extract.mjs` is that script. `*.txt` are its outputs, which are what every
count in `../adrio-designations.md` was run against.
## Reproducing
```sh
curl -sSL -o <slug>.html "https://adr-ontario.ca/<slug>/"
node extract.mjs <slug>.html > <slug>.txt
```
The five slugs are listed in the provenance table of `../adrio-designations.md`,
which also carries each file's raw-HTML byte count and `sha256`.
**Expect small differences in the character totals if you re-implement the
extraction.** Both review agents reproduced every digest, every byte count and
every term count exactly; one got 1924 / 2806 / 4121 / 3510 / 2496 characters
against this script's 1932 / 2814 / 4151 / 3524 / 2504, because tag-stripping
inserts whitespace differently. **The term counts are the finding; the character
totals are only a size indicator.**
⚠️ **The digests are valid until ADRIO's next WordPress plugin update.** The
served HTML carries 17 `?ver=` strings that are static plugin versions today
(`?ver=1.3.12`, `?ver=2.3.2`, …) — which is *why* these pages hash reproducibly
where the LAT pages could not. Those strings will move when ADRIO updates a
plugin. **A future digest mismatch is most likely a plugin bump, not tampering
and not a changed designation name** — re-run the term counts before concluding
anything from a mismatch.
@@ -0,0 +1,100 @@
Chartered Arbitrator (C.Arb) The ADR Institute of Ontario
Skip to content
About
About Us
What is ADR?
Resolve a Dispute
ADRIO Board of Directors and Staff
Rules & Codes
ADRIO DEI Policy Framework
Professional Development
Event Calendar
Webcasts Recorded Events
Approved Courses
Lead a Professional Development Workshop with us!
Sections
Communities of Practice and Sections
Committees
Membership & Benefits
Member Portal
Benefits and Application Process
Practical Ethics for Working Mediators
Insurance
Rules & Codes
FAQ
Designations
The Path to your Professional ADR designation
ADRIC Accredited Courses
Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
Chartered Mediator (C.Med)
Chartered Arbitrator (C.Arb)
Chartered Med-Arbitrator (C.Med-Arb)
Insurance
FAQ
News & Blog
Blog
Updates
Newsletter
ADRIO E-Mailing List Signup
Presidents Circle
ADRIO STAR Award Recipients
Contact & Staff
About
- About Us
- What is ADR?
- Resolve a Dispute
- ADRIO Board of Directors and Staff
- Rules & Codes
- ADRIO DEI Policy Framework
Professional Development
- Event Calendar
- Webcasts - Recorded Events
- Approved Courses
- Lead a Professional Development Workshop with us!
Sections
- Communities of Practice and Sections
- Committees
Membership & Benefits
- Member Portal
- Benefits and Application Process
- Practical Ethics for Working Mediators
- Insurance
- Rules & Codes
- FAQ
Designations
- The Path to your Professional ADR designation
- ADRIC Accredited Courses
- Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
- Chartered Mediator (C.Med)
- Chartered Arbitrator (C.Arb)
- Chartered Med-Arbitrator (C.Med-Arb)
- Insurance
- FAQ
News & Blog
- Blog
- Updates
- Newsletter
- ADRIO E-Mailing List Signup
- Presidents Circle
- ADRIO STAR Award Recipients
Contact & Staff
Chartered Arbitrator (C.Arb)
Please do not mail your applications to our head office. Please email your application to membership@adr-ontario.ca
1. What is a Chartered Arbitrator (C.Arb) designation?
The C.Arb Or Chartered Arbitrator designation is Canadas only official designation for practising Arbitrators. Please click here for a more complete description of the requirements can be found.
2. Are there prerequisites?
The applicant must be a member of the ADR Institute of Ontario™ (or any other regional association).
There are extensive training and experience requirements which you should review before applying.
3. Where do I get the C.Arb Application Form?
The C.Arb application form is linked below.
4. Is there a fee for the C.Arb application?
Yes, the Application Fee is $500.00 (plus HST). This covers the costs of administering the accreditation process. This is a one-time application fee.
5. Is there an ongoing cost?
There is an annual fee to maintain your C.Arb designation. The national organization bills you every year. You must also remain a member in good standing with the ADR Institute of Ontario™ to retain this designation.
6. How do I apply?
Forward your completed application form, and payment along with any attachments necessary to verify the courses you have taken and the work you have done (think of it as marketing yourself to the accreditation committee), to:
Please do not mail your applications to our head office. Please email your application to membership@adr-ontario.ca
(Looking for courses that have been pre-approved to qualify for designation applications? Click here .)
View C.Arb Application Form
View C.Arb Criteria
Theme by Think Up Themes Ltd . Powered by WordPress .
@@ -0,0 +1,85 @@
Chartered Med-Arbitrator (C.Med-Arb) The ADR Institute of Ontario
Skip to content
About
About Us
What is ADR?
Resolve a Dispute
ADRIO Board of Directors and Staff
Rules & Codes
ADRIO DEI Policy Framework
Professional Development
Event Calendar
Webcasts Recorded Events
Approved Courses
Lead a Professional Development Workshop with us!
Sections
Communities of Practice and Sections
Committees
Membership & Benefits
Member Portal
Benefits and Application Process
Practical Ethics for Working Mediators
Insurance
Rules & Codes
FAQ
Designations
The Path to your Professional ADR designation
ADRIC Accredited Courses
Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
Chartered Mediator (C.Med)
Chartered Arbitrator (C.Arb)
Chartered Med-Arbitrator (C.Med-Arb)
Insurance
FAQ
News & Blog
Blog
Updates
Newsletter
ADRIO E-Mailing List Signup
Presidents Circle
ADRIO STAR Award Recipients
Contact & Staff
About
- About Us
- What is ADR?
- Resolve a Dispute
- ADRIO Board of Directors and Staff
- Rules & Codes
- ADRIO DEI Policy Framework
Professional Development
- Event Calendar
- Webcasts - Recorded Events
- Approved Courses
- Lead a Professional Development Workshop with us!
Sections
- Communities of Practice and Sections
- Committees
Membership & Benefits
- Member Portal
- Benefits and Application Process
- Practical Ethics for Working Mediators
- Insurance
- Rules & Codes
- FAQ
Designations
- The Path to your Professional ADR designation
- ADRIC Accredited Courses
- Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
- Chartered Mediator (C.Med)
- Chartered Arbitrator (C.Arb)
- Chartered Med-Arbitrator (C.Med-Arb)
- Insurance
- FAQ
News & Blog
- Blog
- Updates
- Newsletter
- ADRIO E-Mailing List Signup
- Presidents Circle
- ADRIO STAR Award Recipients
Contact & Staff
Chartered Med-Arbitrator (C.Med-Arb)
Med-Arb is a distinct, innovative standalone process that is not as well known or understood by consumers of ADR services compared to mediation and arbitration.
Med-Arb is not merely the merging of separate mediation and arbitration processes, but a unique process designed to meet the needs of particular disputants. It involves nuances and complexities that can be fine-tuned to the needs of the parties as a customized dispute resolution process, which requires a high level of practitioner competence to do successfully.
To read more about the C.Med-Arb designation, including how to apply, click here .
Theme by Think Up Themes Ltd . Powered by WordPress .
@@ -0,0 +1,100 @@
Chartered Mediator (C.Med) The ADR Institute of Ontario
Skip to content
About
About Us
What is ADR?
Resolve a Dispute
ADRIO Board of Directors and Staff
Rules & Codes
ADRIO DEI Policy Framework
Professional Development
Event Calendar
Webcasts Recorded Events
Approved Courses
Lead a Professional Development Workshop with us!
Sections
Communities of Practice and Sections
Committees
Membership & Benefits
Member Portal
Benefits and Application Process
Practical Ethics for Working Mediators
Insurance
Rules & Codes
FAQ
Designations
The Path to your Professional ADR designation
ADRIC Accredited Courses
Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
Chartered Mediator (C.Med)
Chartered Arbitrator (C.Arb)
Chartered Med-Arbitrator (C.Med-Arb)
Insurance
FAQ
News & Blog
Blog
Updates
Newsletter
ADRIO E-Mailing List Signup
Presidents Circle
ADRIO STAR Award Recipients
Contact & Staff
About
- About Us
- What is ADR?
- Resolve a Dispute
- ADRIO Board of Directors and Staff
- Rules & Codes
- ADRIO DEI Policy Framework
Professional Development
- Event Calendar
- Webcasts - Recorded Events
- Approved Courses
- Lead a Professional Development Workshop with us!
Sections
- Communities of Practice and Sections
- Committees
Membership & Benefits
- Member Portal
- Benefits and Application Process
- Practical Ethics for Working Mediators
- Insurance
- Rules & Codes
- FAQ
Designations
- The Path to your Professional ADR designation
- ADRIC Accredited Courses
- Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
- Chartered Mediator (C.Med)
- Chartered Arbitrator (C.Arb)
- Chartered Med-Arbitrator (C.Med-Arb)
- Insurance
- FAQ
News & Blog
- Blog
- Updates
- Newsletter
- ADRIO E-Mailing List Signup
- Presidents Circle
- ADRIO STAR Award Recipients
Contact & Staff
Chartered Mediator (C.Med)
Please do not mail your applications to our head office. Please email your application to membership@adr-ontario.ca
1. What is a Chartered Mediator (C.Med) designation?
The “C.Med” or “Chartered Mediator” designation is Canadas most senior official designation for practising mediators.
Clarification re Footnote #4 in the C.Med Criteria “The intended interpretation of Footnote #4 relating to a “Paid Mediation” is as follows: The criteria in Footnote #4 is intended to be applied individually to each of the 15 mediations presented by the applicant, and specifically where a mediation is not fee-paid, the RCMAC shall look at whether the mediation is demonstrably complex and involved, and may at its discretion accept the mediation being considered toward the 15 total mediations. There is no specific minimum number of fee paid mediations of the 15 total mediations required, providing this criteria is applied to each unpaid mediation.”
Use the Application for Chartered Mediator designation linked below.
2. Are there prerequisites?
The applicant must be a member of the ADR Institute of Ontario™.
There are extensive training and experience requirements which you should review before you consider applying.
3. Is there a fee for the C.Med application?
Yes, the Application Fee is $500.00 (plus HST) made payable to the ADR Institute of Ontario, Inc. This covers the costs of administering the accreditation process. This is a one-time application fee.
4. Is there an ongoing cost?
Yes. There is an annual fee to maintain your C.Med designation, payable to ADR Institute of Canada, Inc. The national organization bills you every year. You must also remain a member in good standing with the ADR Institute of Ontario™ to retain this designation.
6. How do I apply?
Forward your completed application form along with any attachments necessary to verify the courses you have taken and the work you have done (think of it as marketing yourself to the accreditation committee), to:
Please do not mail your applications to our head office. Please email your application to membership@adr-ontario.ca
(Looking for courses that have been pre-approved to qualify for designation applications? Click here .)
View C.Med Application Form
View C.Med Criteria
Theme by Think Up Themes Ltd . Powered by WordPress .
+14
View File
@@ -0,0 +1,14 @@
import { readFileSync } from 'node:fs';
const raw = readFileSync(process.argv[2], 'utf8');
let t = raw
.replace(/<script\b[\s\S]*?<\/script>/gi, ' ')
.replace(/<style\b[\s\S]*?<\/style>/gi, ' ')
.replace(/<noscript\b[\s\S]*?<\/noscript>/gi, ' ')
.replace(/<!--[\s\S]*?-->/g, ' ')
.replace(/<[^>]+>/g, ' ');
const ents = { amp:'&', lt:'<', gt:'>', quot:'"', apos:"'", nbsp:' ', ndash:'', mdash:'—', rsquo:'', lsquo:'', ldquo:'“', rdquo:'”' };
t = t.replace(/&([a-zA-Z]+);/g, (m,n)=> n in ents ? ents[n] : m)
.replace(/&#(\d+);/g, (_m,d)=> String.fromCodePoint(+d))
.replace(/&#x([0-9a-f]+);/gi, (_m,h)=> String.fromCodePoint(parseInt(h,16)));
t = t.replace(/[ \t ]+/g,' ').replace(/\s*\n\s*/g,'\n').replace(/\n{2,}/g,'\n').trim();
process.stdout.write(t);
@@ -0,0 +1,83 @@
Professional Designations The ADR Institute of Ontario
Skip to content
About
About Us
What is ADR?
Resolve a Dispute
ADRIO Board of Directors and Staff
Rules & Codes
ADRIO DEI Policy Framework
Professional Development
Event Calendar
Webcasts Recorded Events
Approved Courses
Lead a Professional Development Workshop with us!
Sections
Communities of Practice and Sections
Committees
Membership & Benefits
Member Portal
Benefits and Application Process
Practical Ethics for Working Mediators
Insurance
Rules & Codes
FAQ
Designations
The Path to your Professional ADR designation
ADRIC Accredited Courses
Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
Chartered Mediator (C.Med)
Chartered Arbitrator (C.Arb)
Chartered Med-Arbitrator (C.Med-Arb)
Insurance
FAQ
News & Blog
Blog
Updates
Newsletter
ADRIO E-Mailing List Signup
Presidents Circle
ADRIO STAR Award Recipients
Contact & Staff
About
- About Us
- What is ADR?
- Resolve a Dispute
- ADRIO Board of Directors and Staff
- Rules & Codes
- ADRIO DEI Policy Framework
Professional Development
- Event Calendar
- Webcasts - Recorded Events
- Approved Courses
- Lead a Professional Development Workshop with us!
Sections
- Communities of Practice and Sections
- Committees
Membership & Benefits
- Member Portal
- Benefits and Application Process
- Practical Ethics for Working Mediators
- Insurance
- Rules & Codes
- FAQ
Designations
- The Path to your Professional ADR designation
- ADRIC Accredited Courses
- Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
- Chartered Mediator (C.Med)
- Chartered Arbitrator (C.Arb)
- Chartered Med-Arbitrator (C.Med-Arb)
- Insurance
- FAQ
News & Blog
- Blog
- Updates
- Newsletter
- ADRIO E-Mailing List Signup
- Presidents Circle
- ADRIO STAR Award Recipients
Contact & Staff
Professional Designations
To read more about the path to designations, click here .
Theme by Think Up Themes Ltd . Powered by WordPress .
@@ -0,0 +1,91 @@
Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb) The ADR Institute of Ontario
Skip to content
About
About Us
What is ADR?
Resolve a Dispute
ADRIO Board of Directors and Staff
Rules & Codes
ADRIO DEI Policy Framework
Professional Development
Event Calendar
Webcasts Recorded Events
Approved Courses
Lead a Professional Development Workshop with us!
Sections
Communities of Practice and Sections
Committees
Membership & Benefits
Member Portal
Benefits and Application Process
Practical Ethics for Working Mediators
Insurance
Rules & Codes
FAQ
Designations
The Path to your Professional ADR designation
ADRIC Accredited Courses
Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
Chartered Mediator (C.Med)
Chartered Arbitrator (C.Arb)
Chartered Med-Arbitrator (C.Med-Arb)
Insurance
FAQ
News & Blog
Blog
Updates
Newsletter
ADRIO E-Mailing List Signup
Presidents Circle
ADRIO STAR Award Recipients
Contact & Staff
About
- About Us
- What is ADR?
- Resolve a Dispute
- ADRIO Board of Directors and Staff
- Rules & Codes
- ADRIO DEI Policy Framework
Professional Development
- Event Calendar
- Webcasts - Recorded Events
- Approved Courses
- Lead a Professional Development Workshop with us!
Sections
- Communities of Practice and Sections
- Committees
Membership & Benefits
- Member Portal
- Benefits and Application Process
- Practical Ethics for Working Mediators
- Insurance
- Rules & Codes
- FAQ
Designations
- The Path to your Professional ADR designation
- ADRIC Accredited Courses
- Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
- Chartered Mediator (C.Med)
- Chartered Arbitrator (C.Arb)
- Chartered Med-Arbitrator (C.Med-Arb)
- Insurance
- FAQ
News & Blog
- Blog
- Updates
- Newsletter
- ADRIO E-Mailing List Signup
- Presidents Circle
- ADRIO STAR Award Recipients
Contact & Staff
Qualified Mediator (Q.Med) & Qualified Arbitrator (Q.Arb)
Qualified Mediator (Q.Med) / Qualified Arbitrator (Q.Arb)
These designations are to recognize practitioners who have completed sufficient mediation / arbitration and related dispute resolution training to be qualified to practice. They are an intermediate step for practitioners working to receive their Chartered designation.
Please do not mail your applications to our head office. Please email your application to membership@adr-ontario.ca
(Looking for courses that have been pre-approved to qualify for designation applications? Click here .)
Read more by downloading the following resources:
Qualified Arbitrator (Q.Arb) Requirements
Qualified Arbitrator (Q.Arb) Application Form
Qualified Mediator (Q.Med) Criteria and Application Form*
*Q.Med criteria vary across affiliates. For the criteria specific to Ontario, be sure to read the checklist on the application form.
Theme by Think Up Themes Ltd . Powered by WordPress .
+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