@namewta/speculo 0.1.21 → 0.2.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 (288) hide show
  1. package/README.md +68 -78
  2. package/dist/src/cli.js +57 -34
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/index.d.ts +1 -3
  5. package/dist/src/index.js +128 -168
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/migrate.d.ts +38 -0
  8. package/dist/src/migrate.js +646 -0
  9. package/dist/src/migrate.js.map +1 -0
  10. package/dist/src/workflows.d.ts +7 -37
  11. package/dist/src/workflows.js +49 -123
  12. package/dist/src/workflows.js.map +1 -1
  13. package/package.json +6 -4
  14. package/template/.speculo/README.md +20 -0
  15. package/template/.speculo/workspace.json +12 -0
  16. package/template/commands/docs-sync.md +28 -0
  17. package/template/commands/finalize.md +37 -0
  18. package/template/commands/knowledge-prune.md +20 -0
  19. package/template/commands/retro.md +15 -8
  20. package/template/commands/status.md +8 -51
  21. package/template/skills/agents-md-builder/SKILL.md +14 -101
  22. package/template/skills/change-lifecycle/SKILL.md +25 -0
  23. package/template/{workflows/dev/_templates → skills/change-lifecycle/assets}/completion-summary-template.md +2 -2
  24. package/template/{workflows/dev/_templates → skills/change-lifecycle/assets}/completion-verification-template.md +1 -1
  25. package/template/skills/change-lifecycle/references/completion-gate.md +19 -0
  26. package/template/skills/change-lifecycle/references/finalize-archive.md +32 -0
  27. package/template/skills/docs-sync/SKILL.md +22 -0
  28. package/template/skills/docs-sync/assets/report-template.md +45 -0
  29. package/template/skills/docs-sync/assets/state-template.json +20 -0
  30. package/template/skills/docs-sync/assets/workflow-scope-template.json +9 -0
  31. package/template/skills/docs-sync/references/agents-contract.md +43 -0
  32. package/template/skills/docs-sync/references/changelog-contract.md +39 -0
  33. package/template/skills/docs-sync/references/document-lifecycle-contract.md +38 -0
  34. package/template/skills/docs-sync/references/git-state-contract.md +67 -0
  35. package/template/skills/docs-sync/references/readme-contract.md +44 -0
  36. package/template/skills/docs-sync/references/workflow-scope-contract.md +50 -0
  37. package/template/skills/github-npm-ops/SKILL.md +14 -39
  38. package/template/skills/github-npm-ops/references/failure-recovery.md +1 -1
  39. package/template/skills/github-npm-ops/references/preflight-checklist.md +1 -1
  40. package/template/skills/github-npm-ops/references/release-notes-injection.md +1 -1
  41. package/template/skills/github-npm-ops/references/release-pipeline.md +13 -13
  42. package/template/skills/github-npm-ops/references/version-bump-flow.md +3 -3
  43. package/template/skills/knowledge-prune/SKILL.md +29 -0
  44. package/template/skills/knowledge-prune/references/audit-rules.md +24 -0
  45. package/template/skills/runtime-context/SKILL.md +43 -0
  46. package/template/skills/runtime-context/references/path-resolution.md +32 -0
  47. package/template/skills/speculo-retro/SKILL.md +13 -37
  48. package/template/skills/speculo-retro/references/friction-taxonomy.md +3 -3
  49. package/template/skills/speculo-retro/references/issue-drafting-sop.md +3 -3
  50. package/template/skills/worktree-isolation/SKILL.md +10 -46
  51. package/template/skills/worktree-isolation/references/audit-branch-tree.md +2 -2
  52. package/template/skills/worktree-isolation/references/create-worktree.md +6 -6
  53. package/template/skills/worktree-isolation/references/merge-and-cleanup.md +5 -5
  54. package/template/vendor/README.md +11 -10
  55. package/template/vendor/matt-pocock/README.md +41 -0
  56. package/template/vendor/matt-pocock/engineering/README.md +28 -0
  57. package/template/vendor/matt-pocock/engineering/ask-matt/SKILL.md +76 -0
  58. package/template/vendor/matt-pocock/engineering/code-review/SKILL.md +89 -0
  59. package/template/vendor/matt-pocock/engineering/codebase-design/DEEPENING.md +37 -0
  60. package/template/vendor/matt-pocock/engineering/codebase-design/DESIGN-IT-TWICE.md +44 -0
  61. package/template/vendor/matt-pocock/engineering/codebase-design/SKILL.md +114 -0
  62. package/template/vendor/matt-pocock/engineering/diagnosing-bugs/SKILL.md +134 -0
  63. package/template/vendor/matt-pocock/engineering/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  64. package/template/vendor/matt-pocock/engineering/domain-modeling/ADR-FORMAT.md +47 -0
  65. package/template/vendor/matt-pocock/engineering/domain-modeling/CONTEXT-FORMAT.md +60 -0
  66. package/template/vendor/matt-pocock/engineering/domain-modeling/SKILL.md +74 -0
  67. package/template/vendor/matt-pocock/engineering/grill-with-docs/SKILL.md +7 -0
  68. package/template/vendor/matt-pocock/engineering/implement/SKILL.md +15 -0
  69. package/template/vendor/matt-pocock/engineering/improve-codebase-architecture/HTML-REPORT.md +123 -0
  70. package/template/vendor/matt-pocock/engineering/improve-codebase-architecture/SKILL.md +66 -0
  71. package/template/vendor/matt-pocock/engineering/prototype/LOGIC.md +79 -0
  72. package/template/vendor/matt-pocock/engineering/prototype/SKILL.md +30 -0
  73. package/template/vendor/matt-pocock/engineering/prototype/UI.md +112 -0
  74. package/template/vendor/matt-pocock/engineering/research/SKILL.md +12 -0
  75. package/template/vendor/matt-pocock/engineering/resolving-merge-conflicts/SKILL.md +14 -0
  76. package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/SKILL.md +127 -0
  77. package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/domain.md +51 -0
  78. package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/issue-tracker-github.md +45 -0
  79. package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
  80. package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
  81. package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/triage-labels.md +15 -0
  82. package/template/vendor/matt-pocock/engineering/tdd/SKILL.md +36 -0
  83. package/template/vendor/matt-pocock/engineering/tdd/mocking.md +59 -0
  84. package/template/vendor/matt-pocock/engineering/tdd/tests.md +77 -0
  85. package/template/vendor/matt-pocock/engineering/to-spec/SKILL.md +75 -0
  86. package/template/vendor/matt-pocock/engineering/to-tickets/SKILL.md +113 -0
  87. package/template/vendor/matt-pocock/engineering/triage/AGENT-BRIEF.md +204 -0
  88. package/template/vendor/matt-pocock/engineering/triage/OUT-OF-SCOPE.md +104 -0
  89. package/template/vendor/matt-pocock/engineering/triage/SKILL.md +112 -0
  90. package/template/vendor/matt-pocock/engineering/wayfinder/SKILL.md +127 -0
  91. package/template/vendor/matt-pocock/in-progress/README.md +10 -0
  92. package/template/vendor/matt-pocock/in-progress/claude-handoff/SKILL.md +18 -0
  93. package/template/vendor/matt-pocock/in-progress/loop-me/SKILL.md +32 -0
  94. package/template/vendor/matt-pocock/in-progress/wizard/SKILL.md +45 -0
  95. package/template/vendor/matt-pocock/in-progress/wizard/template.sh +211 -0
  96. package/template/vendor/matt-pocock/in-progress/writing-beats/SKILL.md +67 -0
  97. package/template/vendor/matt-pocock/in-progress/writing-fragments/SKILL.md +78 -0
  98. package/template/vendor/matt-pocock/in-progress/writing-shape/SKILL.md +79 -0
  99. package/template/vendor/matt-pocock/productivity/README.md +18 -0
  100. package/template/vendor/matt-pocock/productivity/grill-me/SKILL.md +7 -0
  101. package/template/vendor/matt-pocock/productivity/grilling/SKILL.md +12 -0
  102. package/template/vendor/matt-pocock/productivity/handoff/SKILL.md +16 -0
  103. package/template/vendor/matt-pocock/productivity/teach/GLOSSARY-FORMAT.md +35 -0
  104. package/template/vendor/matt-pocock/productivity/teach/LEARNING-RECORD-FORMAT.md +46 -0
  105. package/template/vendor/matt-pocock/productivity/teach/MISSION-FORMAT.md +31 -0
  106. package/template/vendor/matt-pocock/productivity/teach/RESOURCES-FORMAT.md +32 -0
  107. package/template/vendor/matt-pocock/productivity/teach/SKILL.md +140 -0
  108. package/template/vendor/matt-pocock/productivity/writing-great-skills/GLOSSARY.md +201 -0
  109. package/template/vendor/matt-pocock/productivity/writing-great-skills/SKILL.md +83 -0
  110. package/template/workflows/matt-pocock/WORKFLOW.md +145 -0
  111. package/template/workflows/matt-pocock/_state/status.json +5 -0
  112. package/template/workflows/matt-pocock/routes/architecture.md +24 -0
  113. package/template/workflows/matt-pocock/routes/diagnose.md +22 -0
  114. package/template/workflows/matt-pocock/routes/experimental.md +18 -0
  115. package/template/workflows/matt-pocock/routes/idea-to-delivery.md +63 -0
  116. package/template/workflows/matt-pocock/routes/merge-conflicts.md +19 -0
  117. package/template/workflows/matt-pocock/routes/productivity.md +25 -0
  118. package/template/workflows/matt-pocock/routes/research-prototype.md +20 -0
  119. package/template/workflows/matt-pocock/routes/review.md +19 -0
  120. package/template/workflows/matt-pocock/routes/setup.md +42 -0
  121. package/template/workflows/matt-pocock/routes/triage.md +25 -0
  122. package/template/workflows/matt-pocock/routes/wayfinder.md +27 -0
  123. package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +74 -59
  124. package/template/workflows/person/M-mao-zedong-cognitive-os/activate.md +2 -2
  125. package/template/workflows/person/M-mao-zedong-cognitive-os/deliver.md +5 -5
  126. package/template/workflows/person/M-mao-zedong-cognitive-os/diagnose.md +2 -2
  127. package/template/workflows/person/M-mao-zedong-cognitive-os/mobilize.md +4 -4
  128. package/template/workflows/person/M-mao-zedong-cognitive-os/strategize.md +3 -3
  129. package/template/workflows/person/WORKFLOW.md +68 -0
  130. package/template/workflows/person/_state/.config/LESSONS.md +3 -0
  131. package/template/workflows/person/_state/.config/RULES.md +3 -0
  132. package/template/workflows/person/_state/changes/.gitkeep +1 -0
  133. package/template/workflows/person/_state/status.json +5 -0
  134. package/template/.speculo/.config/LESSONS.md +0 -9
  135. package/template/.speculo/.config/RULES.md +0 -11
  136. package/template/.speculo/AGENTS.md +0 -30
  137. package/template/.speculo/archive/AGENTS.md +0 -28
  138. package/template/.speculo/archive/dev/.gitkeep +0 -0
  139. package/template/.speculo/archive/person/.gitkeep +0 -0
  140. package/template/.speculo/dev/.gitkeep +0 -0
  141. package/template/.speculo/dev/docs-sync-state.json +0 -14
  142. package/template/.speculo/dev-status.json +0 -3
  143. package/template/.speculo/doc-status.json +0 -3
  144. package/template/.speculo/person/.gitkeep +0 -0
  145. package/template/.speculo/person-status.json +0 -1
  146. package/template/commands/archive.md +0 -68
  147. package/template/commands/caveman.md +0 -50
  148. package/template/commands/config-prune.md +0 -59
  149. package/template/commands/grill-me.md +0 -48
  150. package/template/commands/handoff.md +0 -59
  151. package/template/commands/scaffold-exercises.md +0 -56
  152. package/template/commands/write-a-skill.md +0 -52
  153. package/template/skills/caveman/SKILL.md +0 -38
  154. package/template/skills/caveman/references/compression-rules.md +0 -102
  155. package/template/skills/config-prune/SKILL.md +0 -44
  156. package/template/skills/config-prune/references/audit-rules.md +0 -38
  157. package/template/skills/grill-me/SKILL.md +0 -40
  158. package/template/skills/handoff/SKILL.md +0 -73
  159. package/template/skills/scaffold-exercises/SKILL.md +0 -41
  160. package/template/skills/scaffold-exercises/references/exercise-structure.md +0 -85
  161. package/template/skills/scaffold-exercises/references/lint-and-git.md +0 -54
  162. package/template/skills/speculo-write/SKILL.md +0 -56
  163. package/template/skills/speculo-write/references/asset-selection-sop.md +0 -67
  164. package/template/skills/speculo-write/references/authoring-quality-levers.md +0 -61
  165. package/template/skills/speculo-write/references/command-authoring-sop.md +0 -98
  166. package/template/skills/speculo-write/references/migration-sop.md +0 -101
  167. package/template/skills/speculo-write/references/persistence-contract-sop.md +0 -271
  168. package/template/skills/speculo-write/references/skill-authoring-sop.md +0 -212
  169. package/template/skills/speculo-write/references/validation-checklist.md +0 -85
  170. package/template/skills/speculo-write/references/workflow-authoring-sop.md +0 -165
  171. package/template/vendor/codebase-design/DEEPENING.md +0 -37
  172. package/template/vendor/codebase-design/DESIGN-IT-TWICE.md +0 -44
  173. package/template/vendor/codebase-design/SKILL.md +0 -114
  174. package/template/vendor/officecli/SKILL.md +0 -415
  175. package/template/vendor/resolving-merge-conflicts/SKILL.md +0 -14
  176. package/template/workflows/dev/01-grill-with-docs/01-grill-with-docs.md +0 -107
  177. package/template/workflows/dev/01-grill-with-docs/grill-context-scan.md +0 -30
  178. package/template/workflows/dev/01-grill-with-docs/grill-decision.md +0 -38
  179. package/template/workflows/dev/02-prd/02-prd.md +0 -70
  180. package/template/workflows/dev/02-prd/prd-synthesis.md +0 -30
  181. package/template/workflows/dev/02-prd/prd-zoom-out.md +0 -29
  182. package/template/workflows/dev/03-tdd/03-tdd.md +0 -55
  183. package/template/workflows/dev/03-tdd/agents/tdd-finish-agent.md +0 -34
  184. package/template/workflows/dev/03-tdd/agents/tdd-implement-agent.md +0 -34
  185. package/template/workflows/dev/03-tdd/agents/tdd-plan-agent.md +0 -34
  186. package/template/workflows/dev/03-tdd/mocking.md +0 -43
  187. package/template/workflows/dev/03-tdd/refactoring.md +0 -10
  188. package/template/workflows/dev/03-tdd/tdd-finish.md +0 -34
  189. package/template/workflows/dev/03-tdd/tdd-loop.md +0 -36
  190. package/template/workflows/dev/03-tdd/tdd-plan.md +0 -37
  191. package/template/workflows/dev/03-tdd/tests.md +0 -61
  192. package/template/workflows/dev/04-finalize/04-finalize.md +0 -57
  193. package/template/workflows/dev/04-finalize/agents/completion-gate-agent.md +0 -35
  194. package/template/workflows/dev/04-finalize/completion-gate.md +0 -41
  195. package/template/workflows/dev/04-finalize/finalize-archive.md +0 -55
  196. package/template/workflows/dev/A-improve-architecture/A-improve-architecture.md +0 -60
  197. package/template/workflows/dev/A-improve-architecture/HTML-REPORT.md +0 -123
  198. package/template/workflows/dev/A-improve-architecture/architecture-grill.md +0 -30
  199. package/template/workflows/dev/A-improve-architecture/architecture-review.md +0 -29
  200. package/template/workflows/dev/A-improve-architecture/architecture-scan.md +0 -37
  201. package/template/workflows/dev/AGENTS.md +0 -95
  202. package/template/workflows/dev/D-docs-sync/D-docs-sync.md +0 -140
  203. package/template/workflows/dev/D-docs-sync/agents/docs-diff-agent.md +0 -34
  204. package/template/workflows/dev/D-docs-sync/agents/docs-update-agent.md +0 -34
  205. package/template/workflows/dev/D-docs-sync/agents-contract.md +0 -95
  206. package/template/workflows/dev/D-docs-sync/changelog-contract.md +0 -155
  207. package/template/workflows/dev/D-docs-sync/config-contract.md +0 -75
  208. package/template/workflows/dev/D-docs-sync/docs-sync-diff.md +0 -86
  209. package/template/workflows/dev/D-docs-sync/docs-sync-finish.md +0 -37
  210. package/template/workflows/dev/D-docs-sync/docs-sync-state.md +0 -47
  211. package/template/workflows/dev/D-docs-sync/docs-sync-update.md +0 -44
  212. package/template/workflows/dev/D-docs-sync/knowledge-extract.md +0 -66
  213. package/template/workflows/dev/D-docs-sync/readme-contract.md +0 -124
  214. package/template/workflows/dev/D-docs-sync/state-json-schema.md +0 -172
  215. package/template/workflows/dev/H-diagnose/H-diagnose.md +0 -108
  216. package/template/workflows/dev/H-diagnose/agents/diagnose-agent.md +0 -33
  217. package/template/workflows/dev/H-diagnose/agents/fix-agent.md +0 -34
  218. package/template/workflows/dev/H-diagnose/diagnose-fix.md +0 -34
  219. package/template/workflows/dev/H-diagnose/diagnose-guide.md +0 -144
  220. package/template/workflows/dev/H-diagnose/diagnose-loop.md +0 -41
  221. package/template/workflows/dev/H-diagnose/scripts/hitl-loop.template.sh +0 -41
  222. package/template/workflows/dev/I-to-issues/I-to-issues.md +0 -79
  223. package/template/workflows/dev/I-to-issues/issues-slices.md +0 -211
  224. package/template/workflows/dev/M-domain-modeling/ADR-FORMAT.md +0 -74
  225. package/template/workflows/dev/M-domain-modeling/CONTEXT-FORMAT.md +0 -67
  226. package/template/workflows/dev/M-domain-modeling/M-domain-modeling.md +0 -102
  227. package/template/workflows/dev/R-review/R-review.md +0 -75
  228. package/template/workflows/dev/R-review/agents/engineering-review-agent.md +0 -33
  229. package/template/workflows/dev/R-review/agents/spec-review-agent.md +0 -34
  230. package/template/workflows/dev/R-review/agents/standards-review-agent.md +0 -34
  231. package/template/workflows/dev/R-review/code-quality-checklist.md +0 -118
  232. package/template/workflows/dev/R-review/removal-checklist.md +0 -53
  233. package/template/workflows/dev/R-review/review-axes.md +0 -61
  234. package/template/workflows/dev/R-review/review-setup.md +0 -111
  235. package/template/workflows/dev/R-review/review-verdict.md +0 -43
  236. package/template/workflows/dev/R-review/security-checklist.md +0 -126
  237. package/template/workflows/dev/R-review/solid-checklist.md +0 -73
  238. package/template/workflows/dev/_templates/diagnosis-template.md +0 -20
  239. package/template/workflows/dev/_templates/docs-sync-report-template.md +0 -45
  240. package/template/workflows/dev/_templates/docs-sync-state-template.json +0 -14
  241. package/template/workflows/dev/_templates/domain-model-log-template.md +0 -20
  242. package/template/workflows/dev/_templates/grill-context-map-template.md +0 -20
  243. package/template/workflows/dev/_templates/grill-decision-log-template.md +0 -20
  244. package/template/workflows/dev/_templates/issues-slices-template.md +0 -106
  245. package/template/workflows/dev/_templates/overview-template.md +0 -19
  246. package/template/workflows/dev/_templates/prd-template.md +0 -26
  247. package/template/workflows/dev/_templates/regression-template.md +0 -20
  248. package/template/workflows/dev/_templates/review-report-template.md +0 -30
  249. package/template/workflows/dev/_templates/review-sources-template.md +0 -33
  250. package/template/workflows/dev/_templates/review-verdict-template.md +0 -33
  251. package/template/workflows/dev/_templates/tdd-log-template.md +0 -23
  252. package/template/workflows/dev/_templates/tdd-plan-template.md +0 -35
  253. package/template/workflows/dev/_templates/tdd-verification-template.md +0 -26
  254. package/template/workflows/doc/AGENTS.md +0 -80
  255. package/template/workflows/doc/B-writing-beats/B-writing-beats.md +0 -79
  256. package/template/workflows/doc/B-writing-beats/writing-beats-append.md +0 -31
  257. package/template/workflows/doc/B-writing-beats/writing-beats-options.md +0 -29
  258. package/template/workflows/doc/E-edit-article/E-edit-article.md +0 -79
  259. package/template/workflows/doc/E-edit-article/edit-article-plan.md +0 -30
  260. package/template/workflows/doc/E-edit-article/edit-article-rewrite.md +0 -31
  261. package/template/workflows/doc/F-writing-fragments/F-writing-fragments.md +0 -80
  262. package/template/workflows/doc/F-writing-fragments/writing-fragments-interview.md +0 -32
  263. package/template/workflows/doc/F-writing-fragments/writing-fragments-log.md +0 -29
  264. package/template/workflows/doc/S-writing-shape/S-writing-shape.md +0 -81
  265. package/template/workflows/doc/S-writing-shape/writing-shape-block.md +0 -32
  266. package/template/workflows/doc/S-writing-shape/writing-shape-opening.md +0 -27
  267. package/template/workflows/doc/T-teach/T-teach.md +0 -64
  268. package/template/workflows/doc/T-teach/teach-lesson-wrap.md +0 -63
  269. package/template/workflows/doc/T-teach/teach-lesson.md +0 -53
  270. package/template/workflows/doc/T-teach/teach-mission.md +0 -33
  271. package/template/workflows/doc/T-teach/teach-resources.md +0 -36
  272. package/template/workflows/doc/_templates/edit-article-plan-template.md +0 -25
  273. package/template/workflows/doc/_templates/edit-article-template.md +0 -7
  274. package/template/workflows/doc/_templates/teach-glossary-template.md +0 -26
  275. package/template/workflows/doc/_templates/teach-learning-record-template.md +0 -38
  276. package/template/workflows/doc/_templates/teach-lesson-html-template.md +0 -24
  277. package/template/workflows/doc/_templates/teach-mission-template.md +0 -19
  278. package/template/workflows/doc/_templates/teach-resources-template.md +0 -18
  279. package/template/workflows/doc/_templates/writing-article-template.md +0 -7
  280. package/template/workflows/doc/_templates/writing-beat-options-template.md +0 -21
  281. package/template/workflows/doc/_templates/writing-fragments-template.md +0 -7
  282. package/template/workflows/doc/_templates/writing-interview-log-template.md +0 -21
  283. package/template/workflows/doc/_templates/writing-shape-log-template.md +0 -25
  284. package/template/workflows/person/AGENTS.md +0 -72
  285. /package/template/{.speculo/.config/adr → workflows/matt-pocock/_state/archive}/.gitkeep +0 -0
  286. /package/template/{.speculo/.config/context → workflows/matt-pocock/_state/changes}/.gitkeep +0 -0
  287. /package/template/{.speculo/archive/doc → workflows/person/_state/.config/context}/.gitkeep +0 -0
  288. /package/template/{.speculo/doc → workflows/person/_state/archive}/.gitkeep +0 -0
