Status: READY (depends on Lane and Pins assets being shipped) Type: Content writing session Estimated duration: 4-6 focused hours Output: 4 production MDX content sections + 1 commit Created: 2026-04-13
| Field | Value |
|---|---|
| Session ID | Handoff 06 |
| Session type | Content batching |
| Cluster name | Foundation (Chapter 1: The Basics) |
| Sections in batch | 4 |
| Asset dependencies | Lane (Handoff 02), Pins (already shipped) |
| Content map note | The pin-deck content has visual support; lane-related content waits for the lane asset to fully render with markings |
| PRD requirements served | FR-1, NFR-6 |
| PRD milestone advanced | M2 (Content Wave 1) |
| Persona served | All personas (this is foundational orientation content) |
| Stop condition | After commit, before push |
| Parallel-safe with | Asset-build sessions (different files) |
| NOT parallel-safe with | Other content batches (would touch content-map.ts) |
The Foundation Cluster is Chapter 1 — the foundational orientation content that any new bowler needs before they can absorb the more advanced equipment/release/strike topics. It's deliberately not the first batch because it requires the Lane and Pins assets to render meaningfully — but it should be the second content batch shipped, because once it lands, a reader can navigate the site sequentially from "What's a bowling lane?" to "What's rev rate?" and the learning path makes sense.
| # | Section | URL | Lines |
|---|---|---|---|
| 1 | The Lane | /learn/the-basics/the-lane |
110-130 |
| 2 | The Pins | /learn/the-basics/the-pins |
90-110 |
| 3 | How Scoring Works | /learn/the-basics/scoring |
110-130 |
| 4 | Board Numbering | /learn/the-basics/board-numbering |
90-110 |
Total expected output: ~400-480 lines of MDX.
The voice rules, structure template, component API, and quality bar are IDENTICAL to Handoff 01 (Content Batch 1). This handoff doesn't repeat all of that — it references Handoff 01 as the canonical voice/structure source.
The differences:
- Different sections (Ch 1 instead of Ch 2 + Ch 5)
- Different research source (
lane-science-and-oil-patterns.mdandstrike-physics-and-scoring-science.md) - Different scene names that depend on Lane and Pins assets
- Slightly more "introductory" tone since this is foundational content
The atomic task template from Handoff 01 Part 5 applies unchanged. Refer to it directly.
-
docs/handoffs/01-CONTENT-BATCH-1-CUSTOM-BALL-OWNER.md(~25 min)- Read Parts 3, 4, 5, 7, 10, 11 in particular
- Voice rules, component API, atomic task template, common pitfalls, stop conditions
- This handoff INHERITS Handoff 01's voice and structure rules — re-read them so they're fresh
-
content/the-release/rev-rate.mdx(~5 min)- The canonical voice reference (still THE North Star)
-
docs/specs/14-PRD.mdpersona section (~5 min)- Refresh on Joe (primary persona) — Foundation content serves him too, just earlier in his journey
-
docs/GLOSSARY.md(~10 min)- Definitions for: lane, board, foul line, gutter, pin, pin deck, pocket, frame, strike, spare, scoring system
-
docs/specs/07-INTERACTION-BLUEPRINTS.mdsections 1.1-1.4 — find via Grep - Research files for each section (see Part 4 below)
This handoff explicitly INHERITS from Handoff 01 the following (re-read in 01, do not duplicate here):
- Part 3: The Voice Bible — three hard rules, forbidden phrases, approved opening patterns, voice comparison test
- Part 4: Component API — Callout 4 variants, SceneCue rules, MDX syntax gotchas
- Part 5: The Atomic Task Template — Phases A through F per section
- Part 7: Cross-Section Quality Pass — same checks but apply to 4 sections instead of 5
- Part 10: Common Pitfalls — bowling-content-specific traps (axis confusion is less relevant here, but jargon definition is critical)
- Part 11: Stop Conditions — same rules
What's DIFFERENT in this handoff: Part 4 below (per-section specifics) and the commit message (Part 5).
Goal: A new bowler understands the physical layout of a bowling lane — its dimensions, markings, gutters, and the coordinate system bowlers use to talk about positions.
File path: content/the-basics/the-lane.mdx
URL: /learn/the-basics/the-lane
Content map entry:
"the-basics/the-lane": {
title: "The Lane",
chapter: "The Basics",
chapterNumber: 1,
scene: "the-lane",
description: "60 feet of wood (or synthetic), 39 boards wide, with arrows and dots that everything else references",
},Blueprint reference: docs/specs/07-INTERACTION-BLUEPRINTS.md §1.1 "The Lane"
Research source: docs/research/lane-science-and-oil-patterns.md §1
- Grep for
"60 feet"or"USBC"or"lane dimensions" - The file is 743 lines — use Read with offset
Key concepts to convey (5-8 facts):
- Lane is 60 feet long, 41.5 inches wide, with 39 boards (each just over 1 inch wide)
- Foul line at 0 feet, lane dots at 7 feet, arrows at 15 feet, pins at 60 feet
- Gutters on either side, 9 inches each
- Three zones based on ball motion: heads (0-20 ft), midlane (20-40 ft), backends (40-60 ft)
- Lanes are made of wood (traditional maple+pine) or synthetic (modern polymer)
- The boards and arrows are the coordinate system bowlers use — "I'm playing 10 at the arrows" means "I'm aiming at the second arrow on board 10"
- The foul line is a HARD line — stepping over it = zero pins
- Most modern centers use synthetic; traditional centers still use wood
SceneCue params (from blueprint, COPY VERBATIM):
<SceneCue
label="See it: The full 60 feet"
description="Pull back and see the entire lane from approach to pin deck"
params={{ highlightBoard: 20, showZones: false, showBoardNumbers: true }}
/>
<SceneCue
label="See it: The three zones"
description="Heads (blue), midlane (yellow), backends (green) — the ball's journey"
params={{ showZones: true, showBoardNumbers: false }}
/>
<SceneCue
label="See it: Where you aim — the arrows at 15 feet"
description="7 arrows on boards 5, 10, 15, 20, 25, 30, 35"
params={{ showMarkings: "Arrows Only", highlightBoard: 10 }}
/>Approved opening pattern: "Surprising fact" — most people think a bowling lane is "long and narrow." It's actually 60 feet of precision instrument with marks and zones bowlers use to play the surface.
Length target: 110-130 lines (this is data-heavy with all the dimensions)
Glossary terms: Lane, board, foul line, gutter, arrows, lane dots, heads, midlane, backends, wood lane, synthetic lane, USBC
The "aha moment": Dragging the highlight board slider from 1 to 39 and realizing each board is barely an inch wide. Bowlers aim at SPECIFIC inches at a target 60 feet away. The precision required is enormous.
Goal: A new bowler understands the 10 pins — their dimensions, the triangle layout, the numbering convention, and the surprising fact that the ball only directly hits 4 of them.
File path: content/the-basics/the-pins.mdx
URL: /learn/the-basics/the-pins
Content map entry:
"the-basics/the-pins": {
title: "The Pins",
chapter: "The Basics",
chapterNumber: 1,
scene: "the-pins",
description: "10 pins in a triangle, but the ball only touches 4 of them",
},Blueprint reference: §1.2 "The Pins"
Research source: docs/research/strike-physics-and-scoring-science.md §1
- Grep for
"pin"or"USBC pin specifications"
Key concepts to convey:
- 10 pins arranged in an equilateral triangle, 12 inches center-to-center
- Each pin: 15 inches tall, 3 lbs 6-10 oz, max body diameter 4.766 inches
- Made of laminated maple wood with plastic coating (USBC spec)
- Numbered 1 through 10 in rows: row 1 = pin 1 (head pin), row 2 = pins 2-3, row 3 = 4-5-6, row 4 = 7-8-9-10
- Pin 1 = head pin, pins 7 and 10 = corner pins (the hardest to leave standing alone)
- The ball only directly hits 4 pins on a strike: 1, 3, 5, 9 (for a right-hander). The other 6 fall via chain reactions.
- Pins fall when tilted past 9-11 degrees — surprisingly little force
- Pin deck is the back area where pins stand; made of harder material than the lane
SceneCue params (from blueprint, COPY VERBATIM):
<SceneCue
label="See it: The triangle"
description="Overhead view, 12-inch spacing between pins"
params={{ cameraAngle: "overhead", showSpacing: true }}
/>
<SceneCue
label="See it: Row by row"
description="Pins light up by row: head pin gold, row 2 blue, row 3 green, row 4 red"
params={{ highlightRow: "animated-sequence" }}
/>
<SceneCue
label="See it: Where strikes happen — only 4 pins"
description="The ball only touches pins 1, 3, 5, 9. The other 6 fall from chain reactions."
params={{ highlightPins: [1, 3, 5, 9], dimOthers: true }}
/>Approved opening pattern: "Surprising fact" — a strike isn't about the ball knocking down 10 pins. The ball only touches 4 of them.
Length target: 90-110 lines
Glossary terms: Pin, pin deck, head pin, pocket, strike, USBC, chain reaction (pin action)
The "aha moment": The "Where strikes happen" SceneCue. Bowling is a chain reaction, not a direct hit. The ball is the spark; the pins do the work. This is the foundation for understanding pin action (Ch 8) later.
Goal: A new bowler understands traditional bowling scoring — frames, strikes, spares, the bonus mechanic, why a perfect game is 300, and the 10th frame oddity.
File path: content/the-basics/scoring.mdx
URL: /learn/the-basics/scoring
Content map entry:
"the-basics/scoring": {
title: "How Scoring Works",
chapter: "The Basics",
chapterNumber: 1,
scene: "scoring",
description: "Frames, strikes, spares, and why a perfect game is 300",
},Blueprint reference: §1.3 "How Scoring Works"
Research source: docs/research/strike-physics-and-scoring-science.md §8
- Grep for
"scoring"or"frame"or"strike bonus"
Key concepts to convey:
- A game = 10 frames. Each frame = up to 2 balls (3 in the 10th)
- Knock down all 10 pins on the FIRST ball = strike (X). Worth 10 + the next 2 balls.
- Knock down all 10 pins on the SECOND ball (after leaving some on the first) = spare (/). Worth 10 + the next 1 ball.
- Open frame = some pins left after both balls = just the count.
- Strike bonus = next 2 balls is why the score "waits" — frame 1's strike doesn't fill in until frame 2 finishes
- Three strikes in a row = a "turkey" = 30 in the first frame. Maximum frame value = 30.
- Perfect game = 12 strikes in a row = 300. (Why 12 if there are only 10 frames? The 10th frame allows up to 3 balls if you strike — bonus rolls.)
- League average for adult recreational bowlers: ~150. Pros: 220+.
SceneCue params (from blueprint):
<SceneCue
label="See it: How a strike scores"
description="Frame 1 stays blank until you see balls 2 and 3 — then it fills in retroactively"
params={{ scenario: "Strike", autoPlay: true }}
/>
<SceneCue
label="See it: Why spares matter"
description="Spare + 8 = 18. Open frame (8, 1) = 9. Same pin count, 9-pin difference."
params={{ scenario: "Spare", showComparison: true }}
/>
<SceneCue
label="See it: The perfect 300"
description="12 consecutive strikes. Score climbs: 30, 60, 90... 300 in gold."
params={{ scenario: "Perfect Game", autoPlay: true }}
/>Approved opening pattern: "The question" — "Why is a perfect game 300 instead of 100? The answer reveals everything about how scoring actually works."
Length target: 110-130 lines (scoring needs explanation room)
Glossary terms: Frame, strike, spare, perfect game, head pin
The "aha moment": The Turkey animation. Watching frame 1 stay blank through 3 balls, then suddenly score 30. The realization that bowling scoring rewards SEQUENCES, not single shots. Strikes pay forward.
Goal: A new bowler understands the board numbering system that bowlers use to communicate positions and adjustments — and viscerally understands how narrow each board really is.
File path: content/the-basics/board-numbering.mdx
URL: /learn/the-basics/board-numbering
Content map entry:
"the-basics/board-numbering": {
title: "Board Numbering",
chapter: "The Basics",
chapterNumber: 1,
scene: "board-numbering",
description: "39 boards across the lane, each barely an inch wide — and bowlers aim at specific ones",
},Blueprint reference: §1.4 "Board Numbering"
Research source: docs/research/lane-science-and-oil-patterns.md §1.2 + §2
- Grep for
"39 boards"or"board numbering"
Key concepts to convey:
- The lane has 39 boards running its length (foul line to pins). Each is just over 1 inch wide.
- Numbered 1 to 39, right to left for right-handed bowlers (board 1 is the right gutter side, board 20 is center, board 39 is the left gutter side)
- Left-handed convention is mirrored (board 1 on their right side becomes board 1 on the lane's left side from the right-hander's perspective)
- The arrows at 15 feet are at boards 5, 10, 15, 20, 25, 30, 35 (every 5 boards)
- The track area — boards 8-12 — is where most balls travel and the first to dry out
- "Move 2 boards left" means moving less than 2 actual inches — a tiny adjustment that completely changes where the ball arrives 60 feet away
- Bowlers describe their target line in board numbers: "I'm playing 12 at the arrows out to 4 at the breakpoint"
- The board system is the SHARED LANGUAGE bowlers use for everything — adjustments, coaching, equipment recommendations
SceneCue params (from blueprint):
<SceneCue
label="See it: How narrow a board really is"
description="Slider exaggerates board width 5x, then drops to actual size — barely visible"
params={{ boardWidthExaggeration: 1, highlightBoard: 10 }}
/>
<SceneCue
label="See it: Arrow-to-board connection"
description="Each arrow glows with its board number"
params={{ showArrows: true, showArrowLabels: true }}
/>
<SceneCue
label="See it: The track area"
description="Boards 8-12 — where most balls travel"
params={{ highlightRange: [8, 12], highlightColor: "orange" }}
/>Approved opening pattern: "Direct + stakes" — "Bowlers aim at specific inches at a target 60 feet away. The board numbering system is how they talk about it."
Length target: 90-110 lines
Glossary terms: Board, boards, arrows, track area, gutter
The "aha moment": The Board Width Exaggeration slider. At 5x, "board 10" looks like a wide plank — easy target. At 1x actual size, each board is barely an inch — pencil width. The user viscerally understands that "move 2 boards left" is moving less than 2 inches, and bowlers make these microscopic adjustments to change where the ball arrives 60 feet away.
For each of the 4 sections, work through Phases A through F as defined in Handoff 01 Part 5. The template is identical:
- Phase A: Research & Orientation (~15-20 min)
- Phase B: Outline (~10 min)
- Phase C: Write (~30-45 min)
- Phase D: Quality Pass (~10 min)
- Phase E: Register in content-map.ts (~3 min)
- Phase F: Verify (~5 min)
Use the per-section specifics in Part 4 above for: file path, content-map entry, research source, key concepts, exact SceneCue params, opening pattern, length target, glossary terms, and "aha moment."
After all 4 sections individually pass Phase F:
- CS1. Read all 4 sections in browser as a sequence. Do they form a coherent introduction? Does The Lane → The Pins → How Scoring Works → Board Numbering feel like a natural progression?
- CS2. Cross-reference: "The Lane" mentions arrows briefly, "Board Numbering" goes deep on them. Make sure they don't repeat the same explanation — each builds on the other.
- CS3. Verify NO section uses bowling jargon undefined. Cross-check against
docs/GLOSSARY.md. - CS4. Verify SceneCue counts: each section should have 2-4 cues
- CS5. Verify total line count: ~400-480 lines across the 4 files
- CS6.
npm run build— must succeed - CS7.
npx tsc --noEmit— clean - CS8. All 4 routes return 200:
for path in the-basics/the-lane the-basics/the-pins the-basics/scoring the-basics/board-numbering; do curl -s -o /dev/null -w "$path: %{http_code}\n" http://localhost:6200/learn/$path done
-
Stage:
git add content/the-basics/the-lane.mdx git add content/the-basics/the-pins.mdx git add content/the-basics/scoring.mdx git add content/the-basics/board-numbering.mdx git add src/lib/content-map.ts
-
Commit message:
content: chapter 1 foundation cluster (4 sections)
Adds Content Batch 2 — the Foundation Cluster — covering the orientation
material every new bowler needs before diving into equipment, release,
or strike physics.
Sections:
- the-basics/the-lane — physical lane: 60ft, 41.5in, 39 boards, markings
- the-basics/the-pins — 10 pins in a triangle, only 4 directly hit on a strike
- the-basics/scoring — frames, strikes, spares, why a perfect game is 300
- the-basics/board-numbering — the coordinate system, viscerally narrow boards
All 4 sections target both the primary persona (Joe — new custom-ball
owner orienting himself) and secondary persona (Pat — the returning
bowler refreshing fundamentals). Voice matches rev-rate.mdx canonical
reference and follows spec 08 voice rules.
Scene components for the new scene names (the-lane, the-pins, scoring,
board-numbering) will be built in a future scene-building session —
content pages currently fall through to DefaultScene. The Lane and
Pins assets are already shipped, so once their scenes are built the
visual experience activates immediately.
Site goes from 6 → 10 production content sections.
PRD: serves FR-1, NFR-6. Advances milestone M2 (Content Wave 1) toward
its 10-section target.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Verify commit, DO NOT push.
- Update
docs/STATUS.md— add the 4 new sections, update count to 10/53, add commit hash - Commit:
docs: status update after content batch 2 - Stop.
| PRD Reference | Contribution |
|---|---|
| FR-1 (Educational content) | 4 of 53 sections written; total now 10/53 |
| NFR-6 (Voice consistency) | 4 sections matching rev-rate.mdx canonical voice |
| Persona Joe | Foundational orientation Joe needs before the equipment content |
| Persona Pat | Returning bowler's refresher on basics |
| Journey 1 & 2 | First-visit users now have a clear "start here" entry: The Lane → The Pins → Scoring → Board Numbering → (then Ch 2) |
| Milestone M2 | M2 requires 10 sections + 10 scenes. After this session: 10 sections shipped, scenes still in progress. |
You are executing Handoff 06 — Content Batch 2: Foundation Cluster (Ch 1).
The complete handoff document is at:
docs/handoffs/06-CONTENT-BATCH-2-FOUNDATION.md
READ THAT FILE IN FULL FIRST.
Your goal: write 4 production MDX content sections for Chapter 1
(The Basics) — The Lane, The Pins, How Scoring Works, Board Numbering.
Total target output: 400-480 lines of polished MDX across 4 files.
This handoff INHERITS voice rules, structure template, component API,
and atomic task template from Handoff 01 (Content Batch 1). You MUST
read both:
Required reading order (BEFORE writing):
1. docs/handoffs/06-CONTENT-BATCH-2-FOUNDATION.md (this file)
2. docs/handoffs/01-CONTENT-BATCH-1-CUSTOM-BALL-OWNER.md — re-read
Parts 3, 4, 5, 7, 10, 11 for voice/structure/atomic-tasks/pitfalls/stops
3. content/the-release/rev-rate.mdx — the canonical voice reference
4. docs/specs/14-PRD.md persona section
5. docs/GLOSSARY.md — definitions for: lane, board, foul line, gutter,
pin, pin deck, frame, strike, spare, perfect game, arrows, etc.
Per section, you'll also read:
- The matching blueprint in docs/specs/07-INTERACTION-BLUEPRINTS.md
sections 1.1-1.4 (use Grep)
- Research files: docs/research/lane-science-and-oil-patterns.md §1-2
and docs/research/strike-physics-and-scoring-science.md §1, §8
(use Grep + Read with offset — files are too large to read whole)
Workflow: For each of the 4 sections, work through Phases A-F as
defined in Handoff 01 Part 5. Use the per-section specifics in Part 4
of THIS handoff for: file path, content-map entry (copy-pasteable),
research source, key concepts, exact SceneCue params (verbatim from
blueprint), opening pattern, length target, glossary terms, and the
"aha moment" the prose must build toward.
After all 4 sections pass Phase F, do the cross-section quality pass
in Part 6, commit with the message in Part 7, then update STATUS.md
as a separate small commit. Do NOT push.
Stop conditions and pitfalls inherited from Handoff 01.
This session is parallel-safe with asset-build sessions but is NOT
parallel-safe with other content batch sessions (they'd both touch
content-map.ts and could conflict).
Begin by reading both handoff docs. Confirm when ready to start
Section 1.