trainlog/docs/roadmap.md

3.1 KiB

Roadmap

Gate 0 — Project contract

Status: PASS

Gate 1 — Exchange format v1 freeze

Status: PASS

TRAINLOG_FORMAT_V1=FROZEN

Gate 2 — Persistence + usable TUI

Status: IN PROGRESS

FIRST_USABLE_TUI=PASS
TUI_V0_2_POLISH=IMPLEMENTED
GATE_2=IN_PROGRESS

Current TUI capabilities:

  • direct workout entry;
  • exercise catalog;
  • body tracking;
  • weight graph;
  • colored dashboard;
  • arrow/F-key navigation;
  • navigable history;
  • Unicode anti-duplicate exercise names.

Next TUI polish blocks:

  1. full session detail;
  2. exercise performance history and graphs;
  3. previous-session defaults;
  4. safe edit/delete flows.

Android remains deferred until the TUI daily workflow is satisfactory.

TUI v0.2 checkpoint

Current state:

FIRST_USABLE_TUI=PASS
TUI_V0_2_POLISH=IMPLEMENTED
TUI_SESSION_DETAILS=IMPLEMENTED
TUI_DURATION_HUMAN_INPUT=IMPLEMENTED
TUI_BODY_METRIC_GRAPHS=IMPLEMENTED
GATE_2=IN_PROGRESS
TRAINLOG_FORMAT_V1=FROZEN

Completed before this checkpoint:

  • C17/Meson persistence core;
  • SQLite schema v1 foundation;
  • UUIDv4 generation;
  • Unicode catalog normalization;
  • direct workout recording;
  • direct body observation recording;
  • colored ncursesw dashboard;
  • keyboard navigation;
  • body-weight graph;
  • flat-series graph rendering;
  • navigable workout history;
  • full read-only session detail.

Next implementation slice:

  1. shared duration parser accepting seconds and minute-oriented syntax;
  2. shared human duration formatter;
  3. generic body-metric history query;
  4. F4 metric selector;
  5. graphs for weight and every body measurement;
  6. left/right asymmetry presentation.

No incompatible change to frozen Trainlog JSON v1 is required.

Next TUI visualization slice

Canonical state after the current checkpoint:

FIRST_USABLE_TUI=PASS
TUI_V0_2_POLISH=IMPLEMENTED
TUI_SESSION_DETAILS=IMPLEMENTED
TUI_DURATION_HUMAN_INPUT=IMPLEMENTED
TUI_BODY_METRIC_GRAPHS=IMPLEMENTED
TUI_GLOBAL_BODY_OVERLAY=IMPLEMENTED
DASHBOARD_GRAPH_ONLY=IMPLEMENTED
GATE_2=IN_PROGRESS
TRAINLOG_FORMAT_V1=FROZEN

Next deliverables:

  1. normalized global body graph in F4;
  2. color + symbol identity for every overlaid metric;
  3. global percent-change summary;
  4. richer home weight graph;
  5. previous-measurement delta on dashboard;
  6. dashboard min/max weight;
  7. latest waist summary when available;
  8. compact asymmetry warning when relevant.

No database schema migration is expected. No Trainlog JSON v1 change is expected.

DASHBOARD_12_MONTHS=IMPLEMENTED
TUI_EXERCISE_PERFORMANCE=IMPLEMENTED
MEASURED_MAX_TRACKING=NEXT
PREVIOUS_SESSION_DEFAULTS=AFTER

Session type / measured max foundation

DATABASE_SCHEMA_V2=IMPLEMENTED
SESSION_TYPE_PERSISTENCE=IMPLEMENTED
SESSION_TYPE_TUI=NEXT
MEASURED_MAX_TRACKING=AFTER
TRAINLOG_FORMAT_V1=FROZEN

SQLite schema v2 adds sessions.session_type with training and max_test. Existing v1 rows migrate to training. No existing session is retroactively classified as a max test.