feat: Q.Arb is held; strike C.Med-Arb entirely; dissolve the paired disclosure
Build and deploy / build-and-deploy (push) Failing after 4s

Pouya's ruling, 2026-08-29. Treated as D3-class and swept accordingly.

§4
  Q.Arb becomes a HELD designation. Obtained July 2026 — recorded in the
  register, deliberately not published. Public copy carries "Q.Arb (ADRIC /
  ADRIO)" beside Q.Med and nothing more. Every stage form is struck:
  "commenced", "in progress", "pathway", "not yet".

  C.Med-Arb as a stated goal is struck. This DEVIATES FROM THE STRATEGY BRIEF,
  which made it "the explicit long-term professional narrative"; the brief is
  not in this repository, so the deviation is recorded in four places so nobody
  reinstates it from a document no reader can open. The designation stays in
  §11 as a definition — what is struck is its status as a goal of his.

  The paired-disclosure condition dissolves. It existed only because Q.Arb was
  in progress; there is no stage left to disclose, and a condition with no
  subject cannot be half-kept.

Pages
  /about/'s credentialing arc is DELETED, not rewritten — two held designations
  are not a journey. /arbitration/ loses its stage section and its "Available
  now, and open about the stage" h1. /med-arb/'s endpoint section is rewritten.
  Deleting CREDENTIALS.goal/goalName rather than emptying them turned every
  consumer into a build error, which is how the last two surfaced.

  hasCredential now maps CREDENTIALS.designations instead of indexing [0];
  _DesignationRowParity pins the visible credential row to the same constant.

check:claims
  q-arb-as-a-stage (inverted from the predecessor, which barred Q.Arb reading
  as HELD) and c-med-arb-struck. Each page is now scanned twice — as published,
  and with inline tags collapsed — because [^<] cannot cross <strong>, which
  this site sets in prose.

Two open questions for Pouya, neither blocking:
  Q55 — the acquisition date. §4 says obtained July 2026; the Change Log of
  2026-08-26 records "commenced August 2026", both stamped [verified — Pouya].
  They cannot both be true. Nothing published turns on it.
  Q56 — is the mediation offering scoped commercial? §4 leaves it unscoped;
  four surfaces say "commercial mediation"; /practice/insurance/ offers
  mediation in insured-versus-insurer SABS matters.

Two review rounds, all findings applied or declined with a stated reason.
Round 2 found ten lines in docs/03 still instructing the struck form — the
2026-08-29 sweep missed them because `git grep 'Q.Arb'` is line-anchored and
the block never names it. Sweep the vocabulary, not only the subject.

