Epic #329 — requirements/standards/issues completion (CLI / Rust) #33
merged
cole.christensen@gmail.com wants to merge
feat/cli-json-requirement-read-status
into main
No CI
The complete epic fangorn/anvil#329 CLI-side implementation (one PR per repo; the Elixir half is fangorn/anvil PR #193). Closes fangorn/anvil#330.
Machine-readable everything (Workstream B)
--jsonon the full requirement/standard surface: reads echo the server payload;requirement status/--strict/--strict-standardsemit a computed summary ({passed, counts, failing/uncovered}) while preserving the non-zero exit forset -egating; every mutation returns a uniform{"ok":true, <noun>:…}envelope (output::json_ok).--jsonon: label family, milestone family, board family,issue list/view/comments/links+ mutations, agent read family (list/view/sessions/session).requirement matrix --run-id / --policy / --run-window(point-in-time coverage, fangorn/anvil#240).requirement import <file|-> [--format] [--dry-run]+requirement export(import-schema YAML; round-trips incl. parent linkage) — completes fangorn/anvil#239 with the earlierlink/unlink.
Real fixes
seed --clearactually clears (was a warn-only stub claiming “no delete endpoint”): hard-deletes children-first; ordering is deterministic now that the list endpoint carriesparent_id(fangorn/anvil#331).epic add-childwas broken (404 on every call — sent a rawtargetthe controller never read): now sends structuredtarget_number/target_org/target_repovia the sharedparse_target_ref, with a regression guard.
New commands (Workstreams C + F)
issue link-req <N> <REQ-…|STD-…>/unlink-req— manual requirement↔issue links (manual links survive rescans).label edit/delete,milestone edit/close/reopen/delete,board init/create-column/edit-column/delete-column,issue move <N> --column <uuid>.
Verification
143 unit + 22 subprocess integration tests (the integration tests run the real binary against a wiremock server and parse stdout as JSON — including that the status gates exit non-zero with clean JSON on stdout). cargo fmt + clippy --all-targets -D warnings clean.
🤖 Generated with Claude Code
Created Jul 03, 2026 at 05:43 UTC
| Merged Jul 07, 2026 at 13:04 UTC
by
cole.christensen@gmail.com