Build and deploy / build-and-deploy (push) Failing after 5s
Step 5 ships /practice/ and the six practice-area pages (construction,
technology, energy, insurance, shareholder, cross-border) from one route, and
adds the mechanical §4 gate Pouya ruled for.
check:claims — §4 Forbidden becomes a build error
scripts/check-claims.mjs greps dist/**/*.html for 10 patterns, each carrying
the incident that put it there. It strips <style> and non-JSON-LD <script>
first (a bare sweep for "leading" returned 26 hits, 25 of them
var(--leading-body)), self-tests every pattern against fixtures before
sweeping, and refuses a missing, empty or stale dist/. Wired into /build
Phase 5 and both deploy paths.
Q54 — six conduct undertakings publish, and §4 gains a third class
Conduct undertakings sit apart from credentials and offerings: the gate is
that Pouya said it in terms. The strings live in CONDUCT_UNDERTAKINGS so a
softening is one visible diff. (e) and (f) replace the third-person sentences
already on /arbitration/ rather than joining them.
Q49, Q50 recorded as rulings. §7 records the SES us-east-1 stray identity's
deletion. R11 holds typescript at its current major, with the peer-range
reason recorded.
Three facts corrected, two of them already shipped
- The LAT gloss said mediation "before filing and continuing after filing";
the Tribunal names mediation for "Before you apply" only and its second
sentence is about negotiation. An ellipsis in docs/01 had deleted it.
- "Connection allocation" is not an Ontario term.
- "The 2026 privacy statute" does not exist — Bill C-27 died without royal
assent. Struck from docs/03 rather than corrected in place.
ADR Chambers struck from /arbitration/ and from docs/01 item 3 (Pouya,
2026-08-30): the source establishes what the firm publishes, not that an
outside neutral can be appointed under its rules.
claims-auditor gains a second lens — for every quoted source, whether the
sentence beneath stays inside what the quotation establishes. Four shipped
defects had that shape and none of them is greppable.
CLAUDE.md gains a convention: never truncate the output of a check you intend
to believe. `npm run check | tail -3` returns warnings, hints and a blank line
and drops the errors line; it was reported as passing four times while
astro check was exiting 1 with 10 type errors.
Gates, exit status read directly, not through a pipe:
npm run check exit=0
npm run lint exit=0
npm run build exit=0
npm run check:claims exit=0
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md3GndFqWPzK78xAoebsg5
351 lines
13 KiB
Plaintext
351 lines
13 KiB
Plaintext
---
|
|
/**
|
|
* `/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:
|
|
*
|
|
* 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 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.
|
|
*/
|
|
import BaseLayout from '../layouts/BaseLayout.astro';
|
|
import Button from '../components/Button.astro';
|
|
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';
|
|
import ogDefault from '../assets/og-portrait.jpg';
|
|
import { serviceGraph } from '../data/schema';
|
|
import {
|
|
CONDUCT_UNDERTAKINGS,
|
|
CREDENTIALS,
|
|
CREDENTIAL_ROW,
|
|
CREDENTIAL_ROW_ARB,
|
|
} from '../data/site';
|
|
|
|
const ldImage = await getImage({
|
|
src: ogDefault,
|
|
format: 'jpeg',
|
|
width: 1200,
|
|
height: 630,
|
|
});
|
|
const graph = serviceGraph({
|
|
path: '/arbitration/',
|
|
name: 'Commercial arbitration',
|
|
serviceType: 'Commercial arbitration',
|
|
description:
|
|
'Sole-arbitrator, party-appointed and co-arbitration appointments in ' +
|
|
'commercial matters. Documents-only, expedited and full hearing tracks.',
|
|
imageUrl: new URL(ldImage.src, Astro.site).href,
|
|
});
|
|
|
|
/* §4 Offerings rows all three, each `[verified 2026-08-26 — Pouya, Q33/Q36]`,
|
|
each scoped commercial. Do not add a fourth without a row. */
|
|
const APPOINTMENTS = [
|
|
{
|
|
name: 'Sole arbitrator',
|
|
body: 'One arbitrator, appointed by agreement or by the mechanism the contract names.',
|
|
},
|
|
{
|
|
name: 'Party-appointed',
|
|
body: 'Appointed by one side to a three-member tribunal, deciding with the other two.',
|
|
},
|
|
{
|
|
name: 'Co-arbitration',
|
|
body: 'Sitting with co-arbitrators, usually where the matter spans more than one discipline.',
|
|
},
|
|
];
|
|
|
|
/* Tracks are docs/01 §`/arbitration/` item 2. The flat fees behind the first
|
|
two are D14's card and live on `/fees/`; no figure appears here. */
|
|
const TRACKS = [
|
|
{
|
|
name: 'Documents only',
|
|
body: 'No hearing. Written submissions, the documentary record, and an award. The right track where the dispute is about what the contract says rather than about what happened.',
|
|
},
|
|
{
|
|
name: 'Expedited',
|
|
body: 'A compressed timetable fixed at the outset, with page limits and a short hearing. Chosen when the commercial cost of the dispute staying open exceeds the value of a full process.',
|
|
},
|
|
{
|
|
name: 'Full hearing',
|
|
body: 'Pleadings, disclosure, witnesses, experts, oral argument. Where the facts are genuinely contested and someone has to hear them tested.',
|
|
},
|
|
];
|
|
---
|
|
|
|
<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."
|
|
jsonLd={graph}
|
|
>
|
|
{/* ---- 1. Hero — and the paired disclosure starts here ---------------- */}
|
|
<section class="section hero">
|
|
<div class="wrap">
|
|
<Eyebrow dot>Arbitration</Eyebrow>
|
|
<h1 class="display hero-h">Available now, and open about the stage.</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.
|
|
</p>
|
|
<div class="hero-creds">
|
|
<CredentialRow slots={[...CREDENTIAL_ROW, CREDENTIAL_ROW_ARB]} />
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
{/* ---- 2. The credentialing stage, on its own ------------------------- */}
|
|
{
|
|
/* §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. */
|
|
}
|
|
<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
|
|
eyebrow="Appointments"
|
|
level={2}
|
|
lede="Commercial matters. I do not accept family arbitration."
|
|
>
|
|
<span slot="heading">Three forms.</span>
|
|
</SectionHeading>
|
|
</div>
|
|
<DefinitionGrid items={APPOINTMENTS} />
|
|
</div>
|
|
</section>
|
|
|
|
{/* ---- 4. Tracks ------------------------------------------------------ */}
|
|
<section class="section section-alt reveal">
|
|
<div class="wrap">
|
|
<div class="section-head">
|
|
<SectionHeading
|
|
eyebrow="Tracks"
|
|
level={2}
|
|
lede="Settled with the parties before the first procedural order, not defaulted to."
|
|
>
|
|
<span slot="heading">How much process the dispute needs.</span>
|
|
</SectionHeading>
|
|
</div>
|
|
<DefinitionGrid items={TRACKS} />
|
|
</div>
|
|
</section>
|
|
|
|
{/* ---- 5. Rules ------------------------------------------------------- */}
|
|
<section class="section reveal">
|
|
<div class="wrap">
|
|
<div class="section-head">
|
|
<SectionHeading eyebrow="Rules" level={2}>
|
|
<span slot="heading">Under whose rules.</span>
|
|
</SectionHeading>
|
|
</div>
|
|
<div class="prose">
|
|
{
|
|
/* Sourced: docs/reference/adric-rules.md.
|
|
|
|
⚠️ ADR CHAMBERS IS NOT NAMED HERE, AND MUST NOT BE ADDED BACK.
|
|
Struck by Pouya 2026-08-30 from this page and from `docs/01` item 3
|
|
in the same ruling. `docs/reference/adr-institution-names.md`
|
|
establishes what the firm publishes — it does not establish that an
|
|
outside neutral can be appointed under its rules, and its own model
|
|
clause reads "at ADR Chambers". Naming it implies a relationship
|
|
this repository does not source. ADRIC and ad hoc are enough. */
|
|
}
|
|
<p>
|
|
<strong>The ADRIC Arbitration Rules.</strong> The ADR Institute of Canada
|
|
adopted a new edition effective 1 March 2025, alongside an arbitrator appointment
|
|
protocol and a set of forms — notice to arbitrate, request to administer,
|
|
request for the appointment of an arbitrator, urgent interim measures, challenge
|
|
to an arbitrator, notice of appeal.
|
|
</p>
|
|
<p>
|
|
<strong>Or ad hoc, or whatever the contract names.</strong> Where a contract
|
|
names a rule set, a seat and a language and leaves the rest to the tribunal,
|
|
that works.
|
|
</p>
|
|
{
|
|
/* Q54(e), rowed in §4 as a conduct undertaking. It REPLACED the
|
|
third-person sentence that made the same point as an observation;
|
|
do not restore that sentence beside it. */
|
|
}
|
|
<Undertaking>{CONDUCT_UNDERTAKINGS.arbitrationProcedure}</Undertaking>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
{/* ---- 6. Awards ------------------------------------------------------ */}
|
|
<section class="section section-alt reveal">
|
|
<div class="wrap">
|
|
<div class="section-head">
|
|
<SectionHeading eyebrow="Awards" level={2}>
|
|
<span slot="heading">In writing, with reasons.</span>
|
|
</SectionHeading>
|
|
</div>
|
|
<div class="prose">
|
|
<p>
|
|
An award should be in writing and give reasons — what was in dispute,
|
|
what the record showed, and why the conclusion follows. An award that
|
|
announces a result without the reasoning is not much use to the party
|
|
that lost, and it is no use at all to the relationship that has to
|
|
survive it.
|
|
</p>
|
|
{
|
|
/* THE DATE IS A COMMITMENT ABOUT PROCESS, NOT A PUBLISHED TURNAROUND.
|
|
§4 Forbidden bars a time-to-award statistic outright; no figure
|
|
appears here and none may be added. */
|
|
}
|
|
{
|
|
/* Q54(f), answered by Pouya 2026-08-29 and rowed in §4 as a conduct
|
|
undertaking. Same replacement as in the Rules section above: this
|
|
paragraph opened "The date an award is due belongs in the first
|
|
procedural order", the observation form of the same commitment. The
|
|
sentence that follows it is unchanged and is the one doing the §4
|
|
Forbidden work. */
|
|
}
|
|
<Undertaking>{CONDUCT_UNDERTAKINGS.arbitrationAwardDate}</Undertaking>
|
|
<p>
|
|
No number is published here: a turnaround time advertised in advance
|
|
of a record is a guess dressed as a commitment.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
{/* ---- 7. Fees --------------------------------------------------------- */}
|
|
<section class="section reveal">
|
|
<div class="wrap">
|
|
<div class="section-head">
|
|
<SectionHeading eyebrow="Fees" level={2}>
|
|
<span slot="heading">Published in full.</span>
|
|
</SectionHeading>
|
|
</div>
|
|
<div class="prose">
|
|
<p>
|
|
Hourly, hearing day, and flat fees for documents-only and expedited
|
|
matters at two levels of complexity. The cancellation schedule is on
|
|
the same page.
|
|
</p>
|
|
</div>
|
|
<div class="cta">
|
|
<Button href="/fees/" variant="ghost">The rate card →</Button>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<ContactBand />
|
|
</BaseLayout>
|
|
|
|
<style>
|
|
.hero {
|
|
padding-block-start: var(--space-9);
|
|
}
|
|
.hero-h {
|
|
margin-block: var(--space-4) var(--space-5);
|
|
font-size: var(--text-5xl);
|
|
max-inline-size: 20ch;
|
|
}
|
|
.hero-lede {
|
|
max-inline-size: 58ch;
|
|
font-size: var(--text-lg);
|
|
line-height: var(--leading-body);
|
|
color: var(--text-secondary);
|
|
}
|
|
.hero-creds {
|
|
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);
|
|
}
|
|
</style>
|