<!-- source: openspec/current/home/flows.md -->

---
title: Home — Flows
status: stable
owner: pavel
audience: [pavel, ai, engineer]
tldr: Page narrative arc for the homepage — visitor flow through all blocks, audience tagging, and persona-to-block separation invariants.
---
# Home — flows

## Page narrative arc

```
Nav  ─►  Hero  ─►  WhatWeBuild  ─►  HowWeWork  ─►  Services  ─►
NowBuilding  ─►  ConnectedStack  ─►  OperatingModel  ─►  FounderNote  ─►
ForFounders  ─►  ForLegacy  ─►  TheNetworkAndCommunity  ─►
[LabPreview, conditional]  ─►  ClosingCTA  ─►  Footer
                                                              +
                                                        StickyCTA
                                                        (overlay,
                                                         appears
                                                         between
                                                         Hero and
                                                         Closing)
```

Twelve visible on-page blocks (Nav and StickyCTA are chrome / overlays; LabPreview is a conditional thirteenth that mounts only when `/lab` has at least one published article — see `blocks.md § Lab preview`). Hero opens, ClosingCTA closes; the closing ask is **client-facing only** (founder-track CTAs live on the `/founders` page per `add-founder-track/design.md § 5` invariant 1). Services moves to position 4 to surface the engagement catalog earlier in the read (per `archive/2026-05-23-fix-home-trust-blocks-and-narrative/design.md § D-HTN-4`). FounderNote (per `D-HTN-5`) carries the studio's founder identity as a mono-strip after OperatingModel — text-only, single anchor, no CTA. ForFounders dedicates a block to the founder audience without hijacking the client-facing flow. ForLegacy carries the legacy-stack-migration buyer cohort and hosts the page's single composition-pattern placement (P3, `<ModulorPattern>`) per `blocks.md § Background patterns paint-map`. TheNetworkAndCommunity follows with the open-registration / OpenSpec-apprenticeship / adversarial-review invitation (Layer A, always renders) and the curated specialist roster (Layer B, renders when at least one entry exists). `WhoWeWorkWith` and `BuildOnThePlatform` were removed from this arc on 2026-05-23 per RAP-1190 `D-HTN-6` / `D-HTN-7` (component files retained for v2 reuse). StickyCTA shadows the visitor through the middle of the page and disappears when the closing ask scrolls into view. Footer is chrome. Persona-to-block separation is enforced by `add-founder-track/design.md § 5` invariants.

**Audience tagging.** Every visible block addresses one of three cohorts: clients (default), founders (`§ Founders`), specialists (`§ The network & community`). Each block renders an `AudienceTag` in its visual contract — top of the block, mono caption tier — naming the addressed cohort. Tone resolves per the wrapper's tone-to-colour map: `clt` terracotta, `fnd` blueprint, `spc` ink. `ForLegacy` inherits the `clt` default per `archive/2026-05-24-sync-home-arc-with-rap-1190/design.md § Q-SHA-1 (d)`; introducing a fourth `lgc` cohort token is deferred to a token-system change.

---

## Page invariants

Constraints that apply across all blocks on `/`. Block-level contracts inherit these; deviations require their own change proposal.

1. **One primary CTA.** The single primary CTA on `/` is owned by `§ Closing CTA` (`cta.startProject`, terracotta button, full motion contract). Every other CTA-shaped element on the page is a **secondary link** — mono, blueprint, underlined, no button chrome, no enter-from-bottom motion. The Nav block's `cta.startProject` button is the only exception, and it is chrome (sticky overlay), not a content block.
2. **Audience tagging.** Every visible block renders an `AudienceTag` (per `design-components.md § Chip › Wrappers`) at the top of its visual contract, declaring the addressed cohort: `clt` (client) by default, `fnd` for `§ Founders`, `spc` for `§ The network & community`. See `openspec/archive/2026-05-12-extend-home-typography-and-audience-tag/design.md` for the wrapper's contract.
3. **Block count is twelve visible.** Twelve visible on-page blocks; `Nav` and `StickyCTA` are chrome / overlays; `LabPreview` is a conditional thirteenth that mounts only when `/lab` has at least one published article. None of these three count toward the visible-block invariant. Adding a visible block requires a structural change to `§ Page narrative arc`; deleting one requires the same.
4. **No mode inversion.** The home surface is light (`--bg-1`). A single block may opt into `--bg-2` as a rhythm tint per `design-system.md § Themes and surfaces`. No block on `/` renders dark.
5. **Empty-state policy is unmount, not placeholder.** When a block has no real data to render, it unmounts entirely. The page does not visually compensate. See `blocks.md § The network § Renders if` for the canonical case.

