{"id":"q01","version":"v1.1","category":"gotcha","query":"gotcha #39 act_runner TCP timeout manual checkout bypass","expected_source_hint":"docs/architecture.md OR docs/gotchas.md","note":"CI runner github.com timeout fix — PASS v1.0 rerank 0.887"}
{"id":"q02","version":"v1.1","category":"gotcha","query":"gotcha #41 paths-ignore docs-only CI skip path filter","expected_source_hint":"docs/architecture.md OR docs/gotchas.md","note":"docs-only commit skip CI trigger — PASS v1.0 rerank 0.910"}
{"id":"q03","version":"v1.1","category":"gotcha","query":"gotcha #44 silent 403 class-level Authorize policy endpoint","expected_source_hint":"docs/gotchas.md OR docs/changelog/sessions","note":"Silent 403 from overly strict [Authorize(Policy)] at class level — PASS v1.0 rerank 0.859"}
{"id":"q04","version":"v1.1","category":"gotcha","query":"EF migration 3-file rule Designer ModelSnapshot commit","expected_source_hint":"docs/gotchas.md OR .claude/skills/ef-core-migration/SKILL.md","note":"v1.0 FAIL Case A rerank 0.488. Drop '#17' anchor, add 'ModelSnapshot' canonical term. Fix: more specific EF terms."}
{"id":"q05","version":"v1.1","category":"gotcha","query":"25. IIS applicationHost webSocket section lock HTTP 500.19","expected_source_hint":"docs/gotchas.md ### 25","note":"v1.0 FAIL Case C. Fix: use '25. IIS' notation matching '### 25.' format + 'applicationHost webSocket' exact terms from gotchas.md content."}
{"id":"q06","version":"v1.1","category":"pattern","query":"CQRS MediatR Command Validator Handler compact Application layer","expected_source_hint":"docs/rules.md §2.2 OR docs/architecture.md","note":"v1.0 FAIL Case C. Drop 'Features.cs' + 'single file' (not in content). Add 'compact' which matches 'cùng 1 file cho compact'."}
{"id":"q07","version":"v1.1","category":"pattern","query":"Smart Friend adversarial reviewer quality ceiling Cognition","expected_source_hint":".claude/agents/reviewer.md","note":"v1.0 FAIL Case D. Fix: add .claude/agents/**/*.md to corpus_paths + re-bootstrap. Query OK — 'Cognition' anchor added."}
{"id":"q08","version":"v1.1","category":"pattern","query":"PE V2 ApprovalWorkflow Steps Levels OR-of-N ApproverUserId","expected_source_hint":".claude/agent-memory/investigator/MEMORY.md","note":"PASS v1.0 rerank 0.824"}
{"id":"q09","version":"v1.1","category":"decision","query":"Implementer isolation worktree DROPPED Windows MAX_PATH 260","expected_source_hint":".claude/agents/implementer.md","note":"v1.0 FAIL Case D. Fix: add agents to corpus. Add '260' char limit anchor."}
{"id":"q10","version":"v1.1","category":"decision","query":"sub-agent model inherit 1M Opus parent context window S27 fix","expected_source_hint":".claude/agent-memory OR docs/HANDOFF.md OR .claude/agents","note":"v1.0 FAIL Case A rerank 0.641. Add 'S27 fix' anchor — specific event referenced in HANDOFF.md."}
{"id":"q11","version":"v1.1","category":"decision","query":"ApprovalWorkflow V1 V2 dual schema backward compatible fallback","expected_source_hint":".claude/agent-memory/investigator/MEMORY.md","note":"PASS v1.0 rerank 0.824"}
{"id":"q12","version":"v1.1","category":"negative","query":"GraphQL subscription realtime resolver Apollo","expected_source_hint":"NONE — project uses REST + SignalR not GraphQL","note":"CORRECT EXCLUSION v1.0"}
{"id":"q13","version":"v1.1","category":"negative","query":"Redis cache distributed session eviction TTL","expected_source_hint":"NONE — project uses SQL Server no Redis","note":"CORRECT EXCLUSION v1.0"}
{"id":"q14","version":"v1.1","category":"negative","query":"Kubernetes Helm chart microservice deployment","expected_source_hint":"NONE — project is monolith IIS on VPS","note":"CORRECT EXCLUSION v1.0"}
