@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,169 @@
1
+ # GBrain 可借鉴点 · 灵枢大脑改进交接文档
2
+
3
+ > 交接方:CodeBuddy 端 · 接收方:**CodeBuddy 端后续施工轮次 / 其他端**
4
+ > 交接时间:2026-09-19 · 依据:荣指令「GBrain 记忆机制学习报告也可以列新任务来补充功能了」
5
+ > 素材:`docs/GBrain记忆机制学习报告_供CodeBuddy端_20260914.md`(自包含报告)· 源项目 gbrain(MIT,TypeScript/bun,30.1k★,本地参考克隆)
6
+ > **本轮范围声明(重要)**:本文件**只出任务清单、不改代码**。四条任务的代码实施另立施工轮次,沿用 Pi 交接「先文档后施工」的既有节奏。
7
+
8
+ ---
9
+
10
+ ## 0. 一句话交接
11
+
12
+ gbrain 把**「记忆如何变化」做成了数据模型的一等公民**——冻结的动词线缆协议、事实有效期双时间戳、巩固指针、能力探测降级;本文件将其 §10 四条可借鉴点逐项映射到灵枢大脑(`md_cg`)的落点,每项带 gbrain 源码证据、**本轮实测的灵枢现状基线**、建议落点与可裁决验收口径;并附「不学什么」反面清单(§4)与既有工作线边界(§5)。
13
+
14
+ **本文件与 Pi 交接的分工**:Pi 交接(`docs/Pi可学习优点_灵枢大脑改进交接_20260915.md`)解决的是**运行时与上下文工程**(fork/钩子/瘦身/状态机/两段式/不变量巡检/组装细节);本文件解决的是**记忆数据模型与接口契约**(协议冻结/有效期语义/巩固字段/能力降级)。两者无重叠面,可并行施工。
15
+
16
+ ## 1. 版本与落点纪律(⚠️ 防版本不一致,先读)
17
+
18
+ | 仓 | 角色 | 本次改动落点 |
19
+ |---|---|---|
20
+ | `dsh-memory/` | **大脑 · 唯一主线** | ✅ **本文件全部改进落这里**(`md_cg/` 为主) |
21
+ | `AEIS/` | 身体仓:记忆真源数据 + 可视化管线 | ❌ 不改代码 |
22
+ | gbrain 源码克隆 | **只读参考件**(MIT,思想可吸收) | ❌ 不引入其运行时、不引依赖 |
23
+
24
+ - 记忆真源 = md 文件(纯 md,主链路零 SQLite、零外部依赖);`md_cg` 经 `--root`/`MDCG_ROOT`/datapath 访问,**不得**在 `md_cg` 内硬编码本机路径。
25
+ - **gbrain 的存储形态不学**:其真源是 Markdown、派生索引在 PGLite(嵌入式 Postgres/WASM)。灵枢主链路**零 SQLite**是既有架构决定,只吸收其**数据模型与契约设计**,不引入任何 DB 依赖。
26
+ - 改动后必须跑全量回归(`python -m md_cg.test_pXX` 形式);测试只能模块方式跑,直接 `pytest md_cg/` 会崩(相对导入,已知缺陷)。
27
+ - **引用纪律(内容政策)**:本文件所有 gbrain 侧证据一律以「**仓名 + 报告锚点行号**」引用(如「报告 §2 冻结政策」),**不写本机克隆绝对路径**;报告头部现有的本机路径不复制。
28
+
29
+ > **完成度判据(沿用 Pi 交接 §3 纪律,同为本文件的硬约束)**:各项「落地状态」是**手工标注、无机械守卫**,历史上必滞后于代码(Pi 交接已实证:① ② ④ ⑥ 已入库而文档长期漏标,曾据「未标」误判未落地)。
30
+ > **判断某项是否完成,请以认知图落地记录 + `git log` 提交取证为准**,本文件标注只作索引——与「手写行号必腐化」同构:无守卫的手工标注必漂移。
31
+ > **本文件四条初始状态一律为「未开工」,依上纪律,动工前请先重新取证而非信任此标注。**
32
+
33
+ ## 2. gbrain 素材位置(查证入口)
34
+
35
+ | 内容 | 位置(仓内可见) |
36
+ |---|---|
37
+ | 学习报告(主素材,自包含、逐条带源码锚点) | `docs/GBrain记忆机制学习报告_供CodeBuddy端_20260914.md` |
38
+ | 四条可借鉴点原文 | 同上 **§10**(行号见 §3 各条「证据行」) |
39
+ | 七动词协议与冻结政策 | 同上 §1–§2(对应 gbrain 仓 `gbrain/docs/protocol/MEMORY_VERBS_v1.md`、`gbrain/src/mcp/surface.ts`) |
40
+ | 数据模型逐字段解剖 | 同上 §3(对应 gbrain 仓 `gbrain/src/core/migrate.ts:2395` 起建表语句) |
41
+ | 能力探测两级降级 | 同上 §6(对应 gbrain 仓 `gbrain/src/core/capability.ts`) |
42
+ | 巩固 / dream cycle | 同上 §7 |
43
+ | 反面素材(治理/多 agent/哲学) | 同上 §4、§5、§8、§9 |
44
+ | 动手验证清单(6 条复核路径) | 同上 §11 |
45
+
46
+ ## 3. 可借鉴点清单(按建议优先级排序)
47
+
48
+ > 每条五段式:**gbrain 机制** → **灵枢现状**(2026-09-19 实测取证)→ **建议落点** → **验收** → **落地状态**。
49
+
50
+ ### ②★P0 事实有效期进入查询语义(highest:字段与判定已在,只差消费)
51
+
52
+ - **gbrain 机制**:`facts` 表把「记忆的后半生」做成一等公民——`valid_from / valid_until / expired_at` 三戳表达有效期,「过期」由查询侧判定,不是人工清理任务(报告 §3 生命周期行、§10 第 2 条)。配套 `superseded_by BIGINT REFERENCES facts(id)` 自引用链:**纠错不是删除**。
53
+ - **灵枢现状**(实测取证,逐条可复核):
54
+ - 字段**已在**:`valid_from` / `valid_until` —— `md_cg/nodefile.py:122-123`(`VALID_FROM_FIELD` / `VALID_UNTIL_FIELD`,注释自陈「`valid_until` 既有(已被 scrub 的过期消费面使用);`valid_from` 本轮补齐」)+ `md_cg/trust.py:61-62`(`FROM_FIELD` / `UNTIL_FIELD`)。
55
+ - **`expired_at` 在灵枢零命中**(全仓唯一命中即本报告自身)——灵枢以 `valid_until` + 验证态 `expired` 表达过期,**不设第三戳**。故本条的灵枢形态是「**双时间戳 + 状态**」,与 gbrain 的「双时间戳 + 过期戳」是**同构不同形**(差异如实列出,不视为缺陷)。
56
+ - 判定函数**已在**:`md_cg/trust.py:225-242` `validity(fm, now)` → `unknown / not_yet / active / expired` 四态。
57
+ - 消费面**只在治理/展示侧**:`trust.patrol`(`trust.py:500-524` 巡检粗判 expired/not_yet 清单出报表)、`md_cg/statushdr.py:77`(状态头展示)、`md_cg/coldverify.py:148`(冷启动复核转 expired 态)。
58
+ - **检索面零处理(关键缺口)**:`mdcg.search` / `mdcos.search_rrf` / `mdcos.recall` / `mdcg._candidates` / `mdcos._candidates` **均无 `validity` 调用**——`_candidates` 的过滤维度现有 layer / session / branch / roles,**没有有效期**。即:**过期节点仍会作为正常候选参与召回**。
59
+ - **建议落点**:`md_cg/mdcos.py` 的 `_candidates`(一处过滤全链路生效,与既有 `session=` / `branch=` 过滤同构——该位置已被 Pi④ 验证为「改一处、search/search_rrf/recall 三签名透传」的正确落点);`mdcg._candidates` 同步(子类覆盖,历史教训:首轮漏改被测试抓住)。**处置语义建议先出裁决再动手**:`expired` 与 `not_yet` 是否同等对待(gbrain 的三戳里 `expired_at` 与 `valid_until` 可分离,灵枢无第三戳 → 需明确「未生效」与「已过期」是否同为不可召回)。参数建议 **opt-in 开关注入**(对齐 `session=`/`branch=` 的「一处过滤全链路生效」与仓内「默认零回归」惯例)。
60
+ - **验收**:① 断言 `validity=expired` 节点**不入候选池**(口径同 Pi④ 分支过滤:以「nid 不在命中集」为准,而非「结果为空」);② `not_yet` 处置按裁决断言;③ `active` / `unknown` 节点召回**逐位不变**(零回归);④ 全量回归零新增失败。
61
+ - **落地状态(2026-09-19):未开工** · 资格裁决=**ACCEPT**(依据:字段在+判定在+查询面缺位,「已有的判定函数无人消费」是确定性缺口,非相似度推断)。
62
+
63
+ ### ③★P0 巩固结果显式化与可追溯(second:已有归并,缺「可被查询看见」)
64
+
65
+ - **gbrain 机制**:夜间 dream cycle 做「事实抽取 → 引用修复 → **合并** → 嵌入去重」,合并动作在 `facts` 上留下 `consolidated_at / consolidated_into BIGINT`——**合并可追溯**,且是**结果节点上的显式指针**(报告 §3 巩固行、§7)。
66
+ - **灵枢现状**(实测取证):
67
+ - `consolidated_at` / `consolidated_into` **全仓零命中**(唯一命中即本报告自身)。
68
+ - 归并机制**已在**:`md_cg/consolidate.py:1217` `induce_memories`(聚类归纳)+ `:1153` `_link_concept`(建**概念节点** + `edges` 成员边)+ `:1200` `_concept_payload`;`:799` `promote_memories`(三门槛层级提升)+ `:871` `rollback_promotion`(可回滚);`contextualize_*` 语境化归位。入口 `md_cg/mcp_server.py:2201` 分派 `_consolidate_call`,action 枚举 `promote / promote_rollback / promote_history / induce / contextualize / contextualize_rollback / contextualize_history`。
69
+ - 另有**分支级**合并:`md_cg/branches.py` 的 `merge`(逐节点按 `branched_from` 溯源回写,`relation=merged_from`)——**是分支级而非节点级**,与本条目标不同层。
70
+ - **关键取证(决定落点)**:`md_cg/mdcg.py:2079-2080` 注释自陈「S3 图扩散激活……**为何:edges 一直只被写入、检索从不使用(审计偏差 1)**」→ **归并产生的成员边在检索面长期不可达**,即「合并可追溯」在**查询侧实际不成立**。
71
+ - **建议落点**:**优先补读侧可达**(概念节点 ↔ 成员边的检索消费,S3 图扩散已部分在做——先确认其覆盖面是否已包含 `_link_concept` 产出的边类型);**其次**再评估是否需要在结果节点落 `consolidated_into` 式显式指针字段——**须先答「字段 vs 边」的单一真源问题**(两者并存即双真源,违反仓内「真源唯一」纪律,可能反被判 REJECT)。gbrain 的字段指针形态与其 DB 行模型绑定,灵枢用结构化边表达同一语义**已是对等设计**,不可照搬字段。
72
+ - **验收**:① 对既有 `induce` 产出的概念节点,断言「成员节点可经该边被检索/追溯到达」(口径可裁决、可复跑);② 若新增字段,须断言与边**同源**(无第二真源);③ 归并可回滚(`promote_rollback` 既有能力不得退化);④ 全量回归零新增失败。
73
+ - **落地状态(2026-09-19):未开工** · 资格裁决=**ACCEPT,但落点与 gbrain 不同形**(依据:归并机制已在、边已写入、读侧不消费——缺口位置已由代码注释自证)。
74
+ - **与缺口矩阵的关系**:本条与 `docs/theory/理论_机制_代码_实验_缺口矩阵_v0.1.md` **#27(P-T-92 睡眠整理/联想保留 → `consolidate.promote` 三门槛,状态 🟡「机制在,本仓无治理前后数字」)** 同一工作面——**标关系、不另立**:#27 管「整理是否有效」的度量,本条管「整理结果是否可见可追溯」。
75
+
76
+ ### ①P1 记忆动词协议冻结与 conformance 认证(third:有工具面、无契约承诺)
77
+
78
+ - **gbrain 机制**:七动词 `recall / remember / entity / synthesize / forget` + `context_pack / delta` 构成**线缆协议**,与实现分离;冻结政策三条——① 字段名与语义**永久冻结**(不删/不改名/不改型);② 新字段新动词**只增不破坏**(v1 客户端必须忽略未知字段);③ `protocol_version` 只在破坏性变更时递增且政策预期「never」;枚举值属契约。任何实现同一协议者可经 `gbrain protocol conformance --target <endpoint>` **认证**(报告 §1–§2、§10 第 1 条)。另设 surface 阶梯 `verbs ⊆ starter(~27) ⊆ full`,monotonic 由测试钉死,**fail-closed**(隐藏操作被点名也返回 `unknown_tool`)。
79
+ - **灵枢现状**(实测取证,**含对报告表述的修正**):
80
+ - `MEMORY_VERBS` **全仓零命中** → 「记忆动词契约」概念确为空白。
81
+ - **修正报告的「无冻结承诺」更精确表述**:`PROTOCOL_VERSION` 存在但**语义不同**——`md_cg/mcp_server.py:48` 与 `md_cg/whitebox.py:51` 是 **MCP 传输协议版本**(JSON-RPC 侧),`md_cg/theory.py:38` 是**理论版本**(3.4);三者**均非「记忆工具面契约版本」**。故本条缺口不是「没有版本号」,而是「**没有以工具面为对象的契约版本**」。
82
+ - 工具面**形态已在**:`mcp_server.py:499` `KERNEL_TOOLS`(2 基元 `cg`/`stg`)+ `:907` `ALL_TOOLS = KERNEL_TOOLS + TOOLS`(+31 细粒度)=33;`:908` `SURFACE = env MDCG_MCP_SURFACE`(默认 kernel);`:912 tools_for_surface()` 经 `tool_face.slim_tools` 投影;`MDCG_TOOL_FACE=full` 关闭投影。
83
+ - **已有的守卫是「投影一致性」而非「跨版本只增」**:Pi① 已落地 `md_cg/tool_face.py`(投影真源)+ `md_cg/test_tool_face.py`(23 断言,含**工具名/参数名/顺序/required/类型/枚举值集逐位不变**)+ `cg(op=help)` 按需取回。该断言保证「瘦身前后契约不变」(**同一版本内**),**不含**「版本 A 的消费方在版本 B 下仍可用」的跨版本断言。
84
+ - **Pi⑤ 的 `conformance.py` 与本条要求同名不同物(必须区分,防误判已完成)**:`md_cg/conformance.py` 自陈为「**数据健康不变量断言集**」(答「数据是否失真」:混层比例/重复度/字段覆盖率/闸门分布),挂 `sustain._tick_conformance` 6h 节奏、超阈值**告警不自动改数据**;而 gbrain 的 conformance 是「**协议一致性认证**」(答「外部实现是否合规」)。**两者同名不同物,不得因前者存在而判本条已完成。**
85
+ - surface 阶梯**有形态差异**:灵枢 `SURFACE` 是**进程级 env**(部署时定档),gbrain 是**每客户端天花板**(服务端解析 `min(ceiling, client_row ?? default)`,可逐客户端收窄)。差异如实列出。
86
+ - **建议落点**:`md_cg/` 新增**工具面契约真源**(建议形态:把 `KERNEL_TOOLS` + `op` 枚举 + 参数名/类型/枚举值集导出为**可版本化的契约清单**,与既有 `tool_face.py` 投影真源**共源不复制**)+ 契约断言集(跨版本只增:既有项不得消失/改名/改型;新增项允许;`op` 枚举只增);`cg(op=help)` 出口可附契约版本。**⚠️ 前置裁决(不可跳过)**:先划定「冻结面」边界——冻结 **kernel 2 基元**(对外承诺面)还是含 full 31 工具(兼容/调试面)?**建议只冻结 kernel**:full 面在 Pi① 中已定位为「兼容与调试」,冻结它会锁死后续瘦身空间(与 Pi① 的投影层方向冲突)。此项须使用者裁决后再动工。
87
+ - **验收**:① 契约清单可由管线生成(**禁止手工维护**——与「手写行号必腐化」同构);② 断言「删除/改名任一冻结项」在测试中**必红**(反向注入探针,参考 cogmap 的单引号静默漏报守卫做法:正向与恢复双向断言);③ 新增项不触发红灯(只增语义正确);④ 既有 `test_tool_face` 23 断言与 MCP 回归零变化。
88
+ - **落地状态(2026-09-19):未开工** · 资格裁决=**ACCEPT**(依据:三端已是事实独立消费方,而现有守卫只覆盖同版本投影一致性;缺失维度=冻结面边界)。
89
+
90
+ ### ④P2 能力探测降级(fourth:裁决为 DEFER,先取证再动工)
91
+
92
+ - **gbrain 机制**:`gbrain/src/core/capability.ts` 探测 embeddings 可用性 → `search: 'semantic' | 'keyword-only'`;无 key 时 **BM25 关键词检索完全可用**,加 OpenAI/Voyage key 升级语义检索(混合向量+关键词)。「keyless 先行、按需升级」是其 30k★ 体验的一部分(报告 §0、§6、§10 第 4 条)。
93
+ - **灵枢现状**(实测取证):
94
+ - `bm25` **全仓零命中**(区分大小写检索确认)——灵枢**没有 BM25**,其词法侧是 char-bigram 主链路 + 独立的中英归一原子 + Jaccard 路(`md_cg/semantic/REPRODUCE.md` 双语双路裁定)。
95
+ - 所有相关开关都是**部署期 env**,不是运行期探测:`MDCG_SEMANTIC`(`md_cg/mdcg.py:221-232` `semantic_on()`,注释「默认关闭零回归」)、`MDCG_EN_ATOMS`(`mdcg.py:235-301`,默认 `"0"`)、`MDCG_TOOL_FACE`、`MDCG_MCP_SURFACE`、`MDCG_S7_FRESHNESS`。
96
+ - **灵枢天然零依赖**(无 `requirements.txt` / `pyproject.toml`,主链路纯标准库)→ 「无 API key 完全可用」是**结构性的**,比 gbrain 的「keyless 先行」更彻底:gbrain 无 key 需**退**到 BM25,灵枢**根本不存在该调用**。
97
+ - **降级先例已在(但非探测)**:`mdcg.py:254` 注释「semantic 模块缺失时**静默降级**(不阻断主链路)」;`hive/exec.py` 有**零依赖探测**先例(PNG IHDR / JPEG SOF 读尺寸,不读像素)。
98
+ - **建议落点**:**先取证,暂无落点**。真正可迁移的不是「检索降级」(无靶:问题本体是 gbrain 的 embedding 依赖),而是「**能力差异应自动判定而非部署期人工配置**」——即在**多端部署面**把 `MDCG_SEMANTIC` / `MDCG_EN_ATOMS` 一类开关改为「能力自动判定 + 显式覆盖」。但此改动的前提是:存在**真实受损场景**(使用者或某端因不知要开开关而实际损失召回)。
99
+ - **验收(DEFER 的解除条件)**:先取证「semantic 路默认关闭导致的可感知召回损失」是否有实例(对齐 Pi⑦「取证结论:默认路径结构性已满足,未做无靶改动」的先例)。**有实例** → 落点=开关改能力自适应,验收=断言「能力可用且未显式覆盖时自动启用 + 显式 override 优先 + 能力探测失败静默降级不阻断」(须保持零依赖);**无实例** → 本条结案为「**结构性已满足,不学**」,并把它写进 §4 反面清单的姊妹条(避免后续重复立项)。
100
+ - **落地状态(2026-09-19):未开工** · 资格裁决=**DEFER**(依据:capability.ts 解决的是灵枢不存在的问题本体;缺失维度=条件边界「谁是受损者」未取证;**不得为对齐外部做无靶改动**)。
101
+
102
+ ## 4. 反面清单(不学什么)
103
+
104
+ > 素材来源:报告 §4(治理例外清单)、§5(HTTP/MCP 治理)、§8(多 agent 与信任边界)、§9(哲学对照表)。
105
+
106
+ | 对方做法 | 为什么不学 | 灵枢对应原则 |
107
+ |---|---|---|
108
+ | **DB-only by design**:凭证 / `mcp_request_log` / 任务队列 / `raw_data` / `dream_verdicts`(30 天 TTL)/ withdrawal ledger / durable receipts / outbox 均只落 DB,不进 Markdown | 灵枢**真源唯一且是 md 文件**——主链路零 SQLite、派生索引可随时重建是架构决定;一旦开设「DB-only 例外清单」,例外会随需求扩张并最终使 md 真源名存实亡 | 真源唯一 · 派生可重建 · 主链路零外部依赖 |
109
+ | **「DB-only for now」偷懒路径**(gbrain 用 CI 门程序化拦截「新增派生表持用户知识却不 FS-first」) | ——**这条不是不学,是学做法**:其价值在「**把偷懒路径做成机器红灯**」而非「人工评审记得拦」 | 与 `scripts/cogmap_sync.py check`(手写行号禁令 / 文件链接守卫)、`scripts/verify_discipline.py`(声明出口 strict)同构——**门禁化是仓内既有方针**,本条作为正面做法单列 |
110
+ | **ambient writeback**(对话随口陈述自动写回知识库;默认关闭,公司脑永不开启) | 灵枢写路径已有三道闸(六要素校验 DEFER → 审核队列 / 冲突拦截 / REJECT 负记忆);自动写回会让「未发现拒绝理由」冒充「确认适用」——灵枢已明确 REJECT 过同类设计 | 未验证不写入 · 写入须过闸门 · 判定归使用者 |
111
+ | **队列 TTL 自动放行**(`dream_verdicts` 30 天过期即视为通过) | 灵枢已在审核队列议题上**显式 REJECT 过该候选**(理由:TTL 放行=「未发现拒绝理由冒充确认适用」);裁决必须显式发生(`cg(op=review, decision, reason)`),不设静默过期 | 裁决显式化 · 未验证不固化 |
112
+ | **信任外推**(哲学=「仓库即大脑,真源/备份/验证都推给用户自管」) | 灵枢的定位是**治理内置**(五层 + 条件论 + 白箱化):结构强制可复算、revision 乐观并发、权限按 op 分档、审计留痕——把验证责任外推给使用者与「白箱化」方向直接冲突 | 治理内置 · 结构强制可复算 · 可审计 |
113
+ | **单智能体笔记本定位**(gbrain 作者自述:单写入者假设,无多 agent 并发语义) | 灵枢是**蜂群互联**形态(hive Rust 并发调度 + `session`/`writer` 归属 + `branches` 实验分支隔离 + 互维心跳);引入单写入者假设会击穿既有的归属与隔离语义 | 多会话归属 · 分支隔离 · 蜂群并发 |
114
+ | **PGLite(嵌入式 Postgres/WASM)作为派生索引底座** | 灵枢主链路零依赖(无 `requirements.txt` / `pyproject.toml`);为对齐其检索形态而引入 DB 运行时,会同时牺牲「零配置可跑」与「派生可重建」两条既有资产 | 零依赖 · 零配置可用 |
115
+ | **BM25 词法引擎**(gbrain 无 key 时的检索引擎) | 灵枢词法侧已是 char-bigram 主链路 + 中英归一原子 + Jaccard 路(双语双路已裁定),加 BM25 属**同层第二实现**(对照 §3④:`bm25` 全仓零命中,问题本体不存在) | 单一真源 · 不设同层重复实现 |
116
+
117
+ ## 5. 与既有工作线的边界(防撞车)
118
+
119
+ | 既有工作线 | 关系 | 处置 |
120
+ |---|---|---|
121
+ | **Pi 交接七项**(`docs/Pi可学习优点_灵枢大脑改进交接_20260915.md`) | 运行时/上下文工程面(fork、writepipe 钩子、工具瘦身、状态机、两段式、conformance 巡检、上下文组装),与本文件四条**无重叠** | 并行安全;**唯一接壤处**=本文件 §3① 与 Pi①(`tool_face` 投影)/ Pi⑤(`conformance.py`)——已在 §3① 显式区分「投影一致性守卫」与「协议一致性认证」,动工前**必须**先读那两处,避免误判已有 |
122
+ | **缺口矩阵 `#27`(P-T-92 睡眠整理/联想保留)** | 与本文件 §3③ 同一工作面(`consolidate.promote` 三门槛) | **标关系、不另立**:矩阵管「整理有效性的度量」,本文件管「整理结果的可见与可追溯」 |
123
+ | **缺口矩阵 §2-6(`mdcg.search` 重复实现清理)** | 与本文件 §3② 可能落在**同一函数面**(检索入口过滤) | ② 动工前先查该项是否已施工,避免双改冲突 |
124
+ | **rust 只读检索核心(`rust/`,mdcgr 评测器)** | §3② 的有效期过滤若落在**读侧默认行为**,可能触发 py↔rust 镜像义务(既有口径:py 改动须确认是否落在 rust 已对齐的读侧默认行为域) | ② 施工前**必须**评估镜像义务;若默认开启则须同步 rust,否则 rust 侧召回口径与 python 漂移 |
125
+ | **bench 口径(bench6 / LoCoMo 500)** | §3② 改动会改变召回集 | 若为 **opt-in 默认关闭**,bench 零漂移(对齐仓内既有惯例);若转默认,须复跑并如实更新 README 对外数字(**数字未达标不动对外声明**) |
126
+ | **在途未提交改动**(`README.md`、`docs/mdcg/功能调用映射表_v0.1.md`、`scripts/cogmap_sync.py`) | 与本文件无交集 | 施工轮次须与此三件隔离,避免混淆提交 |
127
+
128
+ ## 6. 建议施工顺序
129
+
130
+ > 每步统一节奏:**实现 → 全量回归(模块方式)→ 灵枢归档(第 16 条)→ 看板/文档同步**。前置裁决未完成**不得**动工。
131
+
132
+ 1. **② 有效期进查询语义(P0,先裁后动)**
133
+ - 1a. **前置裁决**:`expired` 与 `not_yet` 是否同为用户不可召回?(建议:同为不可召回,但须 `unknown` 保持原样——否则旧库无时间戳节点会被静默排除)
134
+ - 1b. 落点实现:`mdcos._candidates` 一处过滤(与 `session=` / `branch=` 同构)+ `mdcg._candidates` 同步;**默认 opt-in**
135
+ - 1c. 回归 + 断言(§3② 验收四条)
136
+ - 1d. **rust 镜像义务评估** → 若涉默认行为则同步
137
+ - 1e. 归档 + 更新本文件落地状态
138
+ 2. **③ 巩固结果读侧可达(P0)**
139
+ - 先核 S3 图扩散对 `_link_concept` 边类型的覆盖面 → 补齐读侧可达 → 再评估是否需要显式指针字段(须过「单一真源」裁决)
140
+ 3. **① 工具面契约冻结(P1,须使用者裁决冻结面)**
141
+ - 划冻结面(建议仅 kernel 2 基元 + op 枚举)→ 契约清单管线化(禁手工)→ 只增断言 + 反向注入探针
142
+ 4. **④ 能力自适应(P2,先取证)**
143
+ - 取证受损场景 → 有则改「能力自动判定 + 显式覆盖」;无则结案「结构性已满足,不学」并回写 §4
144
+
145
+ ## 7. 快速上手(施工前一分钟自检)
146
+
147
+ ```bash
148
+ # 0) 先读形态模板与素材(防版本不一致、防重新发明范式)
149
+ # docs/Pi可学习优点_灵枢大脑改进交接_20260915.md §3 五段式 / §4 反面清单
150
+ # docs/GBrain记忆机制学习报告_供CodeBuddy端_20260914.md §10 四条原文
151
+
152
+ # 1) 复核四条现状基线(本文件 §3 各条「灵枢现状」的来源命令)
153
+ # grep 手法:搜索范围限定 md_cg/,逐条核对下列符号是否仍如本文件所述
154
+ # §3① MEMORY_VERBS / PROTOCOL_VERSION / KERNEL_TOOLS / ALL_TOOLS / tools_for_surface
155
+ # §3② valid_from / valid_until / trust.validity / _candidates 的过滤维度
156
+ # §3③ consolidated_at / consolidated_into / induce_memories / _link_concept
157
+ # §3④ bm25 / MDCG_SEMANTIC / MDCG_EN_ATOMS
158
+
159
+ # 2) 回归(模块方式,勿用 pytest md_cg/)
160
+ python -m md_cg.test_p2_mcp
161
+ python -m md_cg.test_p33
162
+ # …按改动面选套件;改动后须跑全量
163
+
164
+ # 3) 收尾(第 16 条):提炼核心修改 → cg(op=write) → cg(op=read) 读回确认
165
+ ```
166
+
167
+ ---
168
+
169
+ **交接摘要**:四条任务中 **②③ 为 P0 且证据充分**(确定性缺口,非相似度推断),**① 为 P1 但须先裁冻结面**,**④ 已裁 DEFER**(先取证,不得为对齐外部做无靶改动)。四条**均为未开工**——依 §1 完成度判据,动工前请重新取证而非信任本文件标注。
package/docs/README.md CHANGED
@@ -38,7 +38,7 @@ docs/
38
38
  | [认知图 G4-G8 缺口裁定单 v0.1](mdcg/认知图_G4-G8缺口裁定单_v0.1.md) | 缺口裁决留痕 |