@@ -1,58 +1,15 @@
1
1
  ---
2
2
  id: status
3
3
  type: command
4
- name: Global Status
5
- description: 按需聚合全局工作流状态(替代物理 STATUS.json)
6
- keywords: [status, 状态, 进度]
4
+ name: Status
5
+ description: 汇总已安装 workflow、active changes、异常状态与下一步
6
+ keywords: [status, 状态, active, blocked]
7
7
  ---
8
8
 
9
9
  # Status 命令
10
10
 
11
- ## 归档路径模式
12
-
13
- 可选产物目录:`speculo/.speculo/commands/<YYYY-MM-DD>-status-<topic>/`
14
-
15
- 快照文件:`speculo/.speculo/commands/<YYYY-MM-DD>-status-<topic>/snapshot.md`
16
-
17
- - `<YYYY-MM-DD>` 使用当前日期。
18
- - `<topic>` 从状态范围或用户主题提取,使用小写 kebab-case;无法判断时使用 `snapshot`。
19
- - 禁止把状态快照写入 `temp/`、系统临时目录或工作区内其他非规范位置。
20
-
21
- (若仅是回显报告、不需要持久化时可不归档)
22
-
23
- ## 调用的 skills
24
-
25
-
26
-
27
- ## 执行步骤
28
-
29
- 1. 读取已存在的 `speculo/.speculo/<cat>-status.json`,当前内置分类至少包括 `dev`、`doc` 与 `person`。缺失时报告缺失路径,建议重新运行 `speculo init`,或创建空索引 `{"active":[]}`。
30
- 2. 对每个索引的 `active[]` 条目,读取 `speculo/.speculo/<cat>/<change>/.status.json`。读取失败时把该 change 标记为 `broken-index`,不要擅自删除索引项。
31
- 3. 扫描 `speculo/.speculo/<cat>/*/.status.json`,找出 `change_status: completed` 且尚未位于 `speculo/.speculo/archive/` 的待归档 change。
32
- 4. 聚合输出:
33
- - 各分类 active 数量、completed 待归档数量、broken-index 数量
34
- - 最近更新的 5 个 change(按 `updated_at` 倒序)
35
- - 当前可能阻塞项:`phase_history` 最后一项为 `blocked`,或 `updated_at` 超过 14 天未变化
36
- - 推荐下一步:优先处理 broken-index,其次处理 blocked,再推荐继续最近 active change 的 `current_phase`
37
- 5. 用户要求持久化快照时,把报告写入 `speculo/.speculo/commands/<YYYY-MM-DD>-status-<topic>/snapshot.md`;否则只在对话中返回。
38
-
39
- ## 产物模板(snapshot.md,可选)
40
-
41
- > **服务命令:** `status.md`
42
- > **产物文件名:** `snapshot.md`
43
-
44
- ```markdown
45
- # Status Snapshot
46
-
47
- ## 快照时间
48
- [TODO: ISO 8601 时间戳。]
49
-
50
- ## 分类汇总
51
- [TODO: 按分类列出 active 数量、completed 待归档数量和 broken-index 数量]
52
-
53
- ## 最近活跃 Changes
54
- [TODO: 列出最近 5 个更新的 change + 分类 + 当前 phase]
55
-
56
- ## 可能僵尸 Changes
57
- [TODO: 超过 14 天未更新的 change 清单]
58
- ```
11
+ 1. 扫描 `speculo/workflows/*/WORKFLOW.md`,得到已安装 workflow ids。
12
+ 2. 对每个 id 读取 `speculo/.speculo/<workflow>/status.json`,再读取 `changes/<change>/.status.json`。
13
+ 3. 报告 active 数量、current route/phase、最近更新时间、blocked/stale changes 与 malformed 目录。
14
+ 4. 报告没有 workflow 资产的孤立状态根,以及缺少状态根的已安装 workflow;不自动修复。
15
+ 5. 用户要求持久化时写入 `speculo/.speculo/commands/status/<YYYY-MM-DD>-workspace-<topic>[-NN].md`,并在报告中列出本次扫描的 workflow 选择。
@@ -2,116 +2,29 @@
2
2
  id: agents-md-builder
