forked from bchanot/claude
New T7 block in lib/tests/run-reconcile.sh (+6 assertions, 20→26): a throwaway git repo under mktemp with a LOCAL BARE origin drives the 3 previously-unexercised oracles live: tree_clean (dirty→rc≠0, clean→ rc0), pushed (pushed to origin FIRST so origin/main exists — else rev-list is vacuously empty — then rc0 when synced, rc≠0 once 1 ahead), msg_committed (rc0 for a present commit message, rc≠0 for an absent one). Closes J4-12 (DEGRADED, prerequisite of SPEC-09/10): these 3 oracles backed report-only /reconcile output with zero test coverage — a silent inversion would mis-report open-work state. Mutation (lean scratch copy — only lib/reconcile.sh + lib/tests/ run-reconcile.sh + its fixtures + .claude/memory/decisions.md, not the whole repo/.git, per the /tmp-exhaustion lesson from SPEC-01/02/04): inverted tree_clean's rc (`-z` → `-n` on the porcelain-status check; the report's literal "--quiet → negated" wording doesn't match this function's actual `[ -z ... ]` shape, so applied the equivalent semantic inversion). RED: both T7a assertions fail (dirty reads as clean and vice versa); T7b/T7c stay green, confirming the mutation is localized. (T6a/b/c red in the lean copy too, expected — no real git history / skills dir there — unrelated to the mutation.) GREEN: real repo unmutated, 26/26 passed (T7 included).