39
39
  | [认知图作为记忆操作系统:评估与路线 v0.1](mdcg/认知图作为记忆操作系统_评估与路线_v0.1.md) | 路线图 |
40
40
  | [主代理子代理记忆架构设计](mdcg/主代理子代理记忆架构设计.md) | 多代理记忆分工 |
41
- | [子代理配置标准 v0.4](mdcg/子代理配置标准_v0.4.md) | 统一执行默认(§0)/ 派发 / 确定性执行(§7)/ 复用 / 产出物生命周期(§5.4) |
41
+ | [子代理配置标准 v0.5](mdcg/子代理配置标准_v0.5.md) | 运行时角色拓扑·六位(§8:副代理=设计者视角)/ 统一执行默认(§0)/ 派发 / 确定性执行(§7)/ 复用 / 产出物生命周期(§5.4) |
42
42
  | [单元自我锚点·系统提示词标准 v0.3](mdcg/单元自我锚点_系统提示词标准_v0.3.md) | 提示词锚点标准 |
43
43
  | [令牌与角色权职分离 v0.1](mdcg/令牌与角色权职分离_v0.1.md) | 权限模型 |
44
44
  | [缺口单 P0 收口 v0.1](mdcg/缺口单_P0收口_v0.1.md) | P0 缺口清单 |