3
3
  type: skill
4
4
  name: AGENTS.md Builder
5
- description: 为任意项目扫描 manifest 目录、判定角色、收集证据并生成极简 AGENTS.md 与 CLAUDE.md 重定向文件,形成完整父子导航树;当用户要求为项目生成/刷新 AGENTS.md、构建模块文档导航树、初始化 AI 代理可读的项目导读文档时使用。
5
+ description: 扫描 manifest 目录并生成有证据、极简且形成父子导航树的 AGENTS.md 与 CLAUDE.md
6
6
  ---
7
7
 
8
8
  # AGENTS.md Builder
9
9
 
10
- ## 何时使用
11
-
12
- 当用户要求为项目生成或维护 `AGENTS.md` 文档时使用。典型触发:
13
-
14
- - “为这个项目生成 AGENTS.md”
15
- - “构建项目的模块文档导航树”
16
- - “刷新所有模块的 AGENTS.md”
17
- - “为 src/ 下每个目录生成 AI 可读的导读文档”
18
- - “初始化项目的 agent 文档”
19
-
20
- ## 设计理念
21
-
22
- 每个 AGENTS.md 是一个**模块导读**,不是目录卡片。它回答:这个模块是什么、如何工作、从哪里开始读、看完之后去哪里。
23
-
24
- 每一行必须通过**删除测试**:*“删除这一行会导致 AI 代理犯错吗?”* 如果不会,就删掉。
10
+ 每份 AGENTS.md 是模块导读。逐行执行删除测试:删除后不会使代理犯错的内容不进入产物。
25
11
 
