forked from bchanot/claude
New T15 block in lib/gitflow-test.sh (+7 assertions, 83→90): fresh git init sandbox with NO identity (GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null, git 2.53 supports the override) → gitflow_init must return rc 1 AND leave zero mutation: no develop branch, unborn HEAD, hooksPath unset, nothing staged, no .gitignore/ .githooks written. Closes J4-06 (WEAK): every test repo up to now set an identity first, so this precheck never fired. Mutation (lean scratch copy — only lib/gitflow.sh + lib/gitflow-test.sh + templates/gitignore/standard.gitignore, not the whole repo/.git, to avoid repeating the /tmp exhaustion from the SPEC-01/02/04 full-repo copies): deleted the identity precheck (gitflow.sh:178-179). RED: 3/7 T15 assertions fail — "nothing staged", "no .gitignore written", "no .githooks written" — while rc stays 1 and HEAD stays unborn (git itself still refuses the identity-less commit). This is the half-applied-init failure mode named in the finding (BLK-012 class): same exit code, but now via a partial mutation instead of a clean upfront refusal — exactly why the spec pins zero-mutation checks beyond rc alone. GREEN: real repo unmutated, 90/90 passed (T15 included).