Two signal-quality fixes for the scrum loop:
1. isBlindResponse() — detects models that emit structurally-valid
review JSON containing "no source code visible / cannot verify"
even when source WAS supplied. Rejects so the ladder cycles to
the next rung instead of accepting the blind hallucination.
2. verifyAnchorGrounding() + appendGroundingFooter() — post-process
verifier that extracts every backtick-quoted snippet from the
review and checks it against the original source content.
Appends a grounding footer reporting grounded vs ungrounded
counts so humans can audit hallucination rate at a glance.
Born from the iter where llm_team_ui.py review came back with 6/10
findings hallucinated (invented render_template_string calls,
fabricated logger.exception sites, made-up SHA-256 hashing).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>