Gates, exit statuses read directly, never through a pipe:
  npm run check        exit=0  (0 errors, 0 warnings, 0 hints)
  npm run lint         exit=0
  npm run build        exit=0  (12 pages)
  npm run check:claims exit=0  (11 patterns, 26 approved strings)
  npm audit            exit=0

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md3GndFqWPzK78xAoebsg5
This commit is contained in:
Pouya Lajevardi
2026-08-30 10:37:19 -04:00
co-authored by Claude Opus 5
parent 79b19a7bd0
commit 610edc24fd
20 changed files with 1063 additions and 606 deletions
+30 -100
View File
@@ -2,25 +2,26 @@
/**
* `/arbitration/` — build step 4. Spec: docs/01 §`/arbitration/`, docs/03.
*
* ⚠️ THIS PAGE CARRIES §4's PAIRED-DISCLOSURE CONDITION, AND IT IS A CONDITION
* ON THE OFFERING ITSELF, NOT A DISCLAIMER BOLTED TO IT. Both halves ship or
* neither does:
* ⚠️ THE PAIRED-DISCLOSURE CONDITION IS GONE, AND SO IS THE SECTION IT
* REQUIRED. Until 2026-08-29 this page was built around §4's condition that the
* arbitration offering ship beside the STAGE of the Q.Arb pathway — an h1
* reading "Available now, and open about the stage", and a whole section headed
* "Where I am in the arc". Q.Arb is held; the condition dissolved with its
* subject; the section was deleted rather than rewritten.
*
* 1. All three forms are offered NOW — sole, party-appointed, co-arbitration
* — in commercial matters. §4 Offerings rows all three.
* 2. The Q.Arb PATHWAY commenced August 2026, with C.Med-Arb as the endpoint.
*
* "Pathway", never "designation": a designation that "commenced in August 2026"
* reads as held since then, which §4 Forbidden bars. Pouya's instruction is that
* being open about the stage is the differentiator — so it is stated plainly and
* high on the page, not hedged and not buried.
* ⚠️ AND DO NOT REPRODUCE IT FROM MEMORY. The characteristic failure now is a
* page that offers arbitration and then reaches for something qualifying to
* say. There is nothing to qualify: §4 Offerings rows all three forms, the
* designations are held, and the hero's `CredentialRow` names them. What
* remains of the old framing is the commercial scope — which was never part of
* the condition and is Pouya's own choice (Q39).
*
* ⚠️ AND NOTHING HERE MAY SAY OR IMPLY THAT ARBITRATION IS UNGATED IN ONTARIO.
* Q39's struck universal — "anyone may be appointed an arbitrator in Ontario;
* nothing in law gates the role behind a designation" — was FALSE as a
* universal, has been swept four times, and reached a public page once. The
* page states what is offered and where the credentialing stands. It makes no
* claim about what the law requires of anyone.
* page states what is offered. It makes no claim about what the law requires of
* anyone.
*/
import BaseLayout from '../layouts/BaseLayout.astro';
import Button from '../components/Button.astro';
@@ -28,7 +29,6 @@ import ContactBand from '../components/ContactBand.astro';
import DefinitionGrid from '../components/DefinitionGrid.astro';
import CredentialRow from '../components/CredentialRow.astro';
import Eyebrow from '../components/Eyebrow.astro';
import Pill from '../components/Pill.astro';
import SectionHeading from '../components/SectionHeading.astro';
import Undertaking from '../components/Undertaking.astro';
import { getImage } from 'astro:assets';
@@ -36,7 +36,6 @@ import ogDefault from '../assets/og-portrait.jpg';
import { serviceGraph } from '../data/schema';
import {
CONDUCT_UNDERTAKINGS,
CREDENTIALS,
CREDENTIAL_ROW,
CREDENTIAL_ROW_ARB,
} from '../data/site';
@@ -94,19 +93,18 @@ const TRACKS = [
<BaseLayout
title="Commercial Arbitration · Pouya Lajevardi · Toronto"
description="Sole, party-appointed and co-arbitration appointments in commercial matters, Toronto. Tracks, rules and awards — and where the Q.Arb pathway stands."
description="Sole, party-appointed and co-arbitration appointments in commercial matters, Toronto. Tracks, rules, and how an award is written and when it is due."
jsonLd={graph}
>
{/* ---- 1. Hero — and the paired disclosure starts here ---------------- */}
{/* ---- 1. Hero -------------------------------------------------------- */}
<section class="section hero">
<div class="wrap">
<Eyebrow dot>Arbitration</Eyebrow>
<h1 class="display hero-h">Available now, and open about the stage.</h1>
<h1 class="display hero-h">Sole, party-appointed, co-arbitration.</h1>
<p class="hero-lede">
I accept sole, party-appointed and co-arbitration appointments in
commercial matters. The Q.Arb pathway commenced in August 2026;
C.Med-Arb is the endpoint. Both are true at once, and they belong
together rather than one of them surfacing later.
I accept all three in commercial matters. This page covers how much
process the dispute needs, whose rules it runs under, and how the award
gets written.
</p>
<div class="hero-creds">
<CredentialRow slots={[...CREDENTIAL_ROW, CREDENTIAL_ROW_ARB]} />
@@ -114,56 +112,15 @@ const TRACKS = [
</div>
</section>
{/* ---- 2. The credentialing stage, on its own ------------------------- */}
{/* ---- 2. Appointments ------------------------------------------------ */}
{
/* §4 Offerings: "neither half may be dropped". The offering is in the hero;
this is the other half, given its own section rather than a footnote,
because Pouya's instruction is that the openness IS the differentiator. */
/* INVERSE, and it inherited the ground rather than choosing it. The deleted
credentialing-stage section was this page's only `section-inverse`; left
cream, this section would have sat cream-on-cream against the hero and
rendered as one doubled block — the defect `/practice/[slug].astro` now
throws on. */
}
<section class="section section-inverse reveal">
<div class="wrap">
<div class="section-head">
<SectionHeading eyebrow="Where I am in the arc" level={2}>
<span slot="heading"
>Stated plainly rather than discovered later.</span
>
</SectionHeading>
</div>
<ol class="grid-autofit stage" role="list">
<li>
<Pill>Held</Pill>
<h3 class="stage-name">Q.Med</h3>
<p class="stage-body">
Qualified Mediator, through the ADR Institute of Canada and the ADR
Institute of Ontario.
</p>
</li>
<li>
<Pill>Commenced August 2026</Pill>
<h3 class="stage-name">Q.Arb</h3>
<p class="stage-body">
Qualified Arbitrator. Newly commenced — not held, and not nearing
completion.
</p>
</li>
<li>
<Pill>The endpoint</Pill>
<h3 class="stage-name">C.Med-Arb</h3>
<p class="stage-body">
{CREDENTIALS.goalName}. The designation this practice is built
toward.
</p>
</li>
</ol>
<p class="stage-note">
If the stage of the arc bears on an appointment decision, it should bear
on it before the appointment and not after.
</p>
</div>
</section>
{/* ---- 3. Appointments ------------------------------------------------ */}
<section class="section reveal">
<div class="wrap">
<div class="section-head">
<SectionHeading
@@ -178,7 +135,7 @@ const TRACKS = [
</div>
</section>
{/* ---- 4. Tracks ------------------------------------------------------ */}
{/* ---- 3. Tracks ------------------------------------------------------ */}
<section class="section section-alt reveal">
<div class="wrap">
<div class="section-head">
@@ -194,7 +151,7 @@ const TRACKS = [
</div>
</section>
{/* ---- 5. Rules ------------------------------------------------------- */}
{/* ---- 4. Rules ------------------------------------------------------- */}
<section class="section reveal">
<div class="wrap">
<div class="section-head">
@@ -236,7 +193,7 @@ const TRACKS = [
</div>
</section>
{/* ---- 6. Awards ------------------------------------------------------ */}
{/* ---- 5. Awards ------------------------------------------------------ */}
<section class="section section-alt reveal">
<div class="wrap">
<div class="section-head">
@@ -274,7 +231,7 @@ const TRACKS = [
</div>
</section>
{/* ---- 7. Fees --------------------------------------------------------- */}
{/* ---- 6. Fees --------------------------------------------------------- */}
<section class="section reveal">
<div class="wrap">
<div class="section-head">
@@ -317,33 +274,6 @@ const TRACKS = [
margin-block-start: var(--space-8);
}
/* `.stage`, NOT `.arc`. `/about/` has an `.arc` block of its own with the
same class names and different rendering — serif at --text-2xl there, mono
at --text-lg here — and Astro's scoping means neither reaches the other. Two
meanings for one name across two pages is a rename waiting to go wrong.
`role="list"` on the <ol> and no local `list-style: none`: global.css does
both for `ol[role='list']`, and WebKit drops list semantics when the marker
goes, which is why the role is there. Columns come from `.grid-autofit`. */
.stage {
--grid-min: 17rem;
gap: var(--space-7);
}
.stage-name {
margin-block: var(--space-4) var(--space-2);
font-family: var(--font-mono);
font-size: var(--text-lg);
font-weight: var(--weight-medium);
}
.stage-body {
max-inline-size: 40ch;
line-height: var(--leading-body);
}
.stage-note {
margin-block-start: var(--space-8);
max-inline-size: 54ch;
line-height: var(--leading-body);
color: var(--text-inverse-2);
}
.cta {
margin-block-start: var(--space-6);
}