Most turns: Finding the real failure. qa-input.txt was about 17 KB, and nearly all of it was CI setup noise (checkout, git hints, cache config). The actual error, out of date in assets/badges/: self-hosted.svg, was one line near the end. It took me three or four greps and cuts to reach it. A smaller cost was the commit script refusing the report because of a stray comma in Files:.
.claude/agents/qa.md and the input paths, but not which file is current. Both docs/briefs/qa-input.txt and docs/briefs/bugs/qa-input.txt existed, and I had to check timestamps.scripts/commit.nika (Changelog:, Attribution:, Commit:, space-separated Files:). I had to copy them from another builder’s report.nikaia binary to use. which nikaia found nothing, so I used target/release/nikaia.python3 scripts/badges.py --check, before and after the regeneration.scripts/pre-push.nika run. It checks only staged files, so it reported “badges red” even though the fix was in the working tree.origin/develop had the same badge drift.qa-input.txt, with the log tail filtered of setup lines. Add a qa-report template (or commit.nika --template) that includes the required fields. Either would have saved most of my turns.