26
12
  ## 输入
27
13
 
28
- - 项目根路径(默认当前工作目录)
29
- - 可选:目标子目录(只处理该子树)
30
- - 可选:manifest 类型过滤(只处理特定生态,如 `package.json`)
31
- - 可选:AGENTS.md 语言偏好(默认中文)
32
-
33
- 本 skill 自带全部规范,**不外读仓库 `docs/`**。
34
-
35
- ## 输出
36
-
37
- - 每个 manifest 目录的 `AGENTS.md`(模块导读)
38
- - 每个 manifest 目录的 `CLAUDE.md`(一行重定向至 AGENTS.md)
39
- - 生成清单与变更统计
40
- - 已清理的非法 AGENTS.md 清单(若有)
41
-
42
- ## 执行步骤
43
-
44
- ### 步骤 1:确定扫描范围
45
-
46
- 1. 确认项目根路径。若用户未指定,使用当前工作目录。
47
- 2. 若用户指定了目标子目录,仅处理该子树。
48
- 3. 若用户指定了 manifest 类型过滤(如“只看 package.json”),仅匹配该类型。
14
+ - 项目根(默认 runtime context 的 project root)与可选目标子树。
15
+ - 可选 manifest 类型过滤和输出语言(默认中文)。
49
16
 
50
- ### 步骤 2:发现 manifest 目录
17
+ ## 流程
51
18
 
52
- 1. 读取 `references/manifest-discovery.md`,确认支持的 manifest 文件列表与忽略目录。
53
- 2. 从项目根递归扫描(排除忽略目录),找到所有含 manifest 文件的目录。
54
- 3. 一个目录有多个 manifest 时,按优先级选主 manifest
55
- 4. 构建 manifest 目录的父子树:子目录的 manifest 继承最近的祖先 manifest 目录。
56
- 5. 标记无 manifest 但已存在 AGENTS.md 的目录(待清理)。
19
+ 1. 读取 `references/manifest-discovery.md`,发现 manifest 目录、忽略目录和父子树;同时列出无 manifest 却存在代理手册的目录。完成标准:扫描范围内每个 manifest 恰好出现一次,所有孤立手册已列为候选而未直接删除。
20
+ 2. 读取 `references/role-classification.md`,按优先级为每个目录判定唯一角色。完成标准:所有目录都有角色及支持证据,没有多重分类。
21
+ 3. 读取 `references/evidence-collection.md`,收集 manifest、入口、依赖、消费方和测试。完成标准:每个将写入的结论都能指向真实文件。
22
+ 4. 读取 `references/content-contract.md`、`references/writing-style.md` 和对应 `references/templates/*`,自底向上生成或更新 AGENTS.md。完成标准:父子 routing 完整、内容不跨模块重复且逐行通过删除测试。
23
+ 5. 读取 `references/claude-redirect.md` 生成同层 CLAUDE.md;展示创建、更新和删除候选,确认后再写入。完成标准:每个合法 AGENTS.md 有唯一重定向,非法候选的处置有记录。
57
24
 
