chore: project scaffold, specs, and working record
Build and deploy / build-and-deploy (push) Failing after 5s
Build and deploy / build-and-deploy (push) Failing after 5s
This commit is contained in:
@@ -0,0 +1,344 @@
|
||||
# 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.**
|
||||
|
||||
---
|
||||
|
||||
## 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, party-appointed, and tribunal-secretary
|
||||
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 and describes what is available now (co-arbitration,
|
||||
tribunal secretary) versus what follows designation. Honesty here is a
|
||||
differentiator, not a weakness — and misstating it is a conduct problem.
|
||||
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 an active litigation practice 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 practice, 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/`
|
||||
|
||||
**Blocked on `AGENTS.md` Q4 — 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`, `description`, `publishDate`, `updatedDate`,
|
||||
`topics[]`, `practiceAreas[]`, `readingTime`, `draft`.
|
||||
|
||||
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 and phone
|
||||
(Q3), 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, since it is blocked on Q4
|
||||
10. `/legal/*` — written to match the backend as actually built
|
||||
11. Audit and cutover (`06-deployment.md`)
|
||||
Reference in New Issue
Block a user