---

## Extend home typography and audience tag (applied 2026-05-12 from change extend-home-typography-and-audience-tag)

`§ Page narrative arc` gains a cross-cutting **Audience tagging** paragraph that names the three cohorts (clients, founders, specialists) addressed across the page and binds each section to the new `AudienceTag` wrapper documented in `design-components.md § AudienceTag wrapper`. Tone-to-colour mapping is fixed at the wrapper level: `clt` → `--color-accent` (terracotta), `fnd` → `--color-blueprint`, `spc` → `--color-ink`. No new colour tokens.

Per-block visual contracts for the affected sections are amended separately in `blocks.md` (Hero / Closing CTA cite `--text-display-xl`). Per-block `AudienceTag` placement inside each block's visual contract is the subject of downstream change `clarify-home-block-contracts`.

Cross-ref: `archive/2026-05-12-extend-home-typography-and-audience-tag/`. Linear: RAP-555.

---

## Page invariants & contract clarifications (applied 2026-05-12 from change clarify-home-block-contracts)

Added `§ Page invariants` section above (between `§ Page narrative arc` and the `Extend home typography and audience tag` amendment block). Five invariants establish the page-wide constraints that per-block contracts inherit:

1. One primary CTA on `/` (`§ Closing CTA § cta.startProject`); all other CTA-shaped elements are secondary links.
2. Audience tagging via the `AudienceTag` wrapper on every block.
3. Block count is thirteen (`Nav` and `StickyCTA` are chrome and do not count). _[Note: this invariant is decremented to twelve by the merge of §9 + §10 into `§ The network & community` — see `## Merge community signal into network` amendment below.]_
4. No mode inversion — home surface stays light; a single block may opt into `--bg-2` as a rhythm tint.
5. Empty-state policy is unmount, not placeholder.

Per-block contract clarifications (founder-track secondary-link rename, `§ The network § Renders if`, `§ Community signal § Page narrative role` divider contract, count audit) live in `blocks.md § Clarify home block contracts`. Together the two amendments cover Q-HOME-2, Q-HOME-3, Q-HOME-4, and Q-HOME-6 from `Redesign Brief v2.html § Pass 4`.

Cross-ref: `archive/2026-05-12-clarify-home-block-contracts/`. Linear: RAP-558.

---

## Merge community signal into network (applied 2026-05-12 from change merge-community-signal-into-network)

`§ Page narrative arc` and `§ Page invariants` updated in lockstep with the §9 + §10 merge in `blocks.md`:

1. **Narrative arc.** "The network (with CommunitySignal)" → "The network & community". Block count line "Thirteen on-page blocks…" → "Twelve on-page blocks…". Prose paragraph rewritten so the specialist arc is carried by a single block ("TheNetworkAndCommunity") rather than the previous TheNetwork + CommunitySignal pair.
2. **Audience tagging paragraph.** `spc` cohort list now reads `§ The network & community`, `§ Build on the platform` (was `§ The network`, `§ Community signal`, `§ Build on the platform`).
3. **Invariant 2** audience-tag list — same `spc` list update.
4. **Invariant 3 — Block count is twelve.** The previous "thirteen" wording is annotated with a forward note in the historical `Page invariants & contract clarifications` amendment summary above so the audit trail stays readable.

Block-level contract for the merged section lives in `blocks.md § The network & community` and `blocks.md § Merge community signal into network`. Cross-ref: `archive/2026-05-12-merge-community-signal-into-network/`. Linear: RAP-560.

---

## Collapse Design first into Services (applied 2026-05-12 from change collapse-design-first-into-services)

`§ Page narrative arc` and `§ Page invariants` updated to reflect deletion of `§ Design first` (§6) and collapse of its three-archetype framing into `§ Services § Intro`:

1. **Narrative arc diagram.** `DesignFirst  ─►` removed from the block sequence. `OperatingModel` now flows directly to `ForFounders`.
2. **Narrative arc prose.** "Twelve on-page blocks" → "Eleven on-page blocks." Sentence "DesignFirst introduces the three project archetypes (founder-led / client-led / specialist-led);" removed — the archetype framing now lives as a prose intro paragraph above the `§ Services` five-card grid.
3. **Audience tagging paragraph.** `fnd` cohort reference "founder-led card in `§ Design first`" removed; the three-archetype context migrates to `§ Services § Intro`.
4. **Invariant 3 — Block count is eleven.** The previous "twelve" wording is annotated with a forward note in the prior `## Merge community signal into network` amendment above so the audit trail stays readable.

Block-level contract for the Services intro paragraph lives in `blocks.md § Services § Intro` and `blocks.md § Collapse Design first into Services`. Cross-ref: `archive/2026-05-12-collapse-design-first-into-services/`. Linear: RAP-561.

---

## Sync home arc with RAP-1190 (applied 2026-05-24 from change `sync-home-arc-with-rap-1190`)

`§ Page narrative arc` diagram and prose paragraph rewritten in lockstep with the RAP-1190 implementation that shipped on 2026-05-23 but never produced the corresponding `flows.md` edits (Phase 9 of `archive/2026-05-23-fix-home-trust-blocks-and-narrative/`). `§ Page invariants 2` and `§ Page invariants 3` updated to match. Summary of deltas:

1. **Narrative arc diagram.** Old arc (`Hero ─► WhatWeBuild ─► NowBuilding ─► HowWeWork ─► OperatingModel ─► ForFounders ─► WhoWeWorkWith ─► TheNetwork ─► Services ─► BuildOnThePlatform ─► LabPreview ─► ClosingCTA`) replaced with the ratified D-HTN-4 arc: `Hero ─► WhatWeBuild ─► HowWeWork ─► Services ─► NowBuilding ─► ConnectedStack ─► OperatingModel ─► FounderNote ─► ForFounders ─► ForLegacy ─► TheNetworkAndCommunity ─► [LabPreview, conditional] ─► ClosingCTA`. Services promoted from position 9 to 4. FounderNote inserted after OperatingModel (new from RAP-1190 D-HTN-5). ForLegacy codified at position 11 per D-SHA-2 (was pre-existing from RAP-673 but never named in the arc). WhoWeWorkWith and BuildOnPlatform removed (D-HTN-6 / D-HTN-7; component files retained for v2). LabPreview annotated as conditional per D-SHA-1.

2. **Narrative arc prose.** Sentence chain rewritten: WhoWeWorkWith and BuildOnPlatform no longer named as on-page sections. New sentences acknowledge the Services promotion, the FounderNote insertion, the ForLegacy paint-map host role (P3 from `apply-home-background-patterns`), and the RAP-1190 D-HTN-6 / D-HTN-7 removals.

3. **Audience tagging paragraph.** `spc` cohort list shortened from "`§ The network & community`, `§ Build on the platform`" to "`§ The network & community`" (BuildOnPlatform removed). New sentence clarifies that `ForLegacy` inherits the `clt` default per Q-SHA-1 (d) — introducing a fourth `lgc` cohort token is deferred to a token-system change.

4. **Invariant 2 — Audience tagging.** `spc` list shortened to match the audience-tagging paragraph above (BuildOnPlatform removed).

5. **Invariant 3 — Block count.** "Eleven on-page blocks" → "Twelve visible on-page blocks; LabPreview is a conditional thirteenth." Annotated for audit trail: prior `## Collapse Design first into Services` amendment correctly recorded the count as eleven on 2026-05-12; the visible-count flips to twelve here only because ForLegacy is now codified as a visible block (D-SHA-2) — that block was already on the page in 2026-05-12 but was not enumerated by the spec at the time.

Cross-ref: `archive/2026-05-24-sync-home-arc-with-rap-1190/`. Parent change: `archive/2026-05-23-fix-home-trust-blocks-and-narrative/`. Linear: RAP-1190 Phase 9 follow-up.

## Declutter scroll (applied 2026-06-14 from change `reposition-home`, RAP-1290)