@@ -10,10 +10,16 @@
10
10
  # compact —— 精简形态(执行公约 + 路由表 + 声明),供「每轮都在」的系统提示槽位
11
11
  # skill —— SKILL.md 形态(YAML frontmatter + 纪律正文),供 Claude Code / Codex 插件的 skills/ 目录
12
12
  # enabled: 是否纳入 render --write 与 verify 的默认范围
13
- # memory: 该端 Agent 访问灵枢记忆的通路;仅声明事实,不参与渲染与校验。两种形态:
13
+ # memory: 该端 Agent 访问灵枢记忆的通路;仅声明事实,不参与渲染与校验。三种形态:
14
14
  # ① MCP 客户端配置 —— 写客户端配置里的 server 名(如 mcp/mdcg);
15
15
  # ② 宿主内建桥 —— 插件直接 spawn 同一个 md_cg.mcp_server 为子进程,
16
16
  # 再注册为宿主工具(DSH 侧 = lingshu_cg / lingshu_stg)。
17
+ # ③ 蜂巢并发通路 —— hive = 另一个 MCP server(python -m hive.hive_mcp.mcp_server,
18
+ # 四工具 hive_spawn / hive_poll / hive_kill / hive_doctor),
19
+ # 提供多智能体并发 + 任务上下文管理(context_files 注入、预算交回、
20
+ # 进展卡 / handoff)。池与 serve 由 PYTHONPATH 指向的仓库内 hive/ 推导
21
+ # ⇒ 多端指向同一仓库即**共享同一并发池**(「通用并发」的落地形态);
22
+ # 要隔离可加 HIVE_JOBS_DIR / HIVE_CONFIG 指定独立池。
17
23
  # 底层服务是同一个 python -m md_cg.mcp_server;差别只在"谁去连它"。