58
- ### 步骤 3:清理非法文档
59
-
60
- 1. 无 manifest 目录下的 AGENTS.md → 列出并删除。
61
- 2. 无 manifest 目录下的 CLAUDE.md → 列出并删除。
62
-
63
- ### 步骤 4:判定角色
64
-
65
- 1. 读取 `references/role-classification.md`。
66
- 2. 按 6 种角色的优先级顺序,为每个 manifest 目录判定唯一角色。
67
- 3. 命中即停止,不继续匹配。
68
-
69
- ### 步骤 5:收集证据
70
-
71
- 1. 读取 `references/evidence-collection.md`。
72
- 2. 对每个 manifest 目录,按角色对应的取证顺序收集:
73
- - Manifest 文件内容
74
- - 关键目录结构
75
- - 关键入口文件
76
- - 依赖与消费关系
77
- - 测试入口
78
- 3. 遵循证据转写原则:结论必须被文件支撑,禁止虚构。
79
-
80
- ### 步骤 6:生成 AGENTS.md
81
-
82
- 1. 读取 `references/content-contract.md` 确认必填章节与禁止项。
83
- 2. 读取 `references/writing-style.md` 确认排版、长度与语气。
84
- 3. 读取 `references/templates/` 中对应角色的模板作为骨架。
85
- 4. 自底向上(子 → 父)生成每个 AGENTS.md:
86
- - 先写子级 → 父级的 Routing 可引用已确定的子级路径
87
- - 每个 AGENTS.md 只负责自己所在模块
88
- - 不重复父级或子级已说明的内容
89
- 5. 每个 AGENTS.md 生成后执行删除测试:逐行检查是否冗余。
90
-
91
- ### 步骤 7:生成 CLAUDE.md
92
-
93
- 1. 读取 `references/claude-redirect.md`。
94
- 2. 对每个已生成 AGENTS.md 的目录,生成 CLAUDE.md。
95
- 3. CLAUDE.md 只有一行:`读取同层级的AGENTS.md文档。`
96
-
97
- ### 步骤 8:报告
98
-
99
- 1. 列出所有生成/更新的 AGENTS.md 路径。
100
- 2. 列出所有生成的 CLAUDE.md 路径。
101
- 3. 列出所有清理的非法文档路径。
102
- 4. 按角色统计:根 x1、聚合 xN、可运行 xN、能力模块 xN、契约模块 xN。
25
+ ## 输出
103
26
 
104
- ## 渐进披露
27
+ - 生成/更新的 AGENTS.md 与 CLAUDE.md 清单。
28
+ - 按角色统计、证据缺口和经确认清理的孤立文件清单。
105
29
 
106
- - `references/manifest-discovery.md`:扫描项目确定 manifest 目录列表时读取。
107
- - `references/role-classification.md`:为每个 manifest 目录判定角色时读取。
108
- - `references/evidence-collection.md`:按角色收集证据时读取。
109
- - `references/content-contract.md`:生成 AGENTS.md 必填章节与禁止项时读取。
110
- - `references/claude-redirect.md`:生成 CLAUDE.md 重定向文件时读取。
111
- - `references/writing-style.md`:确认中文排版、长度密度、语气要求时读取。
112
- - `references/templates/repo-root-AGENTS.md`:角色为 `repo-root` 时读取。
113
- - `references/templates/aggregator-AGENTS.md`:角色为 `aggregator` 时读取。
114
- - `references/templates/runnable-app-AGENTS.md`:角色为 `runnable-app` 时读取。
115
- - `references/templates/capability-module-AGENTS.md`:角色为 `capability-module` 时读取。
116
- - `references/templates/contract-module-AGENTS.md`:角色为 `contract-module` 时读取。
117
- - `references/templates/scripts-docs-AGENTS.md`:角色为 `scripts-docs` 时读取。
30
+ skill 不自行选择 Speculo 报告路径;需要持久化时由调用方提供。
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: change-lifecycle
3
+ type: skill
4
+ name: Change Lifecycle
5
+ description: 验证、完成和归档任意 Speculo workflow change,返回可确认的状态与目录移动计划。
6
+ ---
7
+
8
+ # Change Lifecycle
9
+
10
+ ## 输入
11
+
12
+ - `runtime-context` 返回的 workflow、state、changes、archive 和可选 change 根。
13
+ - `mode: finalize-active | archive-completed`。
14
+ - 当前 route/phase 完成准则、change 状态与可选 worktree 状态。
15
+
16
+ ## 流程
17
+
18
+ 1. `finalize-active` 按 `references/completion-gate.md` 收集新鲜证据;任一关键结论缺证据即返回 blocked。
19
+ 2. 两种模式均按 `references/finalize-archive.md` 验证名称、状态、索引和目标冲突。
20
+ 3. 返回状态修改、移动、索引更新和可选 worktree 清理计划,等待调用方取得用户确认。
21
+ 4. 调用方执行后重新读取源、目标、change 状态和 workflow 索引;存在部分完成即返回 blocked。
22
+
23
+ 完成标准:返回 `verified | blocked | archived` 中唯一裁决及完整证据;本 skill 未自行持久化或执行未确认的破坏性动作。
24
+
25
+ 报告模板见 `assets/completion-verification-template.md` 与 `assets/completion-summary-template.md`。
@@ -1,4 +1,4 @@
1
- > **服务工作流:** `../04-finalize/04-finalize.md`
1
+ > **服务命令:** `../../../commands/finalize.md`
2
2
  > **产物文件名:** `completion-summary.md`
3
3
  > **父目录规则:** 本模板产物写入 `YYYY-MM-DD-<kebab-name>/` change 目录内
4
4
 
@@ -22,4 +22,4 @@
22
22
 
23
23
  ## 归档记录
24
24
 
25
- [TODO: 归档时间、源路径 → `speculo/.speculo/archive/dev/<YYYY-MM>/<change>/`、用户确认记录。]
25
+ [TODO: 归档时间、源路径 → `speculo/.speculo/<workflow>/archive/<YYYY-MM>/<change>/`、用户确认记录。]
@@ -1,4 +1,4 @@
1
- > **服务工作流:** `../04-finalize/04-finalize.md`
1
+ > **服务命令:** `../../../commands/finalize.md`
2
2
  > **产物文件名:** `completion-verification.md`
3
3
  > **父目录规则:** 本模板产物写入 `YYYY-MM-DD-<kebab-name>/` change 目录内
4
4
 
