# Inkhaven 1.3.31 — The timeline critique, pruned

_The timeline shipped in 1.2.6 with an AI critique that ran a five-item audit and
streamed prose into the AI pane. It was right for its time — WORLD-4, INNER_SOCRATES-1,
and the Output pane didn't exist yet. They do now, and four of those five items have
a better home: travel-time and co-location belong to the world fact-checker, date
mismatches to its `date_coherence`, pacing to the Socratic reader's `temporal_density`.
1.3.31 prunes the duplication. What remains is the genuinely **timeline-internal**
specialty no other system understands — **orphan events** and **fuzzy-precision
overlaps** — now structured, graded, multilingual, and emitting to the Output pane.
This is RFC TIMELINE-2-INTEGRATION, the close of the timeline-aware trilogy._

_Plan: [TIMELINE-2-INTEGRATION_PLAN.md](../PROPOSALS/TIMELINE-2-INTEGRATION_PLAN.md) ·
Tutorial: [81 — Migrating the timeline critique](../Tutorials/81-timeline-critique-migration.md)
· Timeline: [31 — Story timeline](../Tutorials/31-story-timeline.md)_

## What's kept — two timeline-internal checks

The `y` / `Y` / `Ctrl+Y` / `F12` chords (and `inkhaven event critique`) now run two
pattern-based checks over a scope and emit structured findings to the **Output pane**:

- **Orphan events** (`⊘`) — events linked to nothing (no paragraphs, characters, or
  places). Severity grades by **significance × staleness**: a detailed, concretely-dated
  event left orphaned for months is a contradiction; a fresh stub is a passing note.
- **Fuzzy-precision overlap** (`⧉`) — `season` / `month`-precision events whose fuzz
  windows collide *suspiciously* (same track, shared character or place). Three-plus
  mutually overlapping events emit one **cluster** finding instead of pairwise noise.

Both join fact-check and Socratic findings on the same surface: same severity model,
`Enter` to jump to the event, `a` to ask the AI, `d` to dismiss. Findings are
localized to the project's working language (EN/RU/ES/FR/DE). Optional cost-capped
LLM **elaboration** explains *why* a finding is worth a look when a provider is
configured.

## What moved — and where

| Legacy critique item | Now done by | Command |
|---|---|---|
| Travel-time conflicts | world fact-checker `travel_time` | `inkhaven realworld fact-check --timeline-aware` |
| Co-location conflicts | world fact-checker `co_location` | `inkhaven realworld co-location` |
| Paragraph-date mismatches | world fact-checker `date_coherence` | `inkhaven realworld fact-check --timeline-aware` |
| Pacing (gaps / rushes) | INNER_SOCRATES `temporal_density` | `inkhaven inner-socrates check` |

## Surfaces

- **TUI** — the chords are unchanged; only the output is (structured findings in the
  Output pane, not streaming prose). `F12` is the whole-project scope.
- **CLI** — `inkhaven event critique [--track T | --book-name B]` prints the findings
  (with optional `↳` elaboration; `--no-elaborate` / `--force`). `--migration-check`
  reports retained-check counts plus where the removed categories went; `--diff`
  maps each category to its new command and notes what the refactor made *stronger*.
- **Config** — a `timeline.critique` block: per-category `enabled`, `min_significance`,
  `min_suspicion`, `cluster_min_size`, and LLM `elaboration` (`max_calls_per_run`,
  `confirm_above_calls`).
- **Bund** — five read-only `ink.event.critique.*` words (`orphan_check`,
  `fuzzy_overlap_check`, `run`, `config`, and a reserved no-op `custom` for future
  project-specific rules).

## Migration & the `--legacy` bridge

Nothing about your timeline **data** changed — events, dates, precision, tracks,
links, `event add/list/show`, the `Ctrl+V e` picker, and the swim-lane view are all
identical. For a transition period, `inkhaven event critique --legacy` runs the
original five-item AI audit (one LLM call, prose to stdout) behind a deprecation
warning; it will be removed in a later release. The new critique is the destination
— see [Tutorial 81](../Tutorials/81-timeline-critique-migration.md) for the move.

## Dependencies & compatibility

**Zero new dependencies.** No change to the timeline data model, the timeline CLI,
the TUI chord *surfaces*, the calendar, or the `ink.event.*` words. Projects that
never invoked the critique experience only the new structured output. Tests 1725 →
1752. One new tutorial (81); tutorial 31 updated.
