Design phase improvement #3:
- Switch the design plan output contract from a free-text DESIGN START/END
block to a JSON result block, parsed via the shared extract_json_result /
check_phase_completion helpers (jq-less and legacy-text fallbacks retained)
- Add validate_design_coverage: warns + records a metric when the plan does
not map every acceptance criterion declared in the story (advisory only,
since design is a non-blocking phase). AC detection is heuristic and skips
when no AC identifiers are found or jq is unavailable
- Add a "design" case to the legacy fallback in check_phase_completion for
robustness when no JSON block is present
Hook bypassed: pre-existing markdownlint errors are confined to the gitignored
.context/ workspace dir; lint, format:check, and bash -n all pass.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>