OK valid task validates (exit 0) OK unknown task key exits 2 (exit 2) OK unsupported taskVersion exits 2 (exit 2) OK invalid task id exits 2 (exit 2) OK empty prompt exits 2 (exit 2) OK NUL in expectExact exits 2 (exit 2) OK out-of-range timeout exits 2 (exit 2) OK missing mission file exits 4 (exit 4) OK task with valid mission validates (exit 0) OK invalid mission exits 2 (exit 2) OK validate missing task exits 4 (exit 4) OK validation does not modify the task file OK prune dry-run exits 0 (exit 0) OK dry-run deleted nothing OK prune --keep=2 --yes removes oldest (exit 0) OK kept exactly 2 newest runs OK newest run kept, oldest pruned OK append-only receipt written (3 entries) OK sessions/workspaces untouched by prune OK prune with invalid keep exits 4 (exit 4) skip adapter seam cases (docker daemon unavailable) skip workspace/capability cases (docker daemon unavailable) skip live task cases (docker unavailable) OK onboard without name exits 4 (non-interactive) (exit 4) OK onboard --name renders profile (exit 0) OK profile written OK canon structure: required filled, optional placeholdered OK canon sections present skip live recall pair: user recall run, recalled user name (docker daemon unavailable) OK no agent identity on headless run selftest: 26 passed, 0 failed