Show staged projection with evidence ladder #106

Open
opened 2026-10-03 02:42:56 +00:00 by xavierk · 0 comments
Owner

Goal

Show a lifespan within hours of enabling monitoring, with confidence that visibly strengthens with each collection run (ADR 0012).

Scope

  • ProjectionResult gains:
    • stage: no observations yet / provisional / warming / limited / supported / unavailable.
    • evidence_ladder: each Supported condition with met or unmet status and its reason.
    • write_rate: the sustained-regime rate.
  • Provisional appears after at least 3 observed hours. Until 24 h, it carries the fact "daily cycle not yet seen". Warming runs until the 14-qualifying-day warm-up completes. The complete-local-day condition becomes a fact, not a gate.
  • Scenario range adds 24-hour and 3-day horizons until the 7-day horizon is covered.
  • Without a baseline, the headline shows the write rate, not a lifespan.
  • Delete the caller pre-gates: tui.py:2060–2069 ("requires at least two samples") and the matching status.py path. The TUI and CLI render the stage and the ladder count, with the full ladder in the outlook.

Acceptance criteria

  • Every gate tested through compute_projection with SQLite fixtures, built by a helper for N hours or days of complete evidence.
  • Day 0 at 3 h: provisional number, hours observed, short-horizon spread.
  • Ladder count rises as fixtures add evidence.
  • No caller decides what the projection can show.

Depends on the projection defect fix and on ADR 0012.

## Goal Show a lifespan within hours of enabling monitoring, with confidence that visibly strengthens with each collection run (ADR 0012). ## Scope - `ProjectionResult` gains: - `stage`: no observations yet / provisional / warming / limited / supported / unavailable. - `evidence_ladder`: each Supported condition with met or unmet status and its reason. - `write_rate`: the sustained-regime rate. - Provisional appears after at least 3 observed hours. Until 24 h, it carries the fact "daily cycle not yet seen". Warming runs until the 14-qualifying-day warm-up completes. The complete-local-day condition becomes a fact, not a gate. - Scenario range adds 24-hour and 3-day horizons until the 7-day horizon is covered. - Without a baseline, the headline shows the write rate, not a lifespan. - Delete the caller pre-gates: `tui.py:2060–2069` ("requires at least two samples") and the matching `status.py` path. The TUI and CLI render the stage and the ladder count, with the full ladder in the outlook. ## Acceptance criteria - [ ] Every gate tested through `compute_projection` with SQLite fixtures, built by a helper for N hours or days of complete evidence. - [ ] Day 0 at 3 h: provisional number, hours observed, short-horizon spread. - [ ] Ladder count rises as fixtures add evidence. - [ ] No caller decides what the projection can show. Depends on the projection defect fix and on ADR 0012.
xavierk added the ready-for-agent label 2026-10-03 02:42:56 +00:00
xavierk added a new dependency 2026-10-03 02:43:10 +00:00
xavierk added a new dependency 2026-10-03 02:43:10 +00:00
xavierk added a new dependency 2026-10-03 02:43:11 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: xavierk/Fenris#106