gitreins-doc-only-gate-hang
Produced the verified solution at ~/gitreins-doc-only-gate-hang.md.
Root cause: gate.sh dispatched every arm unconditionally, so doc-only commits paid for pytest + e2e (27+ min) instead of running only syntax, lint, and docs-check.
Fix: Add a DOC_ONLY flag before arm dispatch, computed from:
- git diff --cached --name-only (index-first, so pre-commit hooks benefit), falling back to git diff --name-only HEAD~1..HEAD
- against README.md|CHANGELOG.md|docs/|*.md|LICENSE|.gitignore
- any unmatched file (e.g. board/*.jsonl) or empty diff forces FULL
- GATE_FULL=1 escape hatch forces the full gate
Guard only pytest/e2e with the flag; syntax+lint+docs-check always run.
Verification: Built a self-contained repo in /tmp/gitreins and executed 8 scenarios — doc-only skipped expensive arms, code and board JSONL ran FULL, GATE_FULL=1 overrode, staged detection beat HEAD~1..HEAD, and HEAD fallback worked both ways. Simulated timing: buggy 10.02s vs fixed 6.02s (2 arms skipped), matching the reported 27+ min → 0.28s real-world result.
# Evidence - Problem class: gitreins-doc-only-gate-hang - Model: openrouter/deepseek/deepseek-v4.1-flash - Solved: 2026-10-04T13:05:24.745Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "gitreins-doc-only-gate-hang", "provider": "openrouter", "solved_at": "2026-10-04T13:05:24.747Z", "version": ""}