dominds 1.23.10 → 1.24.2

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 (257) hide show
  1. package/dist/apps/runtime.js +2 -2
  2. package/dist/dialog-display-state.d.ts +2 -3
  3. package/dist/dialog-display-state.js +53 -145
  4. package/dist/dialog-drive-work.d.ts +4 -0
  5. package/dist/dialog-drive-work.js +40 -0
  6. package/dist/dialog-fork.d.ts +0 -1
  7. package/dist/dialog-fork.js +28 -32
  8. package/dist/dialog-generation-run.d.ts +4 -0
  9. package/dist/dialog-generation-run.js +24 -0
  10. package/dist/dialog-global-registry.d.ts +7 -8
  11. package/dist/dialog-global-registry.js +39 -33
  12. package/dist/dialog-instance-registry.js +12 -12
  13. package/dist/dialog-interruption.js +2 -2
  14. package/dist/dialog-latest-state.d.ts +4 -0
  15. package/dist/dialog-latest-state.js +14 -0
  16. package/dist/dialog.d.ts +31 -30
  17. package/dist/dialog.js +146 -56
  18. package/dist/docs/agent-priming.md +1 -1
  19. package/dist/docs/agent-priming.zh.md +1 -1
  20. package/dist/docs/app-constitution.md +1 -1
  21. package/dist/docs/app-constitution.zh.md +1 -1
  22. package/dist/docs/dialog-persistence.md +2 -2
  23. package/dist/docs/dialog-persistence.zh.md +2 -2
  24. package/dist/docs/dialog-system.md +72 -75
  25. package/dist/docs/dialog-system.zh.md +79 -82
  26. package/dist/docs/diligence-push.md +30 -40
  27. package/dist/docs/diligence-push.zh.md +15 -20
  28. package/dist/docs/dominds-agent-collaboration.zh.md +12 -10
  29. package/dist/docs/dominds-terminology.md +5 -2
  30. package/dist/docs/idle-reminder-wake.md +1 -1
  31. package/dist/docs/idle-reminder-wake.zh.md +1 -1
  32. package/dist/docs/issues/tellask-background-continuation-live-bugs-2026-05-17.zh.md +101 -0
  33. package/dist/docs/mcp-prompts-resources.md +13 -6
  34. package/dist/docs/mcp-support.md +18 -9
  35. package/dist/docs/mcp-support.zh.md +13 -8
  36. package/dist/docs/memory-system.md +51 -1
  37. package/dist/docs/memory-system.zh.md +51 -1
  38. package/dist/docs/team_mgmt-toolset.md +27 -10
  39. package/dist/docs/team_mgmt-toolset.zh.md +20 -9
  40. package/dist/docs/tellask-background-continuation-refactor.zh.md +1017 -0
  41. package/dist/docs/tellask-collab.md +4 -4
  42. package/dist/docs/tellask-collab.zh.md +4 -4
  43. package/dist/evt-registry.js +1 -0
  44. package/dist/llm/defaults.yaml +12 -9
  45. package/dist/llm/kernel-driver/drive.js +315 -67
  46. package/dist/llm/kernel-driver/engine.d.ts +1 -1
  47. package/dist/llm/kernel-driver/engine.js +4 -4
  48. package/dist/llm/kernel-driver/flow.js +203 -131
  49. package/dist/llm/kernel-driver/idle-reminder-wake.js +2 -4
  50. package/dist/llm/kernel-driver/loop.d.ts +4 -1
  51. package/dist/llm/kernel-driver/loop.js +268 -62
  52. package/dist/llm/kernel-driver/reply-guidance.js +29 -50
  53. package/dist/llm/kernel-driver/runtime.d.ts +10 -0
  54. package/dist/llm/kernel-driver/runtime.js +29 -84
  55. package/dist/llm/kernel-driver/sideDialog-txn.js +3 -0
  56. package/dist/llm/kernel-driver/sideDialog.d.ts +4 -13
  57. package/dist/llm/kernel-driver/sideDialog.js +165 -161
  58. package/dist/llm/kernel-driver/tellask-special.d.ts +5 -2
  59. package/dist/llm/kernel-driver/tellask-special.js +166 -184
  60. package/dist/llm/kernel-driver/types.d.ts +12 -8
  61. package/dist/mcp/config.d.ts +13 -5
  62. package/dist/mcp/config.js +37 -24
  63. package/dist/mcp/resources.d.ts +14 -3
  64. package/dist/mcp/resources.js +9 -6
  65. package/dist/mcp/supervisor.js +6 -1
  66. package/dist/mcp/tool-names.d.ts +2 -2
  67. package/dist/mcp/tool-names.js +4 -7
  68. package/dist/minds/system-prompt-parts.js +3 -0
  69. package/dist/persistence-errors.d.ts +1 -1
  70. package/dist/persistence.d.ts +81 -51
  71. package/dist/persistence.js +1747 -427
  72. package/dist/priming.d.ts +1 -1
  73. package/dist/priming.js +2 -2
  74. package/dist/recovery/proceeding-drive.js +46 -11
  75. package/dist/recovery/reply-special.js +42 -35
  76. package/dist/runtime/background-callee-summary.d.ts +2 -0
  77. package/dist/runtime/background-callee-summary.js +14 -0
  78. package/dist/runtime/driver-messages.d.ts +0 -8
  79. package/dist/runtime/driver-messages.js +0 -59
  80. package/dist/server/api-routes.js +40 -27
  81. package/dist/server/websocket-handler.js +39 -78
  82. package/dist/server.js +2 -2
  83. package/dist/shared-reminders.js +14 -3
  84. package/dist/skills/load.d.ts +7 -0
  85. package/dist/tools/cmd-runner.js +2 -0
  86. package/dist/tools/ctrl.js +6 -6
  87. package/dist/tools/os.js +2 -0
  88. package/dist/tools/pending-tellask-reminder.js +9 -9
  89. package/dist/tools/prompts/control/en/index.md +2 -0
  90. package/dist/tools/prompts/control/en/principles.md +1 -0
  91. package/dist/tools/prompts/control/en/tools.md +3 -0
  92. package/dist/tools/prompts/control/zh/index.md +2 -0
  93. package/dist/tools/prompts/control/zh/principles.md +1 -0
  94. package/dist/tools/prompts/control/zh/tools.md +3 -0
  95. package/dist/tools/prompts/personal_memory/en/principles.md +4 -1
  96. package/dist/tools/prompts/personal_memory/zh/principles.md +4 -1
  97. package/dist/tools/prompts/skills/en/index.md +1 -1
  98. package/dist/tools/prompts/skills/en/principles.md +5 -1
  99. package/dist/tools/prompts/skills/zh/index.md +1 -1
  100. package/dist/tools/prompts/skills/zh/principles.md +5 -1
  101. package/dist/tools/prompts/team_memory/en/principles.md +3 -0
  102. package/dist/tools/prompts/team_memory/en/scenarios.md +1 -1
  103. package/dist/tools/prompts/team_memory/zh/principles.md +3 -0
  104. package/dist/tools/prompts/team_memory/zh/scenarios.md +1 -1
  105. package/dist/tools/shell-capture-env.d.ts +1 -0
  106. package/dist/tools/shell-capture-env.js +44 -0
  107. package/dist/tools/skills.js +2 -0
  108. package/dist/tools/team_mgmt-mcp-manual.js +8 -8
  109. package/dist/tools/team_mgmt.js +34 -12
  110. package/dist/utils/task-package.js +9 -1
  111. package/package.json +3 -3
  112. package/webapp/dist/assets/{_basePickBy-CBh9Agsi.js → _basePickBy-DBvh4H3k.js} +3 -3
  113. package/webapp/dist/assets/_basePickBy-DBvh4H3k.js.map +1 -0
  114. package/webapp/dist/assets/{_baseUniq-D2UXV506.js → _baseUniq-CQmc9B-o.js} +2 -2
  115. package/webapp/dist/assets/_baseUniq-CQmc9B-o.js.map +1 -0
  116. package/webapp/dist/assets/{arc-CmeRUuzC.js → arc-DfLiOX_4.js} +2 -2
  117. package/webapp/dist/assets/arc-DfLiOX_4.js.map +1 -0
  118. package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-D5hfsb4A.js → architectureDiagram-2XIMDMQ5-CaTVJ5ev.js} +26 -8
  119. package/webapp/dist/assets/architectureDiagram-2XIMDMQ5-CaTVJ5ev.js.map +1 -0
  120. package/webapp/dist/assets/{blockDiagram-VD42YOAC-BVswEa9D.js → blockDiagram-WCTKOSBZ-DlmAtUca.js} +187 -170
  121. package/webapp/dist/assets/blockDiagram-WCTKOSBZ-DlmAtUca.js.map +1 -0
  122. package/webapp/dist/assets/{c4Diagram-YG6GDRKO-Bgm6yzGX.js → c4Diagram-IC4MRINW-CNHKD5Sl.js} +4 -4
  123. package/webapp/dist/assets/c4Diagram-IC4MRINW-CNHKD5Sl.js.map +1 -0
  124. package/webapp/dist/assets/{channel-CDo0v82C.js → channel-BTWhZYd5.js} +2 -2
  125. package/webapp/dist/assets/channel-BTWhZYd5.js.map +1 -0
  126. package/webapp/dist/assets/{chunk-4BX2VUAB-DMqSdYxu.js → chunk-4BX2VUAB-CV1n0Uhy.js} +2 -2
  127. package/webapp/dist/assets/chunk-4BX2VUAB-CV1n0Uhy.js.map +1 -0
  128. package/webapp/dist/assets/{chunk-55IACEB6-CudmE3Fx.js → chunk-55IACEB6-C5r77i_p.js} +2 -2
  129. package/webapp/dist/assets/chunk-55IACEB6-C5r77i_p.js.map +1 -0
  130. package/webapp/dist/assets/{chunk-FMBD7UC4-BSVSuNxy.js → chunk-FMBD7UC4-DJ1yHxrH.js} +2 -2
  131. package/webapp/dist/assets/chunk-FMBD7UC4-DJ1yHxrH.js.map +1 -0
  132. package/webapp/dist/assets/{chunk-TZMSLE5B-aW2uEdtS.js → chunk-JSJVCQXG-Ahg9hCCm.js} +14 -6
  133. package/webapp/dist/assets/chunk-JSJVCQXG-Ahg9hCCm.js.map +1 -0
  134. package/webapp/dist/assets/{chunk-QN33PNHL-Cbf-pIxI.js → chunk-KX2RTZJC-qBrewKt0.js} +2 -2
  135. package/webapp/dist/assets/chunk-KX2RTZJC-qBrewKt0.js.map +1 -0
  136. package/webapp/dist/assets/{chunk-DI55MBZ5-CZCetJxI.js → chunk-NQ4KR5QH-1lEdM6Wi.js} +9 -7
  137. package/webapp/dist/assets/chunk-NQ4KR5QH-1lEdM6Wi.js.map +1 -0
  138. package/webapp/dist/assets/{chunk-QZHKN3VN-DYyIY8_q.js → chunk-QZHKN3VN-ChVR749G.js} +2 -2
  139. package/webapp/dist/assets/chunk-QZHKN3VN-ChVR749G.js.map +1 -0
  140. package/webapp/dist/assets/{chunk-B4BG7PRW-d5dfiagO.js → chunk-WL4C6EOR-BAUXgk0K.js} +171 -121
  141. package/webapp/dist/assets/chunk-WL4C6EOR-BAUXgk0K.js.map +1 -0
  142. package/webapp/dist/assets/{classDiagram-2ON5EDUG-C4-5PgVL.js → classDiagram-VBA2DB6C-DlqyhKve.js} +7 -6
  143. package/webapp/dist/assets/classDiagram-VBA2DB6C-DlqyhKve.js.map +1 -0
  144. package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-C4-5PgVL.js → classDiagram-v2-RAHNMMFH-DlqyhKve.js} +7 -6
  145. package/webapp/dist/assets/classDiagram-v2-RAHNMMFH-DlqyhKve.js.map +1 -0
  146. package/webapp/dist/assets/{clone-DivPByZ0.js → clone-BFiIqUsc.js} +2 -2
  147. package/webapp/dist/assets/clone-BFiIqUsc.js.map +1 -0
  148. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-CwBAjMT3.js → cose-bilkent-S5V4N54A-JYvhtd6J.js} +2 -2
  149. package/webapp/dist/assets/cose-bilkent-S5V4N54A-JYvhtd6J.js.map +1 -0
  150. package/webapp/dist/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -1
  151. package/webapp/dist/assets/{dagre-6UL2VRFP-tC56AIio.js → dagre-KLK3FWXG-CCGcQh6w.js} +7 -7
  152. package/webapp/dist/assets/dagre-KLK3FWXG-CCGcQh6w.js.map +1 -0
  153. package/webapp/dist/assets/defaultLocale-B2RvLBDe.js.map +1 -1
  154. package/webapp/dist/assets/{diagram-PSM6KHXK-dEF_O6uj.js → diagram-E7M64L7V-BXC4AxAd.js} +10 -10
  155. package/webapp/dist/assets/diagram-E7M64L7V-BXC4AxAd.js.map +1 -0
  156. package/webapp/dist/assets/{diagram-QEK2KX5R-BC3CyB81.js → diagram-IFDJBPK2-B--Sb3XT.js} +9 -8
  157. package/webapp/dist/assets/diagram-IFDJBPK2-B--Sb3XT.js.map +1 -0
  158. package/webapp/dist/assets/{diagram-S2PKOQOG-BV-YMbA_.js → diagram-P4PSJMXO-CVqgtrh3.js} +8 -8
  159. package/webapp/dist/assets/diagram-P4PSJMXO-CVqgtrh3.js.map +1 -0
  160. package/webapp/dist/assets/{erDiagram-Q2GNP2WA-DIgdtwce.js → erDiagram-INFDFZHY-BniHaRTt.js} +96 -75
  161. package/webapp/dist/assets/erDiagram-INFDFZHY-BniHaRTt.js.map +1 -0
  162. package/webapp/dist/assets/{flowDiagram-NV44I4VS-C7Mawlld.js → flowDiagram-PKNHOUZH-wLKFBWTR.js} +98 -81
  163. package/webapp/dist/assets/flowDiagram-PKNHOUZH-wLKFBWTR.js.map +1 -0
  164. package/webapp/dist/assets/{ganttDiagram-JELNMOA3-DgaYLOeL.js → ganttDiagram-A5KZAMGK-DrptcitZ.js} +28 -3
  165. package/webapp/dist/assets/ganttDiagram-A5KZAMGK-DrptcitZ.js.map +1 -0
  166. package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-Dwv1ZLFB.js → gitGraphDiagram-K3NZZRJ6-C6l5aP44.js} +38 -46
  167. package/webapp/dist/assets/gitGraphDiagram-K3NZZRJ6-C6l5aP44.js.map +1 -0
  168. package/webapp/dist/assets/graph-DXuQGYQN.js +782 -0
  169. package/webapp/dist/assets/graph-DXuQGYQN.js.map +1 -0
  170. package/webapp/dist/assets/{index-BGdI3lWA.css → index-BQoNJEGT.css} +19 -27
  171. package/webapp/dist/assets/{index-BsSFGqVX.js → index-DuQ1OCMG.js} +1435 -1348
  172. package/webapp/dist/assets/{index-BsSFGqVX.js.map → index-DuQ1OCMG.js.map} +1 -1
  173. package/webapp/dist/assets/{infoDiagram-HS3SLOUP-PDKRqD6y.js → infoDiagram-LFFYTUFH-BbleCSjW.js} +7 -7
  174. package/webapp/dist/assets/infoDiagram-LFFYTUFH-BbleCSjW.js.map +1 -0
  175. package/webapp/dist/assets/init-ZxktEp_H.js.map +1 -1
  176. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-DmV-LZuk.js +966 -0
  177. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-DmV-LZuk.js.map +1 -0
  178. package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-DDD6YlTa.js → journeyDiagram-4ABVD52K-D3sQFfac.js} +5 -5
  179. package/webapp/dist/assets/journeyDiagram-4ABVD52K-D3sQFfac.js.map +1 -0
  180. package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-CK-CJzXm.js → kanban-definition-K7BYSVSG-BEeBlBtM.js} +5 -3
  181. package/webapp/dist/assets/kanban-definition-K7BYSVSG-BEeBlBtM.js.map +1 -0
  182. package/webapp/dist/assets/{layout-DRs2ltCp.js → layout-g7jjgV-W.js} +5 -5
  183. package/webapp/dist/assets/layout-g7jjgV-W.js.map +1 -0
  184. package/webapp/dist/assets/{linear-CiMu0dYF.js → linear-D_X91Yek.js} +2 -2
  185. package/webapp/dist/assets/linear-D_X91Yek.js.map +1 -0
  186. package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-C8yEoHXx.js → mindmap-definition-YRQLILUH-NkMAIgRY.js} +7 -5
  187. package/webapp/dist/assets/mindmap-definition-YRQLILUH-NkMAIgRY.js.map +1 -0
  188. package/webapp/dist/assets/ordinal-CxptdPJm.js.map +1 -1
  189. package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BhtVILXQ.js → pieDiagram-SKSYHLDU-Z6E4GEPC.js} +8 -8
  190. package/webapp/dist/assets/pieDiagram-SKSYHLDU-Z6E4GEPC.js.map +1 -0
  191. package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-B7Xuuv_G.js → quadrantDiagram-337W2JSQ-BH8hfOuU.js} +3 -3
  192. package/webapp/dist/assets/quadrantDiagram-337W2JSQ-BH8hfOuU.js.map +1 -0
  193. package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-DY6Q4U6l.js → requirementDiagram-Z7DCOOCP-DRJkvoQI.js} +16 -6
  194. package/webapp/dist/assets/requirementDiagram-Z7DCOOCP-DRJkvoQI.js.map +1 -0
  195. package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-DZPox4PX.js → sankeyDiagram-WA2Y5GQK-D2VwjtJo.js} +2 -2
  196. package/webapp/dist/assets/sankeyDiagram-WA2Y5GQK-D2VwjtJo.js.map +1 -0
  197. package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-Bg6GPP0w.js → sequenceDiagram-2WXFIKYE-Cq-gEPOw.js} +601 -201
  198. package/webapp/dist/assets/sequenceDiagram-2WXFIKYE-Cq-gEPOw.js.map +1 -0
  199. package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-CcskYNpn.js → stateDiagram-RAJIS63D-CFM8Jqke.js} +9 -9
  200. package/webapp/dist/assets/stateDiagram-RAJIS63D-CFM8Jqke.js.map +1 -0
  201. package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-Dja5UwuW.js → stateDiagram-v2-FVOUBMTO-Dip5iGX_.js} +5 -5
  202. package/webapp/dist/assets/stateDiagram-v2-FVOUBMTO-Dip5iGX_.js.map +1 -0
  203. package/webapp/dist/assets/{timeline-definition-IT6M3QCI-CA-Wvxg8.js → timeline-definition-YZTLITO2-OI9JzMjX.js} +3 -3
  204. package/webapp/dist/assets/timeline-definition-YZTLITO2-OI9JzMjX.js.map +1 -0
  205. package/webapp/dist/assets/{treemap-GDKQZRPO-CF_Fur4n.js → treemap-KZPCXAKY-CtNF416A.js} +37 -24
  206. package/webapp/dist/assets/treemap-KZPCXAKY-CtNF416A.js.map +1 -0
  207. package/webapp/dist/assets/vennDiagram-LZ73GAT5-CjaPj4FZ.js +2487 -0
  208. package/webapp/dist/assets/vennDiagram-LZ73GAT5-CjaPj4FZ.js.map +1 -0
  209. package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-CYc3vOkZ.js → xychartDiagram-JWTSCODW-21mBt9iu.js} +4 -4
  210. package/webapp/dist/assets/xychartDiagram-JWTSCODW-21mBt9iu.js.map +1 -0
  211. package/webapp/dist/index.html +2 -2
  212. package/dist/docs/tellask-revive-context-refactor.zh.md +0 -604
  213. package/webapp/dist/assets/_basePickBy-CBh9Agsi.js.map +0 -1
  214. package/webapp/dist/assets/_baseUniq-D2UXV506.js.map +0 -1
  215. package/webapp/dist/assets/arc-CmeRUuzC.js.map +0 -1
  216. package/webapp/dist/assets/architectureDiagram-VXUJARFQ-D5hfsb4A.js.map +0 -1
  217. package/webapp/dist/assets/blockDiagram-VD42YOAC-BVswEa9D.js.map +0 -1
  218. package/webapp/dist/assets/c4Diagram-YG6GDRKO-Bgm6yzGX.js.map +0 -1
  219. package/webapp/dist/assets/channel-CDo0v82C.js.map +0 -1
  220. package/webapp/dist/assets/chunk-4BX2VUAB-DMqSdYxu.js.map +0 -1
  221. package/webapp/dist/assets/chunk-55IACEB6-CudmE3Fx.js.map +0 -1
  222. package/webapp/dist/assets/chunk-B4BG7PRW-d5dfiagO.js.map +0 -1
  223. package/webapp/dist/assets/chunk-DI55MBZ5-CZCetJxI.js.map +0 -1
  224. package/webapp/dist/assets/chunk-FMBD7UC4-BSVSuNxy.js.map +0 -1
  225. package/webapp/dist/assets/chunk-QN33PNHL-Cbf-pIxI.js.map +0 -1
  226. package/webapp/dist/assets/chunk-QZHKN3VN-DYyIY8_q.js.map +0 -1
  227. package/webapp/dist/assets/chunk-TZMSLE5B-aW2uEdtS.js.map +0 -1
  228. package/webapp/dist/assets/classDiagram-2ON5EDUG-C4-5PgVL.js.map +0 -1
  229. package/webapp/dist/assets/classDiagram-v2-WZHVMYZB-C4-5PgVL.js.map +0 -1
  230. package/webapp/dist/assets/clone-DivPByZ0.js.map +0 -1
  231. package/webapp/dist/assets/cose-bilkent-S5V4N54A-CwBAjMT3.js.map +0 -1
  232. package/webapp/dist/assets/dagre-6UL2VRFP-tC56AIio.js.map +0 -1
  233. package/webapp/dist/assets/diagram-PSM6KHXK-dEF_O6uj.js.map +0 -1
  234. package/webapp/dist/assets/diagram-QEK2KX5R-BC3CyB81.js.map +0 -1
  235. package/webapp/dist/assets/diagram-S2PKOQOG-BV-YMbA_.js.map +0 -1
  236. package/webapp/dist/assets/erDiagram-Q2GNP2WA-DIgdtwce.js.map +0 -1
  237. package/webapp/dist/assets/flowDiagram-NV44I4VS-C7Mawlld.js.map +0 -1
  238. package/webapp/dist/assets/ganttDiagram-JELNMOA3-DgaYLOeL.js.map +0 -1
  239. package/webapp/dist/assets/gitGraphDiagram-V2S2FVAM-Dwv1ZLFB.js.map +0 -1
  240. package/webapp/dist/assets/graph-saC_350a.js +0 -425
  241. package/webapp/dist/assets/graph-saC_350a.js.map +0 -1
  242. package/webapp/dist/assets/infoDiagram-HS3SLOUP-PDKRqD6y.js.map +0 -1
  243. package/webapp/dist/assets/journeyDiagram-XKPGCS4Q-DDD6YlTa.js.map +0 -1
  244. package/webapp/dist/assets/kanban-definition-3W4ZIXB7-CK-CJzXm.js.map +0 -1
  245. package/webapp/dist/assets/layout-DRs2ltCp.js.map +0 -1
  246. package/webapp/dist/assets/linear-CiMu0dYF.js.map +0 -1
  247. package/webapp/dist/assets/mindmap-definition-VGOIOE7T-C8yEoHXx.js.map +0 -1
  248. package/webapp/dist/assets/pieDiagram-ADFJNKIX-BhtVILXQ.js.map +0 -1
  249. package/webapp/dist/assets/quadrantDiagram-AYHSOK5B-B7Xuuv_G.js.map +0 -1
  250. package/webapp/dist/assets/requirementDiagram-UZGBJVZJ-DY6Q4U6l.js.map +0 -1
  251. package/webapp/dist/assets/sankeyDiagram-TZEHDZUN-DZPox4PX.js.map +0 -1
  252. package/webapp/dist/assets/sequenceDiagram-WL72ISMW-Bg6GPP0w.js.map +0 -1
  253. package/webapp/dist/assets/stateDiagram-FKZM4ZOC-CcskYNpn.js.map +0 -1
  254. package/webapp/dist/assets/stateDiagram-v2-4FDKWEC3-Dja5UwuW.js.map +0 -1
  255. package/webapp/dist/assets/timeline-definition-IT6M3QCI-CA-Wvxg8.js.map +0 -1
  256. package/webapp/dist/assets/treemap-GDKQZRPO-CF_Fur4n.js.map +0 -1
  257. package/webapp/dist/assets/xychartDiagram-PRI3JC2R-CYc3vOkZ.js.map +0 -1
