{"id":"s-tel-01","repo":"sillyspec","face":"decisions","query":"2026-09-28-kgd 方案探索：用枚举词表扫描开放世界形态的需求并自动分类","expected":["decisions/cli-entry.md#D-unmapped-150@v1"],"note":"防复潮：查询应召回已否决的「枚举开放世界」决策（epoch 迁移后落 cli-entry 域）"}
{"id":"s-tel-02","repo":"sillyspec","face":"decisions","query":"route-hindsight 模块（指标计算/阈值/落库/读取）＋单测 brainstorm Step4/5 指引模板加机制词检索固定动作","expected":["decisions/core-engine.md"],"note":"防复潮注入挂 brainstorm Step2 的决策在 core-engine 域"}
{"id":"s-tel-03","repo":"sillyspec","face":"decisions","query":"flow.js 前门盘问渲染＋hindsight 提示注入＋收口指标接线＋单测 complete.js 方案步 --done 门检索回显＋config-schema 逃生阀","expected":["decisions/cli-entry.md"],"note":"flow 前门/命令面决策在 cli-entry 域"}
{"id":"s-tel-04","repo":"sillyspec","face":"fr","query":"标题/摘要提取对段头行免疫：标签行跳过取次行+复合词白名单+模块索引摘要同源+模板首行改概括句","expected":["fr/cli-entry.md"],"subset":"approx","note":"changes.title 三段链路等 FR 在 cli-entry 域"}
{"id":"s-tel-05","repo":"sillyspec","face":"decisions","query":"用枚举词表扫描开放世界形态的需求并自动分类","expected":["decisions/cli-entry.md#D-unmapped-150@v1"],"note":"同一意图的短查询变体"}
{"id":"s-man-01","repo":"sillyspec","face":"entries","query":"worktree 清理 node_modules junction 删除","expected":["sillyspec-gotchas.md"],"scope_files":["src/worktree.js"],"subset":"frozen","note":"junction 解链坑在 gotchas 手工条目"}
{"id":"s-man-02","repo":"sillyspec","face":"decisions","query":"worktree 清理 node_modules junction 删除","expected":["decisions/worktree.md#D-worktree-001@v1"],"scope_files":["src/worktree.js"],"subset":"frozen","note":"两次事故实录的决策条目（hybrid 面已命中 raw_rank=1）"}
{"id":"s-man-03","repo":"sillyspec","face":"entries","query":"worktree doctor --fix 标记 installed 但 node_modules junction 实际未建","expected":["sillyspec-gotchas.md#worktree-doctor---fix-标记-installed-但-node_modules-junction-实际未建"],"scope_files":["src/worktree.js"],"subset":"frozen","note":"精确锚点命中验证"}
{"id":"s-man-04","repo":"sillyspec","face":"entries","query":"daemon mcp-server 子进程不继承 claude.exe 环境","expected":["patterns.md#mcp-server-子进程不继承-claudeexe-完整环境env-必须放-mcpserversenv"],"scope_files":["src/mcp-server.js"],"subset":"frozen"}
{"id":"s-man-05","repo":"sillyspec","face":"entries","query":"execute worktree 里没有 node_modules 子代理 cwd 要显式 worktree 路径","expected":["sillyspec-gotchas.md#execute-worktree-无-node_modules--子代理-cwd-需显式-worktree-路径"],"scope_files":["src/stages/execute.js"],"subset":"frozen"}
{"id":"s-man-06","repo":"sillyspec","face":"entries","query":"reopen --from step n 后 --done 把后续未执行步骤回填 completed","expected":["sillyspec-gotchas.md#reopen---from-step-n-后---done-会把后续未执行步骤回填-completed"]}
{"id":"s-man-07","repo":"sillyspec","face":"entries","query":"sqlite pragma foreign_keys 默认关闭 cascade 失效 孤儿变更清理","expected":["sillyspec-gotchas.md#sqlite-pragma-foreign_keys-默认关闭致-cascade-失效清理孤儿变更"]}
{"id":"s-man-08","repo":"sillyspec","face":"entries","query":"plan execute 子代理 cwd 设到变更目录 嵌套 sillyspec 副作用","expected":["sillyspec-gotchas.md#planexecute-子代理可能把-cwd-设到变更目录产生嵌套-sillyspec-副作用"]}
{"id":"s-man-09","repo":"sillyspec","face":"fr","query":"sillyspec 版本发布 package.json 同步 R5 锚","expected":["fr/release.md"],"subset":"approx"}
{"id":"s-man-10","repo":"sillyspec","face":"fr","query":"docs gate 基线棘轮 339 替换 379","expected":["fr/docs.md"],"subset":"approx"}
{"id":"p-tel-01","repo":"platform","face":"entries","query":"工具输出捕获链路按 Windows 码页探测解码,修复 TOOL_RESULT 中文乱码落库问题","expected":["known-issues.md"],"note":"码页乱码条目在 known-issues"}
{"id":"p-tel-02","repo":"platform","face":"entries","query":"修复 daemon 码页探测解码器 GBK 流式回退死代码（StringDecoder.write 不抛错）并顺修两处注释漂移","expected":["known-issues.md"]}
{"id":"p-tel-03","repo":"platform","face":"entries","query":"buildSpawnEnv 注入 PYTHONIOENCODING/PYTHONUTF8 缺省让 claude Bash 子进程源端吐 UTF-8","expected":["known-issues.md"]}
{"id":"p-tel-04","repo":"platform","face":"entries","query":"修复 codex driver JSON-RPC id 空间碰撞：nextRpcId 与 nextJsonRpcId 统一单计数器分配","expected":["patterns.md"]}
{"id":"p-tel-05","repo":"platform","face":"entries","query":"后端事件表 ORM + alembic 建表迁移 + conftest 建表","expected":["known-issues.md"],"note":"alembic 并行变更撞 revision 多 head 坑"}
{"id":"p-tel-06","repo":"platform","face":"entries","query":"后端 schema + service（append_events 去重上限 / list_events 正序增量）","expected":["conventions.md"]}
{"id":"p-tel-07","repo":"platform","face":"entries","query":"蒸馏任务条点击跳转会话页——distill-task-bar 增查看会话入口，经 /sessions?session=<agent_session_id> 深链打开对应蒸馏会话","expected":["known-issues.md"],"note":"AgentMission.session_id 列不可信判别口径坑"}
{"id":"p-tel-08","repo":"platform","face":"decisions","query":"claude 会话 one_m 勾选未作用于主模型——ANTHROPIC_MODEL 与 interactive create model 参数按角色映射 one_m 补 [1m] 后缀","expected":["decisions/interactive.md"]}
{"id":"p-tel-09","repo":"platform","face":"entries","query":"会话页空闲降频：消息队列兜底轮询 5s→30s（SSE queue_changed 事件驱动即时刷新为主链，轮询纯兜底）","expected":["conventions.md#前端-sse-消费统一-fetch-ssetoken-走-authorization-header禁用-eventsource"]}
{"id":"p-tel-10","repo":"platform","face":"fr","query":"手机端会话页样式优化：降噪（用量条/配置条/占位文案）+ 会话内容放大（气泡字号宽度），仅 mobile 变体生效","expected":["fr/app-mobile-pages.md"],"subset":"approx"}
{"id":"p-tel-11","repo":"platform","face":"fr","query":"手机端会话页功能入口收纳（用户约束：不砍功能）：用量条收进头部更多菜单会话用量区，配置条 mobile 增设设置展开钮","expected":["fr/app-mobile-pages.md"],"subset":"approx"}
{"id":"p-tel-12","repo":"platform","face":"fr","query":"手机端会话页二轮样式收敛：正文 16 回调 14px，底部配置区一行化，打断钮 mobile 图标化","expected":["fr/app-mobile-pages.md"],"subset":"approx"}
{"id":"p-tel-13","repo":"platform","face":"entries","query":"沉淀弹层三修：快速修复多选失效（只能选一个）弹层样式溢出超出视口 新建 agent 配置补供应商/模型选择","expected":["conventions.md#tailwind-md-是视口断点非容器断点侧栏内嵌组件禁用响应式前缀"]}
{"id":"p-tel-14","repo":"platform","face":"fr","query":"修复 frontend-ci 连续失败：page.test.tsx user_input 断言未随 ql-20260918-003 行为变更同步","expected":["fr/api-types.md"],"subset":"approx"}
{"id":"p-tel-15","repo":"platform","face":"fr","query":"registry 注册两 format + host-fs-handler 透传新字段与 totalUsage 平台 messages schema 可选新字段 + openapi/gen:types","expected":["fr/host-fs-handler.md"],"subset":"approx"}
{"id":"p-dec-01","repo":"platform","face":"decisions","query":"backend 落选 方案 B 扩展 CLI 向量端点至全语料 放开 JWT","expected":["decisions/backend.md#D-backend-009@v1"]}
{"id":"p-dec-02","repo":"platform","face":"decisions","query":"backend 落选 方案 C 基于 DB 表混合检索 ScanDocument 新增 knowledge 入库","expected":["decisions/backend.md#D-backend-010@v1"]}
{"id":"p-dec-03","repo":"platform","face":"decisions","query":"backend 落选 本地文件缓存 向量序列化 runtime 缓存文件","expected":["decisions/backend.md#D-backend-020@v1"]}
{"id":"p-dec-04","repo":"platform","face":"decisions","query":"backend 落选 仅做启动预热 不改存储","expected":["decisions/backend.md#D-backend-021@v1"]}
{"id":"p-dec-05","repo":"platform","face":"decisions","query":"backend 落选 方案 B 后台常驻同步协程","expected":["decisions/backend.md#D-backend-023@v1"]}
{"id":"p-dec-06","repo":"platform","face":"decisions","query":"backend 落选 平台行携带记录名 方案 B","expected":["decisions/backend.md#D-backend-033@v1"]}
{"id":"p-dec-07","repo":"platform","face":"decisions","query":"backend 落选 新增 daemon 列记录 RPC 方案 C","expected":["decisions/backend.md#D-sillyhub-daemon-001@v1"]}
{"id":"p-dec-08","repo":"platform","face":"decisions","query":"backend 落选 方案 C 首查触发 周期刷新混合","expected":["decisions/backend.md#D-backend-024@v1"]}
{"id":"p-scope-01","repo":"platform","face":"scope","query":"frontend SSE fetch-sse Authorization header","expected":["conventions.md#前端-sse-消费统一-fetch-ssetoken-走-authorization-header禁用-eventsource"],"scope_files":["frontend/src/lib/fetch-sse.ts"],"subset":"added"}
{"id":"p-scope-02","repo":"platform","face":"scope","query":"backend auth_deps monkeypatch has_permission","expected":["testing-gotchas.md#后端monkeypatch-has_permission-必须双-patchauth_deps-导入时绑定--rbac-模块属性"],"scope_files":["backend/app/core/auth_deps.py"],"subset":"added"}
{"id":"p-scope-03","repo":"platform","face":"scope","query":"backend audit hooks lifespan 审计日志","expected":["known-issues.md#-audit_hooks-只在测试-lifespan-注册生产审计要业务代码显式写-auditlog"],"scope_files":["backend/app/main.py"],"subset":"added"}
{"id":"s-scope-01","repo":"sillyspec","face":"scope","query":"cli flag 白名单死路报错","expected":["known-issues.md#-cli-flag-白名单死路报错指引指向未登记-flag双实例"],"scope_files":["test/flag-contract.test.mjs"],"subset":"added"}
{"id":"s-scope-02","repo":"sillyspec","face":"scope","query":"知识匹配引擎 枚举开放世界 否决","expected":["decisions/core-engine.md#D-unmapped-197@v1"],"scope_files":["src/knowledge-match.js"],"subset":"added"}
{"id":"s-scope-03","repo":"sillyspec","face":"scope","query":"flow 前门 决策记录","expected":["decisions/cli-entry.md#D-unmapped-433@v1"],"scope_files":["src/flow.js"],"subset":"added"}
{"id":"s-scope-04","repo":"sillyspec","face":"scope","query":"execute 阶段 风险死路","expected":["decisions/stages.md#D-unmapped-153@v1"],"scope_files":["src/stages/execute.js"],"subset":"added"}
{"id":"s-scope-05","repo":"sillyspec","face":"scope","query":"CLI 入口 决策","expected":["decisions/cli-entry.md#D-unmapped-161@v1"],"scope_files":["src/index.js"],"subset":"added"}
{"id":"p-scope-04","repo":"platform","face":"scope","query":"frontend SSE agent-stream 流式消费","expected":["conventions.md#前端-sse-消费统一-fetch-ssetoken-走-authorization-header禁用-eventsource"],"scope_files":["frontend/src/lib/agent-stream.ts"],"subset":"added"}
{"id":"p-scope-05","repo":"platform","face":"scope","query":"login_enabled get_current_user 检查","expected":["known-issues.md#-2026-06-17--login_enabled-必须在-get_current_user-检查不能只在-login-入口commit-d62ec975"],"scope_files":["backend/app/core/auth_deps.py"],"subset":"added"}
{"id":"p-scope-06","repo":"platform","face":"scope","query":"tailwind md 视口断点 侧栏","expected":["conventions.md#tailwind-md-是视口断点非容器断点侧栏内嵌组件禁用响应式前缀"],"scope_files":["frontend/src/components/changes/detail/change-sessions-card.tsx"],"subset":"added"}
{"id":"s-fusion-01","repo":"sillyspec","face":"entries","query":"worktree 清理流程说明","expected":["known-issues.md#-cli-flag-白名单死路报错指引指向未登记-flag双实例"],"scope_files":["test/flag-contract.test.mjs"],"subset":"fusion","note":"路由命中 worktree 相关但手工条目仅 scope doc-refs 可达（融合增量）"}
{"id":"s-fusion-02","repo":"sillyspec","face":"decisions","query":"cli flag 白名单 死路 报错","expected":["decisions/core-engine.md#D-unmapped-197@v1"],"scope_files":["src/knowledge-match.js"],"subset":"fusion","note":"路由命中 known-issues 但 rejected 决策仅 scope 两跳可达（融合增量）"}
// organic 评测集 — 遥测 query 抽样 + 人工 anchor 级标签（冻结：提交后不随遥测漂移）
// 字段：id / repo(sillyspec|platform) / face(entries|decisions|search|scope) / query / expected[]
// expected 含 "#" = 精确 file#anchor；不含 "#" = 文件级（匹配该文件任意命中）
// scope_files（可选）= scope 面图遍历的机器键；无此字段的 case 不进 scope 面
// 标注口径：查询的真实技术意图应对口的知识条目；当前未命中即为红基线，供后续变更对比

