Q32 — the traced mark was a WRONG SHAPE and had shipped. Pouya compared it against the master and rejected it. Two grounds reproduce from the path and are verified here: all four cubic branches meet the origin at exactly 90 degrees, so the loops are tangent rather than crossing and at stroke-width 28 render as two kissing circles (signed crossing number 0; the strokes fuse across 61% of the mark's height at 2rem); and the master's ink bbox is 2668x1704 = 1.5657:1. The path is deleted, not kept as a fallback. Pouya's 1.23:1 figure is reconciled rather than left dangling: it is the bounding box of the path's COORDINATES, not the curve. Control points sit at y +/-160 where the curve reaches +/-120, so the hull is 400x320 and with stroke 428x348 = 1.2299. A trap rather than a slip — x is monotone, so the control points give the right width and a 33% inflated height, and the "does the width look right" check passes. The real artwork is now in the repo: master, tight crop (the render source, so the file's aspect ratio IS the mark's), full lockup, and the SVG. InfinityMark renders AVIF/WebP; a Retina device takes 3,063 B. Favicons regenerated; favicon.svg deleted. Q33/Q36 — Pouya accepts arbitration appointments now. §4 gains an Offerings category: competence for an offering, permission for a credential, with an explicit boundary so it cannot become a route around D13. The masthead tagline is restored, and the footer designation strip now carries "Q.Arb — commenced August 2026" so §4's paired-disclosure condition is actually met on every page rather than only asserted. Two conventions added to CLAUDE.md, both earned this session: anything a spec makes a claim about must be reachable from the repo (R14 — the traced mark survived two review passes because the artwork was not here to compare against); and a command that did not run is not evidence of absence (`timeout` is not installed on macOS, so four Drive reads never executed and were reported as an empty directory). Reviews: claims-auditor FAIL/13 and adversarial-reviewer 2 blocking, all resolved. The severe one was self-inflicted — `flex: none` landed on the <img> while <Picture>'s <picture> wrapper is the flex item, so the logo compressed to 28.5x32 at 1024px with seven nav items. The page-level overflow check passed throughout because the brand block absorbed the deficit by crushing the mark. Harness now asserts rendered aspect ratio. Opened: Q38, Q39. Closed: Q32, Q33, Q36. Narrowed: Q35. Added: R13, R14. AGENTS.md entry (v) carries a RESUME HERE section. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012XquaEq4BgWMCwUqLEyNkF
385 lines
17 KiB
Markdown
385 lines
17 KiB
Markdown
# 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".
|
||
|
||
1. **Hero.** Eyebrow (`Mediation · Arbitration · Toronto`), display headline,
|
||
two-sentence positioning paragraph, two CTAs (*Request a consultation* /
|
||
*How I work*), portrait.
|
||
2. **Credential row.** Three slots: `Q.Med` · `JD + ML` · `EN · FA`. Never
|
||
matter counts — `AGENTS.md` §4.
|
||
3. **The approach.** The "two directions at once" argument — law and engineering
|
||
converging on the same dispute. Infinity mark as the visual anchor.
|
||
4. **Two practices.** Mediation and Arbitration cards → `/mediation/`, `/arbitration/`.
|
||
Med-Arb named here as the long-term arc, linking to `/med-arb/`.
|
||
5. **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.
|
||
6. **Process preview.** Compressed five-step strip → `/process/`.
|
||
7. **Latest insights.** Three most recent → `/insights/`.
|
||
8. **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`.
|
||
|
||
1. Portrait, name, designation line.
|
||
2. **Narrative biography**, 400–600 words. The three-track story — law,
|
||
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
|
||
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.**
|
||
6. **Speaking and publications.** Omit the section entirely until there is
|
||
something in it. An empty "Speaking" heading is worse than no heading.
|
||
7. `Person` JSON-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`.
|
||
|
||
1. What the service is; the neutral's role stated plainly.
|
||
2. **Formats:** full-day, half-day, shuttle, remote, hybrid.
|
||
3. **Rules:** ADRIC Model Mediation Rules, or a bespoke protocol agreed by the
|
||
parties.
|
||
4. **What parties should bring** — briefs, documents, authority to settle.
|
||
5. **Confidentiality and without-prejudice framing.**
|
||
6. Practice areas → `/practice/*`.
|
||
7. 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`.
|
||
|
||
1. What the service is; sole-arbitrator and party-appointed
|
||
appointments.
|
||
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,
|
||
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
|
||
endpoint. §4 Offerings: **neither half may be dropped.** Honesty here is a
|
||
differentiator, not a weakness — and misstating it in either direction is a
|
||
conduct problem.
|
||
*(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.)*
|
||
6. 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`.
|
||
|
||
1. What Med-Arb is; how it differs from Arb-Med.
|
||
2. The procedural fairness objection, addressed head-on rather than elided.
|
||
3. When it fits and when it does not.
|
||
4. 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:
|
||
|
||
1. Scaffold, tokens, base layout, header, footer, SEO component
|
||
2. `/` — proves the design system end to end
|
||
3. `/about/` — the credential spine everything else references
|
||
4. `/mediation/`, `/arbitration/`, `/med-arb/`
|
||
5. `/practice/` and the six area pages
|
||
6. `/process/`, `/for-parties/`
|
||
7. `/insights/` plumbing, then the drafted articles
|
||
8. `/contact/` and the intake backend
|
||
9. `/fees/` — last, though no longer blocked: D14 confirmed the card
|
||
10. `/legal/*` — written to match the backend as actually built
|
||
11. Audit and cutover (`06-deployment.md`)
|