Build order step 1 (docs/01): scaffold, tokens, base layout, header, footer, SEO component, plus a temporary /type-scale/ proof sheet that step 2 deletes. THE FONTS WERE NEVER ON DISK. global.css declared six @font-face rules pointing at /fonts/*.woff2 and public/fonts/ did not exist, so every face had been silently falling back to Georgia and the system sans. Six cuts committed, 123,804 bytes, SIL OFL 1.1, provenance in docs/reference/fonts-provenance.md. ?v=1 on every URL because the deploy script serves them immutable for a year. ZERO JAVASCRIPT. The reveal was an inline IntersectionObserver in <head>; docs/05 specifies script-src 'self' with no unsafe-inline, so the only script on the site was the one thing the site's own CSP would refuse to execute. Replaced with animation-timeline: view() behind @supports. 0 script tags and 0 .js files in dist. The infinity mark is lifted verbatim from the deployed site's own smlMark loading thumbnail, not redrawn (Q32 asks whether a canonical vector exists). The proof sheet computes its contrast table from tokens.css rather than restating docs/02 — all eleven ratios reproduce the measured table exactly. Register: Canadian Tax Foundation added (§4, R10 widened); Q30 closed — SML Company Ltd is federally incorporated under the CBCA, and the footer publishes neither that nor the place of business; Q31 closed — Plausible, on EU-only data residency (D15 amended). ROLE constants added for "Director of Firm Operations" and "active litigation exposure" so step 3 does not hand-type them. Lighthouse unavailability now stated in six places rather than left as a control that had silently stopped existing (§7, R11). Both review agents ran twice. The second pass found four defects in the first pass's fixes, including the minifier bug written back into its own fix and a colour-alone repair that used the banned gold-on- cream pairing at 2.10:1. Measured in headless Chrome at thirteen widths with a seventh nav item injected: 0 overflow, 0 tap targets under 44x44, 0 focus-order inversions, state indicators at 12.29:1, 755 words of body text with no JavaScript. Opened: Q32-Q37. Closed: Q30, Q31. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012XquaEq4BgWMCwUqLEyNkF
17 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.
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" for a Q.Med on the C.Med-Arb pathway.
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, 2026-08-26)
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. Infinity mark as the visual anchor.
- Two practices. Mediation and Arbitration cards →
/mediation/,/arbitration/. Med-Arb named here as the long-term arc, linking to/med-arb/. - 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/. - 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. Q.Med held → Q.Arb in progress → 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.
- 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.
/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.
- What the service is; the neutral's role stated plainly.
- Formats: full-day, half-day, shuttle, remote, hybrid.
- Rules: ADRIC Model Mediation Rules, or a bespoke protocol agreed by the parties.
- What parties should bring — briefs, documents, authority to settle.
- Confidentiality and without-prejudice framing.
- Practice areas →
/practice/*. - Fees →
/fees/. Booking →/contact/.
/arbitration/
Job: the same, for arbitration — and to state the Q.Arb position honestly.
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, ADR Chambers, ad hoc.
- Awards — form, reasoning, timing.
- Credentialing status, stated plainly. The Q.Arb pathway is in progress;
the page says so and describes what is available now versus what follows
designation. Honesty here is a differentiator, not a weakness — and
misstating it is a conduct problem. What "available now" consists of is
AGENTS.mdQ36 and is NOT yet in §4 — this line,03-content-spec.md, and07-fees.mdall assert co-arbitration availability off the same unverified premise. Do not write it onto the page until Q36 closes. (This paragraph read "(co-arbitration, co-arbitration)" until 2026-08-26 — edited without being re-read, which is how the unverified half travelled.) - Fees, booking.
/med-arb/
Job: own a term few Canadian neutrals explain well, and frame the C.Med-Arb
endpoint.
Search intent: med-arb Canada, what is med-arb, arb-med.
- What Med-Arb is; how it differs from Arb-Med.
- The procedural fairness objection, addressed head-on rather than elided.
- When it fits and when it does not.
- The C.Med-Arb designation and why it is the practice's stated endpoint.
This page is a strong candidate for the best-performing page on the site. Search demand exists, competition is thin, and it maps exactly to the brand's long-term narrative.
/practice/ — index
Six cards, one paragraph each, linking onward. Also the natural home for the "also offered" strip: early neutral evaluation, settlement counsel, dispute- system design, and pre-dispute technical advisory.
/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.
Grid connection and allocation, leave-to-construct, proponent–municipality disputes, IESO market participation, data-centre connection allocation. Brief §III.2 frames this as a 24–36 month build. Write it as a genuine position, not a claim of existing volume.
/practice/insurance/
Search intent: SABS mediation, LAT pre-hearing mediation,
accident benefits mediator Ontario, MIG dispute.
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.
/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.
/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 (not your lawyer, not a judge) · 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/contact/and the intake backend/fees/— last, though no longer blocked: D14 confirmed the card/legal/*— written to match the backend as actually built- Audit and cutover (
06-deployment.md)