@@ -2,12 +2,13 @@
2
2
 
3
3
  英文版:[English](./memory-system.md)
4
4
 
5
- Dominds 的“记忆系统”本质上是一套**上下文工程(context engineering)**:把不同稳定性、不同共享范围的信息放到合适的载体里,让智能体在长程任务中既能保持速度,也能保持正确率与对人类的透明度。
5
+ Dominds 的“记忆系统”本质上是一套**上下文工程(context engineering)**:把不同稳定性、不同共享范围、不同执行语义的信息放到合适的载体里,让智能体在长程任务中既能保持速度,也能保持正确率与对人类的透明度。
6
6
 
7
7
  TL;DR:
8
8
 
9
9
  - **让对话历史可丢弃**(噪音可以随时清掉)。
10
10
  - **让关键产物可存活**(清理头脑后仍能继续推进)。
11
+ - **让技能成为一等上下文资产**:memory 记住“事实/索引/共识”,skills 固化“何时做、怎么做、边界是什么”的可复用操作能力。
11
12
  - **实时公开宣告、公开交流(并可追溯)工作进展,达成及时强制协调**:差遣牒 / 团队记忆 / 环境提示,才是跨智能体、多主线并行推进时真正的效率来源。
12
13
 
13
14
  关键约定:**差遣牒是任务实时协调公告板**。关键决策/当前状态/下一步必须写回 `progress`;硬约束必须写回 `constraints`;不要只留在对话或提醒项里。
