@furongjun1999/dsh-memory 0.4.8 → 0.4.10

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 (232) hide show
  1. package/README.md +54 -26
  2. package/codebuddy/CODEBUDDY.md +196 -195
  3. package/codebuddy/README.md +13 -1
  4. package/codebuddy/mcp.json +9 -0
  5. package/docs/GBrain/345/217/257/345/200/237/351/211/264/347/202/271_/347/201/265/346/236/242/350/220/275/347/202/271/344/272/244/346/216/245_20260919.md +169 -0
  6. package/docs/README.md +1 -1
  7. package/docs/discipline/harnesses.yaml +18 -7
  8. package/docs/discipline/templates/full.md.tmpl +4 -3
  9. package/docs/experiments/linkref_backfill/candidates_20260917.json +726 -0
  10. package/docs/experiments/linkref_backfill/candidates_internal_20260917.json +602 -0
  11. package/docs/experiments/linkref_backfill/candidates_internal_v2.json +603 -0
  12. package/docs/experiments/linkref_backfill/candidates_secret_20260917.json +884 -0
  13. package/docs/experiments/linkref_backfill/candidates_secret_v2.json +789 -0
  14. package/docs/hive//345/244/232/347/253/257harness/351/200/232/344/277/241/345/245/221/347/272/246_v0.1.md +42 -0
  15. package/docs/hive//346/243/200/347/264/242/346/224/266/346/225/233/345/256/236/346/265/213/344/270/216S1b/350/256/276/350/256/241_v0.1.md +43 -0
  16. package/docs/hive//346/243/200/347/264/242/350/267/257/345/276/204/344/270/216/350/256/244/347/237/245/347/273/223/346/236/204/345/245/221/347/272/246_v0.1.md +102 -0
  17. package/docs/hive//347/234/237/345/256/236/345/272/223/347/253/257/345/210/260/347/253/257/345/256/236/346/265/213_S1b/344/270/216/345/217/254/345/233/236/346/235/203/350/241/241_v0.1.md +57 -0
  18. package/docs/hive//347/234/237/345/256/236/345/272/223/347/253/257/345/210/260/347/253/257/345/256/236/346/265/213_S7/345/200/222/346/216/222/345/200/231/351/200/211/345/261/202_v0.1.md +126 -0
  19. package/docs/hive//350/234/202/345/267/242/345/217/214/345/256/236/344/276/213/344/272/222/351/252/214_/350/256/276/350/256/241/345/256/232/347/250/277.md +503 -0
  20. package/docs/mdcg/D_meta_/345/267/245/347/250/213/345/214/226/346/226/271/346/241/210_v0.2.md +216 -0
  21. package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.5.md +631 -625
  22. package/docs/mdcg//344/273/243/347/240/201/350/257/204/345/256/241/344/270/216/346/235/241/344/273/266/345/214/226/346/263/250/351/207/212_/345/245/221/347/272/246_v0.1.md +82 -0
  23. package/docs/mdcg//345/205/250/345/272/223/344/273/243/347/240/201/350/257/204/345/256/241/344/270/216/346/235/241/344/273/266/345/214/226/346/263/250/351/207/212_/350/256/241/345/210/222_v0.1.md +600 -0
  24. package/docs/mdcg//345/212/237/350/203/275/350/260/203/347/224/250/346/230/240/345/260/204/350/241/250_v0.1.md +47 -45
  25. package/docs/mdcg//345/255/220/344/273/243/347/220/206/351/205/215/347/275/256/346/240/207/345/207/{206_v0.4.md → 206_v0.5.md} +92 -4
  26. package/docs/mdcg//347/201/265/346/236/242/350/256/260/345/277/206/345/212/250/350/257/215/345/215/217/350/256/256_v1.0-draft.md +172 -0
  27. package/docs/mdcg//347/216/257/344/272/214_/347/231/275/347/256/261/345/241/253/345/205/205/346/265/201/346/260/264/347/272/277_v0.1.md +31 -0
  28. package/docs/mdcg//350/267/250/347/253/257/351/252/214/350/257/201/344/270/216/345/220/214/346/255/245/345/215/217/350/256/256_v0.1.md +93 -0
  29. package/docs/theory//345/271/266/345/217/221/345/277/205/347/204/266/346/200/247/347/220/206/350/256/272_v0.2.md +2 -2
  30. package/docs/theory//347/220/206/350/256/272_/346/234/272/345/210/266_/344/273/243/347/240/201_/345/256/236/351/252/214_/347/274/272/345/217/243/347/237/251/351/230/265_v0.1.md +3 -3
  31. package/docs/theory//350/256/244/347/237/245/344/273/243/347/220/206/344/270/216/346/224/266/346/225/233/347/273/223/346/236/204_/346/235/241/344/273/266/350/256/272/351/207/215/346/236/204_v0.1.md +2 -2
  32. package/docs//345/267/245/344/275/234/347/272/252/345/276/213_/350/256/244/347/237/245/345/233/276/346/235/241/347/233/256_v1.1.json +434 -433
  33. package/docs//347/201/265/346/236/242/350/207/252/346/210/221/346/224/271/350/277/233/345/267/245/344/275/234/350/256/241/345/210/222_/345/244/226/351/203/250/347/240/224/347/251/266/347/263/273/345/210/227/345/220/270/346/224/266_v1_20260919.md +286 -0
  34. package/dsh/README.md +33 -0
  35. package/dsh/cordis.yml.example +13 -7
  36. package/dsh/hive-mcp-probe.mjs +94 -0
  37. package/dsh/hive-mcp.example.yml +62 -0
  38. package/dsh/update-lingshu.bat +11 -0
  39. package/dsh/update-lingshu.ps1 +337 -0
  40. package/lib/hooks.d.ts +3 -0
  41. package/lib/hooks.js +17 -23
  42. package/lib/index.d.ts +4 -2
  43. package/lib/index.js +29 -6
  44. package/lib/lib/datapath.d.ts +76 -1
  45. package/lib/lib/datapath.js +199 -13
  46. package/lib/lib/mdcg_client.d.ts +40 -3
  47. package/lib/lib/mdcg_client.js +46 -22
  48. package/lib/lib/mutual.js +4 -4
  49. package/lib/lib/token_store.js +4 -5
  50. package/md_cg/audit.py +17 -2
  51. package/md_cg/autonomy.py +86 -15
  52. package/md_cg/backfill.py +36 -1
  53. package/md_cg/backfill_bigdomain.py +34 -0
  54. package/md_cg/bench6_arms.py +28 -1
  55. package/md_cg/bench6_common.py +10 -1
  56. package/md_cg/bench6_competitors.py +6 -1
  57. package/md_cg/bench_axis_domain.py +9 -1
  58. package/md_cg/bench_blind_comp.py +7 -1
  59. package/md_cg/bench_en_atoms_public.py +9 -0
  60. package/md_cg/bench_governance.py +348 -0
  61. package/md_cg/bench_lme_zh.py +16 -1
  62. package/md_cg/bench_locomo.py +2 -1
  63. package/md_cg/bench_locomo_zh.py +16 -1
  64. package/md_cg/bench_locomo_zh_public.py +4 -1
  65. package/md_cg/bench_longmem.py +2 -1
  66. package/md_cg/bench_membench.py +27 -1
  67. package/md_cg/bench_p0.py +4 -1
  68. package/md_cg/bench_progressive.py +13 -1
  69. package/md_cg/bench_role_views.py +238 -0
  70. package/md_cg/bench_task_ab.py +8 -1
  71. package/md_cg/bench_task_ab_llm.py +13 -1
  72. package/md_cg/bench_unified_en.py +6 -1
  73. package/md_cg/bench_zh_mad.py +20 -1
  74. package/md_cg/blindspot_tickets.py +123 -0
  75. package/md_cg/branches.py +12 -1
  76. package/md_cg/build_postings.py +73 -0
  77. package/md_cg/ccgc.py +67 -2
  78. package/md_cg/census.py +5 -1
  79. package/md_cg/chain.py +24 -3
  80. package/md_cg/codeindex.py +134 -17
  81. package/md_cg/coldverify.py +265 -0
  82. package/md_cg/comment_gate.py +338 -0
  83. package/md_cg/cond_compose.py +190 -0
  84. package/md_cg/cond_facts.py +155 -0
  85. package/md_cg/cond_template.json +107 -0
  86. package/md_cg/condition_anchor.py +143 -0
  87. package/md_cg/conformance.py +69 -4
  88. package/md_cg/consistency.py +24 -1
  89. package/md_cg/consolidate.py +53 -2
  90. package/md_cg/corpus.py +4 -0
  91. package/md_cg/crosscheck.py +42 -2
  92. package/md_cg/crypto.py +35 -1
  93. package/md_cg/d_meta.py +310 -0
  94. package/md_cg/datapath.py +201 -26
  95. package/md_cg/docindex.py +122 -1
  96. package/md_cg/eval_common.py +29 -1
  97. package/md_cg/evidence.py +27 -1
  98. package/md_cg/evolution.py +21 -1
  99. package/md_cg/export.py +11 -1
  100. package/md_cg/forgetting.py +23 -1
  101. package/md_cg/fsutil.py +18 -1
  102. package/md_cg/hotcache.py +214 -0
  103. package/md_cg/hyperedge.py +251 -0
  104. package/md_cg/identity.py +18 -1
  105. package/md_cg/insight.py +17 -1
  106. package/md_cg/lexicon/build_cedict_en_zh.py +9 -0
  107. package/md_cg/lexicon/build_standard_en.py +171 -168
  108. package/md_cg/lexicon/expand_en_zh.py +6 -0
  109. package/md_cg/lifecycle.py +12 -1
  110. package/md_cg/linkref.py +281 -0
  111. package/md_cg/links.py +29 -1
  112. package/md_cg/mcp_server.py +362 -43
  113. package/md_cg/md_whitebox.py +53 -1
  114. package/md_cg/mdcg.py +1003 -27
  115. package/md_cg/mdcos.py +558 -36
  116. package/md_cg/metacognition.py +37 -2
  117. package/md_cg/migrate.py +4 -0
  118. package/md_cg/migrate_aeis.py +221 -213
  119. package/md_cg/migrate_roleplay.py +8 -0
  120. package/md_cg/migrate_wisdom_graph.py +14 -1
  121. package/md_cg/mreview/__main__.py +3 -0
  122. package/md_cg/mreview/bundle.py +8 -0
  123. package/md_cg/mreview/candidates.py +9 -0
  124. package/md_cg/mreview/govern.py +21 -1
  125. package/md_cg/mreview/locate.py +34 -0
  126. package/md_cg/mreview/pipeline.py +29 -1
  127. package/md_cg/mreview/ruleset.py +16 -1
  128. package/md_cg/nodefile.py +233 -3
  129. package/md_cg/pooling.py +23 -1
  130. package/md_cg/postings.py +298 -0
  131. package/md_cg/predict.py +89 -9
  132. package/md_cg/progressive.py +3 -0
  133. package/md_cg/protect.py +14 -1
  134. package/md_cg/protocol.py +372 -0
  135. package/md_cg/provenance.py +262 -0
  136. package/md_cg/reach.py +453 -0
  137. package/md_cg/refindex.py +47 -2
  138. package/md_cg/refine.py +20 -1
  139. package/md_cg/roleviews.py +89 -0
  140. package/md_cg/routing.py +76 -0
  141. package/md_cg/scrub.py +63 -2
  142. package/md_cg/security.py +26 -1
  143. package/md_cg/self_state.py +64 -1
  144. package/md_cg/selfreport.py +151 -0
  145. package/md_cg/semantic/canonical.py +5 -0
  146. package/md_cg/semantic/en_normalizer.py +364 -355
  147. package/md_cg/semantic/zh_en_atoms.py +139 -136
  148. package/md_cg/signer.py +41 -1
  149. package/md_cg/sources.py +583 -547
  150. package/md_cg/statushdr.py +179 -0
  151. package/md_cg/stg.py +59 -18
  152. package/md_cg/subgraph.py +23 -0
  153. package/md_cg/sustain.py +56 -1
  154. package/md_cg/tasks.py +26 -2
  155. package/md_cg/test_autonomy.py +26 -0
  156. package/md_cg/test_bench_governance.py +102 -0
  157. package/md_cg/test_blindspot_tickets.py +166 -0
  158. package/md_cg/test_ccgc.py +10 -0
  159. package/md_cg/test_codeindex.py +338 -0
  160. package/md_cg/test_comment_gate.py +187 -0
  161. package/md_cg/test_cond_compose_anchors.py +76 -0
  162. package/md_cg/test_condition_anchor.py +82 -0
  163. package/md_cg/test_d_meta.py +412 -0
  164. package/md_cg/test_datapath_root.py +188 -0
  165. package/md_cg/test_gain_gate.py +47 -1
  166. package/md_cg/test_hot_cold.py +187 -0
  167. package/md_cg/test_hyperedge.py +245 -0
  168. package/md_cg/test_linkref.py +306 -0
  169. package/md_cg/test_md_access_parity.py +15 -3
  170. package/md_cg/test_mr_m1.py +108 -18
  171. package/md_cg/test_mr_m3.py +8 -1
  172. package/md_cg/test_p26_refindex.py +49 -20
  173. package/md_cg/test_p27_docindex.py +236 -2
  174. package/md_cg/test_p2_mcp.py +1 -1
  175. package/md_cg/test_p31_insight.py +24 -0
  176. package/md_cg/test_p44_md_whitebox.py +14 -1
  177. package/md_cg/test_protocol.py +243 -0
  178. package/md_cg/test_reach.py +378 -0
  179. package/md_cg/test_reach_keys.py +201 -0
  180. package/md_cg/test_reach_meta_exits.py +145 -0
  181. package/md_cg/test_read_clip.py +8 -4
  182. package/md_cg/test_retr_s1.py +340 -0
  183. package/md_cg/test_retr_s1b.py +209 -0
  184. package/md_cg/test_retr_s3.py +194 -0
  185. package/md_cg/test_retr_s4.py +163 -0
  186. package/md_cg/test_retr_s5.py +200 -0
  187. package/md_cg/test_retr_s6.py +157 -0
  188. package/md_cg/test_retr_s7.py +385 -0
  189. package/md_cg/test_retr_s8_time.py +316 -0
  190. package/md_cg/test_retr_s9_edges.py +286 -0
  191. package/md_cg/test_retr_s9_entity_ctx.py +175 -0
  192. package/md_cg/test_review_conformance.py +59 -2
  193. package/md_cg/test_role_views.py +354 -0
  194. package/md_cg/test_subproc_encoding.py +188 -0
  195. package/md_cg/test_trust.py +361 -0
  196. package/md_cg/test_units_poll.py +71 -0
  197. package/md_cg/test_v14_fixes.py +397 -0
  198. package/md_cg/test_validity_filter.py +280 -0
  199. package/md_cg/test_wisdom_md_store.py +7 -3
  200. package/md_cg/test_writepipe.py +5 -1
  201. package/md_cg/theory.py +16 -1
  202. package/md_cg/tokens.py +40 -8
  203. package/md_cg/tool_face.py +13 -2
  204. package/md_cg/trust.py +943 -0
  205. package/md_cg/twophase.py +12 -1
  206. package/md_cg/units.py +132 -10
  207. package/md_cg/vision_evidence.py +24 -1
  208. package/md_cg/weights.py +24 -1
  209. package/md_cg/whitebox.py +32 -1
  210. package/md_cg/whitebox_kb/data/verify_cache.json +21210 -365
  211. package/md_cg/whitebox_kb/data/verify_savings.jsonl +5078 -0
  212. package/md_cg/whitebox_kb/wisdom/audit_log/chain_heat.json +10 -10
  213. package/md_cg/whitebox_kb/wisdom/code_compose.py +113 -6
  214. package/md_cg/whitebox_kb/wisdom/code_solidified.json +1 -1
  215. package/md_cg/whitebox_kb/wisdom/verifier.py +340 -55
  216. package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db +0 -0
  217. package/md_cg/writelimit.py +18 -4
  218. package/md_cg/writepipe.py +178 -7
  219. package/package.json +2 -2
  220. package/skills/skills/designer-perspective/scripts/__pycache__/designer.cpython-310.pyc +0 -0
  221. package/skills/skills/designer-perspective/scripts/designer.py +17 -1
  222. package/skills/skills/designer-perspective/tests/selftest.py +3 -1
  223. package/src/hooks.ts +17 -21
  224. package/src/index.ts +33 -6
  225. package/src/lib/datapath.ts +211 -13
  226. package/src/lib/mdcg_client.ts +64 -25
  227. package/src/lib/mutual.ts +411 -411
  228. package/src/lib/token_store.ts +4 -5
  229. package/zcode/AGENTS.md +196 -195
  230. package/zcode/README.md +4 -0
  231. package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db-shm +0 -0
  232. package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db-wal +0 -0
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: 代码评审与条件化注释_契约_v0.1
3
+ overview: Phase 0 契约裁决:功能生效条件与索引元条件字段分家;render 三分区与人工优先;补写规范、门禁口径与已知代价面。作为四环全部改动的唯一权威。
4
+ 状态: 生效(Phase 0 产出 · 2026-09-17)
5
+ 关联计划: docs/mdcg/全库代码评审与条件化注释_计划_v0.1.md
6
+ ---
7
+
8
+ # 代码评审与条件化注释 · 契约 v0.1
9
+
10
+ > 本文件是 Phase 0 的裁决产出(计划 `contract-adr`),作为「全库代码评审 → 补条件化注释 → 进认知图索引 → 自动维护」四环全部改动的**唯一权威**。
11
+ > 与代码真源冲突时以真源为准,并回改本文件(防术语双写法漂移)。
12
+
13
+ ## 一、判定单(designer-perspective · 强制调用)
14
+
15
+ ```
16
+ [判定单]
17
+ 条件空间:观测位置=全局(设计者位置,跨文件/跨检索面) | 观测工具=源码级逐行取证 + 机械断言 | 时间窗口=Phase 0(2026-09-17,重索引前) | 存在约束=公开仓(注释随仓公开,第14条双清单);不改 judge_qualification 判定序、不改 region_hash
18
+ 白箱三问:依据=计划 §2.1/§2.2 逐行取证 + md_cg/test_p26_refindex.py L212-231 与 L249-258 既有断言(现场实读) | 条件=md_cg 认知图对代码条目做资格判定、且检索侧取首个匹配 | 错后=回滚=还原 codeindex.render 并重索引(既有已落盘正文不追溯)
19
+ 裁决:ACCEPT(render 三分区 + 合成区去生效条件);对「同批全量重索引」→ DEFER
20
+ 依据:行序压制为机械可判事实(合成行在源码注释之前且字段同名,mdcos._ccg_field 取首匹配);索引元条件与功能前置条件语义互斥(backfill.py 既有先例:清洗真实库 109 条弱等价行)
21
+ 缺失维度:条件边界——真实库既有 2930 条代码节点的资格降级代价未被原计划评估(见 §四)
22
+ 验证路径:md_cg/test_codeindex.py(行序/零重名/诚实缺证据/幂等/截断)+ test_p26_refindex 重对齐 + md_cg 全组回归与改动前基线对照 + 蜂巢确定性执行留痕
23
+ 关注信号:本契约不触发追溯重写;Phase 2 铺量前必须获 q-0/q-1/q-2 裁决
24
+ ```
25
+
26
+ ## 二、字段分工(术语真源)
27
+
28
+ | 字段 | 承载语义 | 来源 | 可否合成 |
29
+ |---|---|---|---|
30
+ | `生效条件` | **功能前置条件** precondition:这段代码在何种输入/状态下正确 | 人工/源码声明(源码 CCG 注释) | **否**(合成即冒充) |
31
+ | `索引元条件` | 条目在何处/何时/以何工具可被观测到 | 机械推导(`codeindex.condition_space` 四槽) | 是(唯一来源) |
32
+ | `位置` | 索引坐标(path:lineno-end、lang、precise) | 机械推导 | 是 |
33
+ | frontmatter `condition_space` | 四槽结构化值(与正文 `索引元条件` 同一纯函数) | 机械推导 | 是 |
34
+
35
+ 真源常量:`nodefile.INDEX_META_MARK`(= `索引元条件`)与 `nodefile.is_ccg_mark`(零重名机械判据)。
36
+
37
+ 四条硬约束:
38
+
39
+ 1. 合成区字段名与 `nodefile.CCG_MARKS` 的交集 = 空集;
40
+ 2. `生效条件` 行只可能来自源码声明,`render` 永不合成该字段;
41
+ 3. 同名字段冲突时**人工优先**(源码区置首 → `_ccg_field` 取首个匹配 → 确定性可复算);
42
+ 4. 不动 `region_hash`、不动 `judge_qualification` 判定序、`skip_matcher` 无参行为逐字不变。
43
+
44
+ ## 三、补写规范(环二输入口径)
45
+
46
+ 1. 只写**功能生效条件**,不写索引元条件:写「入参 path 为已存在的本地文件」,不写「源文件存在于本地仓」。
47
+ 2. 落点在**两个窗口**之一,按源文件**物理行序**合并(靠前者胜出 = 检索侧取首匹配的确定性序):
48
+ - **leading**:定义行**紧邻上方**的连续 `#` 注释(`codeindex._leading_comments` 口径,遇空行即断);
49
+ - **body**:定义行**紧邻下方**、函数体首个语句之前的 `#` 注释(`codeindex._body_comments` 口径,**唯一真源**)。
50
+ 既有白箱单元库 **104+ 处**用的是 body 窗口(例:`whitebox_kb/wisdom/python_code_units.py` 模板 `def tokenize(src):` 下一行即 `# 生效条件:…`);`verifier._ccg_block` 已收敛为委托 `codeindex._body_comments`(2026-09-17 裁决 A,消除历史悬空引用)。
51
+ 3. 六要素齐全才过门槛;`生效条件` 缺一即 BLINDSPOT(缺证据 → 补写,不许省略或用「常用条件默认省略」掩盖)。
52
+ 4. 公开仓约束:补写内容随仓公开,须过第 14 条「内容政策 + 隐私脱敏」双清单;含敏感/隐私者只入私有库(AEIS)。
53
+
54
+ ## 四、已知代价面(必须显式知情)
55
+
56
+ - **改造前实测**:本机认知图真源(仓外私有库 `<brain-root>`)有 **2930** 条 `code_` 节点,其正文含合成 `生效条件`(实为索引元条件),故资格判定为 **DEFER**。
57
+ 原计划 §九-2 称「代码节点当前恒定被判 BLINDSPOT」,与实测不符——**该前提已修正**(本契约相对计划的重要事实更正)。
58
+ - **改造后**:`render` 不再合成 `生效条件` → 源码未补注释的条目 = 缺证据 = **BLINDSPOT**。
59
+ - **影响面**:不追溯。既有 2930 条节点的正文已落盘,只有**重索引**(`index_code`,尤其非增量)或源文件变更触发重写时才翻转。
60
+ - **为何仍应接受**:改造前的 DEFER 建立在一个**语义错误的生效条件**上(计划 §2.2 的病根:「补了注释」与「没补」不可区分)。未补 = BLINDSPOT 是诚实信号,由环二补注释闸门(`GATE_MIN_PASS_RATE=0.90`)逐步补回。
61
+ - **回滚路径**:还原 `codeindex.render` 后重索引即可回到 DEFER;已落盘的旧正文不自动回退(写路径可退,历史不可逆)。
62
+
63
+ ## 五、门禁口径(Phase 0 验收)
64
+
65
+ | 项 | 判据 | 断言位置 |
66
+ |---|---|---|
67
+ | 行序压制已修 | 源码 `生效条件` 置首、逐字保留,`_ccg_field` 取到人工值 | test_codeindex ② / test_p26 §4 |
68
+ | 补注释 = 有效 | 源码声明后 `ccg_completeness.complete == True` | test_codeindex ② |
69
+ | 未补 = 诚实缺证据 | `complete == False` 且**恰缺** `生效条件` | test_codeindex ② / test_p26 §5 |
70
+ | 字段零重名 | 合成区用到的 CCG 字段名 = 其余五要素 | test_codeindex ③ |
71
+ | 载体两窗口 | body 窗口注释被抽取、两窗口按物理序合并、`verifier` 与唯一真源逐字等价 | test_codeindex ⑦ |
72
+ | 幂等/确定性 | `render` 两次逐字节相同;`index_dir` 两次条目序一致 | test_codeindex ⑤⑥ |
73
+ | 既有契约不回归 | `condition_space` 四槽/全时窗、`extract` 分派、`region_hash` 12 位 | test_codeindex ④⑤ |
74
+ | 回归 | md_cg 全组回归与**改动前基线**对照(既有失败不改判) | 蜂巢确定性执行留痕(spec/result) |
75
+
76
+ ## 六、不适用条件
77
+
78
+ - 不适用于知识/文档节点(本契约只管代码条目的注释与资格判定)。
79
+ - 不改 `judge_qualification` 判定序与 `region_hash`;扩面(`.ts`/`.ps1`/`.yml`)属既有计划缺口 E,只声明不扩面。
80
+ - q-0(注释落点)/ q-1(首期范围)/ q-2(评审方式)未获使用者裁决前,不得进入 Phase 2 铺量。
81
+ - 本契约不授权追溯重写既有节点正文,也不代替第 5 条验证纪律与第 17 条蜂巢派发。
82
+ - JS/TS 弱提取当前**只收 leading 窗口**(body 窗口未纳入)——属诚实边界而非缺陷,扩面须另行取证。