18
24
  # 未列该项的端表示通路未在本矩阵登记,不代表该端无通路。
19
25
  # slot: 该产物在**宿主侧**占的注入位(对应下面 injection.slots 的键)。
@@ -62,6 +68,10 @@ targets:
62
68
  format: text
63
69
  marker: lingshu:discipline
64
70
  memory: plugin/lingshu_cg+lingshu_stg (插件内建桥,spawn md_cg.mcp_server;tools=core)
71
+ # hive:本端未经 MCP 面接入——插件是内建桥形态(TS 侧 spawn + 工具注册),接蜂巢须在
72
+ # src/lib/ 新增 hive 客户端与四工具暴露,非「写一条配置」可解。当前兜底=CLI
73
+ # (hive.exe submit --spec <spec.json>)。详见 hive/README.md「各 harness 注册」。
74
+ memory_excluded: mcp/hive(形态差异:非原生 MCP 客户端,待插件 TS 侧接入)
65
75
  note: >-
66
76
  DSH 系统提示 order=0(DEPLOYMENT_PERSONA_PREFIX),每轮注入;
67
77
  严格 {{variable}} 插值 ⇒ 正文禁含裸 {{ 。
@@ -90,7 +100,7 @@ targets:
90
100
  path: codebuddy/CODEBUDDY.md
91
101
  variant: full
92
102
  format: markdown
93
- memory: mcp/mdcg (cg,stg)
103
+ memory: mcp/mdcg (cg,stg) · mcp/hive (蜂巢并发:spawn/poll/kill/doctor)
94
104
  note: >-
95
105
  CodeBuddy 会话起始全文注入。**根目录 CODEBUDDY.md 优先于 AGENTS.md**——
96
106
  本仓产物落 codebuddy/CODEBUDDY.md(不落根,避免屏蔽本地私有 AGENTS.md);
@@ -104,6 +114,7 @@ targets:
104
114
  variant: full
105
115
  format: markdown
106
116
  preserve: true
117
+ memory: mcp/mdcg (cg,stg) · mcp/hive (蜂巢并发:spawn/poll/kill/doctor)
107
118
  note: >-
108
119
  ZCode 读项目根 AGENTS.md。本仓产物落 zcode/AGENTS.md(不落根,避免与
109
120
  CodeBuddy 的 CODEBUDDY.md 及本地 AGENTS.md 冲突);复制到项目根生效。
@@ -116,7 +127,7 @@ targets:
116
127
  variant: full
117
128
  format: markdown
118
129
  preserve: true
119
- memory: mcp/mdcg (cg,stg)
130
+ memory: mcp/mdcg (cg,stg) · mcp/hive (蜂巢并发:spawn/poll/kill/doctor)
120
131
  note: >-
121
132
  Codex CLI 读项目根 AGENTS.md(另支持 ~/.codex/AGENTS.md 全局)。
122
133
  本仓产物落 codex/AGENTS.md(不落根,根 AGENTS.md 是本地私有件);
@@ -130,7 +141,7 @@ targets:
130
141
  variant: full
131
142
  format: markdown
132
143
  preserve: true
133
- memory: mcp/mdcg (cg,stg)
144
+ memory: mcp/mdcg (cg,stg) · mcp/hive (蜂巢并发:spawn/poll/kill/doctor)
134
145
  note: >-
135
146
  Claude Code(Anthropic)会话起始读取项目根 CLAUDE.md(另支持 ~/.claude/CLAUDE.md
136
147
  全局、CLAUDE.local.md 私有附加)。本仓产物落 claude/CLAUDE.md(不落根——根 AGENTS.md
@@ -151,7 +162,7 @@ targets:
151
162
  path: claude/lingshu-memory/skills/linglu-discipline/SKILL.md
152
163
  variant: skill
153
164
  format: markdown
154
- memory: mcp/mdcg (cg,stg)
165
+ memory: mcp/mdcg (cg,stg) · mcp/hive (蜂巢并发:spawn/poll/kill/doctor)
155
166
  note: >-
156
167
  Claude Code 插件形态(插件根 = claude/lingshu-memory/,经仓根 .claude-plugin/marketplace.json
157
168
  分发:/plugin marketplace add FuRongJun-1999/dsh-memory → /plugin install)。
@@ -173,7 +184,7 @@ targets:
173
184
  path: codex/lingshu-memory/skills/linglu-discipline/SKILL.md
174
185
  variant: skill
175
186
  format: markdown
176
- memory: mcp/mdcg (cg,stg)
187
+ memory: mcp/mdcg (cg,stg) · mcp/hive (蜂巢并发:spawn/poll/kill/doctor)
177
188
  note: >-
178
189
  Codex 插件形态(插件根 = codex/lingshu-memory/,.codex-plugin/plugin.json,name 与文件夹一致;
179
190
  经仓根 .agents/plugins/marketplace.json 分发:codex plugin marketplace add <本仓路径> → codex plugin add)。
@@ -198,7 +209,7 @@ targets:
198
209
  path: AGENTS.md
199
210
  variant: full
200
211
  format: markdown
201
- memory: mcp/mdcg (cg,stg)
212
+ memory: mcp/mdcg (cg,stg) · mcp/hive (蜂巢并发:spawn/poll/kill/doctor)
202
213
  note: >-
203
214
  根目录 AGENTS.md = 本机 CodeBuddy 会话注入件(见本文件 dsh preamble「仓库结构与公开边界」)。
204
215
  历史缺陷(20260916 漂移实例):它是手工件、长期不在渲染/校验矩阵内,0.1 / 0.6 把 DSH 端
@@ -33,10 +33,11 @@
33
33
  | op | 用途 | 常用参数 |
34
34
  |---|---|---|
35
35
  | `route` | 任务开始路由记忆(返回知识 + 建议能力,不执行) | `intent`(任务意图) |
36
- | `read` | 召回/检索/按 id 取(`session`=只取该会话归属的记忆,缺省不过滤) | `query` / `node_id` / `k` / `layer` / `budget_tokens` / `context` / `session` |
36
+ | `read` | 召回/检索/按 id 取(`session`=只取该会话归属的记忆,缺省不过滤;`validity=true`=时效过滤(显式启用,缺省不过滤),**仅排除「已过期」,「未生效」一律保留**——两者语义相反) | `query` / `node_id` / `k` / `layer` / `budget_tokens` / `context` / `session` / `validity` |
37
+ | `edges` | 三元组反查(**只读**):按派生边任意端/谓词/时间反查「这条记忆从哪来 / 谁由它派生」(subject/predicate/object 即 child/relation/parent);`expand_nodes=true` 附命中端点节点卡 | `child` / `parent` / `relation` / `batch` / `start_time` / `end_time` / `time_axis` / `ordering` / `offset` / `limit` / `aggregation` / `expand_nodes` |
37
38
  | `write` | 写入(先按 content_kind 审核 + 冲突检测,ACCEPT 落盘 / DEFER 入审核队列 / REJECT 入负记忆)。**自动归属**:frontmatter 带 `writer`/`session`/`harness`(服务端身份,不可伪造) | `content` / `content_kind`(text/code/…)/ `node_id`(同 id 即改写)/ `layer` / `tags` / `importance` / `verification_basis` / `condition_space` / `gated` / `consistency` / `on_conflict`(reject\|defer\|record) |
38
39
  | `verify` | 对节点做证据验证(confirmed/weakened/falsified)——**非队列裁决** | `node_id` / `verdict` / `evidence` |
39
- | `review` | 审核队列:`action=list/rounds/records` 查看;传 `pid`+`decision`+`reason` 即裁决落盘(accept/reject/edit/merge,**需 can_admin**;本机未配置外部验证器时写入恒 DEFER 入队,靠此裁决落盘) | `action` / `pid` / `decision` / `reason` / `edits` / `merge_into` |
40
+ | `review` | 审核队列:`action=list/rounds/records/stats` 查看;传 `pid`+`decision`+`reason` 即裁决落盘(accept/reject/edit/merge/noop,**需 can_admin**;`noop`=已评估且判定不改动任何现有记忆,只留痕不入库、不进负记忆;本机未配置外部验证器时写入恒 DEFER 入队,靠此裁决落盘) | `action` / `pid` / `decision` / `reason` / `edits` / `merge_into` |
40
41
  | `task` | 结构层任务实体(工程台账,跨会话/上下文压缩后不遗忘):`name` 即身份(同名即同任务,slug 归一),`action` = open/status/plan_add/get/list/find/session(缺省 list);**迁 `done` 必须同时给 `result`**(缺一不收,拒收不落盘);未提供的字段沿用旧值(结果不会被静默清空) | `name` / `action` / `plan`(分步计划,每轮覆盖) / `change`(计划变更,逐轮追加) / `result` / `task_status`(active\|blocked\|done\|dropped) / `goal` / `acceptance` / `boundary` / `condition` / `node_id` |
41
42
  | `recent` | 近期事件窗口 | `action`(add/list/clear)/ `limit` |
42
43
  | `forget` / `protect` | 软删除/恢复 / 写保护 | `node_id` |
@@ -44,7 +45,7 @@
44
45
 
45
46
  三条调用铁律:
46
47
  1. **`op` 必填**——漏传会触发参数签名推导兜底(返回标记 `op_derived: true`),复杂任务中也必须显式传,防静默执行错误意图。
47
- 2. **返回 `moved_to: "review_queue"` / `verdict: DEFER/REJECT` 时不要重试**——这是校验闸门的正常行为(返回自带 `hint` 说明),重试同样结果;落盘须由设计者权限(can_admin)经 `op=review` 裁决(decision=accept/reject/edit/merge,本机工具:`python scripts/review_cli.py list`),agent 端无裁决权是设计(写入者不得自裁自决),转告使用者即可。
48
+ 2. **返回 `moved_to: "review_queue"` / `verdict: DEFER/REJECT` 时不要重试**——这是校验闸门的正常行为(返回自带 `hint` 说明),重试同样结果;落盘须由设计者权限(can_admin)经 `op=review` 裁决(decision=accept/reject/edit/merge/noop,本机工具:`python scripts/review_cli.py list`),agent 端无裁决权是设计(写入者不得自裁自决),转告使用者即可。
48
49
  3. `stg` 同理经 `op` 分发(`timeline` / `relation` / `anchors` 等)。
49
50
 
50
51
  ## 收尾强制流程(任务完成时不可跳过)