@@ -0,0 +1,19 @@
1
+ # Completion Verification
2
+
3
+ 本门控只服务 `finalize-active`。没有本次运行的新鲜证据时返回 blocked。
4
+
5
+ ## 输入与产物
6
+
7
+ - 输入:当前 change 产物、route/phase 完成准则、需求来源、VCS diff 和项目验证命令。
8
+ - 产物:当前 change 下的 `completion-verification.md`,使用 `../assets/completion-verification-template.md`。
9
+
10
+ ## 门控
11
+
12
+ 1. 运行相关测试、类型检查、lint 和构建,逐条记录命令、退出码与通过/失败计数。
13
+ 2. 重读 PRD、issue、spec 或用户任务,逐项标记 `satisfied | missing | partial` 并引用来源。
14
+ 3. Bug 修复确认回归测试经过红、绿、回退修复再红、恢复再绿;无法证明时记录缺口。
15
+ 4. 子代理参与时以 VCS diff 和实际文件为证据,不使用代理自报结论。
16
+ 5. 搜索调试日志、一次性脚本、DEBUG 标记和未启用功能,清理或记录阻塞。
17
+ 6. 全部关键项有证据时写 `verification_status: verified`,否则写 `blocked` 并停止归档。
18
+
19
+ 完成标准:需求清单与每项结论均有新鲜证据,产物无 `[TODO:]`,change 状态已记录验证命令、需求清单和裁决。
@@ -0,0 +1,32 @@
1
+ # Finalize And Archive
2
+
3
+ 归档是破坏性目录移动,调用方必须先展示完整计划并取得明确确认。
4
+
5
+ ## 共同预检
6
+
7
+ - change 名称符合日期 kebab 规则,且 `.status.json` 可解析。
8
+ - 源位于 runtime context 的 `changes_root`,目标位于 `archive_root/<YYYY-MM>/<change>`。
9
+ - 目标不存在,workflow `status.json` 与 change 状态一致。
10
+ - worktree 模式已经合并回目标分支并清理,或调用方明确记录 blocked。
11
+
12
+ ## finalize-active
13
+
14
+ 1. 要求 `verification_status: verified`。
15
+ 2. 在当前 change 写 `completion-summary.md`,记录交付边界、证据指针和遗留事项。
16
+ 3. 将 `change_status` 置为 `completed`;若 workflow 允许沉淀经验,只写入其声明的 knowledge store。
17
+ 4. 展示归档计划并等待确认,随后执行共同归档步骤。
18
+
19
+ ## archive-completed
20
+
21
+ 1. 仅接受 `change_status: completed`,不重新运行完成门控。
22
+ 2. 批量模式先为全部候选完成共同预检;任一冲突、malformed 或 broken change 会阻塞整批动作。
23
+ 3. 展示逐项计划并等待一次明确确认,随后按稳定顺序执行共同归档步骤。
24
+
25
+ ## 共同归档步骤
26
+
27
+ 1. 创建 archive 月目录并移动整个 change。
28
+ 2. 从 workflow `status.json#active` 删除该 change。
29
+ 3. 更新已移动的 `.status.json`:`change_status: archived`、`archived: true`、project-relative `archive_path`。
30
+ 4. 重新读取目标、索引和状态;失败时返回已完成/未完成清单,不猜测成功。
31
+
32
+ 完成标准:源不存在、目标完整、active 索引已移除且归档状态字段一致。
@@ -0,0 +1,22 @@
1
+ ---
2
+ id: docs-sync
3
+ type: skill
4
+ name: Docs Sync
5
+ description: 基于可复现 Git 区间、用户确认范围和 workflow 规则,清洁工作区并全量审计同步项目文档与知识资产。
6
+ ---
7
+
8
+ # Docs Sync
9
+
10
+ 调用方提供 runtime context、command 报告路径、全局 state 路径和 Git 副作用责任;本 skill 只使用这些已校验路径。
11
+
12
+ **全局语言规则:所有项目文档默认使用简体中文书写,除非特定文档类型另有规定(如 `README.md` 固定为英文、`CHANGELOG.md` 跟随项目既有语言)。代码实体、命令、URL 和版本号不翻译。**
13
+
14
+ ## 流程
15
+
16
+ 1. 读取 `references/git-state-contract.md`,清理并提交可验证的既有工作区改动,解析上次基线与本次输入节点。完成标准:输入工作区干净,或已无损阻塞。
17
+ 2. 读取 `references/workflow-scope-contract.md`,发现全部已安装 workflow,并解析全局范围与每个 workflow 的确认清单。完成标准:首次运行已统一确认范围,每个 workflow 状态根都有合法 sidecar。
18
+ 3. 读取 `references/document-lifecycle-contract.md`,把输入区间和 workflow 证据映射为 `add | update | delete | merge | keep | propose-only`。完成标准:每个受影响资产已整份审计,而非只追加新段落。
19
+ 4. 更新 README 时读取 `references/readme-contract.md`;更新 CHANGELOG 时读取 `references/changelog-contract.md`;更新代理手册时读取 `references/agents-contract.md`。需要创建或重建多层代理手册树时改用 `../agents-md-builder/SKILL.md`。
20
+ 5. 验证项目和文档,按 `assets/report-template.md`、`assets/state-template.json` 与 `assets/workflow-scope-template.json` 返回原子写入内容。调用方提交显式文件列表并再次确认工作区干净。
21
+
22
+ 完成标准:项目文档与当前事实一致,过期和重复内容已删除或合并;报告可复现输入区间;state 与 sidecar 已提交;没有未确认的越权写入或遗留工作区改动。
@@ -0,0 +1,45 @@
1
+ ---
2
+ command: docs-sync
3
+ mode: <bootstrap|incremental|no-op>
4
+ scope: <workspace|multi-workflow|workflow>
5
+ workflows: []
6
+ changes: []
7
+ generated_at: <ISO-8601>
8
+ ---
9
+
10
+ # Docs Sync Report
11
+
12
+ ## Git Range
13
+
14
+ - From: `<FROM_SHA|null>`
15
+ - To: `<INPUT_HEAD>`
16
+ - Replay: `git diff <FROM_SHA>..<INPUT_HEAD>` 或 `bootstrap current facts`
17
+
18
+ ## Workspace Cleanup
19
+
20
+ [记录 checkpoint commit、显式文件清单和运行前验证;无需 checkpoint 时写 `none`。]
21
+
22
+ ## Confirmed Scopes
23
+
24
+ [记录全局 project targets、各 workflow project/state targets、scope revision 和本次确认变化。]
25
+
26
+ ## Evidence And Lifecycle
27
+
28
+ | Target | Action | Evidence | Result |
29
+ |---|---|---|---|
30
+
31
+ ## Workflow Sources
32
+
33
+ [按 workflow 记录读取的 WORKFLOW、archive、声明 store 和受保护候选;空集合写 `[]`。]
34
+
35
+ ## Synced Assets
36
+
37
+ [列出实际新增、修改、合并或删除的文档与知识资产;no-op 写 `[]`。]
38
+
39
+ ## Verification
40
+
41
+ [记录实际运行的命令、结果与未运行原因。]
42
+
43
+ ## State
44
+
45
+ [记录全局 state 与 sidecar 的 schema、revision、pending 迁移项和原子写入结果。]
@@ -0,0 +1,20 @@
1
+ {
2
+ "schema_version": 4,
3
+ "command": "docs-sync",
4
+ "state_path": "speculo/.speculo/commands/docs-sync/state.json",
5
+ "baseline": {
6
+ "mode": "explicit",
7
+ "sha": null
8
+ },
9
+ "last_range": {
10
+ "from_sha": null,
11
+ "to_sha": null
12
+ },
13
+ "project_targets": [],
14
+ "pending_legacy_targets": [],
15
+ "scope_revision": 0,
16
+ "scope_confirmed_at": null,
17
+ "last_sync_run_at": null,
18
+ "total_syncs": 0,
19
+ "synced_assets": []
20
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "schema_version": 1,
3
+ "workflow": "{workflow}",
4
+ "manifest_path": "speculo/.speculo/{workflow}/docs-sync.json",
5
+ "project_targets": [],
6
+ "state_targets": [],
7
+ "scope_revision": 1,
8
+ "scope_confirmed_at": "{ISO-8601}"
9
+ }
@@ -0,0 +1,43 @@
1
+ # AI 代理手册同步契约
2
+
3
+ 本契约用于差量维护已确认范围内的 `AGENTS.md`、`CLAUDE.md` 和工具专属入口。创建或重建多层手册树时调用 `../../agents-md-builder/SKILL.md`,不要在 docs-sync 中复制其扫描和模板逻辑。
4
+
5
+ ## 内容优先级
6
+
7
+ 1. 代理无法可靠推导的事实:精确命令、目录职责、运行时版本、架构边界和权威文档入口。
8
+ 2. 基于真实失败的回归约束:危险目录、持久化规则、发布门禁和已验证陷阱。
9
+ 3. 项目独有行为规范:只有默认模型或工具无法给出时保留。
10
+
11
+ 删除角色扮演、营销语、linter 已强制的规则、README 教程、完整 API 文档、无证据理想规范和“注意代码质量”类空话。
12
+
13
+ ## 生命周期
14
+
15
+ - 命令、版本、目录、入口、测试、发布或持久化事实变化时,修改或删除对应陈述。
16
+ - 陷阱已被代码或工具消除时删除;同一错误尚未真实发生时不预先堆规则。
17
+ - 每行执行删除测试:“删除后是否会使代理更可能犯错?”答案为否就删除或改为权威链接。
18
+ - 根手册以约 200 行为目标;超过 300 行必须拆到就近手册或权威文档,而不是继续追加。
19
+ - 使用明确条件和祈使句;安全边界可使用“禁止/不得”,不要把所有偏好写成铁律。
20
+
21
+ ## AGENTS 与 CLAUDE
22
+
23
+ - **铁律:`AGENTS.md` 始终是唯一的权威代理手册。`CLAUDE.md` 永远只能是轻量重定向文件,内容固定为:**
24
+
25
+ ```
26
+ # CLAUDE.md
27
+
28
+ Speculo agent handbook: see [AGENTS.md](./AGENTS.md).
29
+ ```
30
+
31
+ - 无论项目是单工具还是多工具、纯 Claude 还是跨平台,均不得将 `CLAUDE.md` 作为权威内容载体。所有代理指令、事实和规则必须写入 `AGENTS.md`。
32
+ - 现有多行 `CLAUDE.md` 必须在此次同步中改写为重定向;改变权威来源、删除内容或创建符号链接前必须确认,但确定重定向后立即执行全量迁移。
33
+ - 反之亦然:`AGENTS.md` 不得被缩减为指向 `CLAUDE.md` 的重定向。`AGENTS.md` 重定向到其他文件一律视为错误状态,必须修复。
34
+ - Monorepo 使用就近手册覆盖;父级只导航,不复制子模块细节。
35
+
36
+ ## 验证
37
+
38
+ - 命令可执行,路径和版本来自当前 manifest/源码,目录树与实际结构一致。
39
+ - 每项禁止或必须都能指向代码无法表达的边界或真实回归。
40
+ - README、CONTRIBUTING、AGENTS 和工具入口之间没有互相复制或冲突。
41
+ - 工具专属入口可以到达唯一权威事实源,站内链接无断链。
42
+
43
+ 完成标准:代理手册保持高密度、可执行和当前;共享事实只有一个权威位置,工具专属差异没有丢失。
@@ -0,0 +1,39 @@
1
+ # CHANGELOG 同步契约
2
+
3
+ CHANGELOG 面向评估升级风险的人类读者。优先服从项目既有发布约定;首次创建时采用 Keep a Changelog 与项目实际版本方案。
4
+
5
+ ## 结构
6
+
7
+ - `[Unreleased]` 位于所有已发布版本之前。
8
+ - 已发布版本按新到旧排列,标题包含项目采用的版本号与 ISO 日期。
9
+ - 使用 `Added | Changed | Deprecated | Removed | Fixed | Security` 中实际有内容的分类;空分类不保留。
10
+ - 项目已有稳定扩展分类时继续使用,不为单次条目新造分类。
11
+ - 版本链接或 compare 链接必须指向真实仓库、最新 tag 和正确范围。
12
+
13
+ 已发布条目是历史记录,不根据当前实现重写其措辞。只修复客观错误的版本号、日期或链接,并在报告中说明。
14
+
15
+ ## 从 Git 区间提炼
16
+
17
+ 1. 使用 state 的 `last_range.from_sha/to_sha` 读取完整 diff,而不是把 `git log` 逐条倾倒。
18
+ 2. 按用户可感知的能力、行为、兼容性、修复和安全影响聚合主题;测试、格式化和纯内部重构默认不写。
19
+ 3. 每条回答“用户之前会遇到什么,现在发生了什么”;实现细节只在解释影响所必需时出现。
20
+ 4. 删除 `[Unreleased]` 中已被撤销、被替代、重复或已进入正式版本的内容。
21
+ 5. 依赖升级只有在安全、兼容性或用户环境受影响时记录;已知 CVE 进入 `Security`。
22
+
23
+ Conventional Commit 只是导航信号,最终分类必须由实际 diff 和公共行为决定。
24
+
25
+ ## 破坏性变更与发版
26
+
27
+ - 破坏性变更放在目标版本最显眼位置,明确影响范围、旧行为、新行为和可执行迁移步骤。
28
+ - 弃用必须给出替代入口和移除条件;没有迁移路径时不得只写“已弃用”。
29
+ - 只有真实版本变更和 tag 存在时,才把 `[Unreleased]` 内容迁移到正式版本;tag 后的新 commit 留在新的 `[Unreleased]`。
30
+ - Release notes 可以从 CHANGELOG 派生,但不能反向覆盖人工维护的历史。
31
+
32
+ ## 条目质量
33
+
34
+ - 使用项目语言、主动语态和具体模块/能力名。
35
+ - 命令、标志、路径、配置键和版本号使用代码格式。
36
+ - 合并同一主题的多个 commit;删除 merge、WIP、格式化和“多项改进”等噪音。
37
+ - 文档自身变化只有在影响用户采用、迁移或接口理解时才记录。
38
+
39
+ 完成标准:读者可以判断是否升级、会受什么影响以及如何迁移;区间内全部用户可感知变化已覆盖,内部噪音未进入历史。
@@ -0,0 +1,38 @@
1
+ # 文档生命周期契约
2
+
3
+ Diff 只负责发现变化;文档结论必须来自当前源码、配置、测试、CI、发布元数据、workflow 声明和已确认归档证据。
4
+
5
+ ## 映射与整份审计
6
+
7
+ 1. 把输入区间按对外能力、CLI/API、配置、架构、依赖、测试、发布、workflow 和文档自身分组。
8
+ 2. 映射到确认范围内的文档;没有 owner 的候选先进入 `propose-only`,不得临时扩大范围。
9
+ 3. 一旦文档被命中,读取整份文件和直接事实源,逐段判断是否仍准确、仍有读者价值、是否与别处重复。
10
+ 4. 为每个资产选择唯一动作:
11
+ - `add`:存在已实现事实但没有承载位置。
12
+ - `update`:当前说明错误、不完整或接口已变化。
13
+ - `delete`:内容已失效且没有历史保留价值。
14
+ - `merge`:多个位置表达同一事实,收敛为一个权威来源。
15
+ - `keep`:复核后仍准确。
16
+ - `propose-only`:范围、语义、所有权或破坏性动作未确认。
17
+ 5. 报告记录动作、证据、目标和验证,不把每个 commit 机械转成文档条目。
18
+
19
+ 同一文档内删除过期段落、旧命令、坏链接和重复说明属于常规同步;删除整个文件或目录必须逐次确认。禁止只在末尾追加新事实而保留被推翻的旧内容。
20
+
21
+ ## 文档类型
22
+
23
+ - 教程回答“如何学习”,操作指南回答“如何完成任务”,参考回答“接口是什么”,解释回答“为什么如此设计”。单篇文档保持主导类型,跨类型内容改成链接。
24
+ - API、配置、架构、迁移和发布说明必须与可执行入口或 schema 逐项核对。
25
+ - 示例必须可复制执行并展示必要的预期结果;不能运行时明确记录原因和静态证据。
26
+ - 多语言镜像保持章节、代码实体、命令、URL 和关键约束对等;只翻译说明文字。
27
+ - 历史版本、ADR 和已发布记录按项目规则归档,不把当前实现反写成虚假历史。
28
+
29
+ ## 验证
30
+
31
+ 至少执行:
32
+
33
+ - 项目声明的 build/test/lint 或等价质量闸。
34
+ - Markdown 相对链接、标题层级和代码块完整性检查。
35
+ - 文档中的命令、版本、路径、环境变量、配置键、CLI/API 表与事实源交叉检查。
36
+ - 全局搜索旧名称、删除路径、过期版本和被替换措辞,确认没有残留或重复事实源。
37
+
38
+ 完成标准:所有命中资产已穷尽审计且动作唯一;新增、修改和删除均有当前证据;验证通过或运行已无损阻塞。
@@ -0,0 +1,67 @@
1
+ # Git 与全局 State 契约
2
+
3
+ 本契约定义可复现输入、工作区清洁提交和 docs-sync state v4。调用方拥有 Git 与持久化副作用。
4
+
5
+ ## 运行前清洁
6
+
7
+ 1. 确认当前目录属于唯一 Git 仓库,且不处于 merge、rebase、cherry-pick、revert 或 bisect。
8
+ 2. 收集 `git status --short --branch`、`git diff --check`、staged、unstaged 与 untracked 路径;逐项读取内容和归属。
9
+ 3. 运行仓库声明的最小完整校验。缺少校验命令时记录事实,不虚构命令。
10
+ 4. 若存在冲突、校验失败、疑似密钥、异常大文件、无法判断用途的 untracked 文件或不相关用户改动,停止且不改变 Git 状态。
11
+ 5. 其余改动按显式路径暂存,并创建一个 `chore(docs-sync): checkpoint workspace` commit。禁止使用 `git add .`、stash、reset、clean、amend、rebase 或丢弃内容。
12
+ 6. 重新读取 `git status --short`;非空即继续分类,无法安全收敛时阻塞。
13
+
14
+ 完成标准:`INPUT_HEAD=$(git rev-parse HEAD)` 已记录,工作区为空,checkpoint 的文件清单与验证结果进入报告。
15
+
16
+ ## State v4
17
+
18
+ 默认路径为 `speculo/.speculo/commands/docs-sync/state.json`:
19
+
20
+ ```json
21
+ {
22
+ "schema_version": 4,
23
+ "command": "docs-sync",
24
+ "state_path": "speculo/.speculo/commands/docs-sync/state.json",
25
+ "baseline": { "mode": "explicit", "sha": null },
26
+ "last_range": { "from_sha": null, "to_sha": null },
27
+ "project_targets": [],
28
+ "pending_legacy_targets": [],
29
+ "scope_revision": 0,
30
+ "scope_confirmed_at": null,
31
+ "last_sync_run_at": null,
32
+ "total_syncs": 0,
33
+ "synced_assets": []
34
+ }
35
+ ```
36
+
37
+ - `project_targets` 只保存不归属具体 workflow 的已确认项目文档目标。
38
+ - `baseline.mode` 为 `state-file-commit | explicit`。正常运行使用前者;迁移暂存使用后者。
39
+ - `last_range` 保存本次审计输入的两个 commit;`from_sha` 仅在 bootstrap 时可为 `null`。
40
+ - `pending_legacy_targets` 只用于迁移后等待用户重新确认的旧路径。
41
+ - state 不保存 diff、用户确认原文、绝对路径、个人信息或密钥。
42
+
43
+ ## 基线解析
44
+
45
+ 1. `state-file-commit`:运行 `git log -1 --format=%H -- "$STATE_FILE"`,把最后修改 state 的 commit 作为 `FROM_SHA`。
46
+ 2. `explicit`:使用 `baseline.sha`;为 `null` 时进入 bootstrap。
47
+ 3. 非空 `FROM_SHA` 必须是 `INPUT_HEAD` 的祖先;浅克隆缺历史、分支分叉或损坏 SHA 均阻塞。
48
+ 4. 常规范围固定为 `FROM_SHA..INPUT_HEAD`;bootstrap 盘点当前项目事实,不对 `null` 执行 git diff。
49
+ 5. 固定收集 log、name-status、shortstat 和具体文件 diff;commit 标题只用于导航,结论必须回到文件事实。
50
+
51
+ `last_range.from_sha/to_sha` 必须支持直接运行 `git diff "$FROM_SHA..$INPUT_HEAD"` 复现输入。
52
+
53
+ ## v1-v3 迁移
54
+
55
+ - `tracked_docs`、`tracked_assets` 原样放入 `pending_legacy_targets`,不得自动转成授权。
56
+ - `synced_docs` 映射为 `synced_assets`;移除 short SHA、commit subject/date 等派生字段。
57
+ - `baseline` 使用 `explicit` 和旧 `last_sync_sha`;`last_range` 使用旧 `previous_sync_sha/last_sync_sha`。
58
+ - 首次 v4 运行统一展示、分类并确认 pending targets;成功后清空 pending,切换为 `state-file-commit`。
59
+
60
+ ## 写回与提交
61
+
62
+ 1. 验证通过后写同目录临时文件,再原子 rename state、报告和 sidecar;JSON 使用 2 空格和尾部换行。
63
+ 2. 更新 `last_range={from_sha: FROM_SHA, to_sha: INPUT_HEAD}`、运行时间、计数和实际同步资产;正常输出将 baseline 设为 `{mode: "state-file-commit", sha: null}`。
64
+ 3. 显式暂存本次文档、报告、state 和 sidecar。实际修改使用 `docs(docs-sync): synchronize project documentation`;no-op 使用 `chore(docs-sync): record no-op synchronization`。
65
+ 4. commit 失败时保留证据并阻塞,不重写历史或丢弃文件。成功后 `git status --short` 必须为空。
66
+
67
+ 下次运行通过 state 文件的 Git 历史定位本次输出 commit,因此不会把本次报告和文档提交重复纳入输入范围。
@@ -0,0 +1,44 @@
1
+ # README 同步契约
2
+
3
+ README 面向首次接触项目、正在判断是否采用以及准备立即试用的读者。保留项目既有语言和风格,不强塞不适用的标准章节。
4
+
5
+ ## 事实顺序
6
+
7
+ 按认知漏斗审计现有结构:
8
+
9
+ 1. 名称与一句具体定位:说明输入、输出或解决的问题,删除空泛营销语。
10
+ 2. 必要的截图、演示和功能性徽章:链接失效或状态无价值时修复或删除。
11
+ 3. 可复制的最小 Quick Start:尽量前置,并给出判断成功所需的预期结果。
12
+ 4. 安装与前置条件:版本、平台、包名和验证命令必须来自当前元数据。
13
+ 5. 核心用法、配置和限制:从最常用场景开始,诚实说明未支持边界。
14
+ 6. 详细文档、贡献与许可证:已有独立文档时只保留导航。
15
+
16
+ 项目简单时合并相邻章节;README 很长时把 API、架构解释和贡献流程移到对应文档,保留读者完成首次采用所需内容。
17
+
18
+ ## 同步触发
19
+
20
+ | 事实变化 | 必查内容 |
21
+ |---|---|
22
+ | package 描述、定位或对外能力 | 开头描述、特性、限制 |
23
+ | CLI/API/配置入口 | Quick Start、使用、参考表、示例 |
24
+ | runtime、依赖或发布渠道 | 安装、前置条件、徽章 |
25
+ | 顶层结构或架构边界 | 必要的结构摘要与文档链接 |
26
+ | CI/release/license | 状态徽章、发布说明、License |
27
+
28
+ 从源码、manifest、CLI `--help`、schema、测试和 CI 枚举真实入口。删除被移除的命令、路径、参数、徽章、链接和旧架构,不保留“未来能力”填补空白。
29
+
30
+ ## 多语言
31
+
32
+ - **铁律:`README.md` 始终为英文(EN)。与之配对的是 `README-ZH.md`,为一对一的中文翻译镜像,两文件内容对等、同步更新。**
33
+ - 标题顺序、命令、代码块、URL、表格字段和关键约束保持对等;代码实体不翻译。
34
+ - `README.md` 内容变更时,`README-ZH.md` 必须在同一次同步中完成对应更新。某语言版本无法同步时阻塞该组修改,不能让镜像继续漂移。
35
+ - 除 README 外的项目文档(如 CONTRIBUTING、架构说明)默认使用中文,除非项目明确要求多语言。
36
+
37
+ ## 验证
38
+
39
+ - 实际运行或静态验证 Quick Start、安装和核心示例。
40
+ - 对照代码枚举 CLI/API/配置条目,确认没有漏项或幽灵入口。
41
+ - 检查站内链接、图片、徽章和语言切换。
42
+ - 逐段删除测试:删掉后不影响采用决策或正确使用的内容应压缩、下沉或删除。
43
+
44
+ 完成标准:新读者可以从 README 判断项目价值、完成最小安装并验证结果;全部声明均有当前事实来源。