feat(question_gen): add lightweight 4-gate quality check

Implement 4 concurrent LLM-based quality gates for generated questions:
- key_verify: validates answer evidence in source material
- blind_answer: rejects questions answerable without video context
- multi_true: detects ambiguous multi-correct options
- leak_test: per-family shortcut detection (5 probe templates)

Includes run_gates orchestrator with verbatim_ratio short-circuit,
JSON response parsing with fallback, and 9 unit tests (all passing).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-11 23:30:13 -04:00
parent 9627ac9cf9
commit 271d1682c9
10 changed files with 1030 additions and 0 deletions
@@ -0,0 +1,24 @@
# Blind Answer Gate
You are evaluating whether a multiple-choice question can be answered correctly **without any video context**, using only common sense or option patterns.
## Question
{question}
## Options
{options}
## Instructions
1. Read the question and options WITHOUT any source material.
2. Try to determine the correct answer using only common sense, option length patterns, or grammatical cues.
3. If you can confidently pick the correct answer → verdict "fail" (the question leaks information).
4. If you cannot determine the answer without context → verdict "pass" (the question genuinely requires video understanding).
## Response Format (strict JSON)
```json
{{"verdict": "pass" or "fail", "reason": "brief explanation"}}
```