@@ -23,6 +24,8 @@ TL;DR:
23
24
  - [B) 中期(任务)记忆:差遣牒是单一真源](#b-中期任务记忆差遣牒是单一真源)
24
25
  - [C) 短期记忆:对话历史是工作缓冲,提醒项是工作集](#c-短期记忆对话历史是工作缓冲提醒项是工作集)
25
26
  - [日常工作流(职场健康)](#日常工作流职场健康)
27
+ - [写到哪里(快速规则)](#写到哪里快速规则)
28
+ - [Memory vs Skills:选型原则](#memory-vs-skills选型原则)
26
29
 
27
30
  ---
28
31
 
@@ -33,13 +36,17 @@ TL;DR:
33
36
  - **个体记忆(个人/对话局部)**:
34
37
  - `persona` / `knowhow` / `pitfalls`(按成员分配的角色定义)
35
38
  - 个人记忆(`personal_memory`)
39
+ - 个人 skills(`.minds/skills/individual/<member-id>/...`)
36
40
  - 对话历史(含工具调用与反馈)
37
41
  - 提醒项(工作集/工作日志)
38
42
  - **集体记忆(团队/任务共享)**:
39
43
  - rtws 级“环境提示”(`.minds/env*.md`):用于写清楚“这个工作区的基本事实/运行约束/注意事项”
40
44
  - 团队记忆(`team_memory`)
45
+ - 团队共享 skills(`.minds/skills/team_shared/...`;`linkable` 池作为团队管理维护的可复用来源)
41
46
  - 差遣牒:同一个差遣牒正常预期会被多个主线对话(不同主理人)共同推进,因此它应被视为“集体记忆”的单一真源
42
47
 
48
+ skills 与 memory 同属长期上下文资产,但不是同一种东西:**memory 是事实/索引/共识的存储层;skills 是可复用提示技能与操作规程的执行指导层**。系统会在启动时列出可见 skill 的摘要,模型按需通过 `read_skill` 读取正文;`allowed-tools` 这类上游元数据只作迁移提示,不会自动授予 Dominds 工具权限。团队协作 SOP 一般优先落 skill:它应描述角色协作方式、输入输出、升级条件、同步节奏和验收口径,而不是把当前工作区的具体路径写进主体。
49
+
43
50
  ### 权限与分工(社会化分工的要义)
44
51
 
45
52
  上述“集体记忆”并不意味着“任何智能体都能随意改”。Dominds 的一个核心原则就是**社会化分工**:连“团队治理/团队管理”本身也应被视为一种职能。
@@ -58,6 +65,7 @@ TL;DR:
58
65
  - **组织结构分配(静态定义)**:`persona` / `knowhow` / `pitfalls`
59
66
  - **动态治理维护(团队共享)**:团队记忆(team memory)
60
67
  - **个体智能体自主维护**:个人记忆(individual memory)
68
+ - **可复用技能资产**:个人 / 团队共享 skills(prompt guidance),以及 MCP resource skills
61
69
  - **B) 中期(任务)记忆(跨对话 course 生效)**
62
70
  - **差遣牒固定三样(自动注入)**:`goals` / `constraints` / `progress`
63
71
  - **差遣牒附加章节(按需召回)**:固化的 `bearinmind/`(`contracts` / `acceptance` / `grants` / `runbook` / `decisions` / `risks`);其他章节按需扩展(详见 [encapsulated-taskdoc.zh.md](./encapsulated-taskdoc.zh.md))
@@ -113,6 +121,31 @@ TL;DR:
113
121
  - 个人记忆会自动隔离到 `.minds/memory/individual/<member-id>/...`,因此 `path` 不应包含你的成员 id(不要写 `<member-id>/...`)。
114
122
  - 若你当前没有任何个人记忆条目,直接 `add_personal_memory` 即可:目录会由系统自动创建。
115
123
 
124
+ #### 4) Skills:可复用操作能力(提示技能资产)
125
+
126
+ skills 的关键词是:**程序化思路**、**可复用操作路径**、**触发条件与边界**。它回答的是“遇到某类任务时,应该怎样做”,而不是“这个工作区当前有哪些事实”。
127
+
128
+ 常见形态:
129
+
130
+ - 个人 skill:`.minds/skills/individual/<member-id>/<skill-id>/`
131
+ - 团队共享 skill:`.minds/skills/team_shared/<skill-id>/`
132
+ - MCP resource skill:由 MCP resource 暴露的虚拟 skill
133
+
134
+ 建议写入 skill 的内容:
135
+
136
+ - 跨工作区可复用的调试/审查/设计/验收套路
137
+ - 团队协作 SOP、职责切分、交接/升级/同步流程、验收与回退口径
138
+ - 某类任务的执行步骤、检查清单、失败恢复策略
139
+ - 何时适用、何时不适用、需要哪些权限/工具/输入的边界说明
140
+
141
+ 不建议写入 skill 的内容:
142
+
143
+ - 当前 rtws 的精确路径、文件索引、架构事实、临时状态:这类内容更适合 `personal_memory` / `team_memory` / `.minds/env*.md` / Taskdoc
144
+ - 需要准实时同步的任务状态、下一步、阻塞:进入 Taskdoc `progress`
145
+ - 需要脚本、专有工具、MCP、外部二进制或稳定执行能力的内容:应升级为 Dominds app / toolset / teammates contract,而不是只停留在 Markdown skill
146
+
147
+ 一个实用拆分法:**工作区关联强的事实进 memory;独立于工作区内容的操作方法进 skill**。如果一个经验同时包含二者,就拆开:把通用步骤写成 skill,把当前仓库的路径、命令入口、局部契约写进 memory 或 env notes,并在 skill 中说明需要先读取相应 memory/env 信息。若某个 SOP 看起来“写满了路径”,先尝试把它抽象成可泛指的协作概念;路径只保留为绑定信息,不要让它吞掉 SOP 主体。
148
+
116
149
  ### B) 中期(任务)记忆:差遣牒是单一真源
117
150
 
118
151
  差遣牒的关键词是:**任务契约**、**团队共享**、**可持续推进**。它回答三个问题:我们要达成什么、不能做什么、目前进展到哪。
@@ -218,9 +251,26 @@ TL;DR:
218
251
  - **团队记忆 `team_memory`**:稳定的团队约定与不变量(值得长期复用)
219
252
  - **环境提示 `.minds/env*.md`**:rtws 的基本事实、运行约束、注意事项(让人类与所有智能体对齐同一环境)
220
253
  - **个人记忆 `personal_memory`**:个人偏好 + 职责域 rtws 索引(保持准确)
254
+ - **skills**:可复用操作指引、检查清单、触发条件与边界(portable procedure,不是事实仓库)
221
255
  - **提醒项**:短期高频细节(工作集/工作日志,随时可删)
222
256
  - **对话历史/工具输出**:默认可丢弃;需要留的只留“精炼摘录”,不要长期背着原始转储
223
257
 
258
+ ### Memory vs Skills:选型原则
259
+
260
+ 优先问四个问题:
261
+
262
+ 1. **它是否强依赖当前工作区内容?** 精确路径、符号、接口事实、仓库约定、当前 rtws 运行约束,优先 memory/env;跨工作区可复用的方法,优先 skill。
263
+ 2. **它是事实还是做法?** “X 文件负责 Y”是 memory;“做 X 类评审时按 A/B/C 检查”是 skill。
264
+ 3. **它需要团队共享还是个人携带?** 多人都应遵守的稳定事实进 `team_memory`;团队协作 SOP 与团队级操作规程通常进团队共享 skill。只服务某成员的入口地图进 `personal_memory`,只服务某成员的操作偏好进个人 skill。
265
+ 4. **它是否需要真正的执行能力?** 如果需要脚本、权限、MCP、外部二进制、稳定 UI/API 能力,就不要只写 skill;应设计 app/toolset/teammates contract,并在 skill 里只保留调用与判断规程。
266
+
267
+ 设计上的额外考量:
268
+
269
+ - **上下文预算**:memory 应短小、精确、常更新;skill 可以较长,但摘要要能帮助模型决定是否 `read_skill`。
270
+ - **过期成本**:容易随仓库变化而过期的事实不要塞进 skill;否则 skill 会成为隐蔽的陈旧知识源。
271
+ - **可审计性**:团队共享 skill 和 team memory 都是团队资产,应由具备治理权限的角色维护;个人资产也要在发现过期时立即更新。
272
+ - **语言与语义**:涉及用户可见语义时,遵守项目 i18n 规则;中文语义仍是基准。
273
+
224
274
  ### 吃紧/告急:一旦发作就先止血
225
275
 
226
276
  当上下文健康进入**吃紧/告急**(见 [context-health.zh.md](./context-health.zh.md))时,不要继续“堆输入”:
@@ -175,12 +175,12 @@ reading source code.
175
175
  - `man({ "toolsetId": "team_mgmt", "topics": ["llm"] })` → how to manage `.minds/llm.yaml` (+ templates).
176
176
  - `man({ "toolsetId": "team_mgmt", "topics": ["llm", "builtin-defaults"] })` → show builtin providers/models (from defaults).
177
177
  - `man({ "toolsetId": "team_mgmt", "topics": ["mcp"] })` → how to manage `.minds/mcp.yaml` (+ templates).
178
- - `man({ "toolsetId": "team_mgmt", "topics": ["mcp"] })` → how to manage `.minds/mcp.yaml` (transports, env/headers, tools whitelist/blacklist, naming transforms, hot reload, leasing).
178
+ - `man({ "toolsetId": "team_mgmt", "topics": ["mcp"] })` → how to manage `.minds/mcp.yaml` (transports, env/headers, tools whitelist/blacklist, ID transforms, hot reload, leasing).
179
179
  - `man({ "toolsetId": "team_mgmt", "topics": ["mcp", "troubleshooting"] })` → common MCP failure modes and how to recover.
180
180
  - `man({ "toolsetId": "team_mgmt", "topics": ["team"] })` → how to manage `.minds/team.yaml` (+ templates).
181
181
  - `man({ "toolsetId": "team_mgmt", "topics": ["team", "member-properties"] })` → list supported member fields and meanings.
182
182
  - `man({ "toolsetId": "team_mgmt", "topics": ["minds"] })` → how to manage `.minds/team/<id>/*.md` (persona/knowhow/pitfalls).
183
- - `man({ "toolsetId": "team_mgmt", "topics": ["skills"] })` → how to manage `.minds/skills/*` (injection point, tone, heading levels, migration boundaries).
183
+ - `man({ "toolsetId": "team_mgmt", "topics": ["skills"] })` → how to manage `.minds/skills/*` (Skills index / `read_skill` body loading, tone, heading levels, migration boundaries).
184
184
  - `man({ "toolsetId": "team_mgmt", "topics": ["priming"] })` → how to manage startup scripts under `.minds/priming/*`.
185
185
  - `man({ "toolsetId": "team_mgmt", "topics": ["env"] })` → how to manage `.minds/env.*.md` (runtime-environment injection point, tone, heading levels).
186
186
  - `man({ "toolsetId": "team_mgmt", "topics": ["toolsets"] })` → inspect the actually visible toolsets in the current installation/rtws and common grant patterns.
@@ -214,7 +214,7 @@ must cover (at minimum) the information that used to live there:
214
214
  - Explain `.minds/mcp.yaml` as the source of dynamic MCP toolsets.
215
215
  - Explain how MCP servers map to toolsets (`<serverId>`) and how those toolsets are granted via
216
216
  `.minds/team.yaml`.
217
- - Explain tool exposure controls (whitelist/blacklist) and naming transforms (prefix/suffix).
217
+ - Explain tool exposure controls (whitelist/blacklist) and ID transforms (prefix/suffix).
218
218
  - Explain secret/env wiring patterns and operational troubleshooting (Problems + logs, restart,
219
219
  hot reload semantics).
220
220
  - `!skills`:
@@ -432,13 +432,15 @@ servers:
432
432
  # headers: {}
433
433
  # sessionId: '' # optional
434
434
 
435
+ # Default ID transforms for tools/prompts/resources/resource skills
436
+ transform: [] # optional
437
+
435
438
  # Tool exposure controls
436
439
  tools:
437
440
  whitelist: [] # optional
438
441
  blacklist: [] # optional
439
-
440
- # Tool name transforms
441
- transform: [] # optional
442
+ # Optional tool-only override; explicit [] disables the top-level transform for tools.
443
+ # transform: []
442
444
 
443
445
  # Optional manual information
444
446
  manual:
@@ -455,12 +457,12 @@ servers:
455
457
 
456
458
  Use `tools.whitelist` / `tools.blacklist` to reduce the exposed tool surface and avoid UI clutter.
457
459
  Patterns use `*` wildcards and apply to the **original MCP tool name** (before transforms), so
458
- filters remain stable even if naming transforms change later.
460
+ filters remain stable even if ID transforms change later.
459
461
 
460
- ### Naming transforms (prefix / suffix)
462
+ ### ID transforms (prefix / suffix)
461
463
 
462
- MCP servers often export short/common tool names (`open`, `search`, `list`, …). Use transforms to
463
- avoid global collisions and make tool names recognizable:
464
+ MCP servers often export short/common IDs (`open`, `search`, `list`, prompt names, resource URIs,
465
+ …). Use transforms to avoid global collisions and make Dominds IDs recognizable:
464
466
 
465
467
  ```yaml
466
468
  transform:
@@ -468,6 +470,12 @@ transform:
468
470
  - suffix: '_mcp'
469
471
  ```
470
472
 
473
+ Top-level `servers.<serverId>.transform` is the default for all MCP-derived Dominds IDs from that
474
+ server: tools, prompts, resources/resource templates, and resource skills. Nested
475
+ `tools.transform`, `prompts.transform`, `resources.transform`, and `resources.skills.transform`
476
+ override the enclosing transform for that surface; they do not stack with it. Use an explicit
477
+ `transform: []` inside a surface to keep that surface untransformed.
478
+
471
479
  ### Env and headers wiring
472
480
 
473
481
  Prefer copying from the host environment for secrets:
@@ -601,6 +609,15 @@ Design-level positioning:
601
609
  - `.minds/skills/*` stores reusable team skill / operating-guidance assets.
602
610
  - Its job is to capture “when to use this, how to do it, and where the boundary is”, not to grant
603
611
  permissions.
612
+ - Selection rule: workspace-coupled facts, paths, local contracts, and indexes belong in
613
+ `personal_memory` / `team_memory` / `.minds/env*.md`; workspace-independent operating methods,
614
+ checklists, triggers, and boundaries belong in skills.
615
+ - Team collaboration SOPs should usually be team-shared skills: abstract responsibilities, stages,
616
+ inputs/outputs, escalation conditions, and synchronization cadence into portable procedures; keep
617
+ this workspace's concrete paths, member bindings, and tool bindings as facts in memory/env/team.yaml.
618
+ - If an experience contains both a portable method and current-rtws facts, split it: keep the
619
+ reusable procedure in the skill and keep this repo's paths, command entrypoints, and local
620
+ contracts in memory/env so the skill does not become a hidden stale-fact warehouse.
604
621
  - If a skill depends on scripts, privileged tools, MCP, external binaries, or reusable execution
605
622
  capability, the design should usually elevate it into a Dominds app / toolset / teammate contract
606
623
  rather than stopping at Markdown alone.
@@ -141,12 +141,12 @@
141
141
  - `man({ "toolsetId": "team_mgmt", "topics": ["llm"] })` → 如何管理 `.minds/llm.yaml`(+ 模板)
142
142
  - `man({ "toolsetId": "team_mgmt", "topics": ["llm", "builtin-defaults"] })` → 显示内置提供商/模型(来自默认值)
143
143
  - `man({ "toolsetId": "team_mgmt", "topics": ["mcp"] })` → 如何管理 `.minds/mcp.yaml`(+ 模板)
144
- - `man({ "toolsetId": "team_mgmt", "topics": ["mcp"] })` → 如何管理 `.minds/mcp.yaml`(传输、env/headers、工具白名单/黑名单、命名转换、热重载、租赁)
144
+ - `man({ "toolsetId": "team_mgmt", "topics": ["mcp"] })` → 如何管理 `.minds/mcp.yaml`(传输、env/headers、工具白名单/黑名单、ID 转换、热重载、租赁)
145
145
  - `man({ "toolsetId": "team_mgmt", "topics": ["mcp", "troubleshooting"] })` → 常见 MCP 故障模式及如何恢复
146
146
  - `man({ "toolsetId": "team_mgmt", "topics": ["team"] })` → 如何管理 `.minds/team.yaml`(+ 模板)
147
147
  - `man({ "toolsetId": "team_mgmt", "topics": ["team", "member-properties"] })` → 列出支持的成员字段及其含义
148
148
  - `man({ "toolsetId": "team_mgmt", "topics": ["minds"] })` → 如何管理 `.minds/team/<id>/*.md`(persona/knowhow/pitfalls)
149
- - `man({ "toolsetId": "team_mgmt", "topics": ["skills"] })` → 如何管理 `.minds/skills/*`(skills 的注入位置、口吻、标题层级、迁移边界)
149
+ - `man({ "toolsetId": "team_mgmt", "topics": ["skills"] })` → 如何管理 `.minds/skills/*`(Skills 索引 / `read_skill` 读取正文、口吻、标题层级、迁移边界)
150
150
  - `man({ "toolsetId": "team_mgmt", "topics": ["priming"] })` → 如何管理 `.minds/priming/*` 启动脚本(格式、维护、复用)
151
151
  - `man({ "toolsetId": "team_mgmt", "topics": ["env"] })` → 如何管理 `.minds/env.*.md`(运行环境提示的注入位置、口吻、标题层级)
152
152
  - `man({ "toolsetId": "team_mgmt", "topics": ["toolsets"] })` → 查看当前安装/rtws 下实际可见的 toolsets 及常见授权模式
@@ -173,7 +173,7 @@
173
173
  - `!mcp`:
174
174
  - 解释 `.minds/mcp.yaml` 作为动态 MCP 工具集的来源
175
175
  - 解释 MCP 服务器如何映射到工具集(`<serverId>`)以及如何通过 `.minds/team.yaml` 授予这些工具集
176
- - 解释工具暴露控制(白名单/黑名单)和命名转换(前缀/后缀)
176
+ - 解释工具暴露控制(白名单/黑名单)和 ID 转换(前缀/后缀)
177
177
  - 解释密钥/env 接线模式和问题排查(问题 + 日志、重启、热重载语义)
178
178
  - `!skills`:
179
179
  - 解释 `.minds/skills/*` 属于可复用的团队技能资产
@@ -357,13 +357,15 @@ servers:
357
357
  # headers: {}
358
358
  # sessionId: '' # 可选
359
359
 
360
+ # tools/prompts/resources/resource skills 的默认 ID 转换
361
+ transform: [] # 可选
362
+
360
363
  # 工具暴露控制
361
364
  tools:
362
365
  whitelist: [] # 可选
363
366
  blacklist: [] # 可选
364
-
365
- # 工具名称转换
366
- transform: [] # 可选
367
+ # 可选:仅 tools 的覆盖转换;显式 [] 表示 tools 不使用顶层 transform。
368
+ # transform: []
367
369
 
368
370
  # 可选:手册相关信息
369
371
  manual:
@@ -378,11 +380,11 @@ servers:
378
380
 
379
381
  ### 工具暴露控制(白名单 / 黑名单)
380
382
 
381
- 使用 `tools.whitelist` / `tools.blacklist` 来减少暴露的工具表面并避免 UI 混乱。模式使用 `*` 通配符并应用于**原始 MCP 工具名称**(在转换之前),因此过滤器即使以后命名转换更改也保持稳定。
383
+ 使用 `tools.whitelist` / `tools.blacklist` 来减少暴露的工具表面并避免 UI 混乱。模式使用 `*` 通配符并应用于**原始 MCP 工具名称**(在转换之前),因此过滤器即使以后 ID 转换更改也保持稳定。
382
384
 
383
- ### 命名转换(前缀 / 后缀)
385
+ ### ID 转换(前缀 / 后缀)
384
386
 
385
- MCP 服务器通常导出简短/常见的工具名称(`open`、`search`、`list`,……)。使用转换来避免全局冲突并使工具名称可识别:
387
+ MCP 服务器通常导出简短/常见的 ID(`open`、`search`、`list`、prompt 名称、resource URI……)。使用转换来避免全局冲突并使 Dominds ID 可识别:
386
388
 
387
389
  ```yaml
388
390
  transform:
@@ -390,6 +392,12 @@ transform:
390
392
  - suffix: '_mcp'
391
393
  ```
392
394
 
395
+ 顶层 `servers.<serverId>.transform` 是该 server 派生出的所有 Dominds ID 的默认转换:
396
+ tools、prompts、resources/resource templates、resource skills 默认都使用它。内层
397
+ `tools.transform`、`prompts.transform`、`resources.transform`、`resources.skills.transform`
398
+ 会覆盖外层转换,不会与外层叠加。若某个 surface 要保持不转换,在该 surface 内显式写
399
+ `transform: []`。
400
+
393
401
  ### Env 和 headers 接线
394
402
 
395
403
  对于 secrets,优先从主机环境复制:
@@ -512,6 +520,9 @@ members:
512
520
 
513
521
  - `.minds/skills/*` 用来承载可复用的团队技能/操作指导资产。
514
522
  - 它的重点是“什么时候用、怎么做、边界是什么”,而不是授予权限。
523
+ - 选型原则:工作区关联强的事实、路径、局部契约与索引应进入 `personal_memory` / `team_memory` / `.minds/env*.md`;独立于工作区内容的操作方法、检查清单、触发条件与边界应进入 skill。
524
+ - 团队协作 SOP 通常应优先做成团队共享 skill:把职责、阶段、输入输出、升级条件和同步节奏抽象成可迁移规程;当前工作区的具体路径、成员绑定、工具绑定只作为 memory/env/team.yaml 里的绑定事实。
525
+ - 若某个经验同时包含通用方法与当前 rtws 事实,应拆开维护:skill 写通用步骤,memory/env 写当前仓库路径、命令入口与局部契约,避免 skill 成为隐蔽的过期事实仓库。
515
526
  - 如果某个 skill 需要脚本、专有工具、MCP、外部二进制、或稳定复用的执行能力,那么设计上通常更适合上升为 Dominds app / toolset / teammates contract,而不应只停留在 markdown 文案。
516
527
  - 设计文档在这里仅说明边界与迁移方向;具体文件命名、注入位置、标题层级、语言文件选择等,以运行时 `man({ "toolsetId": "team_mgmt", "topics": ["skills"] })` 为准。
517
528