Mission Run Overview
Mission Run: Make the compat-planner.json contract test CI-portable so it actually runs
Fix #2419: the compat-planner.json contract-conformance test resolves its contract via a worktree-relative path that never resolves in real CI, so jsonschema.validate is silently skipped and the check is dead.
The test test_project_migration_needed_project_dry_run_json_contract computes the contract path by hopping up above the repo root into a sibling checkout named spec-kitty; that only resolves in a maintainer landing-worktree layout, never in GitHub Actions. So _CONTRACT stays None, validation is skipped, and a stable external JSON contract has had zero CI enforcement since 2026-04-27 — which is why #2339 (an 83/89-migration contract bug) slipped through. Resolve the path from the real repo root and make a missing/unreadable contract fail loudly.