@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,35 +0,0 @@
1
- > **服务工作流:** `../03-tdd/03-tdd.md`
2
- > **产物文件名:** `tdd/<phase-id>/tdd-plan.md`
3
- > **父目录规则:** 本模板产物写入 `YYYY-MM-DD-<kebab-name>/` change 目录内
4
-
5
- # TDD Plan
6
-
7
- ## 阶段标识
8
- [TODO: 本阶段 `<phase-id>`。多阶段 slices 须与 slices `<phase>` 的 `id` 一致(如 `phase0-node-base`);单阶段 change 用描述性切片 slug。产物落 `tdd/<phase-id>/`。]
9
-
10
- ## 切片来源
11
- [TODO: 记录来自 PRD、slices、diagnosis 还是用户直接请求。]
12
-
13
- ## 执行前 Git 基线
14
- [TODO: 记录当前分支、`git status --short --branch` 摘要、`git diff --stat`、`git diff --cached --stat`。若不是 git 仓库或命令失败,记录原因。]
15
-
16
- ## 保留/不动(约束)
17
- [TODO: 承接本切片「保留/不动」:实现中不能碰的代码/契约/数据(冻结常量、共享依赖、邻近功能);无则写「无」。]
18
-
19
- ## 现场核对(关键核实结论复核)
20
- [TODO: 承接本切片「关键核实结论」,并以现场代码复核其依赖/调用点/边界;切片行号为近似,记录现场实际位置。]
21
-
22
- ## 公共接口
23
- [TODO: 描述需要新增或修改的公共接口、命令、页面、API 或模块边界。]
24
-
25
- ## 行为优先级
26
- [TODO: 列出最重要的可观察行为和测试优先级。]
27
-
28
- ## 第一个 Tracing Slice
29
- [TODO: 描述第一条端到端薄切片、失败信号和成功判据。]
30
-
31
- ## 验证命令
32
- [TODO: 列出应运行的测试、类型检查、lint 或构建命令。]
33
-
34
- ## 验收切片(承接 slices)
35
- [TODO: 承接本切片「验收切片」:Finish 阶段须运行的可独立验证命令/步骤;删除型切片含残留扫描(`grep` 应 0 命中)。]
@@ -1,26 +0,0 @@
1
- > **服务工作流:** `../03-tdd/03-tdd.md`
2
- > **产物文件名:** `tdd/<phase-id>/verification.md`
3
- > **父目录规则:** 本模板产物写入 `YYYY-MM-DD-<kebab-name>/` change 目录内
4
-
5
- # Verification
6
-
7
- ## 阶段标识
8
- [TODO: 本阶段 `<phase-id>`(与同目录 `tdd-plan.md` 一致)。]
9
-
10
- ## 已运行命令
11
- [TODO: 列出实际运行的测试、类型检查、lint 或构建命令及结果。]
12
-
13
- ## 验收切片结果(含残留扫描)
14
- [TODO: 承接 slices 本切片「验收切片」的运行结果;删除型切片记录残留扫描命令与命中数(应 0)。]
15
-
16
- ## 未运行命令
17
- [TODO: 列出未运行但相关的命令,以及原因。]
18
-
19
- ## 调试残留检查
20
- [TODO: 记录临时日志、DEBUG 标记、一次性脚本和推测性功能的清理结果。]
21
-
22
- ## 保留/不动核对
23
- [TODO: 核对实现未触碰本切片「保留/不动」清单(冻结常量 / 共享依赖 / 邻近功能);逐项标 OK 或说明偏离。]
24
-
25
- ## 完成结论
26
- [TODO: 说明 change 是否已完成、仍被阻塞或需要后续 review/handoff。]
@@ -1,80 +0,0 @@
1
- ---
2
- id: doc/index
3
- category: doc
4
- name: Doc Workflow AGENTS Guide
5
- description: 文档写作、塑形、编辑与素材管理的横向工作流导航与渐进披露指引
6
- keywords: [doc, writing, article, fragments, edit, agents, 文档, 写作]
7
- ---
8
-
9
- # Doc Workflow AGENTS Guide
10
-
11
- > ⚠️ **持久化铁律:本文件及所有 doc workflow 的全部产物,必须且只能写入 `speculo/.speculo/doc/<change>/`。绝对禁止写入项目根目录的 `.speculo/`、`temp/` 或其他任何非规范位置。**
12
-
13
- 本文件是 doc 分类的 AGENTS 导航入口。进入时先读取 `speculo/.speculo/doc-status.json`,再按其中 active change 读取 `speculo/.speculo/doc/<change>/.status.json`,根据用户意图推荐横向 workflow。
14
-
15
- > **命名铁律:** 所有 change 目录必须为 `YYYY-MM-DD-<kebab-name>`(例:`2026-06-12-article-draft`)。不符合此格式的目录视为 `malformed`,仅汇报不自动操作。
16
-
17
- ## 渐进披露
18
-
19
- 1. 先读本文件,确认当前 doc change、写作模式和入口别名。
20
- 2. 选定入口后,只读取对应 workflow 入口文件(如 `S-writing-shape/S-writing-shape.md`)。
21
- 3. 进入具体 phase 时,再读取该 phase 文件、模板和被调用 skill wrapper。
22
- 4. 执行中如涉及项目硬约束、跨任务经验、写作上下文、术语定义、ADR 或决策依据,必须参考 `../../.speculo/.config/` 下对应文件;`RULES.md` 的约束高于普通 workflow 文案。
23
- 5. 需要理解状态骨架、archive 或 `.config` 时,读取 `../../.speculo/AGENTS.md` 和相关子目录的 `AGENTS.md`。
24
-
25
- ## 入口别名
26
-
27
- | 别名 | 入口 | 用途 |
28
- |------|------|------|
29
- | `doc/T` | `T-teach/T-teach.md` | 设计交互式课程:使命→资源→课程→参考→记录 |
30
- | `doc/F` | `F-writing-fragments/F-writing-fragments.md` | 追问式访谈,沉淀异质 fragment 素材 |
31
- | `doc/B` | `B-writing-beats/B-writing-beats.md` | 逐个 beat 推进文章旅程 |
32
- | `doc/S` | `S-writing-shape/S-writing-shape.md` | 读取素材堆并对话式塑造成文章 |
33
- | `doc/E` | `E-edit-article/E-edit-article.md` | 重组章节、提升清晰度并收紧表达 |
34
-
35
- ## 进入协议
36
-
37
- 1. 若用户未指定 change,扫描 `speculo/.speculo/doc-status.json` 和 `speculo/.speculo/doc/*/.status.json`,列出 active changes。
38
- - **命名校验**:扫描时仅处理符合 `YYYY-MM-DD-<kebab-name>` 格式的目录。不符合的目录标记为 `malformed`,单独列出路径并提示用户修复或手动清理,不自动删除或重命名。
39
- 2. 若只有一个 active change,默认继续该 change;若有多个 active change,要求用户选择。
40
- 3. 若没有 active change,按用户意图创建新的 doc change。**以下三步为原子操作,不可跳过,前一步失败时停止后续并报告:**
41
- - **3a. 创建 change 目录** —— `speculo/.speculo/doc/<YYYY-MM-DD>-<kebab-name>/`(使用当前日期,`<kebab-name>` 从用户意图提取,不超过 5 个词)。
42
- - **3b. 写入 `.status.json`** —— 在 change 目录下创建 `.status.json`,按 `../../skills/speculo-write/references/persistence-contract-sop.md` 最小初始化模板填入所有必填字段(`name`、`category: "doc"`、`change_status: "active"`、`created_at`、`updated_at`、`current_phase: "00-init"`、`phase_history`)。
43
- - **3c. 更新 `doc-status.json`** —— 读取 `speculo/.speculo/doc-status.json`,在 `active[]` 中追加该 change 的索引条目(`name`、`current_phase: "00-init"`、`updated_at`),写回文件。
44
- - 以上三步全部成功后,方可继续推荐入口。
45
- 4. 推荐入口时优先使用用户显式别名;没有别名时按用户意图推荐一个横向 workflow。
46
- 5. 执行任何 workflow 前,读取该 workflow 入口文件、阶段文件和模板。
47
- 6. 执行中一旦需要项目规则、经验、上下文、术语或 ADR,先读取 `../../.speculo/.config/`,再继续判断或写入产物;除非用户明确要求或规则允许,不自动改写 `.config/`。
48
-
49
- ## 执行模式
50
-
51
- - `teach`:想学某个主题,需要设计交互式课程体验,进入 `doc/T`。
52
- - `fragments`:从主题和对话中采集素材,进入 `doc/F`。
53
- - `beats`:已有素材,想逐个转向推进叙事,进入 `doc/B`。
54
- - `shape`:已有素材堆或粗稿,想塑造成可发布文章,进入 `doc/S`。
55
- - `edit`:已有文章草稿,想编辑、重组、润色,进入 `doc/E`。
56
-
57
- ## 状态汇报
58
-
59
- 输出 doc 状态时至少包含:
60
-
61
- - active change 数量与每个 change 的 `current_phase`
62
- - malformed 目录清单(不符合 `YYYY-MM-DD-<kebab-name>` 格式的目录)
63
- - 每个 change 的当前文档路径、素材路径和最近写入时间
64
- - `phase_history` 最后一项为 `blocked` 或 `updated_at` 超过 14 天未变化的 change
65
- - 推荐下一步入口和原因
66
-
67
- ## 续跑协议
68
-
69
- 1. 读取 change 目录下 `.status.json` 的 `current_phase` 与 `phase_history`。
70
- 2. 跳过 `status: completed` 的 phase;从 `in-progress`、`blocked` 或首个 `pending` phase 继续。
71
- 3. 根据 `current_phase` 匹配 workflow 入口 `## 阶段` 中的机器 id,只读取对应 phase 文件与模板。
72
- 4. 首个 workflow 进入 change 时写入 `execution_mode`(使用入口声明的执行模式名或用户指定别名)。
73
- 5. 不得因续跑而重复创建 change 或重写已完成的 phase 产物。
74
-
75
- ## 完成与状态更新
76
-
77
- - 所有 doc workflow 必须维护同一 change 的 `.status.json`。
78
- - 进入 phase 时更新 `current_phase`,并在 `phase_history` 追加 `in-progress` 记录。
79
- - phase 完成时写入 `completed_at` 和 `status: completed`。
80
- - 用户确认文章、素材采集或编辑边界完成后,调用 `../../commands/archive.md` 归档 change;不得自行写入 `change_status: completed`(doc 分类无 finalize workflow)。
@@ -1,79 +0,0 @@
1
- ---
2
- id: doc/writing-beats
3
- category: doc
4
- name: Writing Beats
5
- description: 从素材堆中选择起始 beat,并逐个 beat 推进文章旅程
6
- keywords: [beats, narrative, article, writing, 叙事, 文章]
7
- ---
8
-
9
- # Writing Beats 工作流执行指引
10
-
11
- 本工作流用于把文章塑造成一段由 beat 组成的旅程。用户从原始素材中选择起始 beat;执行者只写当前 beat,然后给出下一步转向选项,直到文章自然结束。
12
-
13
- > **目录命名:** `<change>` 必须为 `YYYY-MM-DD-<kebab-name>`(例:`2026-06-12-article-notes`)。产物写入 `speculo/.speculo/doc/<change>/`。
14
-
15
- ## 内置指引
16
-
17
- ### 何时使用
18
-
19
- 当用户已有原始素材,并想把它组织成叙事旅程而不是一次性论证时使用。
20
-
21
- ### 输入
22
-
23
- - 用户提供的原始素材 Markdown 路径,或同 change 的 `fragments.md`
24
- - 当前文章文件:默认 `speculo/.speculo/doc/<change>/article.md`
25
- - 当前 doc change 目录:`speculo/.speculo/doc/<change>/`(`<change>` 必须为 `YYYY-MM-DD-<kebab-name>`,例:`2026-06-12-article-notes`)
26
-
27
- ### 输出
28
-
29
- - `speculo/.speculo/doc/<change>/article.md`
30
- - `speculo/.speculo/doc/<change>/beat-log.md`
31
- - 每轮 2-3 个候选下一个 beat
32
-
33
- ### 执行原则
34
-
35
- beat 是旅程中的一个动作:铺开一个场景、落下一个观点、提出一个问题、插入旁白或扭转角度。一个 beat 可以是一句话、一小段或几段;如果需要 5 段和 3 个小标题,它就不是一个 beat,必须拆开。
36
-
37
- 每次只追加一个 beat。不要提前写后续内容。每次写入前都从磁盘重新读取 `article.md`,保留用户编辑。用户要求重写某个 beat 或回到某个 beat 试另一个方向时,只编辑对应区域。
38
-
39
- 文章在旅程完成时结束,不要求素材堆清空。
40
-
41
- ## 阶段
42
-
43
- ### 1. Beat Options — 候选 beat
44
- - 规范:`writing-beats-options.md`
45
- - 模板:`../_templates/writing-beat-options-template.md`
46
- - 产物:`beat-log.md`
47
- - 完成准则:
48
- - 已展示 2-3 个候选起始或下一个 beat
49
- - 已记录用户选择和选择理由
50
-
51
- ### 2. Beat Append — 写入当前 beat
52
- - 规范:`writing-beats-append.md`
53
- - 模板:`../_templates/writing-article-template.md`
54
- - 产物:`article.md`
55
- - 完成准则:
56
- - 只写入当前选定 beat
57
- - 写入前已重新读取 `article.md`
58
- - `article.md` 无残留 `[TODO:]`
59
-
60
- ## 依赖
61
-
62
- - 软依赖:`../F-writing-fragments/F-writing-fragments.md`,scope: same-change
63
- - 硬依赖:无;用户也可以直接提供素材文件
64
-
65
- ## 状态扩展字段
66
-
67
- 本工作流需在同 change 的 `.status.json` 追加:
68
-
69
- - `doc_entry` (string) — 固定为 `doc/B`
70
- - `source_material_paths` (array) — 素材来源路径
71
- - `document_paths` (array) — 至少包含 `article.md` 和 `beat-log.md`
72
- - `beat_count` (number) — 已写入 beat 数量
73
- - `current_beat_status` (choosing | appended | revising | completed | blocked) — 当前 beat 状态
74
-
75
- ## 完成与状态更新
76
-
77
- - 进入每个 phase 时更新 `current_phase` 和 `phase_history`。
78
- - 每次写入 beat 后更新 `beat_count`、`current_beat_status` 和 `updated_at`。
79
- - 文章自然结束且用户确认后,调用 `../../commands/archive.md` 归档 change;不得自行写入 `change_status: completed`。
@@ -1,31 +0,0 @@
1
- # Beat Append Phase
2
-
3
- ## 输入
4
-
5
- - 用户在 Beat Options 阶段选择的 beat
6
- - 原始素材 Markdown,或 `speculo/.speculo/doc/<change>/fragments.md`
7
- - `speculo/.speculo/doc/<change>/article.md`
8
-
9
- ## 产物
10
-
11
- - `speculo/.speculo/doc/<change>/article.md`,由 `../_templates/writing-article-template.md` 填写或追加
12
-
13
- ## 填写引导
14
-
15
- 1. 写入前重新读取 `article.md`。
16
- 2. 从素材堆中抽取内容来填充当前 beat,可以改写、拆分、重组或引用。
17
- 3. 只写当前 beat,写完就停。
18
- 4. beat 长度由它自身需要决定;过长时拆成后续 beat。
19
- 5. 写入后更新 `beat-log.md`,记录实际写入摘要和下一轮可转向方向。
20
-
21
- ## 边界
22
-
23
- - 不提前写下一个 beat。
24
- - 不忽略用户在上一轮之后对文章做的编辑。
25
- - 不因为素材未用完而强行继续。
26
-
27
- ## 完成准则
28
-
29
- - 当前 beat 已写入 `article.md`
30
- - 已更新 `.status.json` 的 `beat_count` 和 `current_beat_status`
31
- - `article.md` 无残留 `[TODO:]`
@@ -1,29 +0,0 @@
1
- # Beat Options Phase
2
-
3
- ## 输入
4
-
5
- - 原始素材 Markdown,或 `speculo/.speculo/doc/<change>/fragments.md`
6
- - `speculo/.speculo/doc/<change>/article.md` 的当前内容;如果不存在,视为空文章
7
- - `speculo/.speculo/doc/<change>/beat-log.md`
8
-
9
- ## 产物
10
-
11
- - `speculo/.speculo/doc/<change>/beat-log.md`,由 `../_templates/writing-beat-options-template.md` 填写或追加
12
-
13
- ## 填写引导
14
-
15
- 1. 完整读取素材和当前文章。
16
- 2. 若文章为空,提出 2-3 个候选起始 beat;每个代表不同入口。
17
- 3. 若文章已有内容,提出 2-3 个候选下一个 beat;每个代表从当前位置可以转向的不同方向。
18
- 4. 候选只做预览,不写入 `article.md`。
19
- 5. 要求用户选择一个候选,或组合出混合版本。
20
-
21
- ## 边界
22
-
23
- - 不一次性规划完整提纲。
24
- - 不写入文章正文。
25
-
26
- ## 完成准则
27
-
28
- - `beat-log.md` 已记录候选、推荐选项、用户选择或 blocked 原因
29
- - 用户已选择当前要写的 beat,或明确要求暂停
@@ -1,79 +0,0 @@
1
- ---
2
- id: doc/edit-article
3
- category: doc
4
- name: Edit Article
5
- description: 通过重组章节、提升清晰度、收紧表达来编辑和改进文章草稿
6
- keywords: [edit, article, revise, clarity, draft, 编辑, 修订]
7
- ---
8
-
9
- # Edit Article 工作流执行指引
10
-
11
- 本工作流用于编辑已有文章草稿。先按标题和信息依赖确认章节顺序,再逐节重写,提升清晰度、连贯性和流畅度。
12
-
13
- > **目录命名:** `<change>` 必须为 `YYYY-MM-DD-<kebab-name>`(例:`2026-06-12-edit-article`)。产物写入 `speculo/.speculo/doc/<change>/`。
14
-
15
- ## 内置指引
16
-
17
- ### 何时使用
18
-
19
- 当用户想编辑、修订、改进文章草稿,或要求重组章节、收紧表达、提升清晰度时使用。
20
-
21
- ### 输入
22
-
23
- - 用户提供的文章草稿路径,或 `speculo/.speculo/doc/<change>/article.md`
24
- - 用户明确的发布目标、语气偏好或约束
25
- - 当前 doc change 目录:`speculo/.speculo/doc/<change>/`(`<change>` 必须为 `YYYY-MM-DD-<kebab-name>`,例:`2026-06-12-edit-article`)
26
-
27
- ### 输出
28
-
29
- - `speculo/.speculo/doc/<change>/edit-plan.md`
30
- - `speculo/.speculo/doc/<change>/edited-article.md`
31
- - 已确认的章节顺序、依赖关系和逐节编辑结果
32
-
33
- ### 执行原则
34
-
35
- 首先根据标题把文章分成多个章节,思考每个章节表达的主要观点。把信息视为有向无环图:某些信息片段依赖其他信息片段,章节顺序和内容顺序必须尊重这些依赖。
36
-
37
- 与用户确认章节后再逐节重写。每段最多 240 个字符。编辑时优先提升清晰度、连贯性和流畅度,不改变用户没有授权改变的核心主张。
38
-
39
- ## 阶段
40
-
41
- ### 1. Edit Plan — 章节与依赖确认
42
- - 规范:`edit-article-plan.md`
43
- - 模板:`../_templates/edit-article-plan-template.md`
44
- - 产物:`edit-plan.md`
45
- - 完成准则:
46
- - 已按章节列出主观点和依赖关系
47
- - 用户已确认章节顺序或给出修改意见
48
- - `edit-plan.md` 无残留 `[TODO:]`
49
-
50
- ### 2. Section Rewrite — 逐节重写
51
- - 规范:`edit-article-rewrite.md`
52
- - 模板:`../_templates/edit-article-template.md`
53
- - 产物:`edited-article.md`
54
- - 完成准则:
55
- - 已按确认顺序逐节编辑
56
- - 每段不超过 240 个字符,除非用户明确要求保留长段
57
- - `edited-article.md` 无残留 `[TODO:]`
58
-
59
- ## 依赖
60
-
61
- - 软依赖:`../S-writing-shape/S-writing-shape.md` 或 `../B-writing-beats/B-writing-beats.md`,scope: same-change
62
- - 硬依赖:无;用户也可以直接提供草稿文件
63
-
64
- ## 状态扩展字段
65
-
66
- 本工作流需在同 change 的 `.status.json` 追加:
67
-
68
- - `doc_entry` (string) — 固定为 `doc/E`
69
- - `draft_paths` (array) — 草稿来源路径
70
- - `document_paths` (array) — 至少包含 `edit-plan.md` 和 `edited-article.md`
71
- - `section_count` (number) — 已识别章节数
72
- - `edit_status` (planning | rewriting | reviewed | completed | blocked) — 编辑状态
73
-
74
- ## 完成与状态更新
75
-
76
- - 进入每个 phase 时更新 `current_phase` 和 `phase_history`。
77
- - 完成 edit plan 后更新 `section_count` 和 `edit_status`。
78
- - 每节重写后更新 `updated_at` 和 `edit_status`。
79
- - 用户确认 edited article 完成后,调用 `../../commands/archive.md` 归档 change;不得自行写入 `change_status: completed`。
@@ -1,30 +0,0 @@
1
- # Edit Plan Phase
2
-
3
- ## 输入
4
-
5
- - 用户提供的文章草稿路径,或 `speculo/.speculo/doc/<change>/article.md`
6
- - 用户明确的语气、长度、发布目标和不可改变的主张
7
-
8
- ## 产物
9
-
10
- - `speculo/.speculo/doc/<change>/edit-plan.md`,由 `../_templates/edit-article-plan-template.md` 填写
11
-
12
- ## 填写引导
13
-
14
- 1. 完整读取草稿。
15
- 2. 根据标题和内容把文章分成章节。
16
- 3. 为每个章节写出主要观点。
17
- 4. 把信息依赖视为有向无环图,检查章节顺序是否尊重依赖关系。
18
- 5. 标出需要移动、合并、删除或拆分的章节。
19
- 6. 与用户确认章节顺序;未确认前不要重写全文。
20
-
21
- ## 边界
22
-
23
- - 不直接开始润色全文。
24
- - 不改变用户核心主张。
25
-
26
- ## 完成准则
27
-
28
- - `edit-plan.md` 已记录章节、主观点、依赖关系和推荐顺序
29
- - 用户已确认编辑计划,或明确指出要调整的章节
30
- - `edit-plan.md` 无残留 `[TODO:]`
@@ -1,31 +0,0 @@
1
- # Section Rewrite Phase
2
-
3
- ## 输入
4
-
5
- - `speculo/.speculo/doc/<change>/edit-plan.md`
6
- - 用户确认后的章节顺序
7
- - 原始草稿
8
-
9
- ## 产物
10
-
11
- - `speculo/.speculo/doc/<change>/edited-article.md`,由 `../_templates/edit-article-template.md` 填写
12
-
13
- ## 填写引导
14
-
15
- 1. 按确认后的章节顺序逐节编辑。
16
- 2. 重写每节以提升清晰度、连贯性和流畅度。
17
- 3. 每段最多 240 个字符;超过时拆段。
18
- 4. 保留必要的术语、代码实体、引用和用户明确要求保留的句子。
19
- 5. 若某节依赖前文未解释的信息,调整顺序或补最小必要上下文。
20
- 6. 每完成一节,允许用户审阅并要求局部修改。
21
-
22
- ## 边界
23
-
24
- - 不新增用户没有授权的新论点。
25
- - 不把文章改成另一种发布平台格式,除非用户明确要求。
26
-
27
- ## 完成准则
28
-
29
- - 已按 `edit-plan.md` 完成所有确认章节
30
- - `.status.json` 的 `edit_status` 已更新
31
- - `edited-article.md` 无残留 `[TODO:]`
@@ -1,80 +0,0 @@
1
- ---
2
- id: doc/writing-fragments
3
- category: doc
4
- name: Writing Fragments
5
- description: 通过追问式访谈采集异质写作素材,并追加到当前 doc change 的 fragments 文档
6
- keywords: [fragments, ideate, raw material, writing, 写作素材]
7
- ---
8
-
9
- # Writing Fragments 工作流执行指引
10
-
11
- 本工作流用于在强加结构之前发展想法。它围绕用户想写的主题持续追问,捕捉 fragment,并把素材追加到当前 doc change 的 `fragments.md`。
12
-
13
- > **目录命名:** `<change>` 必须为 `YYYY-MM-DD-<kebab-name>`(例:`2026-06-12-collect-ideas`)。产物写入 `speculo/.speculo/doc/<change>/`。
14
-
15
- ## 内置指引
16
-
17
- ### 何时使用
18
-
19
- 当用户想发展想法、采集写作原材料,或提到 `fragments`、`ideate`、`raw material`、素材、片段时使用。
20
-
21
- ### 输入
22
-
23
- - 用户给出的主题、初始 prompt 或已有素材
24
- - 用户在会话中补充的主张、小场景、锋利句子、半成形想法
25
- - 当前 doc change 目录:`speculo/.speculo/doc/<change>/`(`<change>` 必须为 `YYYY-MM-DD-<kebab-name>`,例:`2026-06-12-collect-ideas`)
26
-
27
- ### 输出
28
-
29
- - `speculo/.speculo/doc/<change>/fragments.md`
30
- - `speculo/.speculo/doc/<change>/interview-log.md`
31
- - 可继续用于 `../B-writing-beats/B-writing-beats.md` 或 `../S-writing-shape/S-writing-shape.md` 的素材堆
32
-
33
- ### 执行原则
34
-
35
- 从用户说的第一句话开始捕捉 fragment,包括初始 prompt。不要强加阶段、提纲或结构;本 workflow 的目标是让素材变多、变锋利,而不是过早排序。
36
-
37
- fragment 是任何可能保留到最终文章中的文字片段。它必须能被作者读懂,但不需要让陌生读者立刻看懂。判断标准是“这是不是一段好文字”,不是“这是不是一个自洽论证”。
38
-
39
- 第一次写入 `fragments.md` 时,在顶部放一个 H1 作为工作标题;除此之外不要放 metadata、TOC 或日期。fragments 之间用水平分隔线分隔。正文内部不要标题、标签或人为顺序。
40
-
41
- 每次写入前都重新读取 `fragments.md`,保留用户在会话期间做的编辑。不要覆盖文件;只追加,除非用户明确要求原地编辑、删除或合并某个 fragment。
42
-
43
- ## 阶段
44
-
45
- ### 1. Fragment Interview — 追问式采集
46
- - 规范:`writing-fragments-interview.md`
47
- - 模板:`../_templates/writing-fragments-template.md`
48
- - 产物:`fragments.md`
49
- - 完成准则:
50
- - 已把本轮出现的可保留 fragment 追加到 `fragments.md`
51
- - `fragments.md` 无残留 `[TODO:]`
52
-
53
- ### 2. Interview Log — 采集状态记录
54
- - 规范:`writing-fragments-log.md`
55
- - 模板:`../_templates/writing-interview-log-template.md`
56
- - 产物:`interview-log.md`
57
- - 完成准则:
58
- - 已记录追问方向、已采集素材类型和下一轮高价值问题
59
- - `interview-log.md` 无残留 `[TODO:]`
60
-
61
- ## 依赖
62
-
63
- - 软依赖:无
64
- - 硬依赖:无
65
-
66
- ## 状态扩展字段
67
-
68
- 本工作流需在同 change 的 `.status.json` 追加:
69
-
70
- - `doc_entry` (string) — 固定为 `doc/F`
71
- - `source_material_paths` (array) — 用户提供或本 workflow 读取的素材路径
72
- - `document_paths` (array) — 至少包含 `fragments.md`
73
- - `fragment_count` (number) — 当前已采集 fragment 数量
74
- - `writing_status` (collecting | paused | completed | blocked) — 素材采集状态
75
-
76
- ## 完成与状态更新
77
-
78
- - 进入每个 phase 时更新 `current_phase` 和 `phase_history`。
79
- - 每次追加 fragment 后更新 `updated_at`、`document_paths` 和 `fragment_count`。
80
- - 本 workflow 完成后不自动完成 change;默认可继续移交 `../B-writing-beats/B-writing-beats.md`、`../S-writing-shape/S-writing-shape.md` 或按用户要求停止。
@@ -1,32 +0,0 @@
1
- # Fragment Interview Phase
2
-
3
- ## 输入
4
-
5
- - 用户的主题、初始 prompt 或已有素材
6
- - `speculo/.speculo/doc/<change>/fragments.md` 的当前内容;若不存在,按模板创建
7
- - 当前对话中出现的主张、小场景、锋利句子、半成形想法、引用或观察
8
-
9
- ## 产物
10
-
11
- - `speculo/.speculo/doc/<change>/fragments.md`,由 `../_templates/writing-fragments-template.md` 填写或追加
12
-
13
- ## 填写引导
14
-
15
- 1. 如果 `fragments.md` 不存在,先创建 H1 工作标题。
16
- 2. 持续追问用户“你到底注意到了什么”,不要强加提纲、阶段或文章结构。
17
- 3. 任一方产生可保留 fragment 时,先重新读取 `fragments.md`,再追加到文件末尾。
18
- 4. fragment 之间使用独立的 `---` 分隔。
19
- 5. fragment 可以是句子、段落、列表、代码、引用或一组相关观察,以素材自然形态为准。
20
- 6. 用户要求“删掉最后一个”“改得更锋利”“合并那两个”时,按具体 fragment 原地编辑,其他内容保持不变。
21
-
22
- ## 边界
23
-
24
- - 不塑造文章结构。
25
- - 不添加 metadata、TOC、日期、标签。
26
- - 不为了保存每个 fragment 反复询问许可。
27
-
28
- ## 完成准则
29
-
30
- - 本轮值得保留的 fragment 已写入 `fragments.md`
31
- - 写入前已重新读取文件并保留用户编辑
32
- - `fragments.md` 无残留 `[TODO:]`
@@ -1,29 +0,0 @@
1
- # Interview Log Phase
2
-
3
- ## 输入
4
-
5
- - `speculo/.speculo/doc/<change>/fragments.md`
6
- - 本轮访谈对话
7
- - 用户明确指出的删除、重写、合并或保留偏好
8
-
9
- ## 产物
10
-
11
- - `speculo/.speculo/doc/<change>/interview-log.md`,由 `../_templates/writing-interview-log-template.md` 填写
12
-
13
- ## 填写引导
14
-
15
- 1. 记录本轮追问方向,不要把 log 写成文章提纲。
16
- 2. 标出已采集 fragment 的类型:主张、小场景、锋利句子、半成形想法、引用、观察组等。
17
- 3. 标出下一轮最值得追问的 1-3 个方向。
18
- 4. 记录用户对语气、删改、保留的偏好。
19
-
20
- ## 边界
21
-
22
- - 不重排 `fragments.md`。
23
- - 不替用户决定最终文章结构。
24
-
25
- ## 完成准则
26
-
27
- - `interview-log.md` 能让下一次会话继续访谈
28
- - 已更新 `.status.json` 的 `fragment_count` 和 `writing_status`
29
- - `interview-log.md` 无残留 `[TODO:]`
@@ -1,81 +0,0 @@
1
- ---
2
- id: doc/writing-shape
3
- category: doc
4
- name: Writing Shape
5
- description: 读取原始素材 Markdown,并通过对话式会话塑造成可发布文章
6
- keywords: [shape, article, markdown, draft, writing, 塑形]
7
- ---
8
-
9
- # Writing Shape 工作流执行指引
10
-
11
- 本工作流用于把一份原始素材 Markdown 文件塑造成独立文章。素材堆只读;文章产物默认写入当前 doc change 的 `article.md`。
12
-
13
- > **目录命名:** `<change>` 必须为 `YYYY-MM-DD-<kebab-name>`(例:`2026-06-12-shape-article`)。产物写入 `speculo/.speculo/doc/<change>/`。
14
-
15
- ## 内置指引
16
-
17
- ### 何时使用
18
-
19
- 当用户有一堆笔记、fragments 或粗稿,并想把它变成可发布内容时使用。
20
-
21
- ### 输入
22
-
23
- - 用户提供的原始素材 Markdown 路径,或 `speculo/.speculo/doc/<change>/fragments.md`
24
- - 当前文章文件:默认 `speculo/.speculo/doc/<change>/article.md`
25
- - 当前 doc change 目录:`speculo/.speculo/doc/<change>/`(`<change>` 必须为 `YYYY-MM-DD-<kebab-name>`,例:`2026-06-12-shape-article`)
26
-
27
- ### 输出
28
-
29
- - `speculo/.speculo/doc/<change>/article.md`
30
- - `speculo/.speculo/doc/<change>/shape-log.md`
31
- - 已确认的开头、论点顺序、格式选择和缺口
32
-
33
- ### 执行原则
34
-
35
- 先从头到尾读完素材堆,再做其他事。不要编辑原始素材文件,它对本 workflow 是只读的。
36
-
37
- 这是反向的追问式会话:问题不是“你注意到了什么”,而是“这篇文章到底在论证什么,读者需要按什么顺序听到它”。要反驳虚弱的转场;如果一段话没有赢得自己的位置,就删掉它。
38
-
39
- 每个块达成一致后立即追加到 `article.md`。每次写入前都重新读取文章文件,保留用户编辑。
40
-
41
- ## 阶段
42
-
43
- ### 1. Opening Choice — 候选开头
44
- - 规范:`writing-shape-opening.md`
45
- - 模板:`../_templates/writing-shape-log-template.md`
46
- - 产物:`shape-log.md`
47
- - 完成准则:
48
- - 已完整读取素材
49
- - 已展示 2-3 个候选开头
50
- - 用户已选择或组合出开头
51
-
52
- ### 2. Block Shaping — 逐块塑形
53
- - 规范:`writing-shape-block.md`
54
- - 模板:`../_templates/writing-article-template.md`
55
- - 产物:`article.md`
56
- - 完成准则:
57
- - 每个写入块都有明确功能和格式选择
58
- - 写入前已重新读取 `article.md`
59
- - `article.md` 无残留 `[TODO:]`
60
-
61
- ## 依赖
62
-
63
- - 软依赖:`../F-writing-fragments/F-writing-fragments.md`,scope: same-change
64
- - 硬依赖:无;用户也可以直接提供素材文件
65
-
66
- ## 状态扩展字段
67
-
68
- 本工作流需在同 change 的 `.status.json` 追加:
69
-
70
- - `doc_entry` (string) — 固定为 `doc/S`
71
- - `source_material_paths` (array) — 只读素材来源路径
72
- - `document_paths` (array) — 至少包含 `article.md` 和 `shape-log.md`
73
- - `opening_status` (unselected | selected | revised) — 开头状态
74
- - `format_decisions` (array) — prose、list、table、callout、quote、code 等格式选择记录
75
- - `writing_status` (shaping | revising | completed | blocked) — 文章塑形状态
76
-
77
- ## 完成与状态更新
78
-
79
- - 进入每个 phase 时更新 `current_phase` 和 `phase_history`。
80
- - 每次写入块后更新 `format_decisions`、`writing_status` 和 `updated_at`。
81
- - 文章完成由用户决定;用户确认完成后,调用 `../../commands/archive.md` 归档 change;不得自行写入 `change_status: completed`。