Skip to content

feat(chronicle): Phase 3 — Chronicle intelligence - #109

Merged
splaice merged 5 commits into
mainfrom
cheap-coder/chronicle-phase-3
Jul 14, 2026
Merged

splaice merged 5 commits into
mainfrom
cheap-coder/chronicle-phase-3

Conversation

@splaice

@splaice splaice commented Jul 14, 2026 •

Copy link
Copy Markdown
Owner

Objective

Phase 3 of Life Chronicle (epic #105): Chronicle intelligence — the events subsystem. Goal mode: review + merge delegated via /goal.

Tasks — all complete

  • 3.1 — versioned events schema (Table 15), analyst CRUD, events lane + diamond marks, EventCard
  • 3.2 — generation: set-based burst detection, gateway extraction (whitelisted, citation-required claims), no-clobber versioning verified by direct DB assertions
  • 3.3 — reconstruction: claim-to-evidence matrix, both-chain conflict display, stale-citation checks, adopt-only suggestions, dismissed list
  • 3.4 — compare mode: shared-unit aligned panels / small multiples, normalized toggle, before/after event anchor
  • 3.5 — Workflow A acceptance end-to-end + §4.10 criterion 4 (acceptance suite now todo-free)

Phase 3 exit criterion (spec §20.1)

"Generated events are reviewable, evidence-backed, and versioned" — met and test-enforced (no-clobber matrix, zero-citation claims dropped, suggestions never auto-applied).

Gates

Every task commit green on both gates. Final: 228 server + 244 web tests, root 674.

Reviews

5/5 approved in session .cheap-coder/review-NN.md; 0 revision rounds; 0 reviewer code fixes.

Provenance

Implementer: Grok Build CLI, grok-4.5 @ max. Architecture, spec, review: Claude.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu

Claude Code Agent and others added 5 commits July 13, 2026 21:06
…, timeline lane (Phase 3 task 3.1, #105)

app_events/app_event_versions/app_event_claims per spec Table 15; analyst
event CRUD with immutable version history, validated status transitions,
optimistic concurrency, and citation source validation; events lane
returns sparse individual events (dismissed excluded, 500 cap); amber
diamond/span marks with textual origin glyphs and day-floor precision
positioning; event inspector card with confirm/dismiss/edit; create-
event-from-brush.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
…obber versioning (Phase 3 task 3.2, #105)

Set-based day-bucket burst detection (mean+2σ, σ=0 guard, merge+cap);
per-burst gateway extraction into typed events behind strict whitelist
validation; claims keep only resolved citations and die without any;
dedup by scope fingerprint + window; regeneration supersedes unreviewed
events but only appends suggestion versions to confirmed/edited/dismissed
ones — analyst state provably untouched. Generation runs and model/export
activity surface in Data Health.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
…tions, dismissed review (Phase 3 task 3.3, #105)

/events/:id/reconstruction: claim rows with text+symbol status coding and
citation highlighting; conflicting claims show both source chains;
per-citation stale detection against re-fetched excerpt hashes; version
history with adopt-suggestion flow (never auto-applied); inline analyst
editing creating versions; dismissed-events list with restore; derivation
metadata line on automatic events.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
…nt anchor (Phase 3 task 3.4, #105)

POST /api/chronicle/compare returns both ranges under one shared unit;
aligned panels within 5% duration, explicit small multiples otherwise;
absolute/normalized toggle with legend; entry via Shift+C/toolbar (brush
or previous-period), or before/after +-90d from an event; ca/cb URL
restoration; per-panel brushing; side-by-side table alternative.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
…glue (Phase 3 task 3.5, #105)

Encodes spec §19.1 (reconstruct a decision) end-to-end: brush → focus →
inferred event → claim-to-evidence matrix with a conflicting claim's dual
chains → original source → double-Back restoring reconstruction then the
focused Chronicle with selection intact → confirm → pin. Replaces the
§4.10 criterion-4 todo with real assertions. Enter opens reconstruction,
P pins, on selected events. Completes Phase 3.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
@splaice
splaice merged commit 36b7e97 into main Jul 14, 2026
1 check passed
@splaice
splaice deleted the cheap-coder/chronicle-phase-3 branch July 14, 2026 04:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant