@sema-ai/core 1.277.0 → 1.278.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/LICENSE +97 -21
  2. package/NOTICE.md +1 -1
  3. package/README.md +2 -5
  4. package/README.new.md +150 -0
  5. package/README.zh-CN.new.md +145 -0
  6. package/dist/bench/metrics.js +1 -1
  7. package/dist/bench/metrics.js.map +1 -1
  8. package/dist/core/cache-break-detector.js +0 -0
  9. package/dist/core/cache-break-detector.js.map +1 -1
  10. package/dist/core/tools.d.ts.map +1 -1
  11. package/dist/core/tools.js +3 -1
  12. package/dist/core/tools.js.map +1 -1
  13. package/dist/engine/execution-env/node-execution-env.d.ts.map +1 -1
  14. package/dist/engine/execution-env/node-execution-env.js +8 -0
  15. package/dist/engine/execution-env/node-execution-env.js.map +1 -1
  16. package/dist/engine/harness/types.d.ts +9 -1
  17. package/dist/engine/harness/types.d.ts.map +1 -1
  18. package/dist/engine/harness/types.js.map +1 -1
  19. package/dist/tools/fs/index.d.ts.map +1 -1
  20. package/dist/tools/fs/index.js +94 -3
  21. package/dist/tools/fs/index.js.map +1 -1
  22. package/dist/tools/gitea-issue.d.ts +1 -1
  23. package/dist/tools/gitea-issue.d.ts.map +1 -1
  24. package/package.json +2 -7
  25. package/CHANGELOG.md +0 -5455
  26. package/docs/A1-ATTRIBUTION-ROUND1-2026-07-09.md +0 -181
  27. package/docs/AB-ORACLE-GATE-VERDICT-2026-07-10.md +0 -100
  28. package/docs/ANCHOR-GAP-INVENTORY-2026-07-09.md +0 -143
  29. package/docs/ARCHITECTURE.md +0 -125
  30. package/docs/BUGHUNT-2026-07-05-NIGHT.md +0 -98
  31. package/docs/BUILD.md +0 -63
  32. package/docs/CANCEL-ASYNC-ATTRIBUTION-2026-07-09.md +0 -98
  33. package/docs/CC-198-VS-201-DRIFT-2026-07-09.md +0 -70
  34. package/docs/CC-BASELINE-FAKE-ZERO-AUDIT-2026-07-09.md +0 -51
  35. package/docs/CC-DRIFT-198-206-AGENT-TYPES-2026-07-10.md +0 -82
  36. package/docs/CC-DRIFT-198-206-CHANGELOG-2026-07-10.md +0 -82
  37. package/docs/CC-DRIFT-198-206-REMINDERS-2026-07-10.md +0 -96
  38. package/docs/CC-DRIFT-198-206-ROADMAP-2026-07-10.md +0 -110
  39. package/docs/CC-DRIFT-198-206-TOOL-INVENTORY-2026-07-10.md +0 -53
  40. package/docs/CC-DRIFT-198-206-USAGE-CONSTANTS-2026-07-10.md +0 -64
  41. package/docs/CC-DRIFT-198-206-WORKFLOW-2026-07-10.md +0 -83
  42. package/docs/CC-PARITY-CHECKLIST.md +0 -220
  43. package/docs/CC-PARITY-DEEP-SWEEP-2026-07-07.md +0 -149
  44. package/docs/CC-SUBAGENT-PROMPT-STUDY-2026-07-09.md +0 -219
  45. package/docs/CC-TASK-REMINDER-CADENCE-STUDY-2026-07-09.md +0 -396
  46. package/docs/CC-TOOL-PARITY-SWEEP-2026-07.md +0 -56
  47. package/docs/CC-TOOL-PROMPT-DEEP-DIFF-2026-07-08.md +0 -274
  48. package/docs/CC-TOOLSURFACE-DEEP-DIVE-2026-07-07.md +0 -197
  49. package/docs/CC206-OBSERVER-ANCHORS-2026-07-11.md +0 -463
  50. package/docs/CC207-CORE-SWEEP-BACKLOG-2026-07-12.md +0 -155
  51. package/docs/CENTER-CONTROL-PLANE-SEAM.md +0 -86
  52. package/docs/CLEANUP-CONTRACT-ANCHOR-2026-07-09.md +0 -83
  53. package/docs/COLD-START-RSI-2026-07-09.md +0 -72
  54. package/docs/COMPACTION-LIVE-AUDIT-2026-07-09.md +0 -114
  55. package/docs/CONTEXT-lifecycle-extension-points-and-stop-attribution.md +0 -71
  56. package/docs/COREWARS-POLYGLOT-TRIAGE-2026-07-09.md +0 -85
  57. package/docs/DEADTARGET-OVERFULL-HBOX-2026-07-10.md +0 -92
  58. package/docs/DEADTARGET-PATH-TRACING-REVERSE-2026-07-10.md +0 -87
  59. package/docs/DEADTARGET-WINNING-AVG-COREWARS-2026-07-10.md +0 -96
  60. package/docs/DEEPSEEK-API-LIMITS-PROBE-2026-07-09.md +0 -118
  61. package/docs/DESIGN-140-MOCK-VERIFY-2026-07-11.md +0 -79
  62. package/docs/DESIGN-140-VERIFICATION-2026-07-11.md +0 -43
  63. package/docs/DESIGN-DRAFT-workflow-collab-2026-07-11.md +0 -56
  64. package/docs/DESIGN-ORACLE-GROUNDING-GATE-2026-07-10.md +0 -167
  65. package/docs/DESIGN-TFRAG-RECONCILE-SCAFFOLD-2026-07-09.md +0 -102
  66. package/docs/EXP-PA2-PE-DESIGN-2026-07-11.md +0 -220
  67. package/docs/EXT-DOGFOOD-2026-07-12.md +0 -50
  68. package/docs/FINAL-VERIFY-SURFACE-AUDIT-2026-07-09.md +0 -44
  69. package/docs/FRAG-RECON-INVESTIGATION-2026-07-09.md +0 -183
  70. package/docs/HANDOFF.md +0 -121
  71. package/docs/KNOWN-ISSUES.md +0 -96
  72. package/docs/LEGW-WINDOW-TAX-2026-07-10.md +0 -82
  73. package/docs/LIVE-PROBE-BATCH-2026-07-11.md +0 -207
  74. package/docs/M2-CERT-ATTRIBUTION-2026-07-10.md +0 -61
  75. package/docs/M25-LEG-VARIANCE-ATTRIBUTION-2026-07-10.md +0 -81
  76. package/docs/MAILMAN-TIMEOUT-ATTRIBUTION-2026-07-10.md +0 -88
  77. package/docs/MEMORY-BACKEND-DIALECT-NOTES.md +0 -69
  78. package/docs/MTEB-ESCAPE-HATCH-ATTRIBUTION-2026-07-09.md +0 -57
  79. package/docs/MTEB-LEADERBOARD-ATTRIBUTION-2026-07-10.md +0 -134
  80. package/docs/ORACLE-GATE-NEGATIVE-SAMPLE-2026-07-11.md +0 -28
  81. package/docs/PARITY-CONTEXT-TRANSACTIONS-2026-07-10.md +0 -67
  82. package/docs/PARITY-PROGRESS-MATRIX-2026-07-10.md +0 -37
  83. package/docs/PARITY-SPOT-AGENT-TYPES-2026-07-10.md +0 -70
  84. package/docs/PARITY-SPOT-REMINDERS-2026-07-10.md +0 -144
  85. package/docs/PARITY-SPOT-TOOL-INVENTORY-2026-07-10.md +0 -61
  86. package/docs/PARITY-SPOT-USAGE-CONSTANTS-2026-07-10.md +0 -95
  87. package/docs/PARITY-SPOT-WORKFLOW-2026-07-10.md +0 -93
  88. package/docs/PASSWORD-RECOVERY-PANEL-VERDICT-2026-07-10.md +0 -62
  89. package/docs/R8-R9-FINALIZE-COORDINATION-2026-07-09.md +0 -124
  90. package/docs/REPL-CODE-MODE-EVALUATION-2026-07-10.md +0 -187
  91. package/docs/REPORT-1249-TARGETED.md +0 -48
  92. package/docs/RESEARCH-3P-MEMORY-SWAP-2026-07-12.md +0 -273
  93. package/docs/ROADMAP.md +0 -111
  94. package/docs/RSI-CLOUD-DEPLOY-2026-07-06.md +0 -289
  95. package/docs/RSI-PROCESS-AI-COLDSTART-2026-07-11.md +0 -68
  96. package/docs/S18-THOROUGHNESS-AUDIT-2026-07-09.md +0 -113
  97. package/docs/SERVICE-INTEGRATION-GUIDE.md +0 -298
  98. package/docs/SUBAGENT-STREAM-RESILIENCE-PARITY-2026-07-10.md +0 -118
  99. package/docs/SWEBENCH-PRO-RECON-2026-07-11.md +0 -31
  100. package/docs/TB-EFFICIENCY-TELEMETRY-2026-07-08.md +0 -114
  101. package/docs/TB-FAILURE-AUTOPSY-2026-07-05-RERUN.md +0 -67
  102. package/docs/TB-FAIRNESS-AUDIT-2026-07-08.md +0 -141
  103. package/docs/TB-FULL-1257-2026-07-08.md +0 -77
  104. package/docs/TB-LEG-GAP-ATTRIBUTION-1261-1263-2026-07-11.md +0 -154
  105. package/docs/TB-REGRESSION-DAEMON-KILL-2026-07-08.md +0 -58
  106. package/docs/TB-RSI-CROSSCHECK-2026-07-06.md +0 -68
  107. package/docs/TB-RSI-LEDGER.md +0 -30
  108. package/docs/TB-STABLE-SET-2026-07-08.md +0 -127
  109. package/docs/TB21-RECON-2026-07-11.md +0 -28
  110. package/docs/TEST-DESIGN-BATCH-1-2-3.md +0 -97
  111. package/docs/THIRD-PARTY-INTEGRATION.md +0 -45
  112. package/docs/TOKEN-ESTIMATE-CALIBRATION-LIVE-2026-07-09.md +0 -102
  113. package/docs/audit-2026-06-10-/347/254/254/344/272/214/350/275/256-/347/251/272/347/231/275/345/214/272/344/270/216/345/277/230/346/216/245/347/272/277.md +0 -147
  114. package/docs/audit-2026-06-10-/350/256/241/347/256/227bug/346/211/253/346/217/217.md +0 -163
  115. package/docs/audit-2026-06-11-/344/277/256/345/244/215/345/244/215/345/256/241/344/270/216/345/233/236/345/275/222/344/270/223/346/211/253.md +0 -95
  116. package/docs/audit-2026-06-12-design71-P1/346/275/234/344/274/217/351/235/242/350/243/201/345/206/263/344/270/216/345/220/236/351/224/231/345/256/241/350/256/241.md +0 -45
  117. package/docs/audit-2026-06-12-/345/205/254/345/274/200/346/227/213/351/222/256/346/264/273/346/200/247/344/270/216vendored/346/255/273/350/267/257.md +0 -63
  118. package/docs/audit-2026-06-15/ADDENDUM-second-pass.md +0 -88
  119. package/docs/audit-2026-06-15/ARCHITECTURE-AND-ROADMAP.md +0 -187
  120. package/docs/audit-2026-06-15/DOC-CORRECTIONS.md +0 -105
  121. package/docs/audit-2026-06-15/INDEX.md +0 -49
  122. package/docs/audit-2026-06-15/ORCHESTRATION-STATUS.md +0 -98
  123. package/docs/audit-2026-06-15/PRODUCTION-ISSUES.md +0 -189
  124. package/docs/audit-2026-06-15/REFERENCES-literature.md +0 -139
  125. package/docs/audit-2026-06-15/VENDOR-REFACTOR-PLAN.md +0 -96
  126. package/docs/cc-probe-198/README.md +0 -72
  127. package/docs/cc-probe-198/STABILITY-AUDIT.md +0 -118
  128. package/docs/cc-probe-198/live-schema-monitor-worktree-2026-07-09.json +0 -56
  129. package/docs/cc-probe-198/mount-variants.json +0 -536
  130. package/docs/cc-probe-198/plan-mode-run.json +0 -1
  131. package/docs/cc-probe-198/probe-bash-bg.json +0 -224
  132. package/docs/cc-probe-198/probe-edit-mismatch.json +0 -120
  133. package/docs/cc-probe-198/probe-read-missing.json +0 -62
  134. package/docs/cc-probe-198/probe-search-empty.json +0 -127
  135. package/docs/cc-probe-198/probe-task-family.json +0 -227
  136. package/docs/cc-probe-198/probes.status +0 -6
  137. package/docs/cc-probe-198/raw-capture-interactive.json +0 -948
  138. package/docs/cc-probe-198/raw-capture-print.json +0 -787
  139. package/docs/cc-probe-198/raw-capture2-interactive.json +0 -948
  140. package/docs/cc-probe-198/raw-capture2-print.json +0 -787
  141. package/docs/cc-probe-198/system-prompt.txt +0 -135
  142. package/docs/cc-probe-198/tools-array.json +0 -962
  143. package/docs/durability-boundary.md +0 -63
  144. package/docs/fix-2026-06-10-/350/256/241/347/256/227bug/344/277/256/345/244/215-search/346/211/271.md +0 -75
  145. package/docs/fix-2026-06-11-/347/254/254/344/272/214/350/275/256-/344/277/256/345/244/215-search/346/211/271.md +0 -62
  146. package/docs/parity-sweep/REPORT-DYNAMIC.md +0 -97
  147. package/docs/parity-sweep/REPORT-STATIC-GGB.md +0 -127
  148. package/docs/parity-sweep/REPORT-STATIC-RWE.md +0 -133
  149. package/docs/vendor-history.md +0 -385
  150. package/docs/vendored-upstream-diff-2026-07.md +0 -83
