v0.3.0 — execution-process observability (ADR #69, pi re-base)
What reviewers DO, not just that they're alive
ADR #69 absorbed with an adversarial triage review that caught two blockers before any code landed: the CC event gate never fires on the pi wire (silently-empty audit trails — re-based onto tool_execution_start/message_end with an anti-silent-empty probe), and the omitted trace-append would have made execution_trace dead-on-arrival.
New surfaces
- Distilled execution streams: every csr leg leaves
round<k>-<leg>.stream.jsonlin the run dir — the wrapper distills the different-family leg live; the orchestrator persists the same-family leg'sexecution_traceat leg completion. Render:csr_progress.py stream <run-dir> [--tail N | --watch 5]. - All-runs view:
csr_progress.py status runs/— one block per ACTIVE run (no run-end event), concurrent-session safe;runs/LATESTdocumented as single-active-run-only with the state-your-run-dir-at-Frame convention. - Agent narration discipline + optional
execution_traceoutput (doc-reviewer, web-claim-verifier) — one what+why line per step, collected at report time. - roundIndex instruction in the SKILL (fixes a latent audit-trail corruption: unpassed rounds fell back to 1, appending into the wrong stream file).
Minor-version bump: new schema field, new CLI subcommands, new file formats in run dirs.