# Inkhaven 1.3.4 — The Planning Board: the shape of the rise and fall

_On top of 1.3.3. 1.3.2 diagnosed where each beat **lands**; 1.3.3 made
mapping **fluent**. 1.3.4 adds the two things the Board still couldn't
see — **intensity** (a tension curve) and **scene-level** craft (scene
cards) — plus the deferred outline interactions. Full plan:
[PLANNING-3_PLAN.md](../PROPOSALS/PLANNING-3_PLAN.md)._

## Headline

- **Tension curve** — every beat now carries an *expected* intensity (the
  framework's authored dramatic shape) measured against an *actual*
  intensity derived from the manuscript, so a sagging middle is an
  objective finding ("Midpoint: tension 33% where the framework wants
  65%"), not a vibe. Deterministic — no render-time AI.
- **Scene cards** — a finer grain than beats: each scene's
  goal → conflict → disaster, with a deterministic weak-scene check (a
  scene that states a goal but never turns).
- **Interactive outline, finished** — the deferred `t` (thread-link) and
  `Enter` (jump-to-chapter) keys, plus `v` for the scene board.

## The tension curve

Beat **placement** (drift, pacing) was 1.3.2's story; **intensity** is
1.3.4's. A midpoint can land at exactly 50% and still be flat.

- **Expected** is authored canon, like `target_position`: every beat of all
  five frameworks gets an `expected_tension` — calm open, peak in the back
  half, the canonical rise and fall.
- **Actual** is *open narrative-obligation density* — the count of debts in
  the air at each point, derived deterministically from data you already
  keep: the **tension ledger** (`inkhaven tension scan`'s introduced /
  resolved tags) and your open **Threads** (weighted by each arc's
  tension). A question raised but unpaid keeps the line high.

Where expected is high but actual is low, the beat is flagged **flat**.
`inkhaven plan check` prints a **TENSION** section (and `--json` carries the
curve); the **`Ctrl+V Shift+K`** outline draws expected + actual as
block-ramp sparklines (`▁`..`█`) aligned under the position bars, so a
beat's `●` sits over its actual-tension cell. With no scan and no linked
threads you still get the expected shape, with a hint.

## Scene cards

Beats are chapter-scale; scene cards work one level down — each scene's
**goal → conflict → disaster** (Swain). The deterministic check is the
**turn**: a scene that states a goal but has no disaster doesn't turn.

- `inkhaven plan scene add <title> --chapter <slug> [--goal … --conflict …
  --disaster …]`, `plan scene list` (grouped by chapter with G/C/D marks +
  weak flags), `plan scene set`, `plan scene remove`. Cards live under a
  **Scenes** chapter of the Planning book.
- Folded into `plan check` (a SCENES section + the no-turn findings) and
  surfaced in the outline: press **`v`** for the scene board.
- `plan analyze` reads the cards too — it names the scenes that don't turn
  and suggests the missing turn.

## Interactive outline, finished

The `Ctrl+V Shift+K` outline gains the deferred 1.3.3 interactions:

- **`t`** — link threads to the selected beat (Space toggles each).
- **`Enter`** — open the beat's mapped chapter in the editor.
- **`v`** — flip to the scene board.

joining `m` (map), `s` (status), and `a` (analyze) from 1.3.3.

## Under the hood

- Zero new dependencies — the curve is pure arithmetic over the existing
  ledger / threads / chapter positions; scene cards reuse the HJSON-
  paragraph write-back.
- New pure, unit-tested helpers: `planning::tension_curve`,
  `intensity_sparkline`, `analyze_scenes`, `tension::obligation_spans`.
- Tests 1307 → 1316. One tutorial refreshed (67).

## Deferred (later cuts)

- **`plan scene scaffold`** — AI proposes a scene card from the chapter
  prose. The most complex P4 item; the CLI scene cards already cover
  authoring.
- **Tension model depth** — per-scene tension, AI-rated intensity as an
  `analyze`-tier overlay (the curve stays deterministic by default).
- **Sequel cards** — reaction / dilemma / decision, the reactive
  counterpart to the proactive scene.

## Carryovers (still open)

- **The Whole-Book AI Editor** (RAG over the whole manuscript) → 1.4+.
- **1.2.20:** ePub inline images + popup footnotes.
- **Facts follow-ups (1.2.21):** internal-consistency check, series-shared
  facts.
- PDF follow-ups: N-up / booklet quick-impose presets; CMYK-JPEG grayscale.
- Sixth supported language; GitHub Release backfill for 1.2.11–1.2.19.
