I3144 — Checkpoints and handovers are recorded against the episode, and the shell only parses and renders them
ADR 0047 step 4: lib/checkpoint.sh and lib/handover.sh become argument parsing and rendering over the domain, which writes checkpoints and handovers against the episode.
BLOCKED wave 3 · p2 · implementation profile · parallel safe
Blocked. This issue cannot start until I3142 is done. The status is derived from that, not declared.
Objective
ADR 0047 step 4: lib/checkpoint.sh and lib/handover.sh become argument parsing and rendering over the domain, which writes checkpoints and handovers against the episode.
Why
ADR 0052 found that tying checkpoints to the task disabled them for six days; ADR 0047 lists this as the fourth cutover step. Sources: chatgpt-majordomus:c109#3.
Current state
lib/checkpoint.sh (100 lines) and lib/handover.sh (174 lines; wc -l at 707a04c) write .ai/local/state/{checkpoints,handovers}; their front matter carries task_id and no session_id; cases 05_handover and 50_blocker_across_handover hold the behaviour.
Desired state
The domain writes both; the shell files are thin.
Scope
- lib/checkpoint.sh
- lib/handover.sh
- apps/majordomus-cli/src/session
- apps/majordomus-cli/src/continuity
Out of scope
- The handover body format (Objective, Current State, Next Action)
Dependencies
What waits on this
Acceptance criteria
- cases 05, 50, 130_lifecycle_survives_a_stale_task and 822 pass unchanged
- A checkpoint is still written with no active task (regression check; it holds on master)
Validation
- bash test/run.sh --no-skips 05_handover 50_blocker_across_handover 130_lifecycle_survives_a_stale_task 822_a_dirty_handover_restores_context_not_source
Evidence required
- case_handover_written_by_the_domain
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3144.yaml. Read it back with majordomus plan show I3144.