@@ -1,57 +0,0 @@
1
- # mteb-retrieve 零信号归因 · 契约逃生舱决策链(落档版)
2
-
3
- > 2026-07-09 · A1 归因续批(接 docs/A1-ATTRIBUTION-ROUND1-2026-07-09.md §2.2 text-embed-rank 族)
4
- > 本档为 1.259.0 合车复审修⑤ 落档:此前归因结论只存在于 subagent 交付未 commit,
5
- > commit `1180b61`(role.base「契约逃生舱条款」判据)的注释/CHANGELOG 所引「mteb 零信号归因报告 2026-07-09」即本档。
6
- >
7
- > **敏感纪律**:本档只记机制面(工具序 / 契约探测 / 判据决策 / 注入面),不复述题目任务叙事;
8
- > 机制面报告化名不需要——**mteb-retrieve 是题名 ID,可直接出现**;trial ID 保持原样可回查。
9
-
10
- ---
11
-
12
- ## 1. 判决
13
-
14
- **败因 = 判据缺口,非探测缺口(judgment gap, NOT probe gap)。**
15
-
16
- sema 各 trial 并非没找到第三方契约——找到了、部分还拿到了逐字条款,但读到
17
- 「optional / minor performance drop」标注后**自选捷径不执行推荐用法**(契约逃生舱决策)。
18
- 关键决策发生在**开局管线设计段**,收尾侧任何探针都翻不了盘。
19
-
20
- ## 2. 证据链(N=5)
21
-
22
- | 证据项 | 读数 | 含义 |
23
- |---|---|---|
24
- | finalVerifyInjected | **5/5 true** | design/132 final-verification 注入(含 1.258.5 修② 第三方契约探针)在全部 5 trial 落地——零信号**不是**注入缺失 |
25
- | 找到第三方契约 | **3/5** | 探测面基本在场(读 docs/元数据/模型卡拿到推荐用法存在的信号) |
26
- | WebFetch 拿到逐字条款 | **1/5** | 至少一条 trial 手里握着 optional 条款原文,仍走了捷径 |
27
- | 收尾时管线已锚定 | **5/5** | 修② 收尾探针触发时,编码管线形态已定型——收尾自检只能确认产物存在,翻不动开局的用法选择 |
28
-
29
- ### 2.1 mXMyrqB 逃生舱决策链(时间线锚)
30
-
31
- - **+42.8s**:读到第三方契约的推荐用法条款(含「optional / minor performance drop」措辞)。
32
- - **+84.1s**:管线落定为对称裸调用——推荐用法被以「optional=可跳过」为由弃用。
33
- - 中间 ~41s 内无任何「该 optional 评估量是作者基准上的读数、非本任务验收判据」的权衡记录:
34
- 这是**判据缺口**的直接形态——契约在手,缺的是「canonical-usage over optional escape-hatch」的默认判。
35
-
36
- ## 3. 与 db-journal-repair 的失败形态对照
37
-
38
- | 维度 | db-journal-repair(A1 档 §2.1) | mteb-retrieve(本档) |
39
- |---|---|---|
40
- | 失败形态 | **过程型**:全程操作纪律缺失(输入产物只读/snapshot-before-mutate),损害在过程中累积且不可逆 | **契约悬崖型**:开局一次二元决策(canonical 用法 vs 裸调用)直接锁死结局,此后过程再干净也零信号 |
41
- | 探测面 | 诊断全到位(≥4/5 推出正确变换参数) | 契约探测基本到位(3/5 找到、1/5 逐字) |
42
- | 收尾探针能否救 | 不能(产物已不可再生) | 不能(5/5 收尾时管线已锚定) |
43
- | 修向 | role.base 开局**操作**纪律(1.258.5 修①) | role.base 开局**判据**(1180b61,本批) |
44
-
45
- 共同点:两者都证明**收尾侧注入对开局锁死型失败无力**,修必须落开局侧 role.base。
46
-
47
- ## 4. 修向与落码
48
-
49
- - **修向=开局判据**:role.base「Engineering tasks」段加「契约逃生舱条款」判据(两要素:
50
- ①第三方 API/库/模型声明的推荐用法默认走 canonical 路径(correctness-critical/复现类);
51
- ②optional/"minor" 标注不构成跳过理由——该评估量在作者基准上,非本任务验收判据;偏离是需论证的决策非捷径)。
52
- 已落:commit `1180b61`(src/prompts/default.ts CODE_AGENT_PROMPT,措辞通用零题目词汇)。
53
- - **CC 锚**:A1 档 §2.2 text-embed-rank CC PASS(`EcY2N4u`)面对同一 optional 条款,检视
54
- `model.model_prompts` 后按推荐用法走 canonical 路径(`prompt_name="query"`)。
55
- - **边界**:SUBAGENT_PROMPT 照 198 精简 persona 结构不加此判据(主循环 role.base 纪律;
56
- 注释+test/full-body.test.ts 反向断言锁边界)。
57
- - ⚠️ 按归因口径:prompt 纪律修,增益须 bench N 复跑验证,勿当确定性修。
@@ -1,134 +0,0 @@
1
- # mteb-leaderboard × mteb-retrieve 死因分叉归因
2
-
3
- **日期**: 2026-07-10
4
- **归因 agent**: search AI(只读取证,不落码)
5
- **触发**: 两题同源(mteb 数据集任务)。1.259.0 判据修(commit `1180b61`,"契约逃生舱条款")让 **retrieve 从 0/5→3 wins 可见**(真增益,未稳),但 **leaderboard 仍 0/6 全 FAIL 零信号**。两题 CC 亦全 FAIL(收益面在 M3 并集非 CC-diff)。
6
-
7
- **判决摘要**:两题**不是同一种死法**。retrieve = 本地确定性算分 + canonical prompt-prefix 判据缺口(判据修正中靶心)。leaderboard = 纯**时序 web 检索死路**(取历史快照的动态渲染排行榜),与本地 canonical-usage 判据**零交集**——判据修救不了它是**结构必然,非调参不足**。leaderboard **无引擎面/判据面杠杆**,诚实归**任务面(web 可及性)+ 模型面(时序事实检索)**,CC 同形态死可证。
8
-
9
- ---
10
-
11
- ## 0. 取证坐标(测试机 `ubuntu@91.199.82.197`,只读)
12
-
13
- | 腿 | 目录 | reward |
14
- |---|---|---|
15
- | leaderboard(1259 后)| `siege-b2-1259-fb/siegeb2/mteb-leaderboard__{DZvuEcB,YrtzWsW,VbYcZNG,to97iit,zFhqoPU}` | 0,0,0,0,0 |
16
- | leaderboard(M2 cert 在飞)| `m2-cert-1259-fb/full89/mteb-leaderboard__TvLMmju` | 0 |
17
- | retrieve(1259 后)| `siege-b2-1259-fb/siegeb2/mteb-retrieve__{3f42mJF,amEskcn,UqycFuK,tAZLCQa,jCvvUhp}` | **1,1**,0,0,0 |
18
- | retrieve(M2 cert 在飞)| `m2-cert-1259-fb/full89/mteb-retrieve__itnH4vj` | **1** |
19
- | CC leaderboard | `cc-pro-r3-full/mteb-leaderboard__M827HXg` 等 4 job | 全 0 |
20
- | CC retrieve | `cc-pro-r3-full/mteb-retrieve__ejCrfah` | 0 |
21
-
22
- 判据修 commit:`1180b61`(`src/prompts/default.ts` CODE_AGENT_PROMPT「Engineering tasks」段 +1 条 "follow the canonical path by default … even when the documentation marks it optional")。
23
-
24
- **post-1259 retrieve 计数**:siegeb2 2 wins(3f42mJF, amEskcn)+ m2-cert 1 win(itnH4vj)= 3 wins 可见,坐实「0→2/5 真增益」并延续。leaderboard = 6/6 全败,零信号。
25
-
26
- ---
27
-
28
- ## 1. 两题任务本质(instruction 原文)——分叉的根
29
-
30
- **leaderboard**(`agent/instruction.txt` 逐字):
31
- > "I have a lot of Scandinavian texts… provide me the name in organization/model_name format of the **best embedding model according to the Scandinavian MTEB leaderboard (highest Mean (Task)) as of August 2025**. Write to /app/result.txt."
32
-
33
- = **时序 web 事实检索**:取一个**历史时间点(2025-08)**的、**动态客户端渲染**的 HF Space/Gradio 排行榜快照,读出 Mean(Task) 榜首。正确答案 = `GritLM/GritLM-7B`。本地无任何数据/API 文件(`agent/setup/` 空,无 mount)。
34
-
35
- **retrieve**(`agent/instruction.txt` 逐字):
36
- > "Given the query 'terminal-bench' retrieve the document with the **5th highest cosine similarity** among texts at /app/data.txt, using the **bge-small-zh-v1.5 embedding model at revision 7999e1d…**. mteb package 1.36.8 installed."
37
-
38
- = **本地确定性算分**:跑一个 pin 死 revision 的具体模型,对本地文件算 cosine 排序取第 5。正确答案 = `MTEB: Massive Text Embedding Benchmark`。**全部数据+模型本地可得,零 web 依赖**。
39
-
40
- > 分叉根源:两题只是"都用了 mteb 数据集"表面同源。**能力轴完全不同**——retrieve 是"按第三方模型契约本地复现";leaderboard 是"检索一个过期的动态网页事实"。判据修只作用于前者。
41
-
42
- ---
43
-
44
- ## 2. leaderboard 死法(verifier 原文 + 轨迹坐标)
45
-
46
- ### 2.1 verifier:散射式错答(每次不同的错模型)
47
-
48
- `test_outputs.py::test_data_matches` expected `GritLM/GritLM-7B`。6 个 fail run 的 actual(`verifier/test-stdout.txt`):
49
-
50
- | run | actual(写进 result.txt) |
51
- |---|---|
52
- | DZvuEcB | `Qwen/Qwen3-Embedding-8B` |
53
- | YrtzWsW | `google/gemini-embedding-001` |
54
- | VbYcZNG | `codefuse-ai/F2LLM-v2-14B` |
55
- | to97iit | `Linq-AI-Research/Linq-Embed-Mistral` |
56
- | zFhqoPU | `codefuse-ai/F2LLM-v2-14B` |
57
- | TvLMmju(M2)| `Salesforce/SFR-Embedding-2_R` |
58
-
59
- **每次给一个不同的、貌似合理但错的**当代高排名嵌入模型,**从不命中 GritLM**。散射=不是稳定的单一系统偏差,是"数据没拿到→退而猜一个当红模型"的模式。
60
-
61
- ### 2.2 轨迹:WebFetch 死循环(`agent/sema.txt`,DZvuEcB)
62
-
63
- - 工具分布:**WebFetch ×70**、Bash ×20、Read ×1、Write ×1。
64
- - 全程 **1275s(~21 分钟跑满)**,30+ 次 WebFetch 反复怼 HF Space / Gradio API endpoint / dataset JSON,reason 里反复 "The Hugging… web pages are dynamic" / "try the Gradio API endpoint" / "I'm struggling"。
65
- - 动态渲染排行榜对 WebFetch 返回空/骨架 HTML(客户端 JS 渲染),**始终没拿到榜单表格**。
66
- - 收尾(t≈1260s)reason 承认拿不准,"Actually, I'll stick with my a[nswer]" → 写 Qwen。
67
-
68
- **死在第一步:取数(data acquisition)。** 不是算分、不是排版、不是判据字符串比对——是**根本没检索到那份 2025-08 快照**。
69
-
70
- ---
71
-
72
- ## 3. retrieve 死法 + 判据修救它的机制(对照组)
73
-
74
- ### 3.1 FAIL(UqycFuK)verifier:off-by-preprocessing 的确定错答
75
-
76
- expected `MTEB: Massive Text Embedding Benchmark`,actual `HumanEval: Benchmarking Python code generation via functional examples`。**给了一个确定的错行**(排序第 5 拿错)——非散射,是可复现的算分偏差。
77
-
78
- 轨迹(`agent/sema.txt`):FAIL run **确实本地跑了** SentenceTransformer/mteb(Bash ×11,含 `python3 … SentenceTransformer` encode、查 modules.json/config 找 prompt 约定),但 `query` 出现 23 次却只 1 次 `passage`——**query/passage prompt 前缀没按 BGE 契约配对**,embedding 有偏→ranking 错→取到 HumanEval 那行。
79
-
80
- ### 3.2 PASS(3f42mJF)轨迹:判据修的机制正中靶心
81
-
82
- PASS run 的 reason/Bash(`agent/sema.txt`)显式:
83
- - **canonical ×8 提及**,查 `model_prompts` / `prompts` attribute,reason "BGE models typically have specific query prompts"。
84
- - 决定性一步(Bash description 逐字):**"Re-run with BGE canonical query instruction prefix"** —— 加上 BGE 文档推荐的 query 指令前缀重算。
85
- - 这正是 commit `1180b61` 装入 role.base 的判据:*"When a third-party … model documents a recommended usage … follow the canonical path by default … even when the documentation marks it optional."*
86
-
87
- > **判据修救 retrieve 的机制坐实**:retrieve 的 correctness 卡在"要不要执行 BGE 模型文档推荐的 query-prefix 预处理"。逃生舱条款把默认从"optional→可跳过"翻成"canonical→默认走",PASS run 就是照此加了前缀。**retrieve = 判据缺口(judgment-gap),修在靶心。**
88
-
89
- ### 3.3 CC 对照:retrieve 死法**同形态**
90
-
91
- CC `cc-pro-r3-full/mteb-retrieve__ejCrfah`(reward 0)actual = **一模一样的 `HumanEval: Benchmarking…`**。CC 和我们撞同一个错行 → 证明 retrieve 的 preprocessing/ranking 边确实**微妙且共享**(不是随机),判据修是真的抓到了这个边。
92
-
93
- ---
94
-
95
- ## 4. leaderboard:CC 同形态死(任务面硬,非 sema gap)
96
-
97
- CC 侧 leaderboard 全 FAIL,且**同为散射错答**:
98
- - `cc-pro-fails-r3/…wvMTXdr` → `google/gemini-embedding-001`
99
- - `cc-pro-cc-full-r2/…KEcwAXy` → `Salesforce/SFR-Embedding-2_R`
100
- - `cc-pro-r3-full/…M827HXg` → **连 result.txt 都没写**(`assert exists('/app/result.txt') == False`,取数失败到彻底放弃)
101
-
102
- CC 与我们**同一死法**(拿不到 2025-08 动态快照→散射猜/放弃)。**同死 = 任务面硬**,非我方特有短板。
103
-
104
- ---
105
-
106
- ## 5. 杠杆判决
107
-
108
- ### retrieve:有杠杆,已兑现(判据修在飞)
109
- - 修法 = 已落地的 `1180b61` canonical-usage 判据。机制经 PASS/FAIL 轨迹对照坐实(§3.2)。
110
- - 预期增益:0→2/5 已见,post-1259 再 +1(itnH4vj)。**未稳**(prompt 纪律修,方差带内),按 commit 口径「须 bench N 复跑」。
111
- - 验收:m2-cert 全 89 n=8 收官后看 retrieve 稳定 win 率;retrieve 是 M3 收益题(CC 同 FAIL,增益纯属我方翻转)。
112
-
113
- ### leaderboard:**无引擎面/判据面杠杆**,诚实归任务面+模型面
114
-
115
- **判据面**:逃生舱条款对 leaderboard **零适用**——它没有"第三方模型 canonical usage"决策点,唯一卡点是"检索一份过期动态网页"。装再多本地 canonical 纪律都碰不到取数死路。§2.2 轨迹证明:70 次 WebFetch 全程死在 data acquisition,不是判据不清导致选错路径。
116
-
117
- **引擎面**:候选杠杆全部证伪或越界——
118
- - WebFetch 已狂拉 70 次仍拿不到动态渲染榜单 → 不是"探测不够",是**工具能力边界**(WebFetch 拿不到 client-side JS 渲染表格)。加"headless 浏览器/Gradio API 直连"探测提示 = **给题(task-specific hint)**,违背[[feedback-exhaustive-enumeration-no-hint-dependence]]与通用原语纪律,且 CC 用同工具面同样死 → 非我方引擎缺口。
119
- - 时序约束("as of August 2025")= 要检索一个**历史快照**,模型/工具都拿不到过期状态 → **时序事实检索**是模型面+外部数据可及性问题,非 prompt 能修。
120
-
121
- **诚实归因**:
122
- 1. **任务面**:动态客户端渲染 + 时序快照,当前工具面(WebFetch)结构性拿不到数据。
123
- 2. **模型面**:拿不到→退化为凭训练知识猜当红模型(散射错答),命不中 2025-08 特定榜首 GritLM。
124
- 3. **CC 反证**:CC 同工具面同样 0/N 且同形态死(散射/不写文件),排除"我方特有 gap"。
125
-
126
- > 唯一诚实杠杆(非本轮、非判据/prompt):若给 headless-browser 工具或允许 Gradio/HF-dataset API 直连并放通 host,可能把 data acquisition 打通——但这是**工具面/环境面**改动,不是判据修能触达的,且需先确认 CC 在同增强下能否翻转(否则仍是任务面硬)。本轮**不建议**当 RSI 靶投入,归**任务面沉没**。
127
-
128
- ---
129
-
130
- ## 6. 对 M3 并集账的影响
131
-
132
- - **retrieve**:留在 M3 收益并集(CC∩semaFAIL 面的翻转题)。判据修真增益,post-1259 稳定贡献 wins;等 m2-cert n=8 定稳定 win 率,是**可坐实的 M3 进项**。
133
- - **leaderboard**:从"零信号待攻"**降级为任务面沉没题(task-face parked)**。判据面/prompt 面无杠杆已证伪(§5),CC 同 FAIL(§4)证非我方 gap。**不计入可攻 M3 增量**,不再作 prompt/判据 RSI 靶。若未来做工具面(headless/API 直连 + host 放通)增强,再单独立项并先跑 CC 对照闸,不与本轮判据修混账。
134
- - **记账纪律**:两题解绑——"mteb 同源"是数据集重合的假象,能力轴分叉(本地复现 vs 时序 web 检索)。M3 并集里 mteb 只剩 **retrieve 一题算收益题**,leaderboard 单列 parked。
@@ -1,28 +0,0 @@
1
- # oracle 闸负样本:finalVerify 注入的破坏性重验证(TB2.1 configure-git-webserver,2026-07-11)
2
-
3
- > A/B「净+1 中性」账本下的首个**具体负样本**,证据链完整、反事实成立、BLOCKER 级机制账。与 password/nginx 正样本并记。归因腿在 sc-03 `~/sema-tb/jobs/tb21-sema-1259w`。
4
-
5
- ## Smoking gun 时间线(证据:trial `configure-git-webserver__MBc6Whh/agent/events.jsonl`)
6
- - `[64610ms]` turn~18:端到端测试成功,push「add hello.html」,docroot 部署完成。
7
- - `[71968ms]` turn20 模型 `stopReason:"stop"` **已收工**;此刻亲测 docroot `hello.html`=12 字节=`hello world\n`,verify.sh 的 `$(curl -s ...)` 吞尾换行后精确=`hello world` → **此状态过题**。
8
- - `[71968ms]` 紧接一条 `role:"user"` 注入(entryId 73acf6db)= finalVerify injection #1(sidecar `finalVerifyInjected:true` 亲证)。
9
- - `[80122ms]` turn22 响应注入,做「Fresh end-to-end verification」:`echo "hello world from final verification" > hello.html && git add && commit && push` → post-receive hook 部署 → **交付物被自己的验证提交覆盖**。
10
- - verifier:`Expected 'hello world' / Got 'hello world from final verification'` → FAIL。verify.sh 自愈路径(自 clone+push 正确内容)因 sema 操作库在 `/app/git/server`(它 clone `user@localhost:/git/server` 失败)没兜住。
11
-
12
- ## 反事实 & CC 对照
13
- - **无注入则此 trial 过题**(turn20 已是过题终态)。反事实成立。
14
- - CC198 同题 118s reward=1.0:中途也用污染内容测过,但**最后一步主动 clean push 恢复精确 `hello world` 再收工**——CC 的验证幂等收敛;sema 的破坏性验证发生在最后一步且是**闸诱发**的。
15
-
16
- ## 机制坐标 & 病理
17
- - core final-verify 注入 injection #1(`src/core/runner/runtask.ts` R9 nudge,`mechanisms.finalVerifyInjected`)。
18
- - 病理:注入文案「re-verify the FINAL deliverable through its REAL entry point / execute the binary/function/endpoint directly」对**交付物=持久终态快照**类任务(git 已 push 的文件、已部署的 docroot)有破坏性——模型把「验证你的工作」执行成「再推一个新 commit 走全链」。注入未约束验证的**幂等性/状态无害性**。
19
- - 与 AB-ORACLE-GATE 判决「R9 说服力非触发条件」同族:闸能逼验证,不能逼验证的**无害性**。
20
-
21
- ## 修复(本批落码,v2 定稿 2026-07-11)
22
- - v1(前会话):增补「Verify by OBSERVING ... do not overwrite」——与三行前的「execute directly」形成两个并列拉扯的 imperative,靠模型自行调和,存在 observe-only 误读面。
23
- - v1.5(本会话重写):改为对「怎么 exercise」的限定(exercising must leave delivered state intact)+「persisted final state」条件化。codex 对抗审判 **ITERATE**:①「no fresh test commit, no redeploy」正面劝退 CI/hook 类任务的合法验收写;②「written output file」混淆静态产物与须现场再生的输出;③「verify what is ALREADY there」与后文「re-read what is actually on disk」冗余。
24
- - **v2 定稿(采纳 codex 反提案文案)**:核心动词=「do not change that state **merely to test it**」(精确圈住病理:为测试而改终态),配「**Only write when the real acceptance path requires it**」正面放行验收本身就是写的任务(CI/hook/migration),收尾「end in the exact required final state, and verify that final state before finishing」=CC 行为锚(clean push 恢复终态+确认)。25/25 final-verification 测试绿,「REAL entry point」关键词断言保留。
25
- - 活体验收欠账:configure-git-webserver 单题复跑(sc-03 TB2.1 环境)待机器空窗执行。
26
-
27
- ## 同腿另案(对照,非本病理)
28
- - **polyglot-c-py**:引擎终止面全干净(status completed / stopReason stop / 10 turns / 零 repetitionCuts / 零上限),模型自然收尾但交付物 Python 侧真坏(`#endif` 后裸 C `int main` 对 python3 是 SyntaxError,模型误判「Python exits after print」)→ **方差/能力账**(2.0 方差带定位维持;effort 差 3.5K vs CC 43K 归 cadence 领地,非终止层)。
@@ -1,67 +0,0 @@
1
- # 上下文事务性 parity 取证:压缩×subagent 返回竞态 + 全事务点对照(2026-07-10)
2
-
3
- > 起因:clay 问「会话压缩进行中 subagent 恰好返回,怎么处理?CC 应该是等压缩完再告诉主 LLM?其他需要『上下文事务』的地方还有哪些?」
4
- > 方法:双腿并行取证(opus)——CC 锚腿(88 可读源坐实 + 198 bundle 逐点核对)+ 我方引擎腿(src/ 行号级)。两腿均零 UNVERIFIED 竞态(CC 侧仅 Q2b 两处窄标注)。
5
-
6
- ## 一、主问题判决:压缩中途 subagent 返回
7
-
8
- **两边同一结论:竞态被结构性排除,不是「等待/加锁」。**
9
-
10
- ### CC 2.1.198(与 88 同机制,零漂移)
11
- - **统一优先级命令队列**(`messageQueueManager.ts`,`now(0) > next(1) > later(2)`):用户排队消息、subagent/task 完成、orphaned permission 全走它。task-notification 默认 **later**(198 line 240213)。
12
- - **压缩只读快照**:query 循环顶部对已提交 `state.messages` 取快照(`query.ts:365`),microcompact(`:414`)/autocompact(`:453-467`)全 await、从不碰队列。压缩期间到达的通知既不会卷进摘要也不会丢。
13
- - **队列 drain 只有两个不相交时机**:①turn 内工具执行后的 attachment drain(`query.ts:1570-1578`,**封顶 next**——later 的 task-notification 不走,除非 Sleep/Monitor 跑过);②turn 间空闲处理器(`useQueueProcessor.ts:48-60`),被 QueryGuard 硬门禁(`isActive = status !== 'idle'`,含 dispatching/running;198 line 618565/641758)。
14
- - 注入形态:`queued_command` attachment 附到**下一个 turn**(`attachments.ts:1044-1082` → `query.ts:1715-1717` 提交)。
15
-
16
- ### 我方引擎(@sema-ai/core)
17
- - **单线程 turn 循环**(`agent-loop.ts:534`):压缩(`prepareNextTurn`,`agent-harness.ts:633` → `runtask.ts:2832`)与通知注入在同一线性时序里,物理上无并发写历史路径。
18
- - 后台完成 → `steerQueue.push`(`agent-harness.ts:965`,纯数组);压缩完成后**同一 turn 边界** `getSteeringMessages`(`agent-loop.ts:882`)drain。
19
- - idle 竞态兜底 = `PendingSessionNotifications`(`runtask.ts:898-904`);同步 Agent 工具返回是普通 tool_result,不走通知道。
20
- - 通知 park 队列有三重上限 + drop 披露(`task-notification.ts:159-161,228-250`)。
21
-
22
- **delta(非缺口,形态差异)**:CC 有三档优先级车道(task-notification=later,mid-turn drain 不带);我们是 steerQueue 同边界注入 + 高优先级让位(`runtask.ts:2403`)。两者都保证「压缩原子性 + turn 边界注入 + 不丢」,注入延迟语义略不同(CC 的 later 通知通常等到 query idle;我们下一 turn 边界即入)。判定:**等价,无需动作**。
23
-
24
- ## 二、全事务点对照表
25
-
26
- | 事务点 | CC 机制(88 file:line) | 我方机制(src file:line) | 判定 |
27
- |---|---|---|---|
28
- | a) 中断撕裂 tool_use/result | 合成 tool_result "The user doesn't want to proceed…"(`StreamingToolExecutor.ts:153-172`,`messages.ts:212`);兜底网 `ensureToolResultPairing`(`messages.ts:5133+`) | 合成 [INTERRUPTED] tool_result 补配对(`session-reconcile.ts:99-126`)+ mod#5 held-writes 排序(`agent-harness.ts:723-737`) | 双安全,同构 |
29
- | b) 流式半截消息(thinking 签名) | 整条 tombstone(`query.ts:716-725`)+ `stripSignatureBlocks`(`messages.ts:5066`)+ 尾部 thinking 过滤(`:4781`);plain-ESC 显式 tombstone UNVERIFIED(靠归一化网兜底) | 有内容落账、纯空白 failure 跳过 append(`agent-harness.ts:1210,781`);中流已开工 call salvage 合并(`agent-loop.ts:1082-1084`)+ walltime 未执行 call 合成 error result(`:794-810`) | 双安全 |
30
- | c) tool_result 已返、下轮未开始时中断 | **保留**(`getCompletedResults` 无 abort 检查,`StreamingToolExecutor.ts:412-440`);只取消在飞且 cancel-behavior 的工具(`:210-231` interruptBehavior 分流,block-behavior 跑完) | **保留**(result 即时落账 `agent-loop.ts:834-837` 不回滚);abort 只清未注入 steer 队列(`agent-harness.ts:1143-1146`,有事件披露) | 双安全;clay 的猜测「tool 信息也被取消」证伪——是**选择性取消在飞工具**,已返结果永不回滚 |
31
- | d) 压缩动到未看过的 tool_result | microcompact keepRecent 窗口,只清老结果为 `[Old tool result content cleared]`(`microCompact.ts:461-483`);subagent 线程跳过(`:272-286`) | `toolResult` 永非 cut point(`compaction.ts:431`)+ `keepRecentTokens` 尾部保护 + oversized-batch fallback(`:521-538`) | 双安全,配对结构性不可撕裂 |
32
- | e) steering × 压缩互斥 | query 活跃时只入队 next(`handlePromptSubmit.ts:313-343`);压缩只读已提交历史 | drain 严格在压缩之后同边界、one-at-a-time(`agent-harness.ts:541`) | 双安全,同构 |
33
- | f) checkpoint × 配对完整性 | (CC 无 durable checkpoint,N/A) | resource suspend=clean 边界零 pending 批(`runtask.ts:2470`);tool_approval=完整批上下文入 pendingAction(`prepare-task.ts:3305,3428-3429`)+ resume 还原 `suspendedBatch`(`runtask.ts:840-842`)+ reconcile 豁免(`session-reconcile.ts:84`) | 我方超集,安全 |
34
- | g) CC 独有事务性设计 | prompt-too-long 错误**扣住不外泄**直到恢复成败已知;max_output_tokens「续写中思」重试 ×3;模型 fallback tombstone+执行器重建防陈旧 id | 专项对照已做,见下方【四、第 7 点专项对照】 | **已核销**:M2 等价 / M3 N-A(架构规避)/ M1 形态差异+S 级可选项 |
35
-
36
- ## 三、结论
37
-
38
- 1. **主问题**:CC 不是「等压缩完再告诉」,是队列+快照的结构性互斥;我们的单线程 turn 循环+steerQueue 同边界 drain 达成等价保证。**零缺口**。
39
- 2. **全表 8 点双引擎全安全**;唯一 by-design 权衡(我方):durable-suspend 后本进程永不 reconcile 时 mod#5 held 写会丢(非损坏,resume 从 checkpoint 重建,`agent-harness.ts:730-732` 注释自认)。
40
- 3. ~~唯一后续候选:g 行三项专项对照~~ → **已完成,见第四节**。
41
-
42
- ## 四、第 7 点专项对照(2026-07-10 补,锚源=198 pretty bundle,判决坐标全落 198)
43
-
44
- ### M1. prompt-too-long / 媒体错误扣留 —— **形态差异,功能等价(+1 个 S 级可选项)**
45
-
46
- **CC 198**:扣留在流式解码器内(`claude-cli-2.1.198.pretty.js:473371-473374`)——prompt-too-long(`tya:236950`)/media-size(`amo:236953`)/max_output_tokens(`yNl:472508`)三类各置 withhold 标志,`if (!$s) yield` 决定外泄。恢复链在外层(`:473604-473717`):reactive compact(一次性门 `hasAttemptedReactiveCompact`)→ 成功 `transition.reason="reactive_compact_retry"` continue;全败才 `yield $e` 外泄+落库,且**故意不走 stop hook**(防 death-spiral)。断路器 3。
47
-
48
- **我方**:PTL 恢复在 loop turn 级(`agent-loop.ts:644-710`):`stopReason==="error"` && `defaultDetectPromptTooLong`(`:397`)&& 空失败 && `admittedCount===0` && attempt<2 → pop 失败 assistant → `ptl.recover()`(`runtask.ts:2289-2340`,`maybeCompact({force:true})`,断路器 ≥3 拒)→ 成功 `reactive_compact_retry`(与 CC 同名)重试;拒绝则 push 回真 transcript。
49
-
50
- **真差异**:CC 错误从不外泄到消费流;我方失败 assistant 的 message_start/end 流事件**先发出再恢复**(`:644-645` 注释自认=live visibility of the retry)。我方 event 契约以 `agent_end`/terminal 为会话终局权威,故不影响功能;若下游 SDK 误把 stream 上 error message 当终止会有观感问题。**可选项(S)**:PTL 恢复期抑制失败 assistant 的 message_end 外泄对齐 CC withhold。不影响 TB。
51
-
52
- ### M2. max_output_tokens 续写恢复 —— **等价(我方多一个正确分支)**
53
-
54
- **CC 198**:`max_tokens` 不报错,yield `apiError:"max_output_tokens"` 被扣留;恢复循环 `:473718-473742`,注入 isMeta user "Output token limit hit. Resume directly — no apology, no recap… Pick up mid-thought…",`maxOutputTokensOverride: void 0`(**不升档**——纠正此前「8k→64k」表述:那是 insights/facet 独立调用非 M2),上限 `L1m=3`(`:474140`),耗尽才外泄。
55
-
56
- **我方**:`max_tokens`→`stopReason "length"`(`anthropic.ts:238`/`openai.ts:384`)不报错;恢复 `agent-loop.ts:884-915`:无 tool calls/无 steer/`truncatedOutputContinues<3` → 注入续写 nudge,`transition="max_output_tokens_recovery"`(同名);**额外分支**:无可见文本(推理吃满)走 `createReasoningCutContinueNudge`(`:471-481`)——OpenAI 系不回放 reasoning 的正确处理,CC(Anthropic 系)无需区分。非-length turn 重置计数。runtask 默认 wired(`:2278`)。
57
-
58
- **TB 影响**:deepseek 输出截断→续写重试,**不丢 turn**;reasoning-cut 分支避免续写空内容。零缺口。
59
-
60
- ### M3. 模型 fallback 事务(tombstone+执行器重建)—— **N/A(架构性规避)**
61
-
62
- **CC 198**:refusal/overload → `fallback_request`(`:593134`)→ `discardAndAbortInFlight("server-fallback-tombstone")`+`set_in_progress_tool_use_ids remove`(`g6t:240976`)→ 半截 assistant 逐条 tombstone(`:473267-473268`)→ 全新 StreamingToolExecutor → `retractedMessageUuids`+`ensureToolResultPairing` 补配对 → 切 fallbackModel continue。三重清除保证陈旧 tool_use id 不泄进重试。
63
-
64
- **我方**:`createDegradingBrain`(`degrading.ts:248`,design/126 chain,cap 3)**只在 zero-content 失败切换**——`!current.sawContent` 硬门(`:299-300`)+ heldStart(`:207-213`)保证失败 primary 的 start 不外泄、fallback 从干净 start 接管;触发集不含 refusal。**一旦流出内容永不切模型**,失败原样 propagate 交给 loop 的 PTL/length/degenerate 恢复。CC 的半截-tombstone 事务整类被设计掉,无 orphan tool_use 风险。若未来要 mid-content 切换(CC refusal 场景)才需移植(量级 L,PARKED)。
65
-
66
- ### 总账
67
- M1 形态差异/功能等价(S 级可选项:恢复期抑制 error message_end 外泄);M2 等价+reasoning-cut 增强,TB 不丢 turn;M3 N/A。**第 7 点核销,全表 8 点闭环,零真缺口**。
@@ -1,37 +0,0 @@
1
- # CC 差距清单 · 可审计进度矩阵(2026-07-10,opus 盘点)
2
-
3
- > 档案源:5×PARITY-SPOT + 7×CC-DRIFT-198-206 + PARITY-CONTEXT-TRANSACTIONS + SUBAGENT-STREAM-RESILIENCE,交叉核对 CHANGELOG 1.259→1.261 + git log + src/ 亲核。
4
- > 验证口径(宪法从严):测试绿≠VERIFIED;只有活体探针对 CC 本体 / live 跑分-遥测亲数才算。
5
-
6
- ## 三行统计
7
- - **总差距项 ≈58**(五维抽查 43 finding + ROADMAP 204/206 GA ~9 + 上下文事务 8 点);实质可动工 ≈45(剔纯记档/N-A/订正)。
8
- - **已落码 23**:全部集中在 1.261.0 三个 commit——止血批 1c838c5(F2/F3/F5/WF-F1/WF-F8/SR-2/SR-V1)、截断分表批 ae93e08(Read offload 豁免/per-tool 分表/TaskOutput 32K/MCP 双闸)、workflow M/L 批 190ec8a(确定性禁令/per-agent 韧性/scriptPath store/文案/phases/fan-out 折 null/并发 floor 2)。上下文事务 8 点属「本就等价」另计(双腿源码锚核实,零竞态)。
9
- - **严格口径 VERIFIED = 4 + 3 半**(2026-07-11 起计,探针目录 `bench/probes/usage-*` + `reminders-sr-batch`):**SR-3 budget_usd → VERIFIED**(真 CC `--max-budget-usd 5` vs sema `attachments.budgetUsd`:`USD budget: $0/$5; $5 remaining` 两侧 byte-identical)· **SR-4 Stop hook → SEMA-ONLY**(sema 逐字 PASS;CC 侧 `hook_stopped_continuation` 坐实为 TUI 渲染分支,模型面是另一串 `Operation stopped by hook:`——呈现面差异记档,非文案分裂)· **SR-7 孤儿聚合 → SEMA-ONLY**(sema suspend→resume 全链 F6c 逐字+存活者排除;CC 门控在 CLOUD resume 腿 headless 不可达,bundle 静态锚 byte-identical 兜底)·**USAGE-F1 Read offload 豁免 → VERIFIED**(真 CC198 50K 档全文 54,892c 零落盘;sema 同构 55,098c;300K 两侧同撞 256KB 字节闸)· **F2 Bash=30K 分表 → VERIFIED**(40.8K 档 CC persist 2,321c/sema offload 2,303c;25K 档两侧全文——30K 分界干净,反证非统一 20K)· **F4 MCP 双闸 → VERIFIED**(server 自声明 `_meta`=8000 @20K 两侧同落盘;默认阈 sema 50K/CC 100K-char 逐个坐实)· **F3 TaskOutput=32K → SEMA-ONLY-VERIFIED**(sema 40.8K spool→32,278c clip 中缝省略 PASS;CC headless -p 后台不可寻址 BLOCKED,静态锚 dFo=32000 兜底)。其余 1.261.0 落码项仍只有单测/反事实红→绿。
10
-
11
- ## 欠账两类
12
-
13
- ### A. 落码未验(1.261.0 剩 ~19 项)
14
- ~~USAGE-F1/F2/F4~~ 已 VERIFIED、F3 SEMA-ONLY(见上)。其余按批次排;下一优先 = reminders 三件(SR-3/SR-7/SR-4,1.262.0)+ 止血批 1c838c5 族。
15
-
16
- ### B. 未动工(高价值优先)
17
- 1. **反再委派 prompt 句**(204 GA,S,逐字可抄):GP persona 尾 "already the dedicated agent…do not re-delegate" 未进 SUBAGENT_PROMPT(FORK_DIRECTIVE_FRAME 的 "default to forking" 句已恢复,是另一句)。
18
- 2. **Read seeded 去重 reminder**(204 默认开,M):src 无 seededFromContext/already-in-context reminder。
19
- 3. **ScheduleWakeup stop 参数+三字段 optional**(204 GA,M):src 零命中。
20
- 4. SR-3 budget_usd 渐进提醒 lane(M)· SR-7 durable-resume 孤儿后台任务聚合通告(M)· SR-4 hook 前缀(S,COSMETIC)· auto-mode 两条(transcript 防篡改+rm -rf fail-closed,206)· AskUserQuestion never auto-continue(2.1.200,待查)· strict structured-output schema(2.1.205,下轮核对)· F5 AskUserQuestion minItems/maxItems(S)· AGENT-TYPES F1/F4/F7(内置 Explore/Plan+字段扩,design/135 批次3)· F8 fork 臂 maxTurns=200 专项钉。
21
-
22
- ### C. DEFER/不port/WATCH(by-design,零欠账)
23
- REPL #112(206 灰度默认关)· PowerShell N/A · Observer agents(实验期,撞 design/80,WATCH flag)· M23 allowedPrompts 弃用=不port · Sonnet-5 reminder 载体(升锚前活体探针)· 模型 fallback tombstone(架构规避,PARKED)· CLAUDE_WORKFLOW_NAME_ONLY(观察)。
24
-
25
- ## 分维度矩阵(全量)
26
-
27
- ### 维度一 agent-types(10 报→9 确认):落码 3(F2/F3/F5)· 部分 1(F8 全局 500 已落,fork 臂 200 未专项)· 未动工 3(F1/F4/F7)· 记档 2 · DEFER 1
28
- ### 维度二 workflow(11 确认):落码 9(F1/F2/F3/F5/F6+F9/F7/F8/F10/F11)· DEFER 1(F4 agentType)· 记档分歧 1(maxAgents rethrow)
29
- ### 维度三 tool-inventory(8 确认):落码 1(F1→WF-F2)· 未动工 1(F5)· DEFER/不port/记档 6
30
- ### 维度四 reminders(5+SR-V1):落码 3(SR-V1/SR-2/SR-5)· 未动工 3(SR-3/SR-7/SR-4)· WATCH/不port 2
31
- ### 维度五 usage-constants(5 确认):落码 4(F1-F4)· 记档 1
32
- ### 维度六 ROADMAP 204 GA:未动工 3 件 HIGH(反再委派句/Read seeded 去重/ScheduleWakeup stop)+ MED 若干(见 B)
33
- ### 维度七 206 前瞻:不port 1 · auto-mode 两条已落(1.262.0 8a5fa4e)· **cancelledWakeups:N/A 判决当日撤销→已落码(3e41b13)**:clay 质询触发复核,design/136「CronCreate 同位」系旁注误判——CC 本体 Cron 三件套与 ScheduleWakeup 两套并存(198 存在性清单),后者=同会话续班语义非语法糖;ScheduleWakeup 已照 198 F4t 逐字+204 stop/optional+206 cancelledWakeups 全量落码(含 seam mode:"session-wakeup" 契约,daemon 半场黑板知会)· WATCH 若干
34
- ### 维度八 上下文事务:8 点零缺口(双腿锚核实)+ M1 S 级可选项 + ④ 残局 AgentTranscript 已在 [558] 班车(48e481b)
35
-
36
- ## 方法诚实盲区
37
- REMINDERS/USAGE 核验官全程静态+记档,未跑活体探针;判决锚 198 直读源,statsig 运行时覆写不可见;204/206 系文本层 bundle 取证(合成官抽验 6 条 HIGH 零证伪)。
@@ -1,70 +0,0 @@
1
- # PARITY 抽查核验档 — agent-types(subagent 内建 agent 类型面)
2
-
3
- **日期**:2026-07-10 · **核验官**:search AI(对抗核验轮,挖掘者报告 10 findings 全量双坐标亲核)
4
- **Ground truth**:CC 2.1.198 `claude-198/cc-2.1.198/package/claude-cli-2.1.198.pretty.js`(直读)+ 活体 `docs/cc-probe-198/tools-array.json`(wire 采集)· 我方 devendor HEAD(ba59f8d)
5
- **范围**:CC built-in agent registry(HCe)+ agent_listing 呈现管线 vs sema `createSubagentTool`/`AgentDefinition`/`renderAgentListingDelta`
6
-
7
- ---
8
-
9
- ## 判决先行
10
-
11
- **10 报 → 9 确认(2 条带坐标/措辞订正)+ 1 already-recorded + 0 证伪。** 挖掘者质量高:无版本漂移误报、无已定谳分歧重翻、无看错层。两条订正:F2 的 `409093` 锚实为**结果** schema(Gyl,`agentType: A.string().optional()` 是 report 面),真输入面锚=活体 probe `required:["description","prompt"]`(subagent_type 不在 required)+ 453145 描述句;F7 的 `appendSystemPrompt` 在 CC 是 **session/CLI 级**选项(57446 settings schema / 146823 cli)非 per-agent 定义字段,应从字段差清单剔除。
12
-
13
- **主判**:注册表**机制**面(类型选择/per-type 工具白名单/模型/独立 persona/fork 收编/深度上限)已对齐;真差距集中在**默认回落语义**(F2)与**呈现投影**(F3/F5)——都是主模型「选类型」时的决策信息面,以及**内置类型集**(F1,已记档待执行)。
14
-
15
- ---
16
-
17
- ## 确认差距表(按严重度)
18
-
19
- | # | kind | 严重度 | 差距 | CC 锚 | 我方锚 |
20
- |---|------|--------|------|-------|--------|
21
- | F2 | behavior-drift | **MED** | 有 roster 时省略 `subagent_type`:CC=永远 optional,省略→general-purpose 回落(工具描述明示 "If omitted, the general-purpose agent is used";含 custom agents 场景);sema=有 agents 时 schema 必填 Union,execute 省略→`rawType:""`→`unknown subagent_type` 报错。模型失去「不挑类型拿默认通用代理」路径。附带 nuance:CC 输入面是**自由 string**,sema 是 enum Union(更严,schema 级校验属改良,但 optional 性必须补) | probe `tools-array.json` Agent `required:["description","prompt"]` + pretty.js:453145(描述句)+ 337982/338008/454729(`?? "general-purpose"` 回落) | subagent.ts:936-942(Type.Union 无 Optional)+ 982-990(报错路径) |
22
- | F3 | text-drift | **MED** | agent_listing 行渲染缺 `(Tools: …)` 尾注:CC 每行 = `- type: whenToUse (Tools: All tools / All tools except X / None / 列表)`(gHm 由 tools/disallowedTools 计算);sema 行 = `- name: description`。模型选类型时看不到该类型能否写文件/再委派 | pretty.js:453014-453031(gHm+tIl)+ 479509(addedLines=tIl) | turn-attachments.ts:632 |
23
- | F5 | text-drift | LOW(**即可修**) | removal 臂缺 ambient-context 尾注,且本轮已解出常量:`Emr = "This is ambient context — do not narrate it to the user unless they ask or it is directly relevant to their request."`。我方 docstring 自述「unresolved bundle identifier (Emr), not replicated」——前提已消失,直接补齐 | pretty.js:599207-599211(push(Emr))+ 599992(Emr 定义,亲读逐字) | turn-attachments.ts:618-619(自述未复刻)+ 645(removal 块无尾注) |
24
- | F4 | schema-drift | LOW | `AgentDefinition` 缺 `whenToUseLean`:CC tIl 用 `(lean主模型 && e.whenToUseLean) || e.whenToUse` 选文案(Explore 有双文案 nbm/rbm);sema 单文案。仅在船双文案内置类型或 lean 主模型场景承重。CC 侧事实 DEEP-DIVE 项1 已录,sema 缺口未定谳→计新 | pretty.js:409173-409174(nbm/rbm)+ 453029 + 479504(`yg(mainLoopModel)`) | types.ts:398-421(无该字段) |
25
- | F7 | schema-drift | LOW | per-agent 定义字段差(**订正后**):CC 面有 `skills`/`background`/`isolation`/`color`/`omitClaudeMd`/`permissionMode`(worker=bubble、guide=dontAsk);sema 真缺=per-agent skills 作用域、background 默认、omitClaudeMd 双态、per-def isolation。已有对位:`thinking`≈effort、`denyTools`≈disallowedTools、ToolPolicy≈permissionMode(部分)。**剔除 appendSystemPrompt**(CC 属 session 级非 per-agent) | pretty.js:486604-486634(plugin 定义字段全集)+ 487184-487185(worker)+ 486814-486815(guide haiku+dontAsk+动态 tools getter,亲核) | types.ts:398-421 |
26
- | F8 | behavior-drift | LOW | fork 无 maxTurns 200 钉:CC U3 钉 `maxTurns:200, permissionMode:"bubble"`;sema fork 走 `opts.limits` 透传(childLimits 仅对 defined agents 用 def.maxTurns),部署不配则无界。CC 侧事实 CC-SUBAGENT-PROMPT-STUDY §2.1 已录,sema 缺口未定谳→计新 | pretty.js:225062-225073(U3,亲读确认) | subagent.ts:1104(childLimits)+ 738-739(opts.limits 可缺省) |
27
- | F9 | extra | LOW | roster 双载:CC 描述不枚举类型(只指向 system-reminder,453134-453145 亲核);sema description 内联全 roster(agentList)+ opt-in agent_listing 通告→开通告的部署 prefix 双份携带。部分属故意(不开通告的部署需发现通路)但**未记档为 deliberate** | probe tools-array.json Agent description + pretty.js:453134-453145 | subagent.ts:855+885(内联)+ 868-877(listing 同源)+ types.ts:1228(opt-in) |
28
- | F10 | missing | LOW | 通告 roster 无权限规则滤除:CC 用 deny 规则(ruleContent=agentType)滤 listing(Q1e)+ allowedAgentTypes 白名单(FPe);sema listing 直取 prepare 期 ToolSpec.agentListing 静态快照。缓解:sema roster 本就 per-task 静态(无 mid-session 规则变更面),故 LOW | pretty.js:595144-595148(Q1e,亲读)+ 479489-479490 | prepare-task.ts:2432-2434 + turn-attachments.ts:627-647(无过滤钩子) |
29
- | F6 | behavior-drift | COSMETIC | 并发提示句条件:CC=`isInitial && Oi()!=="pro"`(订阅档,与 roster 大小无关);sema=initial && `entries.length>1`。sema 无订阅概念属合理适配,但 ANCHOR-GAP R5 与代码注释引「考据档 showConcurrencyNote semantics」易误读为语义等价→**记档订正项**非代码修 | pretty.js:479512 + 599212-599216(亲读:CC 也仅 isInitial 出——这半边我方已对齐) | turn-attachments.ts:616+637 |
30
-
31
- ## already-recorded(列出但不计新)
32
-
33
- | # | 项 | 记档处 | 本轮增量(未记档细节) |
34
- |---|-----|--------|------------------------|
35
- | F1 | 内置类型集缺位(general-purpose/Explore/Plan;sema 仅内置 fork) | design/135 §三 批次3「内置 agent 类型(H6 采集结果定内置集)」=记档待执行;DEEP-DIVE 项1 已录 Explore 定义+回落语义 | ①**198 已下线 output-style-setup**(全文 grep=0,亲核)——落码别按旧考据带上;②GAe 模型升档(Explore firstParty 时可升 opus,409162-409171 亲核)与 iAt 双开关(`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` env + `tengu_slate_ibis` gate,487127-487131 亲核)未记档;③**SDK 面开关** `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`(HCe 首行,487221)+ guide 仅非 SDK entrypoint 船——sema=SDK 形态,内置集落码时应对齐 SDK 语义(guide 不船) |
36
-
37
- ## 被证伪项
38
-
39
- 无整条证伪。两条**坐标/措辞订正**(不改判决):F2 的 pretty.js:409093 锚是结果 schema 非输入 schema;F7 的 appendSystemPrompt 剔除。另:挖掘者 F1 detail②(whenToUseLean 双文案)半新——CC 侧事实 DEEP-DIVE 项1 早录,新的只是 GAe/开关。挖掘者 ours 锚 `src/agents/scenarios/full-body.ts` 应为 `src/scenarios/full-body.ts`。
40
-
41
- ## aligned 抽验(防假阳性,6/9 抽)
42
-
43
- 1. **agent_listing 头部+并发句 CC-verbatim** ✅ — 599201-599216 亲读 vs turn-attachments.ts:598-609 逐字节吻合(含仅 isInitial 出并发句)。
44
- 2. **SUBAGENT_PROMPT vs ECm** ✅ — 419977 亲读;首句去品牌+`Use Read`→`Read the file directly`(工具名中性化)+ Notes 尾内联(CC 由 Qzt 共享尾追加,CC-SUBAGENT-PROMPT-STUDY §1.3 已录该结构)——记档口径成立。
45
- 3. **disallowedTools 六常量解译** ✅ — is=Agent(147382)/NR=Artifact(143265)/s0=ExitPlanMode(149770)/xa=Edit(143358)/Ic=Write(143375)/FR=NotebookEdit(143373),亲核吻合。
46
- 4. **fork 收编语义**(嵌套拒绝/model 忽略/shadow 检测)✅ — U3+subagent.ts:985-1037 亲读,design/135§0/136§6 记档成立。
47
- 5. **maxDepth=5(CC 2.1.201 Y4t)** ✅ — subagent.ts:741-748 注释含 off-by-one 语义钉。
48
- 6. **full-body 子代默认 FULL_BODY_SYSTEM_PROMPT=deliberate(codex F1 修③)** ✅ — src/scenarios/full-body.ts:20-26 亲读。
49
-
50
- ## 落码 backlog(S/M/L)
51
-
52
- | 优先 | 项 | 量级 | 说明 |
53
- |------|-----|------|------|
54
- | 1 | **F2:subagent_type 有 roster 时改 Optional + 省略→干净委派(SUBAGENT_PROMPT persona=general-purpose 等价)** | S | schema `Type.Optional(Type.Union(...))` + execute `rawType===""` 分支走无 def 路径;保留 enum(比 CC 自由 string 严,是改良不回退) |
55
- | 2 | **F3:listing 行补 `(Tools: …)` 投影** | S | gHm 等价:由 def.allowTools/denyTools 计算 All tools / All tools except X / None / 列表;fork 行 = All tools |
56
- | 3 | **F5:removal 臂补 Emr 尾注** | S | 常量已解出,turn-attachments.ts:645 后 push + 删 618-619 自述;记 CC 坐标 599992 |
57
- | 4 | **F1:内置 Explore/Plan 落码(design/135 批次3 执行)** | M | 按 SDK 语义(不带 guide/statusline/output-style-setup);disallowedTools 六件套→denyTools;omitClaudeMd 语义待 F7 字段扩展;开关对齐 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` 形态(deployment opt-out) |
58
- | 5 | F4:`whenToUseLean` 字段 + tIl 选文案逻辑 | S | 搭 F1 车(Explore 双文案是唯一现实消费者) |
59
- | 6 | F8:fork 路径 maxTurns 默认 200 钉 | S | `childLimits` fork 臂缺省补 200(部署显式 limits 仍赢) |
60
- | 7 | F6/F9 记档订正 | S(docs) | F6:R5/代码注释标「并发句条件=sema 自定(CC=订阅档)」;F9:双载定谳 deliberate(不开通告的部署需要 description 通路)或做「listing 开启时 description 瘦身」二选一 |
61
- | 8 | F10:listing 权限滤除钩子 | S-M | **defer**:sema roster per-task 静态,无 mid-session 规则面;等 ToolPolicy 出现 agent-type 级规则再接 |
62
- | — | F7:字段扩展(skills/background/isolation/omitClaudeMd) | M | 与 F1 联动设计,单独不急 |
63
-
64
- ## 诚实盲区(继承+新增)
65
-
66
- - 88 版源未对照(198 直读已足;漂移腿仅核了 output-style-setup 消失)。
67
- - CC teammate/TeamCreate、workflow-subagent(j1o)内部面属相邻维度,未深审(CC-SUBAGENT-PROMPT-STUDY §三 有底)。
68
- - normalizeAgentType/名称碰撞检测两侧未逐行比;`Ql()`/`Wat()`(statusline/claude 两 gate 的谓词)未解译语义。
69
- - 未跑新活体探针(引用既有 docs/cc-probe-198 采集,其 required 字段=wire 级权威)。
70
- - CC `background` per-agent 字段的运行时消费路径(默认后台化)未逐行追。
@@ -1,144 +0,0 @@
1
- # PARITY-SPOT:reminders 维度对抗核验档(2026-07-10)
2
-
3
- > 角色:对抗核验官+书记官。对挖掘者「system-reminder 族对齐」报告(SR-1~SR-7)逐条双坐标亲核+证伪尝试,
4
- > 并对 aligned 清单抽验 3 条。CC 锚=`/Users/clay/开发/gittea/claude-198/cc-2.1.198/package/claude-cli-2.1.198.pretty.js`
5
- > (731,838 行,静态 bundle);live 锁(1.257.3 探针)优先于静态源。只读不改码。
6
-
7
- ## 0. 判决先行
8
-
9
- **7 条 finding:5 条确认(其中 2 条 COSMETIC 文案漂移)、0 条整条证伪、3 条归"已记档/账本修正"。**
10
- 无一条重翻已定谳分歧。挖掘者质量高:坐标全部命中,无 [550] 式看错层。核验官对 SR-3 做了一处
11
- **CC 侧活性降级改判**(四 lane 中三条在 198 默认关/死代码,唯 budget_usd 是 opt-in 活 lane),对 SR-1
12
- 补齐了挖掘者自报盲区⑤(statsig 门默认值已取证=**静态默认关**)。抽验中另挖出 1 条挖掘者漏报的
13
- 微差距(SR-V1,Emr ambient-context 后缀)。
14
-
15
- | id | 挖掘者 kind/severity | 核验判决 | 备注 |
16
- |----|----|----|----|
17
- | SR-1 | already-recorded LOW | **确认 already-recorded**,补新证:CC 静态默认关 | tool_search_usage_reminder |
18
- | SR-2 | missing LOW | **确认 missing** | gh rate-limit hint |
19
- | SR-3 | missing LOW | **确认 missing,CC 侧活性改判**(仅 budget_usd 是活 lane)| token/预算 lane 四件 |
20
- | SR-4 | text-drift COSMETIC | **确认 text-drift** | hook 反馈前缀/动词形态 |
21
- | SR-5 | already-recorded LOW | **确认:账本过期属实**,#60 应改 ✅ | allDone 清空已在 HEAD |
22
- | SR-6 | already-recorded LOW | **确认:#55 前提已漂移**,198 不发 compaction_reminder | 双坐标+全 bundle 仅 2 命中(全在过滤表)|
23
- | SR-7 | behavior-drift LOW | **确认 missing/behavior-drift**,补 env 门 caveat | 重启孤儿后台任务聚合通告 |
24
- | SR-V1 | (核验官新增) text-drift COSMETIC | **新差距**:Emr 后缀 sema 未复刻 | 挖掘者在 aligned #63 内漏掉 |
25
-
26
- ## 1. 确认差距(双坐标,按严重度排)
27
-
28
- ### SR-3 token/预算「渐进量表提醒」lane 缺失 — LOW(核验后改判 CC 侧活性)
29
- - CC:pretty.js:600223-600230(f_c 渲染四件)+ 生产者 :479223/:479243-479245。**核验官逐个查了门控**:
30
- - `token_usage`(YFm :480409):env `CLAUDE_CODE_ENABLE_TOKEN_USAGE_ATTACHMENT` 门,**默认关**;
31
- - `total_tokens_reminder`(JFm :480416 + $be :240831-240837):env/settings/statsig `tengu_lapis_anchor` 三层,**默认 "off"**;
32
- - `output_token_usage`(XFm :480421):**函数体恒 return [] = 198 死代码**;
33
- - `budget_usd`(QFm :480424-480428):`t.options.maxBudgetUsd` 设定时激活 = **唯一 opt-in 活 lane**,文案
34
- `USD budget: $used/$total; $remaining remaining`。
35
- - sema:src/core/runner/runtask.ts:1395/1407/2439(仅 walltime `[deadline]` 自研提醒,design/128/130 已记档)
36
- + :3078 附近 budget.exceeded fail-fast(硬失败无渐进档)。全仓 grep `Token usage/USD budget/tokens left` 工具面零命中。
37
- - 判决:**缺口成立但收窄**——需要对齐的只有 budget_usd 渐进 lane(配 maxBudgetUsd 类 opt-in);
38
- 其余三件 198 默认关/死代码,复刻属抢跑。挖掘者「四件全缺」措辞对 sema 侧属实,对 CC 侧活性过宽。
39
-
40
- ### SR-7 重启后孤儿后台任务聚合通告缺失 — LOW behavior-drift
41
- - CC:pretty.js:698391-698398(F6c,"The container was restarted. The following background tasks were
42
- running and are now stopped: … Re-create them if still needed.")。**核验官补 caveat**:唯一调用点
43
- :707398 在 `st(process.env.CLAUDE_CODE_RESUME_INTERRUPTED_TURN)` 门内(:707384,cloud worker 恢复腿),
44
- 非本地交互 CLI 常态路径;通告同时把孤儿逐个标 stopped(:707399 Ku)。
45
- - sema:src/core/task-registry.ts:965-990(watcher 逐任务被动终局话术 "monitor lost its process… watch ended")
46
- + src/core/runner/turn-attachments.ts:116-121(`postCompactPending` 仅压缩后臂,无 restart/resume 臂)。
47
- durable-resume 腿(design/45/49)无重启级聚合通告,模型须逐个 poll 才发现全灭。
48
- - 判决:**成立且未记档**(docs 全 grep "container was restarted"/"orphaned background" 零命中)。
49
- sema 恰是 durable-resume-first 架构(TOB),此差距对 sema 比对 CC 本地形态更相关。
50
-
51
- ### SR-2 gh rate-limit reminder 缺失 — LOW missing
52
- - CC:pretty.js:281399-281404(Bxa,`<system-reminder>GitHub API rate limit exceeded (5,000/hr shared
53
- across all tools and agents). Run \`gh api rate_limit --jq .resources\` and sleep until reset before
54
- further gh calls. If polling in a loop, use ScheduleWakeup instead of retrying.</system-reminder>`)
55
- + 双正则门 :281472-281473(m0p 命令须为 gh 非 auth/help/…,f0p stdout 匹配 rate-limit 错误)
56
- + 60s 节流 :281426(h0p)+ 挂接点 :335536(Bash 结果 `ghRateLimitHint`,后台任务不注)+ schema :335194-335196。
57
- - sema:src 全仓 grep `rate limit exceeded`/`ScheduleWakeup`/`ghRateLimitHint` 工具面零命中
58
- (命中全在 brain 层 rate_limit errorKind:tool-errors.ts:107 等,不同层)。
59
- - 判决:**成立**。注:文案本体是定值,:335196 是 schema describe 非可配置文案(挖掘者「文案可配置」措辞略宽,不影响判决)。
60
- 落码时 ScheduleWakeup 措辞须换 sema 原语(scheduler/Monitor)。
61
-
62
- ### SR-4 hook 反馈文案漂移 — COSMETIC text-drift
63
- - CC:pretty.js:599137-599140(hook_success `${hookName} hook success: …`,仅 SessionStart/UserPromptSubmit/
64
- UserPromptExpansion 三事件)、:600230-600235(hook_blocking_error `${hookName} hook blocking error from
65
- command: "cmd": …`)、:600236-600247(hook_additional_context)、:600248(hook_stopped_continuation)、
66
- :586861-586867(Stop hook blocking error from command "cmd",且 `l`/`g` 可覆写前缀)。
67
- - sema:src/core/hooks.ts:470(`tool "X" blocked by a PreToolUse hook`)+ :302-309(formatHookFeedback 包装)
68
- + src/core/runner/runtask.ts:2253(`Stop hook additional context: …`)/:2273(`Stop hook blocked ending the turn: …`)。
69
- - 判决:**成立**。机制端口已记档(design/37+1.221+design/134 R5 in-code);sema=程序化 hook 无 command 框架,
70
- from-command 措辞天然 N/A;残余=hookName 前缀+动词形态,模型面影响可忽略。
71
-
72
- ### SR-V1(核验官新增)Emr ambient-context 后缀未复刻 — COSMETIC text-drift
73
- - CC:pretty.js:599993(`Emr = "This is ambient context — do not narrate it to the user unless they ask
74
- or it is directly relevant to their request."`),4 个注入位:deferred_tools removal :599164、
75
- agent_listing removal :599211、mcp_instructions removal :599240、memory_update :599258。
76
- - sema:src/core/runner/turn-attachments.ts:645(agent removal 臂)/:685(mcp removal 臂)均无此后缀;
77
- :618-619 in-code 注明「an unresolved bundle identifier (Emr), not replicated」——**现已解析,不再是 unresolved**。
78
- (deferred_tools sema 无 removal 臂、memory_update sema 架构不同,该两位 N/A。)
79
- - 判决:**新微差距**,2 个 sema 活注入位可一行补齐。
80
-
81
- ## 2. 被证伪/改判项
82
-
83
- **整条证伪:0。** 局部改判 2 处:
84
- 1. SR-3 CC 侧「四件 lane」活性:3/4 在 198 默认关或死代码(证据见上),缺口收窄至 budget_usd。
85
- 2. SR-7 CC 侧触发面:仅 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 门内(cloud worker 腿),非普遍行为;
86
- 不影响 sema 侧缺口成立(sema 的 durable-resume 恰是同形态部署)。
87
-
88
- ## 3. 已记档项(不重报,但账本待修 2 行)
89
-
90
- ### SR-1 tool_search_usage_reminder — already-recorded + 新证据
91
- - CC:渲染 :598989-599000、生产者 lUl :480300-480336、挂载 :479219。**核验官取证挖掘者盲区⑤**:
92
- `zXr()` = `i2t().toolSearchReminder`(:145166),默认表 L3i :145221-145227 `toolSearchReminder: null`
93
- → 挂载点 :479219 `zXr() !== null ? [...] : []` = **静态 bundle 默认不挂**;仅 statsig
94
- `juniper_shoal.marsh_lantern`(:145147-145157)远程开启,另有 `W4t()!=="tst"` 短路(:223988,无
95
- ENABLE_TOOL_SEARCH 时默认 "tst" = 不短路)。
96
- - 记档位:docs/CC-TASK-REMINDER-CADENCE-STUDY-2026-07-09.md:313(row S:sema 零命中+同轮去重 no-op 判断正确);
97
- CHECKLIST 无行(grep 零命中,属实)。
98
- - 判决:缺席事实已记档;**建 CHECKLIST 行时注明 CC 静态默认关**(优先级据此压到最低,或标 WATCH 等 statsig 转正)。
99
-
100
- ### SR-5 CHECKLIST #60 账本过期 — 确认,应改 ✅
101
- - 账:docs/CC-PARITY-CHECKLIST.md:99(⬜TODO「grep todo.ts 无 allDone 清空…活缺口」)+ :190(第一档排期第 1 位)。
102
- - 码:src/core/runner/turn-attachments.ts:175-184(allDone 清空快照,in-code 引 CC TodoWriteTool.ts:69),
103
- **HEAD 已含**(git show 核过)。当年 grep 搜错层(todo.ts vs 投影层)。
104
- - 处置:#60 改 ✅+注坐标 turn-attachments.ts:175-184,并从「第一档排期」删除,消除下批重复排期。
105
-
106
- ### SR-6 CHECKLIST #55 前提已漂移 — 确认,应加注
107
- - CC:compaction_reminder 在模型面归一化「返回 []」名单 :599269-599283 内(:599276)+ D_m 过滤集
108
- :399546-399553(与 companion_intro/pen_mode 同组=companion 面);**全 bundle 仅 2 命中且全在过滤/空渲染表,
109
- 无生产者无文案** → 198 wire 不发。
110
- - 账:docs/CC-PARITY-CHECKLIST.md:89(#55 ⬜TODO,状态依据仍是 DS-INFO-2 旧锚「需动态验证/等拍互斥」)。
111
- - 处置:#55 注一行「198 静态源已判死(双表+零生产者),等拍对象不复存在;上大窗前按新版本再锚」。
112
-
113
- ## 4. aligned 抽验(3+1 条,防假阳性)
114
-
115
- | 条目 | 结果 |
116
- |----|----|
117
- | #61 deferred_tools_delta | **PASS**:CC :599146-599150 vs turn-attachments.ts:579-594;语义反转(CC=可发现未加载 / sema=已物化)in-code 记档属实,首句形态同 |
118
- | #63 agent_listing_delta | **PASS(带 SR-V1 例外)**:初始/增量/移除头 :599199-599215 vs ts:602-610/645 逐字(默认 "Agent" 下 byte 同);并发注 :599213 verbatim(ts:598-599);removal 后缀 Emr 未复刻 → 拆为 SR-V1 |
119
- | #6 Read 空文件/超 EOF 警告 | **PASS**:CC 静态 :478466-478469 有 totalLines===0 专用臂("contents are empty"),sema fs/index.ts:746 对空文件走 "1 lines" 臂并注 live 探针 §1.2 —— **live 锁优先于静态源**(活体 CC 空文件计 1 行,静态 0 臂不触发),1.257.3 锁成立,"1 lines" 怪癖保留正确 |
120
- | mcp removal 无 '- ' 前缀 | **PASS**:CC :599237-599239 names 裸 join vs ts:685 同 |
121
-
122
- ## 5. 落码 backlog(S/M/L)
123
-
124
- 1. **S|doc** CHECKLIST 账本双修:#60 → ✅(坐标 turn-attachments.ts:175-184)+ 从第一档排期删除;#55 加「198 已不发」注。
125
- 2. **S** SR-V1:补 `AMBIENT_CONTEXT_NOTE` 常量(CC :599993 verbatim),挂 agent_listing removal(ts:645)
126
- 与 mcp removal(ts:685)两臂。
127
- 3. **S** SR-2:Bash 结果 gh rate-limit hint —— 双正则(:281472-281473 照抄)+60s 节流+文案定值
128
- (ScheduleWakeup 措辞换 sema scheduler 原语);后台任务不注(:335536 门同型)。
129
- 4. **S** SR-4:hook 反馈前缀对齐(`${hookName} hook additional context/stopped continuation` 动词形态);
130
- PreToolUse block 措辞保留 sema 形态或对齐,拍板级=COSMETIC。
131
- 5. **M** SR-3:budget_usd 渐进提醒 lane(maxBudgetUsd 类 opt-in,`USD budget: $u/$t; $r remaining` verbatim);
132
- token_usage/total_tokens_reminder 建 WATCH 行不落码(198 默认关)。
133
- 6. **M** SR-7:durable-resume 重启腿孤儿后台任务聚合 reminder(F6c 文案同型+逐孤儿标 stopped),
134
- 挂 resume-leg seeding 处(turn-attachments postCompactPending 旁开 restart 臂)。
135
- 7. **S|doc** SR-1:CHECKLIST 建行,标 WATCH+「CC 静态默认关(L3i null+statsig marsh_lantern)」。
136
-
137
- ## 6. 诚实盲区(核验官侧)
138
-
139
- - 全程静态+记档核验,未跑活体探针;#6 的 live 锁信 1.257.3 记录未重采。
140
- - SR-7 的 `Ku(…"stopped"…)` 下游(任务状态回写面)未深追,只核了注入文案与门。
141
- - statsig 远程配置可在生产开启 SR-1/SR-3 的门(静态默认关≠永远关),WATCH 行是对冲。
142
- - 挖掘者 aligned 清单 19 条只抽验 4 条(#61/#63/#6/mcp-removal);其余(尤其 todo/task cadence 族)
143
- 信 task#51 双腿定谳未重翻——该族刚经对抗复审+活体探针,重翻=噪音。
144
- - UI 侧渲染副本表(:415978/:416143)沿挖掘者盲区④未 diff(模型面 wire 不经该表,风险低)。