plan: cma.2 — harness binary + 4 task definitions + 3 integration tests, 13 tasks, 46 steps
Walks the implementer from a fresh harness/ Cargo project to a green test sweep across strip_locations (5 unit + 5 integration on real captured stderr), verify_references (4 reference solutions run through the live ail+clang pipeline locally), mock_full_run (eight canned-cohort-task pairs end-to-end), and budget_abort (tiny budget exhaustion). Six modules: strip_locations, pipeline, ionos (reqwest blocking + retry per spec §Error handling), mock, scoring, tasks. Captures five real stderr samples (recon-collected) as fixtures; strip_locations regex calibrated to the actual diagnostic shape (handles `at byte N`, anyhow `Caused by:` chains). Workspace-table and .gitignore included in Task 1 from the outset (learned from cma.1 surfaced concerns; not repeated as post-hoc journal items). Out-of-workspace pattern matches render/ verbatim. AIL_BIN env var with PATH fallback for `ail` resolution; clang preflight check added since `ail build` shells to clang. Two explicit deferrals to implementer named in the plan: ParamMode names (lifted from cma.1) and prelude function symbols (from crates/ailang-check/src/builtins.rs); both stable from cma.1 authoring, no re-derivation needed.
This commit is contained in: