Skip to content

Consolidate PredictionSnapshotStore + ScheduleStore into the unified per-day DailyView format #409

Description

@johanzander

Summary

Follow-up to #408 (HistoricalDataStore persistence). The "today" store landscape is still fragmented across four stores with three different persistence patterns:

Store Persists? Where
HistoricalDataStore ✅ (via #408, folded into DailyViewStore) /data/daily_views/{date}.json
DailyViewStore /data/daily_views/{date}.json, one file/day
PredictionSnapshotStore /data/bess_prediction_snapshots.json
ScheduleStore (strategic intents) /config/bess_strategic_intents.json

PredictionSnapshotStore and ScheduleStore each still have their own bespoke JSON format and location (note /config vs /data inconsistency too), separate from the DailyView schema HistoricalDataStore/DailyViewStore now share.

Proposal

Fold PredictionSnapshotStore and ScheduleStore into the same DailyView-per-day file DailyViewStore already owns, the same direction #408 took for HistoricalDataStore — one file format, one persistence convention, instead of four.

Explicitly deferred from #408

Per the design spec (docs/superpowers/specs/2026-07-27-historical-data-store-persistence-design.md, "Out of scope" section):

Consolidating PredictionSnapshotStore and ScheduleStore into the same file/format. Explicitly deferred; this design is one step toward that end state, not the full migration.

Scope note

This is a bigger blast radius than #408 — touches ScheduleStore's optimization-result storage (used for schedule application, not just display) and PredictionSnapshotStore's snapshot-evolution tracking (used by the AI chat "predicted vs actual" comparisons), not just a display-layer store. Should get its own brainstorm/design pass before implementation, not a direct port of #408's plan.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions