Summary
BLIP already has achievements / session-stats; Cultiva has habit-analytics. Extract the architectural pattern (append-only events → periodic aggregation → cached summary), not a 1:1 domain merge, into an internal package (e.g. @krwg/local-stats) so the next Floke app does not reinvent offline local analytics a third time.
Scope
- Package skeleton + documented pattern
- Optional thin adapter notes for BLIP session-stats and/or Cultiva analytics (migration can be incremental)
Acceptance
Summary
BLIP already has achievements / session-stats; Cultiva has habit-analytics. Extract the architectural pattern (append-only events → periodic aggregation → cached summary), not a 1:1 domain merge, into an internal package (e.g.
@krwg/local-stats) so the next Floke app does not reinvent offline local analytics a third time.Scope
Acceptance