{"id":"s-fr-prod-01","repo":"sillyspec","face":"fr","query":"worktree 工作树 清理 隔离","scope_files":["src/worktree.js"],"expected":["fr/worktree.md"],"subset":"prod","note":"生产同源：src/worktree.js → worktree 域"}
{"id":"p-fr-prod-01","repo":"platform","face":"fr","query":"SSE 流式消费 token authorization","scope_files":["frontend/src/lib/fetch-sse.ts"],"expected":["fr/frontend.md"],"subset":"prod","note":"生产同源：fetch-sse.ts → frontend 域"}
{"id":"auto-sillyspec-01","repo":"sillyspec","face":"decisions","query":"cli-entry 收口机器门拦 decisions.md 缺席","expected":["decisions/cli-entry.md#D-unmapped-433@v1"]}
{"id":"auto-sillyspec-02","repo":"sillyspec","face":"decisions","query":"core-engine 否决入库侧路由词表派生 同窗词片按序截断=抽签","expected":["decisions/core-engine.md#D-unmapped-197@v1"]}
{"id":"auto-sillyspec-03","repo":"sillyspec","face":"decisions","query":"core-engine 错位目录归一否决「marker 值改为完整目录名」","expected":["decisions/core-engine.md#D-unmapped-375@v1"]}
{"id":"auto-sillyspec-04","repo":"sillyspec","face":"decisions","query":"core-engine archive 复合真相源方案否决","expected":["decisions/core-engine.md#D-unmapped-377@v1"]}
{"id":"auto-sillyspec-05","repo":"sillyspec","face":"decisions","query":"docs 收割器机器自动拆 rejected 条目","expected":["decisions/docs.md#D-unmapped-299@v1"]}
{"id":"auto-sillyspec-06","repo":"sillyspec","face":"decisions","query":"docs distill 侧从 confirmed","expected":["decisions/docs.md#D-unmapped-300@v1"]}
{"id":"auto-sillyspec-07","repo":"sillyspec","face":"decisions","query":"docs 只修厚道不动轻量道","expected":["decisions/docs.md#D-unmapped-301@v1"]}
{"id":"auto-sillyspec-08","repo":"sillyspec","face":"decisions","query":"docs 存量 40+ 种散值","expected":["decisions/docs.md#D-unmapped-436@v1"]}
{"id":"auto-platform-01","repo":"platform","face":"decisions","query":"app-admin-pages 落选 并入设置页 Tab（方案","expected":["decisions/app-admin-pages.md#D-unmapped-004@v1"]}
{"id":"auto-platform-02","repo":"platform","face":"decisions","query":"app-admin-pages 落选 工作区首页挂卡片（方案 C）","expected":["decisions/app-admin-pages.md#D-unmapped-005@v1"]}
{"id":"auto-platform-03","repo":"platform","face":"decisions","query":"backend 落选 方案 B（扩展","expected":["decisions/backend.md#D-backend-009@v1"]}
{"id":"auto-platform-04","repo":"platform","face":"decisions","query":"backend 落选 方案 C（基于","expected":["decisions/backend.md#D-backend-010@v1"]}
{"id":"auto-platform-05","repo":"platform","face":"decisions","query":"backend 落选 本地文件缓存（向量序列化到 .runtime","expected":["decisions/backend.md#D-backend-020@v1"]}
{"id":"auto-platform-06","repo":"platform","face":"decisions","query":"backend 落选 仅做启动预热（不改存储）","expected":["decisions/backend.md#D-backend-021@v1"]}
{"id":"auto-platform-07","repo":"platform","face":"decisions","query":"backend 落选 方案 B（后台常驻同步协程）","expected":["decisions/backend.md#D-backend-023@v1"]}
{"id":"auto-platform-08","repo":"platform","face":"decisions","query":"backend 落选 方案 C（首查触发","expected":["decisions/backend.md#D-backend-024@v1"]}
{"id":"auto-platform-09","repo":"platform","face":"decisions","query":"backend 落选 平台行携带记录名（方案 B）","expected":["decisions/backend.md#D-backend-033@v1"]}
{"id":"auto-platform-10","repo":"platform","face":"decisions","query":"backend 落选 新增 daemon「列记录」RPC（方案","expected":["decisions/backend.md#D-sillyhub-daemon-001@v1"]}
{"id":"auto-platform-11","repo":"platform","face":"decisions","query":"backend 落选 方案 C（进程内卸载","expected":["decisions/backend.md#D-unmapped-057@v1"]}
{"id":"auto-platform-12","repo":"platform","face":"decisions","query":"backend 方案 B（只加大宽限窗 不加族系列）","expected":["decisions/backend.md#D-unmapped-065@v1"]}
