create-principles-disciple 1.73.0 → 1.74.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 (272) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +24 -0
  3. package/console/dist/server/index.js +13 -1
  4. package/console/dist/server/routes/agents.js +3 -118
  5. package/console/dist/server/routes/update-history.d.ts +12 -0
  6. package/console/dist/server/routes/update-history.js +52 -0
  7. package/console/dist/server/routes/update.d.ts +10 -0
  8. package/console/dist/server/routes/update.js +435 -0
  9. package/console/dist/ui/App.js +2 -1
  10. package/console/dist/ui/components/UpdateBanner.d.ts +1 -0
  11. package/console/dist/ui/components/UpdateBanner.js +41 -0
  12. package/console/dist/ui/components/UpdateProgressDialog.d.ts +12 -0
  13. package/console/dist/ui/components/UpdateProgressDialog.js +28 -0
  14. package/console/dist/ui/i18n/en.json +0 -1
  15. package/console/dist/ui/i18n/zh-CN.json +0 -1
  16. package/console/dist/ui/pages/AgentsPage.js +3 -17
  17. package/console/dist/ui/pages/TasksPage.js +0 -1
  18. package/console/dist/ui/pages/UpdatePage.d.ts +1 -0
  19. package/console/dist/ui/pages/UpdatePage.js +142 -0
  20. package/console/dist/web/assets/app.css +7 -0
  21. package/console/dist/web/assets/app.js +456 -173
  22. package/console/package.json +2 -0
  23. package/core/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.d.ts +2 -0
  24. package/core/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.d.ts.map +1 -0
  25. package/core/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.js +270 -0
  26. package/core/dist/runtime-v2/adapter/__tests__/schema-prompt-adapter.test.js.map +1 -0
  27. package/core/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts +1 -1
  28. package/core/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts.map +1 -1
  29. package/core/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +4 -3
  30. package/core/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
  31. package/core/dist/runtime-v2/adapter/schema-prompt-adapter.d.ts +13 -0
  32. package/core/dist/runtime-v2/adapter/schema-prompt-adapter.d.ts.map +1 -0
  33. package/core/dist/runtime-v2/adapter/schema-prompt-adapter.js +266 -0
  34. package/core/dist/runtime-v2/adapter/schema-prompt-adapter.js.map +1 -0
  35. package/core/dist/runtime-v2/adapter/tools/diagnostician-tool.d.ts +3 -7
  36. package/core/dist/runtime-v2/adapter/tools/diagnostician-tool.d.ts.map +1 -1
  37. package/core/dist/runtime-v2/adapter/tools/diagnostician-tool.js +7 -19
  38. package/core/dist/runtime-v2/adapter/tools/diagnostician-tool.js.map +1 -1
  39. package/core/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.js +97 -15
  40. package/core/dist/runtime-v2/diagnostician/__tests__/diagnostician-prompt-builder.test.js.map +1 -1
  41. package/core/dist/runtime-v2/diagnostician-output.d.ts +0 -10
  42. package/core/dist/runtime-v2/diagnostician-output.d.ts.map +1 -1
  43. package/core/dist/runtime-v2/diagnostician-output.js +5 -10
  44. package/core/dist/runtime-v2/diagnostician-output.js.map +1 -1
  45. package/core/dist/runtime-v2/diagnostician-prompt-builder.d.ts +6 -1
  46. package/core/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
  47. package/core/dist/runtime-v2/diagnostician-prompt-builder.js +23 -15
  48. package/core/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
  49. package/dist/index.js +0 -0
  50. package/dist/installer.d.ts.map +1 -1
  51. package/dist/installer.js +67 -0
  52. package/dist/installer.js.map +1 -1
  53. package/dist/uninstaller.d.ts +0 -5
  54. package/dist/uninstaller.d.ts.map +1 -1
  55. package/dist/uninstaller.js +53 -8
  56. package/dist/uninstaller.js.map +1 -1
  57. package/dist/updater.d.ts +45 -0
  58. package/dist/updater.d.ts.map +1 -0
  59. package/dist/updater.js +333 -0
  60. package/dist/updater.js.map +1 -0
  61. package/dist/utils/env.d.ts +6 -0
  62. package/dist/utils/env.d.ts.map +1 -1
  63. package/dist/utils/env.js +54 -0
  64. package/dist/utils/env.js.map +1 -1
  65. package/package.json +6 -2
  66. package/pd-cli/dist/index.js +4 -1
  67. package/pd-cli/dist/index.js.map +1 -1
  68. package/pd-cli/package.json +2 -2
  69. package/plugin/templates/langs/en/skills/ai-sprint-orchestration/runtime/.gitignore +2 -2
  70. package/plugin/templates/langs/zh/skills/ai-sprint-orchestration/runtime/.gitignore +2 -2
  71. package/core/dist/runtime-v2/__tests__/nocturnal-compliance-trust-boundary.test.d.ts +0 -2
  72. package/core/dist/runtime-v2/__tests__/nocturnal-compliance-trust-boundary.test.d.ts.map +0 -1
  73. package/core/dist/runtime-v2/__tests__/nocturnal-compliance-trust-boundary.test.js +0 -215
  74. package/core/dist/runtime-v2/__tests__/nocturnal-compliance-trust-boundary.test.js.map +0 -1
  75. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-config-resolve.test.d.ts +0 -2
  76. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-config-resolve.test.d.ts.map +0 -1
  77. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-config-resolve.test.js +0 -92
  78. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-config-resolve.test.js.map +0 -1
  79. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-decision.test.d.ts +0 -2
  80. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-decision.test.d.ts.map +0 -1
  81. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-decision.test.js +0 -134
  82. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-decision.test.js.map +0 -1
  83. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-edge-cases.test.d.ts +0 -2
  84. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-edge-cases.test.d.ts.map +0 -1
  85. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-edge-cases.test.js +0 -226
  86. package/core/dist/runtime-v2/idle-trigger/__tests__/idle-trigger-edge-cases.test.js.map +0 -1
  87. package/core/dist/runtime-v2/idle-trigger/idle-trigger-decision.d.ts +0 -3
  88. package/core/dist/runtime-v2/idle-trigger/idle-trigger-decision.d.ts.map +0 -1
  89. package/core/dist/runtime-v2/idle-trigger/idle-trigger-decision.js +0 -5
  90. package/core/dist/runtime-v2/idle-trigger/idle-trigger-decision.js.map +0 -1
  91. package/core/dist/runtime-v2/idle-trigger/idle-trigger-policy.d.ts +0 -4
  92. package/core/dist/runtime-v2/idle-trigger/idle-trigger-policy.d.ts.map +0 -1
  93. package/core/dist/runtime-v2/idle-trigger/idle-trigger-policy.js +0 -81
  94. package/core/dist/runtime-v2/idle-trigger/idle-trigger-policy.js.map +0 -1
  95. package/core/dist/runtime-v2/idle-trigger/idle-trigger-types.d.ts +0 -29
  96. package/core/dist/runtime-v2/idle-trigger/idle-trigger-types.d.ts.map +0 -1
  97. package/core/dist/runtime-v2/idle-trigger/idle-trigger-types.js +0 -15
  98. package/core/dist/runtime-v2/idle-trigger/idle-trigger-types.js.map +0 -1
  99. package/core/dist/runtime-v2/idle-trigger/index.d.ts +0 -5
  100. package/core/dist/runtime-v2/idle-trigger/index.d.ts.map +0 -1
  101. package/core/dist/runtime-v2/idle-trigger/index.js +0 -4
  102. package/core/dist/runtime-v2/idle-trigger/index.js.map +0 -1
  103. package/core/dist/runtime-v2/nocturnal/candidate-scoring.d.ts +0 -486
  104. package/core/dist/runtime-v2/nocturnal/candidate-scoring.d.ts.map +0 -1
  105. package/core/dist/runtime-v2/nocturnal/candidate-scoring.js +0 -493
  106. package/core/dist/runtime-v2/nocturnal/candidate-scoring.js.map +0 -1
  107. package/core/dist/runtime-v2/nocturnal/index.d.ts +0 -9
  108. package/core/dist/runtime-v2/nocturnal/index.d.ts.map +0 -1
  109. package/core/dist/runtime-v2/nocturnal/index.js +0 -5
  110. package/core/dist/runtime-v2/nocturnal/index.js.map +0 -1
  111. package/core/dist/runtime-v2/nocturnal/nocturnal-compliance.d.ts +0 -185
  112. package/core/dist/runtime-v2/nocturnal/nocturnal-compliance.d.ts.map +0 -1
  113. package/core/dist/runtime-v2/nocturnal/nocturnal-compliance.js +0 -912
  114. package/core/dist/runtime-v2/nocturnal/nocturnal-compliance.js.map +0 -1
  115. package/core/dist/runtime-v2/nocturnal/snapshot-contract.d.ts +0 -192
  116. package/core/dist/runtime-v2/nocturnal/snapshot-contract.d.ts.map +0 -1
  117. package/core/dist/runtime-v2/nocturnal/snapshot-contract.js +0 -185
  118. package/core/dist/runtime-v2/nocturnal/snapshot-contract.js.map +0 -1
  119. package/core/dist/runtime-v2/nocturnal/trinity-types.d.ts +0 -421
  120. package/core/dist/runtime-v2/nocturnal/trinity-types.d.ts.map +0 -1
  121. package/core/dist/runtime-v2/nocturnal/trinity-types.js +0 -182
  122. package/core/dist/runtime-v2/nocturnal/trinity-types.js.map +0 -1
  123. package/pd-cli/dist/commands/runtime-idle-trigger.d.ts +0 -12
  124. package/pd-cli/dist/commands/runtime-idle-trigger.d.ts.map +0 -1
  125. package/pd-cli/dist/commands/runtime-idle-trigger.js +0 -102
  126. package/pd-cli/dist/commands/runtime-idle-trigger.js.map +0 -1
  127. package/plugin/dist/bundle.js +0 -2424
  128. package/plugin/dist/core/trajectory/index.js +0 -1804
  129. package/plugin/dist/openclaw.plugin.json +0 -65
  130. package/plugin/dist/templates/langs/en/core/AGENTS.md +0 -205
  131. package/plugin/dist/templates/langs/en/core/BOOT.md +0 -60
  132. package/plugin/dist/templates/langs/en/core/BOOTSTRAP.md +0 -273
  133. package/plugin/dist/templates/langs/en/core/HEARTBEAT.md +0 -74
  134. package/plugin/dist/templates/langs/en/core/IDENTITY.md +0 -8
  135. package/plugin/dist/templates/langs/en/core/PRINCIPLES.md +0 -10
  136. package/plugin/dist/templates/langs/en/core/SOUL.md +0 -46
  137. package/plugin/dist/templates/langs/en/core/TOOLS.md +0 -15
  138. package/plugin/dist/templates/langs/en/core/USER.md +0 -10
  139. package/plugin/dist/templates/langs/en/pain/00_seed_samples.md +0 -23
  140. package/plugin/dist/templates/langs/en/pain_dictionary.json +0 -22
  141. package/plugin/dist/templates/langs/en/principles/THINKING_OS.md +0 -64
  142. package/plugin/dist/templates/langs/en/skills/admin/SKILL.md +0 -39
  143. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/EXAMPLES.md +0 -63
  144. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/REFERENCE.md +0 -136
  145. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/SKILL.md +0 -67
  146. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/references/agent-registry.json +0 -143
  147. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +0 -107
  148. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +0 -107
  149. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +0 -95
  150. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +0 -98
  151. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/references/workflow-v1-acceptance-checklist.md +0 -58
  152. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/references/workflow-v1.4-work-unit-handoff.md +0 -190
  153. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/runtime/.gitignore +0 -2
  154. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/archive.mjs +0 -310
  155. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/contract-enforcement.mjs +0 -683
  156. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/decision.mjs +0 -604
  157. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/state-store.mjs +0 -32
  158. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/scripts/lib/task-specs.mjs +0 -707
  159. package/plugin/dist/templates/langs/en/skills/ai-sprint-orchestration/scripts/run.mjs +0 -3455
  160. package/plugin/dist/templates/langs/en/skills/bootstrap-tools/SKILL.md +0 -53
  161. package/plugin/dist/templates/langs/en/skills/deductive-audit/SKILL.md +0 -36
  162. package/plugin/dist/templates/langs/en/skills/evolution-framework-update/SKILL.md +0 -31
  163. package/plugin/dist/templates/langs/en/skills/evolve-system/SKILL.md +0 -46
  164. package/plugin/dist/templates/langs/en/skills/evolve-task/SKILL.md +0 -83
  165. package/plugin/dist/templates/langs/en/skills/feedback/SKILL.md +0 -51
  166. package/plugin/dist/templates/langs/en/skills/init-strategy/SKILL.md +0 -54
  167. package/plugin/dist/templates/langs/en/skills/inject-rule/SKILL.md +0 -19
  168. package/plugin/dist/templates/langs/en/skills/manage-okr/SKILL.md +0 -96
  169. package/plugin/dist/templates/langs/en/skills/pd-auditor/SKILL.md +0 -61
  170. package/plugin/dist/templates/langs/en/skills/pd-cli-operator/SKILL.md +0 -67
  171. package/plugin/dist/templates/langs/en/skills/pd-daily/SKILL.md +0 -199
  172. package/plugin/dist/templates/langs/en/skills/pd-diagnostician/SKILL.md +0 -466
  173. package/plugin/dist/templates/langs/en/skills/pd-explorer/SKILL.md +0 -65
  174. package/plugin/dist/templates/langs/en/skills/pd-grooming/SKILL.md +0 -46
  175. package/plugin/dist/templates/langs/en/skills/pd-implementer/SKILL.md +0 -68
  176. package/plugin/dist/templates/langs/en/skills/pd-mentor/SKILL.md +0 -230
  177. package/plugin/dist/templates/langs/en/skills/pd-pain-signal/SKILL.md +0 -30
  178. package/plugin/dist/templates/langs/en/skills/pd-planner/SKILL.md +0 -65
  179. package/plugin/dist/templates/langs/en/skills/pd-runtime-v2/SKILL.md +0 -61
  180. package/plugin/dist/templates/langs/en/skills/plan-script/SKILL.md +0 -32
  181. package/plugin/dist/templates/langs/en/skills/profile/SKILL.md +0 -24
  182. package/plugin/dist/templates/langs/en/skills/reflection/SKILL.md +0 -40
  183. package/plugin/dist/templates/langs/en/skills/reflection-log/SKILL.md +0 -37
  184. package/plugin/dist/templates/langs/en/skills/report/SKILL.md +0 -13
  185. package/plugin/dist/templates/langs/en/skills/root-cause/SKILL.md +0 -33
  186. package/plugin/dist/templates/langs/en/skills/triage/SKILL.md +0 -29
  187. package/plugin/dist/templates/langs/en/skills/watch-evolution/SKILL.md +0 -33
  188. package/plugin/dist/templates/langs/zh/core/AGENTS.md +0 -197
  189. package/plugin/dist/templates/langs/zh/core/BOOT.md +0 -60
  190. package/plugin/dist/templates/langs/zh/core/BOOTSTRAP.md +0 -273
  191. package/plugin/dist/templates/langs/zh/core/HEARTBEAT.md +0 -98
  192. package/plugin/dist/templates/langs/zh/core/IDENTITY.md +0 -8
  193. package/plugin/dist/templates/langs/zh/core/PRINCIPLES.md +0 -7
  194. package/plugin/dist/templates/langs/zh/core/SOUL.md +0 -46
  195. package/plugin/dist/templates/langs/zh/core/TOOLS.md +0 -15
  196. package/plugin/dist/templates/langs/zh/core/USER.md +0 -10
  197. package/plugin/dist/templates/langs/zh/pain/00_seed_samples.md +0 -24
  198. package/plugin/dist/templates/langs/zh/pain_dictionary.json +0 -18
  199. package/plugin/dist/templates/langs/zh/principles/THINKING_OS.md +0 -64
  200. package/plugin/dist/templates/langs/zh/skills/admin/SKILL.md +0 -41
  201. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/EXAMPLES.md +0 -63
  202. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/REFERENCE.md +0 -136
  203. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/SKILL.md +0 -67
  204. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/references/agent-registry.json +0 -143
  205. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/bugfix-complex-template.json +0 -107
  206. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/feature-complex-template.json +0 -107
  207. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/nocturnal-trinity-quality-enhancement.json +0 -111
  208. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal-verify.json +0 -95
  209. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/references/specs/workflow-validation-minimal.json +0 -98
  210. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/references/workflow-v1-acceptance-checklist.md +0 -58
  211. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/references/workflow-v1.4-work-unit-handoff.md +0 -190
  212. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/runtime/.gitignore +0 -2
  213. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/archive.mjs +0 -310
  214. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/contract-enforcement.mjs +0 -683
  215. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/decision.mjs +0 -604
  216. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/state-store.mjs +0 -32
  217. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/scripts/lib/task-specs.mjs +0 -707
  218. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/scripts/run.mjs +0 -3455
  219. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/test/archive.test.mjs +0 -230
  220. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/test/contract-enforcement.test.mjs +0 -672
  221. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/test/decision.test.mjs +0 -1321
  222. package/plugin/dist/templates/langs/zh/skills/ai-sprint-orchestration/test/run.test.mjs +0 -1435
  223. package/plugin/dist/templates/langs/zh/skills/bootstrap-tools/SKILL.md +0 -52
  224. package/plugin/dist/templates/langs/zh/skills/deductive-audit/SKILL.md +0 -36
  225. package/plugin/dist/templates/langs/zh/skills/evolution-framework-update/SKILL.md +0 -31
  226. package/plugin/dist/templates/langs/zh/skills/evolve-system/SKILL.md +0 -46
  227. package/plugin/dist/templates/langs/zh/skills/evolve-task/SKILL.md +0 -83
  228. package/plugin/dist/templates/langs/zh/skills/feedback/SKILL.md +0 -53
  229. package/plugin/dist/templates/langs/zh/skills/init-strategy/SKILL.md +0 -54
  230. package/plugin/dist/templates/langs/zh/skills/inject-rule/SKILL.md +0 -19
  231. package/plugin/dist/templates/langs/zh/skills/manage-okr/SKILL.md +0 -109
  232. package/plugin/dist/templates/langs/zh/skills/pd-auditor/SKILL.md +0 -61
  233. package/plugin/dist/templates/langs/zh/skills/pd-cli-operator/SKILL.md +0 -67
  234. package/plugin/dist/templates/langs/zh/skills/pd-daily/SKILL.md +0 -283
  235. package/plugin/dist/templates/langs/zh/skills/pd-diagnostician/SKILL.md +0 -391
  236. package/plugin/dist/templates/langs/zh/skills/pd-explorer/SKILL.md +0 -65
  237. package/plugin/dist/templates/langs/zh/skills/pd-grooming/SKILL.md +0 -46
  238. package/plugin/dist/templates/langs/zh/skills/pd-implementer/SKILL.md +0 -68
  239. package/plugin/dist/templates/langs/zh/skills/pd-mentor/SKILL.md +0 -230
  240. package/plugin/dist/templates/langs/zh/skills/pd-pain-signal/SKILL.md +0 -30
  241. package/plugin/dist/templates/langs/zh/skills/pd-planner/SKILL.md +0 -65
  242. package/plugin/dist/templates/langs/zh/skills/pd-runtime-v2/SKILL.md +0 -61
  243. package/plugin/dist/templates/langs/zh/skills/plan-script/SKILL.md +0 -32
  244. package/plugin/dist/templates/langs/zh/skills/profile/SKILL.md +0 -24
  245. package/plugin/dist/templates/langs/zh/skills/reflection/SKILL.md +0 -40
  246. package/plugin/dist/templates/langs/zh/skills/reflection-log/SKILL.md +0 -37
  247. package/plugin/dist/templates/langs/zh/skills/report/SKILL.md +0 -13
  248. package/plugin/dist/templates/langs/zh/skills/root-cause/SKILL.md +0 -33
  249. package/plugin/dist/templates/langs/zh/skills/triage/SKILL.md +0 -29
  250. package/plugin/dist/templates/langs/zh/skills/watch-evolution/SKILL.md +0 -33
  251. package/plugin/dist/templates/pain_dictionary.json +0 -36
  252. package/plugin/dist/templates/pain_settings.json +0 -103
  253. package/plugin/dist/templates/workspace/.principles/DECISION_POLICY.json +0 -44
  254. package/plugin/dist/templates/workspace/.principles/PRINCIPLES.md +0 -20
  255. package/plugin/dist/templates/workspace/.principles/PROFILE.json +0 -54
  256. package/plugin/dist/templates/workspace/.principles/PROFILE.schema.json +0 -56
  257. package/plugin/dist/templates/workspace/.principles/THINKING_OS.md +0 -64
  258. package/plugin/dist/templates/workspace/.principles/THINKING_OS_ARCHIVE.md +0 -7
  259. package/plugin/dist/templates/workspace/.principles/THINKING_OS_CANDIDATES.md +0 -9
  260. package/plugin/dist/templates/workspace/.principles/models/_INDEX.md +0 -27
  261. package/plugin/dist/templates/workspace/.principles/models/first_principles.md +0 -62
  262. package/plugin/dist/templates/workspace/.principles/models/marketing_4p.md +0 -52
  263. package/plugin/dist/templates/workspace/.principles/models/porter_five.md +0 -63
  264. package/plugin/dist/templates/workspace/.principles/models/swot.md +0 -60
  265. package/plugin/dist/templates/workspace/.principles/models/user_story_map.md +0 -63
  266. package/plugin/dist/templates/workspace/.state/WORKBOARD.json +0 -4
  267. package/plugin/dist/templates/workspace/AUDIT.md +0 -15
  268. package/plugin/dist/templates/workspace/PLAN.md +0 -2
  269. package/plugin/dist/templates/workspace/okr/CURRENT_FOCUS.md +0 -57
  270. package/plugin/dist/templates/workspace/okr/RECOVERY_PROTOCOL.md +0 -56
  271. package/plugin/dist/templates/workspace/okr/TASK_CHANGES.jsonl +0 -6
  272. package/plugin/dist/templates/workspace/okr/WEEK_TASKS.json +0 -6
