Pouya's rulings of 2026-09-03, in five parts. 1. THE INTAKE FORM IS NOT BROKEN. (ar) was wrong. docs/09 §7.1 verbatim — POST /api/intake with an Origin header — returns 303 to /contact/could-not-send/ with access-control-allow-origin echoed; the same probe without Origin returns 403. A bare POST 403s BY DESIGN and §7.1 says so three lines below the probe it prescribes: "403 means the Origin header did not arrive". The earlier finding read a status code without reading the document that defines it. Second time in two days. CLAUDE.md's instrument list goes eight to nine. D20 findings 12 and 19 fall with it; §7.2 (that both emails arrive) is still owed. The correction is APPENDED as entry (as); (ar) stands unedited. 2. The privacy retention comment was stale, not a defect — superseded by his decision to publish and confirm after launch, reading from 2026-09-04. Reworded; the TODO(pouya) came off with the gate it enforced. The mechanism finding survives: it was a JSX comment, stripped by Astro, so no build or deploy path could see it. A publication gate that lives only in a stripped comment is not a gate. §9 Q60 corrected. 3. The gloss class is fixed — 15 of the 20 D20 findings, 14 distinct edits across 9 files, under the rule "the gloss may say no more than the extract says; no new claims, no new sources". Swept three unpublished insights drafts too, and corrected the wrong CAA attribution at its source in docs/reference/, which is where a fixed page re-seeds. /bio/ changed, so the committed PDF is regenerated (89,549 B, 1 page asserted). Three findings outstanding: 10 needs a ruling, 11 is ruled and owed via Q60, 13 needs him to have said it. R1 is not one of the twenty. 4. X-Robots-Tag cannot be done with S3 object metadata — --metadata writes user metadata, returned as x-amz-meta-x-robots-tag, which no crawler reads. Built as the CloudFront response-headers policy docs/06 has specified all along: configure.mjs section 4. It needs a --apply run, not a deploy. The policy is cloned from whatever is attached at run time and reconciled on every run, because a response-headers policy replaces rather than merges. 5. Headshot deferred as an open non-defect. The master and the srcset ladder are both fine; Astro passes no quality, so AVIF encodes at sharp's default 50 and is served first. Two review rounds, 29 findings, all resolved, none declined; stopped at two per D19. NINE of round 2's fourteen were defects in round 1's own repairs — including a fix that harmonised both /fees/ rows onto wording that was itself unregistered, publishing an unsourced fee term twice where it had been once. Gates, exit status read for each: check 0 (0 errors, 0 warnings, 0 hints), build 0 (23 pages), check:claims 0, check:intake 0, og:proof 0, lint 0, minifier grep exit 1, router.test.mjs 30/30. Lighthouse NOT run. Nothing deployed and nothing applied to the distribution. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Md3GndFqWPzK78xAoebsg5
41 KiB
01 — Information architecture
Authority: AGENTS.md §3 D5 (full multi-page), §6, §5 (audience model).
Every claim in the copy outlines below must clear AGENTS.md §4.
Why multi-page at all
The site being replaced is one scrolling page. One page can hold one title, one meta description, one canonical URL, and one primary topic. It therefore gets one shot at a search result.
The practice's target searches are not "Toronto mediator" — that term is owned by retired judges with twenty years of name recognition, and the strategy brief is explicit that competing there is the wrong game (§II). The winnable searches are specific: construction lien mediation Ontario, SaaS contract arbitration Canada, SABS mediation Toronto, technology dispute neutral, Farsi-speaking mediator. Each of those wants its own page, its own title, its own copy, and its own structured data.
That is the entire argument for the structure below. It is a discoverability decision, not an aesthetic one.
Sitemap
/ Home
/about/ Biography, credentials, the professional record
/mediation/ Mediation — the process, formats, rules
/arbitration/ Arbitration — the process, tracks, rules
/med-arb/ Med-Arb and hybrid processes
/practice/ Practice areas index
/practice/construction/ Construction and infrastructure disputes
/practice/technology/ Technology, AI, and data disputes
/practice/energy/ Energy, grid, and regulatory disputes
/practice/insurance/ Insurance, SABS, and accident benefits
/practice/shareholder/ Shareholder, partnership, and family business
/practice/cross-cultural/ Cross-border and diaspora disputes
/process/ What an engagement looks like, step by step
/fees/ Fee schedule and engagement terms
/for-parties/ Plain language: what mediation actually is
/insights/ Article index
/insights/[slug]/ Individual articles
/contact/ Intake form and booking
/legal/privacy/ Privacy policy — PIPEDA
/legal/terms/ Terms of use
Nineteen fixed URLs plus one per article — and four more, all noindex and all
excluded from the sitemap in astro.config.mjs. They are utilities rather than
pages in the IA above, which is why they are listed here rather than in it:
/contact/received/ The intake form's success landing page
/contact/could-not-send/ Its failure landing page
/bio/ Source of the one-page PDF (R16)
/404/ Emitted as dist/404.html — see below
The two /contact/ pages exist because the site ships zero JavaScript, so
the form is a plain POST and the handler answers 303 See Other to a real URL —
docs/05 §Build step 8 has the reasoning. /bio/ exists so the PDF circulated
with an appointment proposal is a rendering of a reviewed page rather than a
document outside this project's review apparatus.
⚠️ /404/ IS THE ONE ROUTE THAT BREAKS THIS DOCUMENT'S OWN URL RULES, AND IT
HAS TO. The rules above are lower-case, hyphenated, trailing slash, no file
extensions. Astro emits src/pages/404.astro as dist/404.html — a file at
the root, outside build.format: 'directory' — because that is the object name a
CDN custom error response can point at. SEO.astro still sees the path as
/404/, which is why its OG_CARDS key is /404/ while the URL a tool fetches
is /404.html. Added 2026-09-01; docs/04 had asked for the page since before
build step 1 and it did not exist.
So: 23 built pages plus one per published article.
⚠️ AND THIS SENTENCE USED TO END WITH A REASSURANCE THAT WAS DISPROVEN THE DAY
THE 404 PAGE WAS ADDED. It read: "npm run lighthouse enumerates them from
dist/ rather than from this list, which is why this count being stale could never
make the gate miss a page." Both scripts/lighthouse.mjs and
scripts/og-proof.mjs enumerated index.html under dist/, not every page —
so both missed /404/, and og:proof reported it backwards, as an orphaned card
rather than an unchecked page. The count being stale was not the failure mode; the
definition of "a page" was. Both now take any .html at the root as well, and
check:claims always did, which is why the new page's copy was inside the claim
register from its first build.
The rule that replaces the reassurance: a route that does not live at
<dir>/index.html is invisible to anything that looks for index.html. If a
future page is emitted outside the directory convention, grep the three scripts
for index.html before trusting any of them.
URL rules
- Lowercase, hyphenated, trailing slash, no file extensions.
/practice/<area>/is a stable namespace — new practice areas slot in without touching anything else./insights/<slug>/— no dates in the path. A dated URL makes a piece look stale at 18 months, and this content is mostly evergreen.- Never change a published URL. If one must move, ship a CloudFront Function 301 and record it in the Change Log.
Navigation
Primary (header). About · Mediation · Arbitration · Practice · Fees · Insights · Contact
"Practice" is a dropdown to the six areas, with /practice/ itself reachable.
Build it as a <details> element or a CSS-only disclosure — no JavaScript.
Footer. Full sitemap in three columns, plus contact block, professional designations, LinkedIn, privacy, terms, and the SML Company Ltd. entity line.
Deliberately not in primary nav: /process/, /for-parties/, /med-arb/.
These are linked contextually from the pages that lead to them. Seven items is
the ceiling before a nav stops being scannable.
Deliberate omission: Indigenous engagement
The strategy brief (§III.4) rates Indigenous engagement, IBA, and consultation- breakdown mediation as "strategically the most valuable single niche".
⚠️ THAT SENTENCE USED TO CONTINUE "for a Q.Med on the C.Med-Arb pathway", AND
BOTH HALVES WERE DEFECTIVE. "pathway" is a struck stage form (§4, 2026-08-29),
and the clause sat outside the quotation marks in docs/01's own voice while
a parenthetical called the whole thing "the brief's framing, quoted" — a
quotation boundary the marks do not draw, which is the gloss defect inverted.
Only the four quoted words come from the brief, and the brief is not in this
repository (R14). The reasoning below never turned on either half.
There is no page for it at launch, on the following reasoning:
The brief itself says the niche "requires deliberate relationship work with First Nations advisors, federal and provincial engagement staff, and corporate proponents over a multi-year horizon." A practice page is a claim of present capability. Publishing one before that relationship work exists would be read as exactly what it is by the audience best positioned to notice — and that audience is small, well-connected, and unforgiving of practitioners who arrive claiming a seat. The cost of getting this wrong is much higher than the cost of waiting.
Revisit at month 12–18, once there is relationship history to point to. This reasoning is Claude's, recorded for Pouya's decision — not yet his call.
Not a practice area yet: tax-adjacent disputes
Canadian Tax Foundation membership is verified (AGENTS.md §4 — read the stamp there; a second copy of a currency stamp goes stale where nobody re-reads it, and this one had)
and it is the one credential none of the six areas above touch. Tax-adjacent
disputes are genuinely ADR territory — valuation and purchase-price disputes on
a share sale, indemnity and earn-out fights that turn on a tax position,
shareholder splits where the assessment is the thing actually in dispute.
There is no seventh practice page at launch, for the same reason as the section above and not a weaker one: a practice page is a claim of present capability, and there is no track record to point at. A membership is a credential, not a caseload.
It belongs on /about/ with the other memberships. Revisit at the month
12–18 review, alongside the Indigenous engagement decision — one review, two
candidates. Tracked as AGENTS.md R3.
Page specifications
Each page below gives its job, its primary audience, its target search intent,
and its section outline. Copy itself is in 03-content-spec.md.
/ — Home
Job: establish the unusual stack in under ten seconds, and route each of the four audiences to its surface. Audience: all four; leans in-house counsel. Search intent: brand and name searches; "Toronto ADR practice".
- Hero. Eyebrow (
Mediation · Arbitration · Toronto), display headline, two-sentence positioning paragraph, two CTAs (Request a consultation / How I work), portrait. - Credential row. Three slots:
Q.Med·JD + ML·EN · FA. Never matter counts —AGENTS.md§4. - The approach. The "two directions at once" argument — law and engineering
converging on the same dispute. ⚠️ The noun pair "law and engineering" is
the construction Q37 struck and Q41(a) extended to prose. The argument
stands; do not lift the phrase into copy — it reached
/once already. State the asymmetry instead:docs/03§The credential row. Infinity mark as the visual anchor. - Two practices. Mediation and Arbitration cards →
/mediation/,/arbitration/. Med-Arb named here, linking to/med-arb/. ⚠️ This item read "named here as the long-term arc" until 2026-08-29. There is no arc — C.Med-Arb is struck (§4) — and Med-Arb has had its own §4 Offerings row since 2026-08-27 (Q35), so it is named as a present offering.index.astrocited this item as amended before it was; both are correct now. - Practice areas. Six-card grid →
/practice/*. This is the most important block on the page for search, because it distributes authority to the pages that can actually rank. - Process preview. Compressed five-step strip →
/process/. - Latest insights. Three most recent →
/insights/. NOT BUILT AT STEP 2, and it arrives at STEP 7 with the collection it lists.ArticleCardand the drafted slate (D9) land in the same step; rendering the section against an empty collection means shipping a component's scoped CSS to every visitor for a block with nothing in it, plus a props surface with no call site.SiteHeaderalready gates the Insights nav item on the same collection, so the page section and the nav item appear together. Recorded here as well as in the page source, because "eight sections specified, seven built" should not be discoverable only by reading the file that deviates. - Contact band. Intake CTA and booking link.
/about/ — Biography and credentials
Job: be the page an appointing body or opposing counsel reads before agreeing
to an appointment. This page carries the verifiable record.
Audience: appointing bodies, ADR institutions, opposing counsel.
Search intent: "Pouya Lajevardi", Pouya Lajevardi mediator.
- Portrait, name, designation line.
- Narrative biography, 400–600 words. The three-track story — law, engineering, operating a company — told as one arc rather than three lists.
- Credentials, structured and scannable: designations, education,
certifications, memberships. Every line from
AGENTS.md§4 Verified. The credentialing arc.⚠️ STRUCK 2026-08-29 — Pouya, and the section is deleted from the page, not rewritten. "Two held designations, no journey… An arc invites 'where are you on it'; two designations don't." Q.Arb is held and C.Med-Arb is off the site entirely, so the item had no subject. Do not restore it from this outline or from the brief (§V), which treated the arc as part of the story. What it carried belongs in item 3, which is a list of held things.- Languages and cross-cultural practice.
- Speaking and publications. Omit the section entirely until there is something in it. An empty "Speaking" heading is worse than no heading.
PersonJSON-LD. Downloadable one-page PDF bio — brief §VIII lists this as an asset for circulation with appointment proposals.
✅ SHIPPED AT BUILD STEP 9, 2026-08-31. R16 / Q45 DISCHARGED.
public/pouya-lajevardi-bio.pdfexists, is committed, and this page links it between the biography and the credentials.The two decisions R16 left open are both taken, and the second makes the first safe. (a) Neither "generated at build" nor "authored once": the bio is a page,
src/pages/bio.astro, so every line is reviewed by the same apparatus as every other page — andnpm run bio:pdfrenders the PDF from the built page through the Chrome that Lighthouse already requires, so it adds no dependency. It is not part ofastro build, because CI has no Chrome. (b) It carries nothing the site does not — every line renders fromCREDENTIALS,ROLE,BOUTIQUE,PRACTICE_AREAS,FEESandCONTACT. No matter list (which R16 correctly said would collide with §4 Forbidden), no referees, no figure that is not on/fees/.⚠️
npm run bio:pdfasserts ONE PAGE and writes nothing if the count is wrong. And reading the rendered PDF caught a breach the source review had not: its opening clause scoped mediation commercial, which Q56 leaves unscoped deliberately. Nothing in the build regenerates the PDF —docs/06's cutover checklist carries the re-render.
Original deferral note, kept because its reasoning is why this is R16 rather than a to-do. The PDF bio ships at BUILD STEP 9, alongside
/fees/— deferred by Pouya 2026-08-28 (Q45), tracked asAGENTS.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.mdQ45, 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 web page does, and it will be circulated detached from the site, where no reviewer sees it again. Two decisions are Pouya's — whether it is generated at build (a dependency, against R11) or authored once as a designed artefact, and whether it carries anything the site does not. Everything else on this page ships.
/mediation/
Job: convert counsel who have already decided on mediation and are choosing a
neutral.
Search intent: commercial mediator Toronto, ADRIC mediation rules,
what happens at mediation Ontario. These are queries, not the page's scope —
Q56, 2026-08-30. The mediation offering is not scoped commercial (§4's row
is unscoped; the arbitration scope is a legal gate and does not transfer). Do not
read the first query back into the <title> or the copy, which is where
"Commercial Mediation" came from in the first place.
- What the service is; the neutral's role stated plainly.
- Formats: full-day, half-day, shuttle, remote, hybrid.
- Rules: the ADRIC National Mediation Rules, or a bespoke protocol
agreed by the parties.
⚠️ This item read "ADRIC Model Mediation Rules" until 2026-08-28 and that is
not the name of anything ADRIC publishes — 0 occurrences across all four
of its rules pages, against 10 of "National Mediation Rules" on the
document's own page. "Model" belongs to the Model Dispute Resolution
Clause, a contract clause inside the rules. Sourced and reproducible:
docs/reference/adric-rules.mdFinding 1. The spec would have put a wrong institutional name on a public page, which is theChartered Mediator-Arbitratorshape a second time — caught here only because R14 sent the fetch out before the copy was written. - What parties should bring — briefs, documents, authority to settle.
- Confidentiality and without-prejudice framing.
- Practice areas →
/practice/*. - Fees →
/fees/. Booking →/contact/.
⚠️ This page carries no first-person conduct commitment, and that is deliberate. How Pouya handles caucus material, and what he undertakes about a bespoke protocol, are claims about his practice with no §4 row. Two of them shipped here for one pass and were removed. Drafted for his ruling as Q54(d) and (e); until he rules, the Confidentiality and Rules sections describe what an agreement settles, not what he promises.
/arbitration/
Job: the same, for arbitration. (This read "and to state the Q.Arb
position honestly" until 2026-08-29; Q.Arb is held and there is no position to
state.)
Search intent: sole arbitrator Ontario, expedited arbitration Canada,
documents-only arbitration.
- What the service is; sole-arbitrator and party-appointed appointments.
- Tracks: documents-only, expedited, full hearing.
- Rules: ADRIC, ad hoc. ✅ Both are named on the page.
⚠️ ADR CHAMBERS WAS STRUCK FROM THIS ITEM AND FROM THE PAGE ON 2026-08-30
— Pouya's ruling, and do not reinstate it from an earlier reading of this
spec. This item listed it as a third rule option for most of the project.
docs/reference/adr-institution-names.mdsources what the firm publishes; it does not source that an outside neutral can be appointed under those rules, and the firm's own model clause reads "at ADR Chambers" — so naming it here implied a relationship the repository does not establish. The ADRIC edition date (1 March 2025) is published on the page because ADRIC publishes one. - Awards — form, reasoning, timing.
Credentialing status, stated plainly.⚠️ STRUCK 2026-08-29 — Pouya. Q.Arb is HELD, and §4's paired-disclosure condition dissolved with the stage it required. "It existed only because Q.Arb was in progress. There is no stage left to disclose." The page's whole credentialing-stage section is deleted, its<h1>no longer reads "Available now, and open about the stage", and no residue of the condition may be reintroduced — a page that offers arbitration and then reaches for something qualifying to say is reproducing it from memory. What survives: all three forms — sole, party-appointed and co-arbitration — are offered now, with anAGENTS.md§4 Offerings row for each[verified 2026-08-26 — Pouya], and the scope is commercial (Q39, Pouya's own choice, never part of this condition). (This paragraph read "(co-arbitration, co-arbitration)" until 2026-08-26 — edited without being re-read — and then carried a caveat against Q36 for several hours after Q36 closed. Both are recorded because the pattern is the same one: an edit that was not re-read against the register.)- Fees, booking.
⚠️ No first-person conduct commitment on this page either. The Rules and
Awards sections say what a process and an award should settle and contain, not
what Pouya undertakes to do — Q54(e) and (f) are drafted and unruled, and
both shipped here in the first person for one pass. The <title> names a
service, never "Sole Arbitrator": §4 grants exactly one practised role and it
is "Mediator".
/med-arb/
Job: own a term few Canadian neutrals explain well. (This read "and frame
the C.Med-Arb endpoint" until 2026-08-29; C.Med-Arb is off the site.)
Search intent: med-arb Canada, what is med-arb, arb-med.
- What Med-Arb is; how it differs from Arb-Med.
⚠️ As built, the page flags the confusion and does not define arb-med.
No source for a definition of arb-med is committed, and this repository does
not publish a definition of a third party's process from recall (R14). The
page says only that the two are one syllable apart, that the processes are
not interchangeable, and that a reader should check which one their contract
names — against the rule set the contract adopts, not against this page. It
states no differentia at all, because on a page that defines med-arb as
mediation→arbitration, "the phases run in a different order" is a
definition of arb-med by inversion. That wording shipped for one pass and
claims-auditorcaught it. Define arb-med when a source is committed, or add an Arb-Med row toAGENTS.md§11 — not before. - The procedural fairness objection, addressed head-on rather than elided. ⚠️ The page answers it at the level of process design — what a med-arb agreement has to settle before the mediation phase begins. It does not carry Pouya's own protocol commitments, which are claims about his practice with no §4 row. Three are drafted for his approval in Q54; the section is incomplete until he rules.
- When it fits and when it does not.
The C.Med-Arb designation and why it is the practice's stated endpoint.⚠️ STRUCK 2026-08-29 — Pouya. C.Med-Arb is out entirely, and this is a deliberate deviation from the strategy brief, which made it "the explicit long-term professional narrative". His reasoning: "Pouya holds Q.Med and Q.Arb, which is what med-arb requires. The page says he conducts med-arb and stops." The section is rewritten, not edited — it earned its credibility from an incomplete credential and now says what med-arb demands of one neutral. ⚠️ AND IT NO LONGER RESTATES THE DESIGNATIONS EITHER — 2026-09-02,claims-auditorD20 pass, finding F. §Why this practice held a bareDESIGNATIONS_HELD_LINEsentence sitting directly beneath §Rules' quotation of ADRIC requiring "a high level of practitioner competence", so the designations read as meeting a bar ADRIC answers with the Chartered Med-Arb — struck from this site entirely. The section now makes no credential claim at all;/about/publishes them and the JSON-LD carries them. Do not reinstate one here.- The ADRIC Med-Arb Rules, which this spec did not mention and which exist:
a published rule set, presented to ADRIC's membership— CORRECTED 2026-09-02,claims-auditorD20 pass, finding 6. The source says a discussion draft was presented, not the rules;adric-rules.mdFinding 2 records no adoption and no effective date, in deliberate contrast to the Arbitration Rules ("effective March 1, 2025") and the Mediation Rules ("the existing rules remain in effect"). The page was corrected on 2026-09-01 and this line still instructed the struck form for a day — the Q.Arb lesson exactly: page fixed, spec still telling the next implementer to write the false version. Write it as presented to the membership as a discussion draft at ADRIC's 2019 annual conference — drafted for domestic commercial disputes and designed to work with its Mediation and Arbitration Rules. Sourced:docs/reference/adric-rules.mdFinding 2. Quote ADRIC's own framing rather than paraphrasing it, and keep its superlatives inside the quotation marks — Finding 5 lists the two not to lift.
This page is a strong candidate for the best-performing page on the site. Search demand exists and competition is thin. (This closed "and it maps exactly to the brand's long-term narrative" — the C.Med-Arb narrative struck thirteen lines above on 2026-08-29. The two reasons that survive are the two that were ever measurable.)
/practice/ — index
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 has an AGENTS.md §4
Offerings row.
✅ THE STRIP MAY SHIP — Q46(a) closed 2026-08-28, on Pouya's second ruling. All three §4 Offerings rows now read PUBLISHABLE. Read the ENE row before writing the strip: gate 1 (is the activity gated?) is closed as
[Pouya's stated basis 2026-08-28]and not as[verified], because no source for any of the three exists indocs/reference/. That is a deliberate, attributed position of the architect's, not a sourced fact — do not describe it on the page or in a comment as settled law.Two framing constraints survive the ruling and are not discretionary:
- ENE is an assessment delivered to BOTH parties, never advice to one. It is the offering nearest §4's NOT-NEGOTIABLE boundary — a neutral assessment of the merits sits closest to "providing legal services".
- Pre-dispute advisory carries a conflict caution, and it is practice management rather than a publication gate: advisory work for one organisation can conflict against a later appointment in the same matter. No copy may imply the offering is free of that tension — this strip is where the temptation to imply it will arise.
settlement counselIS STRUCK FROM THIS STRIP AND MUST NOT BE RESTORED.AGENTS.mdQ42, 2026-08-27. Pouya struck it as his own error in this document:"Settlement counsel acts FOR a party in negotiation. That is a partisan role, and putting it on a site that (a) sells neutrality and (b) asserts no licensure under D13 is wrong twice over: it undercuts the brand's central claim and it edges into acting for a client."
Note which objection comes first. This is not primarily a compliance problem — it is a positioning problem, and it would have been wrong on a site with no licensure question at all. The compliance half is the aggravation, not the reason. Never priced, never offered, never listed: it is a struck row in §4 Offerings so that a later reader finds the decision rather than the gap.
/practice/construction/
Search intent: construction lien mediation Ontario, delay claim mediation,
subcontract dispute arbitration Toronto.
Dispute types (lien, delay, change orders, scheduling, subcontract, deficiency); what active litigation exposure in the same matters brings to the room; the Ontario megaproject pipeline as context — Darlington SMR, Bruce C, data centres, transit; typical process shape. Strongest immediate fit per brief §III.1.
/practice/technology/
Search intent: SaaS dispute arbitration Canada, AI vendor dispute,
data residency dispute resolution, software contract mediator.
The differentiator page. Dispute types: software contracts, SLA and MSA breakdowns, data residency and processing, AI vendor diligence, cloud sub-processor disputes, IP and licensing.
Write this page in the register the brief demands: a neutral who can read an API trace, a model card, or a System Impact Assessment on the same page as the contract. The brief warns explicitly against softening this to "technologically literate" — the claim is engineering practice, so the copy says engineering practice.
/practice/energy/
Search intent: Bill 40 dispute, IESO dispute resolution,
OEB leave to construct dispute, grid connection dispute Ontario.
Connection assessment and approval, leave to construct, proponent–municipality disputes, IESO market participation, and the large-load / data-centre connection regime. Brief §III.2 frames this as a 24–36 month build. Write it as a genuine position, not a claim of existing volume.
⚠️ "CONNECTION ALLOCATION" WAS THIS SECTION'S WORDING AND IT IS NOT AN ONTARIO TERM. Corrected 2026-08-29, against the IESO's own pages (
docs/reference/ontario-energy-regulatory.md), which contain zero occurrences of "allocation" of any kind across the connection process. It also reachedsrc/data/site.tsand shipped in the six-card grid on three pages.Use the terms these bodies use: the IESO's own words are "the IESO's and transmitter's connection assessment and approval (CAA) process", within which the IESO performs a System Impact Assessment (SIA) and the transmitter a Customer Impact Assessment (CIA). ⚠️ This read "CAA is the umbrella" until 2026-09-03 — which is the extract's own COMMENTARY, not the IESO's, and
CLAUDE.mdis explicit that commentary around a quotation is this repository's voice. The pages took the attribution from here and gave the process to the IESO alone. And it is the CONNECTION PROCESS that runs to up to six stages, not the CAA — the source scopes the count by connection type, and CAA is stage 2 of that process rather than a name for it. Naming the wrong subject here is how the conflation reaches a page. Ontario has no interconnection queue — the IESO says so in terms and works from "committed projects" instead, so "our place in the queue" describes nothing. The genuinely adjacent term, the OEB's Capacity Allocation Model in the Distribution System Code, is about housing-development connections and is a different thing.Bill 40 is identified, and the identification was not safe to assume: it is Bill 40 of the 44th Parliament, 1st Session — the Protect Ontario by Securing Affordable Energy for Generations Act, 2025, Royal Assent 11 December 2025. Bill numbers are reused every parliament and most Ontario Bill 40s are unrelated to energy (43-1 is a highway-traffic bill). Cite the parliament and session, never the bare number.
/practice/insurance/
Search intent: SABS mediation, LAT pre-hearing mediation,
accident benefits mediator Ontario, MIG dispute.
⚠️
LAT pre-hearing mediationIS A SEARCH INTENT AND NOTHING ELSE. It must never be published as an offering —AGENTS.mdQ41(c), closed 2026-08-27, verified 2026-08-28 against the Tribunal's own materials and extracted intodocs/reference/lat-case-conference.md. It reachedsrc/data/site.tsas a service blurb once already; this note exists because a search-intent list is where that lift starts.What the verification found, in one line each:
- LAT Rule 2.4: "'Case Conference' has the same meaning as 'Pre-Hearing Conference' as defined in the SPPA." "Pre-hearing" is the Tribunal's own label, and what it labels is a case conference.
- Rule 14.3: a Member presides and does not then sit on the hearing panel except with the consent of the parties; Rule 14.6: parties must attend. The neutral is the Tribunal's. A privately retained one is not appointed to it and cannot be.
- The LAT Rules contain zero occurrences of
mediatorarbitrat— 0 in 66,593 characters. The concept is not in them.- The LAT-AABS page itself, though, says: "Before you apply to the LAT-AABS, you may want to consider negotiation or mediation services." That is the affirmative basis for the offering, in the Tribunal's words — and it is the whole of it.
⚠️ THE QUOTATION ABOVE WAS ELLIPSED, AND THE ELLIPSIS REMOVED THE WORD THAT SCOPED IT. Corrected 2026-08-29. It read "…consider negotiation or mediation services… including before filing at the LAT-AABS, and continuing… after a claim has been filed." The Tribunal's second sentence is "Parties are encouraged to attempt to negotiate the claim at all times, including before filing at the LAT-AABS, and continuing negotiation discussions after a claim has been filed." — negotiation, twice. The second ellipsis deleted the second "negotiation" and made a sentence about negotiation read as one about mediation. The full passage is quoted verbatim in
docs/reference/lat-case-conference.md, which now carries the correction and the reason it survived three checks.The page must state that the mediation offered is PRIVATE, retained by the parties, and is not the Tribunal's case conference. Published blurb: "Accident benefits and SABS entitlement, MIG disputes, and private mediation retained by the parties, not the Tribunal's case conference." Do not restore the "before filing or after" form — it rested on the elided half. The page may quote the Tribunal's actual sentence, which supports mediation before an application; it may not attribute the after-filing frame to the Tribunal. If Pouya holds a roster position that makes more than that true, it is a §4 addition — absent a row, it is not.
Highest realistic near-term volume — it flows directly from the existing personal-injury and SABS work, and brief §IV.7 notes the segment is underserved by senior mediators. Unglamorous and worth doing well.
/practice/shareholder/
Search intent: shareholder dispute mediation Ontario,
partnership dissolution mediator, family business succession dispute.
Shareholder and partnership disputes, co-founder breakdowns, family-business succession, SME exits. The operator angle — running SML Company Ltd. alongside the practice — is the differentiator here.
"Family Business" means COMMERCIAL disputes among family shareholders, and the
page must say so. Pouya's ruling of 2026-08-27 (AGENTS.md Q39): the label
covers shareholder and partnership disputes, co-founder breakdowns and business
succession — not family law. Family arbitration under the Family Law Act
is not offered, and that activity is separately gated by prescribed training
(docs/reference/ontario-family-arbitration-training.md), so the exclusion has
to be legible rather than left to be inferred from the surrounding nouns.
One sentence, not a section. His instruction, and the reason is also the test for whether it belongs at all: "The page should say plainly that family law matters are not accepted. One sentence, not a section: it saves a wasted intake call, which is the only reason it earns its place." A disclaimer that grows into a paragraph reads as defensive, which is the opposite of the point.
/practice/cross-cultural/
Search intent: Farsi speaking mediator Toronto,
Iranian Canadian business dispute, diaspora shareholder dispute.
Note that D4 makes the site English-only. This page describes Farsi-language capability in English; it is not a Farsi page. Diaspora family-business succession, dual-jurisdiction shareholder disputes, partnership disputes among diaspora entrepreneurs, cross-cultural commercial matters.
/process/
Five steps, from intake to conclusion: confidential intake (day 0) · engagement and framing (1–7) · pre-session exchange (7–21) · the session (21–30) · binding conclusion (30+). Also: conflicts checking, confidentiality, and what happens if a matter does not settle.
The timings are published as the TYPICAL shape of an engagement, explicitly
not a guarantee — AGENTS.md Q43, Pouya 2026-08-27. Render PROCESS_FRAMING
(src/data/site.ts) adjacent to the steps, on this page and on /. The
numbers above are unchanged; what is required is that they never appear
unframed. "Published as typical, they are honest and useful; published as
commitments, the first matter that slips makes the page false."
/fees/
Unblocked — AGENTS.md Q4/Q14 answered (D14). Build from the confirmed card
in docs/07-fees.md; still do not invent numbers.
Hourly rate; half-day and full-day mediation; preparation time policy;
cancellation terms; administrative fee; HST treatment; who pays and how costs
are shared between parties; payment terms. A real page with real numbers, or a
TODO(pouya) — nothing in between.
/for-parties/
Job: serve the self-represented tier without diluting the counsel-facing pages. Plain language, short sentences, no jargon.
What mediation is · what it is not · who the mediator is and is not —
render NEUTRAL_ROLE_LINE, and read docs/03 §For parties before writing a
word of it. ⚠️ THIS LINE READ "(not your lawyer, not a judge)" UNTIL
2026-08-30 AND IT INSTRUCTED A FORM STRUCK ON 2026-08-28. "Not your lawyer"
presupposes lawyer status, which §4 Forbidden bars and D13 treats as hard as
assertion — a negation still carries the presupposition. docs/03 struck it
with that reasoning two days earlier and the sweep never reached this file;
build step 6 is the step that consumes this line, and it was found here by
adversarial-reviewer while the page itself avoided the trap · what happens on the day · what it costs · what happens if
you do not settle · how to prepare.
/insights/ and /insights/[slug]/
Astro content collection, MDX. Index reverse-chronological with topic filtering by practice area.
Article frontmatter: title, seoTitle (optional), description,
publishDate, updatedDate, topics[], practiceAreas[], readingTime,
image and imageAlt (both optional, but imageAlt is required whenever
image is set), draft, reviewedByPouya.
title is the headline and, for articles, the <title> — they carry no
· Pouya Lajevardi suffix; see 04-seo-spec.md for why. seoTitle replaces
it when a headline that reads well falls outside 50–60. src/content.config.ts
enforces the rendered length and names the offending string in the error.
Dates are date-only ISO (2026-08-01), parsed as UTC and round-tripped, so a
typo fails the build rather than shipping as 1970 or as the wrong day.
reviewedByPouya carries D9: the schema refuses to build an entry with
draft: false and reviewedByPouya: false.
Content territories, from brief §VII: process explainers · regulatory commentary · industry-specific dispute commentary · anonymised reflections · technical explainers for lawyers · credentialing and career-arc content.
Article JSON-LD with author pointing at the Person entity. Each article
links to the relevant practice-area page — this is what turns the blog into
ranking power for the pages that convert.
The section stays out of primary navigation until at least two pieces are live. An empty blog signals abandonment more loudly than no blog signals anything.
/contact/
Intake form (05-backend-spec.md), booking embed, direct email
(Q3 — there is no public phone number; render CONTACT.phoneFallback,
"By scheduled call", wherever a number would go), Toronto by-appointment line, response-time expectation, and an explicit
note that submitting the form does not create a retainer or a mediator–party
relationship and does not itself create a conflict check.
/legal/privacy/ and /legal/terms/
Required, not optional — the intake form collects personal information about identifiable third parties in live legal disputes. What is collected, why, where it is stored (DynamoDB, region), retention period, who can access it, how to request deletion, and the contact for privacy inquiries. Must match what the backend actually does.
Build order
Dependency-ordered, so nothing is blocked mid-stream:
- Scaffold, tokens, base layout, header, footer, SEO component
/— proves the design system end to end/about/— the credential spine everything else references/mediation/,/arbitration/,/med-arb//practice/and the six area pages/process/,/for-parties/- ✅
/insights/plumbing, then the drafted articles — built 2026-08-31. Step 7a returned Lighthouse (AGENTS.md§7, R11); 7b built the OG card generator (R15) and the Insights routes; 7c drafted the five launch articles. The section is not live and cannot be: D9 andsrc/content.config.tsbetween them mean an article publishes only when Pouya sets both flags, andSiteHeaderkeeps Insights out of the nav until two are live - ✅
/contact/— the page is built; the pipe behind it is not. The handler is written (backend/intake/) and undeployed, and the CloudFront/api/*behaviour it posts to does not exist yet. Both are cutover items, anddocs/05§Build step 8 records three deliberate deviations from that spec - ✅
/fees/— built 2026-08-31 on Q59's ruling, which settled where the overtime hour starts (the session cap) and supplied the reservation point that answers the rate card's arithmetic anomaly. The PDF bio shipped with it (R16) - ✅
/legal/privacy/and/legal/terms/— built 2026-08-31, written to the backend as actually built. Three of the privacy policy's statements are DERIVED — the collected-data list fromINTAKE_FIELDS, the retention period from the handler's own figure, the analytics paragraph fromANALYTICS.installed— so they cannot drift from the implementation - Audit and cutover (
06-deployment.md) — not started. Nothing is deployed.claims-auditor's single pass over the whole finished site (D20) is a blocking item there and has not run