The owner-repositioning umbrella removes four blocks from the home scroll (structural, no copy). Follows the same pattern as the RAP-1190 D-HTN-6/D-HTN-7 removals above — gone from the arc, component files + i18n keys retained.

1. **Narrative arc diagram.** The D-HTN-4 arc is replaced with: `Hero ─► WhatWeBuild ─► HowWeWork ─► Services ─► NowBuilding ─► FounderNote ─► TheNetworkAndCommunity ─► [LabPreview, conditional] ─► ClosingCTA`. Removed from the scroll: **ConnectedStack** + **OperatingModel** (internal/duplicative on the owner home — D-RH-16) and **ForFounders** + **ForLegacy** (off-audience → `/founders`, `/legacy` — D-RH-2/D-RH-16). FounderNote now follows NowBuilding directly.
2. **Narrative arc prose.** The §-chain sentences naming ConnectedStack, OperatingModel, ForFounders, and ForLegacy as on-page sections are superseded — those audiences/material live on `/founders`, `/legacy`, `/method`, `/openspec`, `/principles`; nav "For founders" + footer "Legacy" keep them reachable. The ForLegacy paint-map host role (P3 `<ModulorPattern>`) is retired with the block → home pattern budget **1/1 (P4 only)** (D-RH-17). The component files + i18n keys are retained for v2 reuse (cf. WhoWeWorkWith / BuildOnPlatform); logged as cleanup-debt.
3. **Invariant 3 — Block count.** "Twelve visible on-page blocks" → **"Eight visible on-page blocks"** (Hero, WhatWeBuild, HowWeWork, Services, NowBuilding, FounderNote, TheNetworkAndCommunity; ClosingCTA is client-facing close); `Nav`/`StickyCTA` remain chrome; `LabPreview` remains the conditional extra. Four visible blocks removed (12 − 4 = 8).
4. **Audience tagging.** With ForFounders/ForLegacy off the scroll, the home no longer hosts the `fnd`/`lgc` cohorts inline — the remaining visible blocks are `clt` (client/owner) default + `spc` (TheNetworkAndCommunity). The `fnd` cohort lives on `/founders`.

Cross-ref: `changes/reposition-home/design.md § Declutter scroll (D-RH-16/17)`. Authority: `_methodology/research/market-landscape-and-positioning-md-ro-il-2026-06.md` §9.

## Phase 2 — reposition (spine A) (applied 2026-06-15 from change `reposition-home`, RAP-1292 — Change A)

The owner-repositioning umbrella moves from subtractive (Phase 1) to **repositioning**. Change A embodies spine A (D-RH-19): the person + outcome lead; AI/agents are the "how," shown after trust.

1. **Narrative arc diagram.** The declutter arc is replaced with: `Hero ─► Services(pain) ─► FounderNote ─► NowBuilding(proof) ─► HowWeWork ─► WhatWeBuild ─► ClosingCTA`. Three structural moves: **pain ↑** (Services 4→2), **founder ↑** (FounderNote 6→3), **agents ↓** (WhatWeBuild 2→6). Removed from the scroll: **TheNetworkAndCommunity** (`spc` audience → its own door, D-RH-20) and **LabPreview** (single-audience focus). The component files + pages are retained.
2. **Invariant 3 — Block count.** "Eight visible on-page blocks" → **"Six visible on-page blocks"** (Hero, Services, FounderNote, NowBuilding, HowWeWork, WhatWeBuild; ClosingCTA is the client-facing close). `Nav`/`StickyCTA` remain chrome. **LabPreview is no longer the conditional extra** — removed from the home composition entirely. Two visible blocks removed (8 − 2 = 6).
3. **Audience tagging.** With TheNetworkAndCommunity off the scroll, the home no longer hosts the `spc` cohort inline — every visible block is now **`clt` (client/owner) only**, matching the single-primary-audience decision (D-RH-20). The `spc` cohort lives on `/specialists` + the network page; `fnd` on `/founders`.
4. **Hero (D-RH-23).** Person-forward: bare-name eyebrow + first-person positioning + risk-reversal lines; secondary CTA re-pointed into the pain block (`#services`) so it leads into the arc, not past it.

Cross-ref: `changes/reposition-home/design.md § Phase 2 — reposition (spine A) (D-RH-19…23)`. Authority: external "two voices" critique + per-section live-site review.