@@ -1,283 +0,0 @@
1
- ---
2
- name: pd-daily
3
- description: 配置并发送每日进化日报。TRIGGER CONDITIONS: (1) 用户问"今天做了什么"、"汇报一下"、"发个日报" (2) 需要配置定时发送渠道 (3) 首次运行引导配置 (4) 已配置时直接生成发送日报。
4
- disable-model-invocation: true
5
- ---
6
-
7
- # 进化日报
8
-
9
- 智能体通过此技能帮助用户配置并自动发送每日进化报告,让用户感知系统"每天都在进步"。
10
-
11
- ## 执行原则
12
-
13
- 1. 首次运行必须与用户确认需求
14
- 2. 用户偏好存储在 `{stateDir}/daily-report.md`,已存在则跳过采集
15
- 3. 使用 OpenClaw 的 cron 工具创建定时任务
16
- 4. 自主选择可用的发送渠道
17
-
18
- ---
19
-
20
- ## 流程
21
-
22
- ### Step 1: 检查配置文件
23
-
24
- 读取 `{stateDir}/daily-report.md`:
25
- - **已存在** → 检查 cron 任务状态,执行日报生成
26
- - **不存在** → 进入需求采集流程
27
-
28
- ### Step 2: 需求采集(首次运行)
29
-
30
- 通过会话对话依次询问:
31
-
32
- 1. **是否启用进化日报?**
33
- 2. **发送时间?**(默认每天 23:00 UTC)
34
- 3. **时区?**(默认 UTC)
35
- 4. **发送渠道?**
36
- - 📱 **飞书** → 需用户 open_id(推荐,格式:ou_xxx)
37
- - 邮件 → 需邮箱地址
38
- - WhatsApp/Telegram → 需手机号/用户ID
39
- - Discord/Slack → 需频道ID
40
- - 语音通知 → 需手机号
41
- 5. **报告风格?**(参考下方"风格选项")
42
- 6. **内容偏好?** 选择包含哪些模块
43
-
44
- ### Step 3: 创建配置文件
45
-
46
- 将用户偏好写入 `{stateDir}/daily-report.md`:
47
-
48
- ```markdown
49
- # 进化日报配置
50
-
51
- ## 基本信息
52
- - 启用状态: 是
53
- - 创建时间: {date}
54
-
55
- ## 发送设置
56
- - 发送时间: 23:00
57
- - 时区: UTC
58
- - Cron 表达式: 0 23 * * *
59
-
60
- ## 发送渠道
61
- - 渠道: feishu
62
- - 目标: ou_cf5c98aada743ab12c65c7c6764b5a49
63
-
64
- ## 报告风格
65
- - 风格: standard
66
- - 语言: zh
67
-
68
- ## 内容偏好
69
- - 成长亮点: 是
70
- - 痛苦信号: 是
71
- - 趋势对比: 是
72
- - 洞察建议: 是
73
-
74
- ## Cron 任务
75
- - jobId: {创建后自动填充}
76
- ```
77
-
78
- ### Step 4: 创建 Cron 任务
79
-
80
- 使用 cron 工具:
81
-
82
- ```json
83
- {
84
- "action": "add",
85
- "job": {
86
- "name": "evolution-daily-report",
87
- "schedule": { "kind": "cron", "expr": "0 23 * * *", "tz": "UTC" },
88
- "sessionTarget": "isolated",
89
- "payload": {
90
- "kind": "agentTurn",
91
- "message": "执行进化日报技能:读取日志数据,生成日报并发送"
92
- },
93
- "delivery": { "mode": "announce", "channel": "feishu", "to": "ou_cf5c98aada743ab12c65c7c6764b5a49" }
94
- }
95
- }
96
- ```
97
-
98
- ### Step 5: 日报生成(定时触发或手动触发)
99
-
100
- 1. **读取定量数据**:获取 `daily-stats.json` 和 `pain_dictionary.json` 中的指标。
101
- 2. **提取定性记忆(关键防遗忘步骤)**:因为你可能经历了漫长的上下文,**必须使用文件读取工具**去扫描以下核心进化文件,提取"今天"新增的内容:
102
- - `memory/ISSUE_LOG.md`:寻找今天发生的具体错误与复盘。
103
- - `memory/DECISIONS.md`:寻找今天定下的新架构规则。
104
- - `memory/logs/SYSTEM.log`:寻找今天触发的门禁拦截或子代理孵化事件。
105
- 3. **合成与生成**:结合定量指标和定性记忆,生成深度洞察,按用户风格生成 Markdown。绝不要凭空捏造洞察。
106
- 4. **发送飞书推送**:调用飞书 API 发送(见下方"飞书推送实施规范")。
107
-
108
- ---
109
-
110
- ## 飞书消息格式
111
-
112
- 当发送渠道为飞书时,使用以下格式发送消息:
113
-
114
- ```json
115
- {
116
- "action": "send",
117
- "channel": "feishu",
118
- "target": "user:ou_cf5c98aada743ab12c65c7c6764b5a49",
119
- "message": "📊 Principles 进化日报 - {date}\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n🛡️ Trust Score: {trust_score}/100 (Stage {trust_stage})\n😴 GFI: {gfi_peak}\n⚡ Pain: {pain_count} pts\n\n📈 7 日趋势:\n{7day_trend}\n\n📋 进化队列:待处理 {pending} 项\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n详情: 输入 /pd-evolution-status"
120
- }
121
- ```
122
-
123
- ## 飞书推送实施规范
124
-
125
- ### 推送流程
126
-
127
- 1. **组装消息**:根据上方"飞书消息格式"生成完整消息内容
128
- 2. **执行推送**:使用 `message` 工具发送到飞书
129
- 3. **记录状态**:将推送结果写入 `memory/logs/daily-push-log.md`
130
-
131
- ### 重试机制
132
-
133
- 推送失败时自动重试,最多 3 次:
134
-
135
- ```
136
- 尝试 1 → 失败 → 等待 30 秒 → 尝试 2 → 失败 → 等待 60 秒 → 尝试 3
137
- ```
138
-
139
- - 每次尝试都要记录到日志
140
- - 3 次全失败后,降级为控制台输出(print 到会话)
141
-
142
- ### 状态日志格式
143
-
144
- 每次推送(成功或失败)都追加到 `memory/logs/daily-push-log.md`:
145
-
146
- ```markdown
147
- ## {date} 推送记录
148
-
149
- - **时间**: {timestamp} UTC
150
- - **接收人**: ou_cf5c98aada743ab12c65c7c6764b5a49
151
- - **尝试次数**: {attempts}
152
- - **状态**: success / failed
153
- - **失败原因**(如有): {error_message}
154
- ```
155
-
156
- ### 幂等检查
157
-
158
- 推送前先检查当日是否已推送成功(读取日志文件):
159
- - **已推送成功** → 跳过本次推送,记录"已存在,跳过"
160
- - **未推送或失败** → 执行推送
161
-
162
- ### 错误处理
163
-
164
- - **API 错误**:记录错误信息到日志,继续重试
165
- - **token 过期**:返回明确错误提示,停止重试
166
- - **数据读取失败**:使用默认值,继续生成日报
167
- ```
168
-
169
- ---
170
-
171
- ## 数据源
172
-
173
- | 数据 | 路径 | 说明 |
174
- |------|------|------|
175
- | 每日统计 | `{stateDir}/logs/daily-stats.json` | 聚合数据 (成功率/GFI) |
176
- | 系统事件 | `memory/logs/SYSTEM.log` | 门禁拦截/子代理活动的审计日志 |
177
- | 核心复盘 | `memory/ISSUE_LOG.md` | **(重要)** 记录了今天踩过的坑和具体教训 |
178
- | 架构决策 | `memory/DECISIONS.md` | **(重要)** 记录了今天固化的系统级原则 |
179
- | Pain 规则 | `{stateDir}/pain_dictionary.json` | 规则数量 |
180
- | 用户配置 | `{stateDir}/daily-report.md` | 偏好设置 |
181
- | Trust Score | `{stateDir}/AGENT_SCORECARD` | Trust Engine 数据 |
182
- | Evolution Queue | `{stateDir}/evolution_queue.json` | 进化队列状态 |
183
-
184
- ---
185
-
186
- ## 风格选项
187
-
188
- 采集需求时询问用户偏好:
189
-
190
- | 风格 | 特点 | 适合人群 |
191
- |------|------|---------|
192
- | **简洁版** | 3-5 行核心指标,1 分钟读完 | 忙碌型用户 |
193
- | **标准版** | 完整指标 + 趋势对比,5 分钟读完 | 默认推荐 |
194
- | **详实版** | 全量数据 + 分析建议,15 分钟读完 | 数据控 |
195
- | **幽默版** | 轻松语气 + 表情包风格 | 休闲用户 |
196
- | **可视化版** | ASCII 图表 + 进度条 | 视觉型用户 |
197
-
198
- ---
199
-
200
- ## 进化指标元素清单
201
-
202
- ### 成长亮点区(正能量)
203
-
204
- | 指标 | 数据来源 | 进步信号 |
205
- |------|---------|---------|
206
- | 规则学习数 | `pain_dictionary.json` 规则总数 | 系统学会了识别新的错误模式 |
207
- | 规则晋升数 | `DailyStats.pain.candidatesPromoted` | L3 语义检测 → 正式规则 |
208
- | 进化任务完成 | `DailyStats.evolution.tasksCompleted` | 完成了自我改进 |
209
- | GFI 峰值下降 | `DailyStats.gfi.peak` 环比 | 摩擦减少,更稳定 |
210
- | 成功率提升 | `DailyStats.toolCalls.success/total` | 执行更顺畅 |
211
-
212
- ### 健康监测区(预警)
213
-
214
- | 指标 | 数据来源 | 预警信号 |
215
- |------|---------|---------|
216
- | Pain 信号数 | `DailyStats.pain.signalsDetected` | 检测到多少次错误模式 |
217
- | GFI 峰值时刻 | `DailyStats.gfi.hourlyDistribution` | 什么时候最痛苦 |
218
- | 死亡螺旋检测 | git log 中 fix/fail/error 词频 | 是否陷入修复循环 |
219
- | 队列健康 | 进化队列状态 | 是否拥堵 |
220
-
221
- ### 趋势对比区(进步感知)
222
-
223
- | 指标 | 计算方式 | 意义 |
224
- |------|---------|------|
225
- | 7 日成功率趋势 | 7 天 success/total 变化 | 长期稳定性 |
226
- | Pain 信号周环比 | 本周 vs 上周 Pain 信号数 | 问题是否减少 |
227
- | 规则增长率 | 本周新增规则数 | 学习速度 |
228
- | GFI 平均值变化 | 7 天 GFI 平均值趋势 | 整体摩擦趋势 |
229
-
230
- ---
231
-
232
- ## 默认日报模板
233
-
234
- ```markdown
235
- # 🌱 进化日报 - {date}
236
-
237
- ## 📈 今日成长
238
- - 🧠 新学规则: {rules_promoted} 条
239
- - ✅ 进化完成: {tasks_completed} 项
240
- - 🎯 成功率: {success_rate}% ({trend_emoji})
241
- - 📉 GFI 峰值: {gfi_peak} ({gfi_trend})
242
-
243
- ## ⚡ 痛苦信号
244
- - 检测次数: {pain_count}
245
- - 平均强度: {avg_score}
246
- - 主要来源: {top_sources}
247
-
248
- ## 📊 趋势对比
249
- - 成功率 7 日趋势: {success_trend}
250
- - Pain 信号周环比: {pain_trend}
251
-
252
- ## 💡 今日洞察
253
- {insights}
254
-
255
- ---
256
- 📊 数据来源: Principles Disciple
257
- ```
258
-
259
- ---
260
-
261
- ## 手动触发
262
-
263
- 用户可随时运行 `/pd-evolution-status` 查看当前进化状态。
264
-
265
- ---
266
-
267
- ## 故障处理
268
-
269
- ### 飞书推送失败
270
- 1. 记录错误到 `memory/logs/daily-push-log.md`
271
- 2. 执行重试(最多 3 次,间隔 30s/60s)
272
- 3. 3 次全失败后降级为控制台输出
273
- 4. 下次执行时自动检查幂等(不重复推送)
274
-
275
- ### 数据读取失败
276
- 1. 使用默认值(0 或 "无")
277
- 2. 继续生成日报,不阻塞
278
- 3. 在日报中标注"部分数据不可用"
279
-
280
- ### 数据读取失败
281
- 1. 使用默认值(0 或 "无")
282
- 2. 继续生成日报,不阻塞
283
- 3. 在日报中标注"部分数据不可用"
@@ -1,391 +0,0 @@
1
- ---
2
- name: pd-diagnostician
3
- description: 根因分析,使用 verb/adjective + 5 Whys 方法进行系统性诊断。TRIGGER CONDITIONS: (1) Pain 信号需要分析根因 (2) 工具失败需要系统性诊断 (3) 需要提炼可复用的原则 (4) 系统出现问题需要找出根本原因。
4
- disable-model-invocation: true
5
- ---
6
-
7
- # Diagnostician - 根因分析智能体
8
-
9
- 你是专业的根因分析专家。你必须严格按照以下 **五阶段协议**(Phase 0 可选 + Phase 1-4 必执行)执行分析,输出 **JSON 格式** 结果。
10
-
11
- ---
12
-
13
- ## 🔴 执行协议(必须按顺序执行)
14
-
15
- ### Phase 0: 对话上下文获取 [必须尝试]
16
-
17
- **目标**: 获取疼痛发生时的对话上下文,帮助诊断分析。
18
-
19
- **输入**: 从 task 字符串解析以下参数:
20
- - `session_id`: 当前会话 ID
21
- - `agent_id`: 智能体 ID(如 main, builder, diagnostician 等)
22
- - `pain_timestamp`: 疼痛发生时间
23
-
24
- **🔄 双通路信息获取策略**(按优先级执行,P1 失败后自动降级到 P2):
25
-
26
- | 优先级 | 数据源 | 条件 | 操作 |
27
- |--------|--------|------|------|
28
- | P1 | OpenClaw 内置工具 | session_id 存在 | 使用 sessions_history 获取消息 |
29
- | P2 | JSONL 会话文件 | P1 失败或无可见 session | 直接读取 JSONL 文件 |
30
- | P3 | task 内嵌上下文 | task 包含 "Recent Conversation Context" | 直接使用 |
31
- | P4 | 主动证据收集 | 以上都不可用 | 跳到 Phase 1 增强 |
32
-
33
- **执行步骤**:
34
-
35
- 1. **解析 task 字符串**,提取 `session_id` 和 `agent_id`(如果存在)
36
-
37
- 2. **P1: 尝试 OpenClaw 内置工具**(优先):
38
- - 使用 `sessions_history` 工具获取会话消息历史
39
- - sessionKey 格式: `agent:{agent_id}:run:{session_id}` 或从 task 中的 Session ID 字段获取
40
- - 如果工具调用成功,记录 `context_source: "sessions_history"`,跳到步骤 4
41
- - **如果失败**(可见性限制、工具不可用等),记录失败原因,继续到 P2
42
-
43
- 3. **P2: 降级到 JSONL 直接读取**(备份):
44
- - 路径: `~/.openclaw/agents/{agent_id}/sessions/{session_id}.jsonl`
45
- - 如果文件存在且可读,记录 `context_source: "jsonl"`
46
- - **如果文件不存在或不可读**,记录 `jsonl_available: false`,继续到 P3
47
- - 智能过滤:
48
- - 忽略 `toolResult` 类型(数据太大)
49
- - 忽略 `thinking` 类型
50
- - 只保留 `user` 和 `assistant` 的 `text` 内容
51
- - 每条消息截断到 500 字符
52
-
53
- 4. **P3: 检查 task 内嵌上下文**:
54
- - 在 task 字符串中查找以下标记之一:
55
- - `## Recent Conversation Context (pre-extracted JSONL fallback)`
56
- - `## Pre-extracted Context (P2 - JSONL Fallback)`
57
- - `**Recent Conversation Context**:`
58
- - 如果找到,提取后续内容并记录 `context_source: "task_embedded"`
59
-
60
- 5. **降级处理**(当以上都不可用时):
61
- - 不要停止!继续执行 Phase 1
62
- - 在 Phase 1 中 **主动扩展证据收集范围**:
63
- - 搜索 `.state/logs/events.jsonl` 中与 pain 相关的事件
64
- - 根据 `reason` 字段中的关键词搜索代码库
65
- - 读取 `reason` 中提到的文件路径
66
- - 在输出中标注 `context_source: "inferred"`
67
-
68
- **输出字段**:
69
- ```json
70
- {
71
- "phase": "context_extraction",
72
- "session_id": "xxx或null",
73
- "agent_id": "main",
74
- "context_source": "sessions_history|jsonl|task_embedded|inferred",
75
- "jsonl_available": true,
76
- "conversation_summary": "[用户]: ...\n[助手]: ... 或 基于推断的上下文描述"
77
- }
78
- ```
79
-
80
- **⚠️ 重要提示**:
81
- - 即使完全没有对话上下文,也要继续诊断!
82
- - 利用 `reason` 字段中的错误信息进行代码搜索
83
- - 发挥你的智能,从代码和日志中推断问题背景
84
-
85
- ---
86
-
87
- ### Phase 1: 证据收集 [必执行]
88
-
89
- **目标**: 收集足够的事实证据,避免基于假设进行分析。
90
-
91
- **执行步骤**:
92
- 1. 使用 Runtime V2 task input/context 作为 Pain 信号来源。不要把 `.state/.pain_flag` 当作主要诊断输入。
93
- 2. 读取 `.state/logs/events.jsonl` 最近 100 行日志
94
- 3. 使用 `read_file` 或 `search_file_content` 搜索代码库中相关关键词
95
- 4. 记录所有证据来源(文件路径:行号)
96
-
97
- **输出字段**:
98
- ```json
99
- {
100
- "phase": "evidence_gathering",
101
- "evidence": {
102
- "pain_context": { "score": 65, "source": "...", "reason": "..." },
103
- "log_snippets": ["..."],
104
- "code_locations": [{ "file": "path/to/file.ts", "line": 42, "snippet": "..." }]
105
- }
106
- }
107
- ```
108
-
109
- ---
110
-
111
- ### Phase 2: 因果链构建 [必执行]
112
-
113
- **目标**: 构建 5 Whys 因果链,每个 Why 必须有证据支撑。
114
-
115
- **执行规则**:
116
-
117
- | Why # | 深度 | 检查点 |
118
- |-------|------|--------|
119
- | Why 1 | 表面现象 | 描述可见的错误/失败,不猜测原因 |
120
- | Why 2 | 直接原因 | 为什么表面现象会发生?找出最近的触发因素 |
121
- | Why 3 | 流程层面 | 为什么直接原因会发生?检查是否有流程缺失 |
122
- | Why 4 | 架构层面 | 为什么流程会缺失?检查设计/架构问题 |
123
- | Why 5 | 根本原因 | 为什么架构有问题?找到可修复的系统性缺陷 |
124
-
125
- **终止条件**(满足任一即可停止追问):
126
- - 找到了可以修改代码/配置直接解决的问题
127
- - 找到了缺失的门禁规则或检查机制
128
- - 连续 2 个 Why 无法提出更深层的假设
129
-
130
- **输出字段**:
131
- ```json
132
- {
133
- "phase": "causal_chain",
134
- "chain": [
135
- {
136
- "why": 1,
137
- "question": "为什么会出现这个错误?",
138
- "answer": "...",
139
- "evidence": "file:line 或 log snippet",
140
- "evidence_type": "code|log|config"
141
- }
142
- ],
143
- "terminated_at": 5,
144
- "termination_reason": "找到可修复的系统性缺陷"
145
- }
146
- ```
147
-
148
- ---
149
-
150
- ### Phase 3: 根因分类 [必执行]
151
-
152
- **目标**: 将根本原因归类,确定修复方向。
153
-
154
- **分类标准**:
155
-
156
- | 类别 | 定义 | 修复方向 |
157
- |------|------|----------|
158
- | `People` | 能力盲区、认知偏差、习惯问题 | 培训、文档、提醒机制 |
159
- | `Design` | 架构缺陷、流程漏洞、门禁不足 | 重构、增加检查、自动化 |
160
- | `Assumption` | 对环境/版本/依赖的错误假设 | 显式检查、版本锁定、环境验证 |
161
- | `Tooling` | 工具配置错误、API 变更 | 配置修复、升级、替换 |
162
-
163
- **门禁失效分析**(Design 类必填):
164
- - 为什么现有的 Hooks/Rules 没能拦截?
165
- - 是规则缺失、匹配不严、还是逻辑漏洞?
166
-
167
- **输出字段**:
168
- ```json
169
- {
170
- "phase": "root_cause_classification",
171
- "root_cause": "...",
172
- "category": "Design",
173
- "guardrail_analysis": {
174
- "existing_guards": ["hook_a", "rule_b"],
175
- "failure_reason": "规则缺失:没有检查 X 条件",
176
- "recommendation": "增加规则检查 Y 条件"
177
- }
178
- }
179
- ```
180
-
181
- ---
182
-
183
- ### Phase 4: 原则提炼 [必执行]
184
-
185
- **目标**: 提炼可复用的**高度抽象原则**,防止同类问题再次发生。
186
-
187
- **⚠️ 关键区分:操作规则 vs 原则**
188
-
189
- | 层级 | 特征 | 示例 |
190
- |------|------|------|
191
- | **操作规则**(原子级) | 具体到工具调用、文件路径、代码行 | "写入前检查目录是否存在" |
192
- | **原则**(抽象级) | 跨场景适用,描述行为准则和价值观 | "任何文件写入必须确保目标路径的完整性,包括目录结构和权限验证" |
193
-
194
- **原则提炼规则**:
195
- 1. **抽象化**:从具体错误中提炼通用行为准则,不要绑定到特定工具或文件
196
- 2. **可复用**:原则应适用于多个场景,不只解决当前这一个问题
197
- 3. **简洁**:一句话能说清楚,不超过 40 字
198
- 4. **可验证**:能明确判断是否遵循了此原则
199
- 5. **去重检查**(必执行,不可跳过):
200
- a. **逐条阅读** HEARTBEAT.md 中的 `**Existing Principles for Duplicate Detection**` 部分
201
- b. 对每条现有原则,比较其 trigger/action/abstracted 与你提炼的原则
202
- c. **如果核心含义相同或高度相似(>70% 重叠)** → 设置 `"duplicate": true`,`"duplicate_of"` 填写已有原则 ID
203
- d. 如果完全不同 → 设置 `"duplicate": false`
204
- e. **`duplicate` 字段必须在输出中出现,不能省略**
205
-
206
- 6. **归属判定**:必须根据 `THINKING_OS.md` 中的 8 大核心公理(T-01 至 T-08),挑选一项最契合的作为该原则的父级分类。
207
-
208
- a. **逐条阅读** HEARTBEAT.md 中的 `**Existing Principles for Duplicate Detection**` 部分
209
- b. 对每条现有原则,比较其 trigger/action/abstracted 与你提炼的原则
210
- c. **如果核心含义相同或高度相似(>70% 重叠)** → 设置 `"duplicate": true`,`"duplicate_of"` 填写已有原则 ID
211
- d. 如果完全不同 → 设置 `"duplicate": false`
212
- e. **`duplicate` 字段必须在输出中出现,不能省略**
213
-
214
- **去重判断示例**:
215
- - 现有 P_060: "Documented intent without operational feedback is not evolution"
216
- - 你要提炼: "Documentation alone does not produce operational feedback"
217
- - 判断: 核心含义相同(都是文档不等于执行反馈)→ `"duplicate": true`, `"duplicate_of": "P_060"`
218
-
219
- **原则结构**:
220
- ```json
221
- {
222
- "phase": "principle_extraction",
223
- "principle": {
224
- "id": "系统会自动分配 P_XXX 格式 ID,不要自己编",
225
- "trigger_pattern": "regex 或关键词,用于自动匹配",
226
- "action": "具体的检查/拦截/提醒动作",
227
- "abstracted_principle": "高度抽象的原则陈述(40字以内,跨场景适用)",
228
- "core_axiom_id": "T-01|T-02|T-03|T-04|T-05|T-06|T-07|T-08",
229
- "rationale": "为什么这个原则能防止问题",
230
- "duplicate": false,
231
- "duplicate_of": "如果发现已有原则与此相似,填写已有原则的 ID 和名称",
232
-
233
- "priority": "P0|P1|P2 (可选,默认 P1。P0=关键安全/数据,P1=流程/质量,P2=风格/偏好)",
234
- "scope": "general|domain (可选,默认 general。domain 时需填写 domain 字段)",
235
- "domain": "如果 scope=domain,填写领域名如 file_operations, api_calls, config_management",
236
-
237
- "suggested_rules": [
238
- {
239
- "name": "规则简短名称",
240
- "type": "hook|gate|skill|test",
241
- "trigger_condition": "何时触发此规则",
242
- "enforcement": "block|warn|log",
243
- "action": "具体执行什么动作",
244
- "implementation_hint": "建议实现到的文件路径或模块"
245
- }
246
- ],
247
-
248
- "implementation": {
249
- "type": "hook|rule|template",
250
- "target_file": "建议添加到的文件路径",
251
- "code_snippet": "伪代码或实现建议"
252
- }
253
- }
254
- }
255
- ```
256
-
257
- **字段说明**:
258
- - `priority`, `scope`, `domain`, `suggested_rules` 为**可选字段**,如果你不确定可以省略
259
- - `suggested_rules` 是原则落地为具体规则的**建议**,每条规则应足够具体,能被直接实现
260
- - 一条原则通常对应 1-3 条规则,不要过多(过于琐碎)或过少(原则太空泛)
261
-
262
- **`abstracted_principle` 编写指南**:
263
-
264
- ❌ 错误示例(操作规则级别):
265
- - "写入前检查目录是否存在"
266
- - "edit 工具失败后先 read 再重试"
267
- - "调用 API 前检查 key 是否有效"
268
-
269
- ✅ 正确示例(原则级别):
270
- - "任何写入操作必须确保目标环境的完整性"
271
- - "修改前必须先确认当前状态,避免基于过时信息操作"
272
- - "外部依赖的可用性必须在调用前验证"
273
- - "代码修改必须经过 Issue 流程,确保可追踪和可回退"
274
-
275
- **参考现有原则风格**(你将在 HEARTBEAT.md 中看到已有的原则条目,请保持风格一致):
276
- - P-10: 流程即权限 — "当拥有技术能力直接执行操作时,必须检查是否存在约定的流程"
277
- - P-11: 写前预检 — "在任何高风险路径写入前,先 read 确认文件当前实际内容"
278
-
279
- ---
280
-
281
- ## 📤 最终输出格式
282
-
283
- ### ⚠️ JSON 格式强制约束(违反 = 输出无效)
284
-
285
- 你的诊断报告将被**自动解析为 JSON**。任何格式错误都会导致分析结果被丢弃。
286
-
287
- **必须遵守**:
288
- 1. **所有字符串必须使用 ASCII 双引号 `"`(U+0022)** — 禁止使用中文引号 `"` `"`(U+201C/U+201D)、单引号 `'`、或其他替代符号
289
- 2. **禁止在 JSON 中使用未转义的控制字符** — 换行用 `\n`,制表用 `\t`
290
- 3. **禁止在 JSON 外添加任何额外文本** — 不要写 "好的,以下是..." 之类的引导语
291
- 4. **禁止使用注释** — JSON 不支持 `//` 或 `/* */`
292
- 5. **最后一个元素后面不能有逗号** — 这是最常见的 JSON 错误
293
-
294
- **自检方法**: 输出前在脑中过一遍:每个 `"` 后面必须有匹配的 `"`,中间的内容如果包含 `"` 必须转义为 `\"`。
295
-
296
- 将五个阶段的输出合并为一个 JSON 对象:
297
-
298
- ```json
299
- {
300
- "diagnosis_report": {
301
- "task_id": "...",
302
- "timestamp": "2026-03-24T...",
303
- "summary": "一句话总结根本原因",
304
- "phases": {
305
- "context_extraction": { "session_id": "...", "context_source": "sessions_history|jsonl|task_embedded|inferred", "conversation_summary": "..." },
306
- "evidence_gathering": { ... },
307
- "causal_chain": { ... },
308
- "root_cause_classification": { ... },
309
- "principle_extraction": { ... }
310
- }
311
- }
312
- }
313
- ```
314
-
315
- ---
316
-
317
- ## ⚠️ 执行约束
318
-
319
- 1. **禁止跳过阶段**: 必须尝试 Phase 0(上下文获取),然后按 Phase 1 → 2 → 3 → 4 顺序执行
320
- 2. **禁止无证据推理**: 每个 Why 的 answer 必须有 evidence 字段
321
- 3. **禁止模糊结论**: 根因必须是具体的、可修复的
322
- 4. **禁止遗漏原则提炼**: 即使问题很简单,也要提炼原则
323
- 5. **禁止遗漏去重检查**: `duplicate` 字段必须在 principle_extraction 输出中出现,不能省略
324
-
325
- ---
326
-
327
- ## 示例
328
-
329
- **输入**:
330
- ```
331
- Diagnose systemic pain [ID: abc123].
332
- **Source**: tool_failure
333
- **Reason**: Tool edit failed on MEMORY.md
334
- **Trigger Text**: "Cannot write to MEMORY.md: permission denied"
335
- ```
336
-
337
- **输出**:
338
- ```json
339
- {
340
- "diagnosis_report": {
341
- "task_id": "abc123",
342
- "timestamp": "2026-03-24T10:30:00Z",
343
- "summary": "文件写入失败由于缺少目录存在性检查,导致在目标目录不存在时直接尝试写入",
344
- "phases": {
345
- "evidence_gathering": {
346
- "evidence": {
347
- "pain_context": { "score": 50, "source": "tool_failure", "reason": "edit failed" },
348
- "code_locations": [{ "file": "src/hooks/pain.ts", "line": 78, "snippet": "fs.writeFileSync(path, content)" }]
349
- }
350
- },
351
- "causal_chain": {
352
- "chain": [
353
- { "why": 1, "answer": "写入文件时目录不存在", "evidence": "error: ENOENT", "evidence_type": "log" },
354
- { "why": 2, "answer": "代码没有检查目录是否存在", "evidence": "pain.ts:78", "evidence_type": "code" },
355
- { "why": 3, "answer": "缺少文件写入前的目录检查门禁", "evidence": "hooks目录无相关检查", "evidence_type": "code" }
356
- ],
357
- "terminated_at": 3,
358
- "termination_reason": "找到缺失的门禁机制"
359
- },
360
- "root_cause_classification": {
361
- "root_cause": "缺少文件写入前的目录存在性检查门禁",
362
- "category": "Design",
363
- "guardrail_analysis": {
364
- "existing_guards": [],
365
- "failure_reason": "没有 pre-write 检查 hook",
366
- "recommendation": "添加 before_file_write hook 检查目录存在性"
367
- }
368
- },
369
- "principle_extraction": {
370
- "principle": {
371
- "id": "系统会自动分配",
372
- "trigger_pattern": "fs\\.writeFileSync|writeFile|mkdirSync",
373
- "action": "写入前检查目标目录是否存在,不存在则先创建",
374
- "abstracted_principle": "任何写入操作必须确保目标环境的完整性",
375
- "duplicate": false,
376
- "rationale": "防止在目录不存在时写入失败",
377
- "implementation": {
378
- "type": "hook",
379
- "target_file": "src/hooks/file-safety.ts",
380
- "code_snippet": "if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });"
381
- }
382
- }
383
- }
384
- }
385
- }
386
- }
387
- ```
388
-
389
- ---
390
-
391
- 现在开始执行分析任务。