Feature
Reports are read by humans AND consumed by agents. Markdown sections serve the human; every step should ALSO populate its StepResult.data with a stable, documented JSON shape so agents stop parsing prose.
Proposed shape
- Define a per-step-type
data schema (documented in each step's rustdoc + a steps_list extension exposing the schema), starting with the builtins: git steps (per-repo status enums, not strings), deadline/countdown (numeric days/els), review queues (item arrays), reminders (typed records — already close).
- Schema stability rule:
data shapes are versioned with the crate; breaking a shape is a breaking change with a regression test proving the old shape fails loudly.
format: \"data\" option on routine_run/step_run/report_get: returns ONLY the structured payloads (compact), for agent consumers that never want prose.
- Acceptance: an agent can run the full morning routine and act on every section without one string-match against markdown.
Development discipline
Rust-first, jujutsu-style (no panics in lib code, RFC-1574 doc comments, lower-level tests over e2e). Follow Foundation contributor rules + the rust-tdd skill: TDD, regression tests, 80% coverage floor, README per crate, exec/net leashed, generation counters not wall-clock, credentials as references only. Plugin model per #10.
Feature
Reports are read by humans AND consumed by agents. Markdown sections serve the human; every step should ALSO populate its
StepResult.datawith a stable, documented JSON shape so agents stop parsing prose.Proposed shape
dataschema (documented in each step's rustdoc + asteps_listextension exposing the schema), starting with the builtins: git steps (per-repo status enums, not strings), deadline/countdown (numeric days/els), review queues (item arrays), reminders (typed records — already close).datashapes are versioned with the crate; breaking a shape is a breaking change with a regression test proving the old shape fails loudly.format: \"data\"option onroutine_run/step_run/report_get: returns ONLY the structured payloads (compact), for agent consumers that never want prose.Development discipline
Rust-first, jujutsu-style (no panics in lib code, RFC-1574 doc comments, lower-level tests over e2e). Follow Foundation contributor rules + the rust-tdd skill: TDD, regression tests, 80% coverage floor, README per crate, exec/net leashed, generation counters not wall-clock, credentials as references only. Plugin model per #10.