AINA Platform · Implementation Plan Copy · Voice · UX · IA 2026-05-30

Make the Product Keep the Promises the Homepage Makes

Eight vertical slices that fix the broken assessment mechanics and reframe the homepage around the driving-school story already written into the About page — built on the existing backlog, not duplicating it.

Ali Mehdi Mukadam · co-authored with Claude · 2026-05-30 · origin: docs/inbox/2026-05-30/frontend-copy-ux-audit.md
What this plan does

Fix the broken mechanics — render the score inline (kill the redirect), lead the results screen with the real posture instead of a placeholder, give a posture-specific next step — and reframe the homepage around the driving-school narrative (AIN-331). One source of truth for copy lives in a new content/marketing/, so surfaces stop inventing their own words. Eight slices, each one Linear issue / one branch / one PR.

BEFORE /assessment redirect → /score"your shape." generic demo AFTER / driving-schoolnarrative one intake score + postureINLINE in chat posture-specificnext step
The redirect and the placeholder go away; the score appears in the conversation the homepage already promises, then routes to a real next step.
01 — Decision

One vocabulary: posture, score, band. Retire "shape."

The product computes three real things and one vague one. "Posture" already has five specific narratives and a tested rule engine; "shape" has nothing behind it. Collapse to:

TermRoleUser-facing?
Posturewho you are as a learner — the human identityYes — primary label
Score (0–100)the numberYes — headline metric
Bandthe score's tier (Cautious Start → Native)Yes — secondary
ShapeRetire
02 — Foundation

Copy gets a source of truth

The root cause of the placeholder and the AI-cadence is that copy is invented inline with no reviewed home (content/ holds only AGENTS.md). U1/U2 create it; every other slice pulls from it.

content/marketing/
  voice-guide.md     # de-AI-ify rules; About is north star
  vocabulary.md      # the D2 map
  icp-personas.md    # from PKM wiki + docs/_archive
  narrative.md       # driving-school frame (AIN-331)
  messaging-pillars.md # relevance · skill · durability
  copy-deck/ + .csv   # canonical per-surface strings
The voice fix, preciselyNot "delete em-dashes." Break the repeated "statement — fragment" rhythm, kill the "honest" tic, define a jargon ladder (flight-simulator yes; centaur/exposure-ceiling gated). The About manifesto is the exemplar to match, not rewrite.
03 — Slices

Eight vertical units for parallel agents

Codex reviewed twice · all 7 findings resolvedAn independent Codex pass folded these fixes in: U4 preserves every redirect side-effect and syncs score/band with the Worker (which rejects mismatch); U6 freezes the intake contract before U4 (not parallel-safe); /score permalink guardrails; U5 deterministic posture→lesson mapping (30 lessons, not 32). A second Codex pass confirmed all seven resolved and added two follow-ups (now applied): U4 phrased "after the final intake turn" not "Q6"; U6 scope now includes the Worker assessment route + tests. Full review in the repo.

U1 · Voice guide + vocabulary + marketing scaffold

The reviewed source of truth for all copy, including the D2 decision and de-AI-ify rules from About.

Depends: none (foundation) · Feeds AIN-251 · content/docs

U2 · Import ICP, personas, messaging, driving-school narrative

Adapt (not copy) from PKM wiki + docs/_archive into the marketing home. Narrative is the homepage spine.

Depends: U1 · Links AIN-331, AIN-251

U3 · Reframe the homepage (driving-school)

Rewrite hero + section copy from the deck; lead with feeling, defer the four-noun mechanism, keep flight-simulator. Independent of PR #302; resolve landing-v6 conflicts at merge.

Depends: U1, U2 · Extends AIN-331, AIN-79

U4 · Render the score inline in the chat (D1)

Score + posture as a terminal chat message; remove the redirect; keep /score as a deep-link permalink + email bridge (AIN-167). Reverses AIN-133's redirect deliberately.

Depends: U1, and U6's intake contract first (not parallel-safe) · must preserve all redirect side-effects + sync score/band with the Worker (rejects mismatch) · AIN-167 bridge via explicit "Save result" → /score permalink (default) · refs AIN-133/166/167

U5 · Fix the results payoff

Replace "your shape." with the computed posture identity; deterministic posture→lesson mapping (capability slug → lesson id); /score permalink guardrails (no fabricated default score); fix the count — 30 lessons, not 32.

Depends: U4, U1 · Extends AIN-135

U6 · Merge the two intakes; retire /quiz (D3)

One canonical intake at /assessment; redirect the orphaned 7Q quiz (AIN-114). Golden posture tests (AIN-111) must stay green.

Depends: U1 · Blocks U4 (freeze the intake contract first) · References AIN-114, AIN-166

U7 · IA cleanup — nav, CTAs, stale routes

One nav model, one canonical CTA label, retire /index-pre-v6, fix the About→waitlist→assessment hop.

Depends: U1 · Links AIN-134

U8 · De-AI-ify copy sweep

Apply the voice guide to remaining surfaces (reflections, score bands, posture descriptions, secondary pages). Sub-sliceable by route.

Depends: U1; best after U3, U5 · Extends AIN-251

04 — Sequencing

Foundation first, then fan out

U1 U2 U3 U6 U4 U5 U7 U8
U1→U2 (foundation, serial). U3 parallelizes. But U6 freezes the intake contract before U4 (they share diagnostic-data.ts + the Worker-validated surface — not parallel-safe). U5 follows U4. U7 / U8 cleanup, last.
05 — Linear

Extend the backlog, don't duplicate it

This area is heavily tracked. Per your call, slices map onto existing issues; new issues only for genuinely uncovered work. Nothing is created until you approve this set.

UnitActionLinear
U1 voice + vocab + scaffoldNEWfeeds AIN-251
U2 ICP + narrative importNEWlinks AIN-331, AIN-251
U3 homepage reframeEXTENDAIN-331 + AIN-79
U4 inline score (D1)NEWrefs AIN-133, AIN-166
U5 results payoffNEWrefs AIN-135
U6 intake merge + retire quizNEWrefs AIN-114, AIN-166
U7 IA cleanupNEWlinks AIN-134
U8 copy sweepEXTENDAIN-251

Founder go-live gates AIN-251 (approve copy/voice) and AIN-252 (approve assessment flow) already exist — these build issues feed them; they are not duplicated.

06 — Risks

What could go wrong

Reversing AIN-133's redirect could regress the email/signup bridge (AIN-166/167) — mitigated by keeping /score as a working permalink and an integration test on the bridge. landing-v6 conflicts with PR #302 — copy-only vs visual-frame, mechanical conflicts, second-to-merge rebases. The voice sweep could overreach into the good About copy — the guide names About as the exemplar to preserve. The posture-specific next step could promise a path that isn't built — route to the real first lesson if it exists, else label honestly as a preview, never a hollow "locked path."

Where to start

U1 and U2 first — give copy a home and lock the vocabulary. Everything else fans out from there.