intent-planner 0.13.1

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 (334) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +225 -0
  3. package/README.md +225 -0
  4. package/bin/cli.mjs +289 -0
  5. package/package.json +46 -0
  6. package/src/install.mjs +527 -0
  7. package/templates/en/agents/claude/CLAUDE.md +62 -0
  8. package/templates/en/agents/codex/AGENTS.md +62 -0
  9. package/templates/en/agents/gemini/GEMINI.md +62 -0
  10. package/templates/en/claude/skills/CONTRACT.md +86 -0
  11. package/templates/en/claude/skills/intent-compass/SKILL.md +55 -0
  12. package/templates/en/claude/skills/intent-compass/rules/algo-qoc.md +62 -0
  13. package/templates/en/claude/skills/intent-compass/rules/constraint-surfacing.md +41 -0
  14. package/templates/en/claude/skills/intent-discover/SKILL.md +63 -0
  15. package/templates/en/claude/skills/intent-discover/rules/algo-drift-analysis.md +34 -0
  16. package/templates/en/claude/skills/intent-discover/rules/algo-gore-lite.md +35 -0
  17. package/templates/en/claude/skills/intent-discover/rules/algo-impact-analysis.md +37 -0
  18. package/templates/en/claude/skills/intent-discover/rules/algo-intent-recovery.md +39 -0
  19. package/templates/en/claude/skills/intent-discover/rules/designer-questions.md +78 -0
  20. package/templates/en/claude/skills/intent-discover/rules/drift-terrain.md +105 -0
  21. package/templates/en/claude/skills/intent-discover/rules/mode-selection.md +31 -0
  22. package/templates/en/claude/skills/intent-export-cc-sdd/SKILL.md +88 -0
  23. package/templates/en/claude/skills/intent-export-cc-sdd/rules/drift-export-check.md +75 -0
  24. package/templates/en/claude/skills/intent-export-cc-sdd/rules/export-questions.md +23 -0
  25. package/templates/en/claude/skills/intent-export-cc-sdd/rules/map-cc-sdd.md +62 -0
  26. package/templates/en/claude/skills/intent-export-openspec/SKILL.md +90 -0
  27. package/templates/en/claude/skills/intent-export-openspec/rules/drift-export-check.md +50 -0
  28. package/templates/en/claude/skills/intent-export-openspec/rules/export-questions.md +23 -0
  29. package/templates/en/claude/skills/intent-export-openspec/rules/map-openspec.md +75 -0
  30. package/templates/en/claude/skills/intent-from-spec/SKILL.md +60 -0
  31. package/templates/en/claude/skills/intent-from-spec/rules/extract-intent.md +56 -0
  32. package/templates/en/claude/skills/intent-from-spec/rules/gap-readout.md +54 -0
  33. package/templates/en/claude/skills/intent-from-spec/rules/load-bearing.md +48 -0
  34. package/templates/en/claude/skills/intent-from-spec/rules/omission-recap.md +42 -0
  35. package/templates/en/claude/skills/intent-improve/SKILL.md +70 -0
  36. package/templates/en/claude/skills/intent-improve/rules/improve-axes.md +121 -0
  37. package/templates/en/claude/skills/intent-overview/SKILL.md +63 -0
  38. package/templates/en/claude/skills/intent-overview/rules/aggregate-sources.md +61 -0
  39. package/templates/en/claude/skills/intent-overview/rules/gap-readout.md +54 -0
  40. package/templates/en/claude/skills/intent-overview/rules/mermaid-tree.md +78 -0
  41. package/templates/en/claude/skills/intent-overview/rules/progress-readout.md +119 -0
  42. package/templates/en/claude/skills/intent-packets/SKILL.md +97 -0
  43. package/templates/en/claude/skills/intent-packets/rules/algo-additive-slicing.md +55 -0
  44. package/templates/en/claude/skills/intent-packets/rules/algo-characterization-test.md +40 -0
  45. package/templates/en/claude/skills/intent-packets/rules/algo-example-mapping.md +47 -0
  46. package/templates/en/claude/skills/intent-packets/rules/algo-migration-slicing.md +47 -0
  47. package/templates/en/claude/skills/intent-packets/rules/decision-slots.md +88 -0
  48. package/templates/en/claude/skills/intent-packets/rules/export-route.md +54 -0
  49. package/templates/en/claude/skills/intent-packets/rules/first-packet.md +35 -0
  50. package/templates/en/claude/skills/intent-packets/rules/packet-format.md +207 -0
  51. package/templates/en/claude/skills/intent-packets/rules/walking-skeleton.md +35 -0
  52. package/templates/en/claude/skills/intent-release-note/SKILL.md +58 -0
  53. package/templates/en/claude/skills/intent-release-note/rules/format-changelog.md +40 -0
  54. package/templates/en/claude/skills/intent-release-note/rules/format-github-releases.md +41 -0
  55. package/templates/en/claude/skills/intent-release-note/rules/format-select.md +32 -0
  56. package/templates/en/claude/skills/intent-release-note/rules/source-scope.md +42 -0
  57. package/templates/en/claude/skills/intent-status/SKILL.md +171 -0
  58. package/templates/en/claude/skills/intent-status/rules/decision-table.md +47 -0
  59. package/templates/en/claude/skills/intent-to-spec/SKILL.md +68 -0
  60. package/templates/en/claude/skills/intent-to-spec/rules/fabrication-guard.md +41 -0
  61. package/templates/en/claude/skills/intent-to-spec/rules/format-integrated.md +42 -0
  62. package/templates/en/claude/skills/intent-to-spec/rules/format-nonprogram.md +45 -0
  63. package/templates/en/claude/skills/intent-to-spec/rules/format-upstream.md +41 -0
  64. package/templates/en/claude/skills/intent-to-spec/rules/source-scope.md +50 -0
  65. package/templates/en/claude/skills/intent-validate/SKILL.md +80 -0
  66. package/templates/en/claude/skills/intent-validate/rules/validate-checks.md +121 -0
  67. package/templates/en/claude/skills/intent-writeback/SKILL.md +71 -0
  68. package/templates/en/claude/skills/intent-writeback/rules/writeback-protocol.md +139 -0
  69. package/templates/en/codex/skills/CONTRACT.md +77 -0
  70. package/templates/en/codex/skills/intent-compass/SKILL.md +52 -0
  71. package/templates/en/codex/skills/intent-compass/rules/algo-qoc.md +62 -0
  72. package/templates/en/codex/skills/intent-compass/rules/constraint-surfacing.md +41 -0
  73. package/templates/en/codex/skills/intent-discover/SKILL.md +60 -0
  74. package/templates/en/codex/skills/intent-discover/rules/algo-drift-analysis.md +34 -0
  75. package/templates/en/codex/skills/intent-discover/rules/algo-gore-lite.md +35 -0
  76. package/templates/en/codex/skills/intent-discover/rules/algo-impact-analysis.md +37 -0
  77. package/templates/en/codex/skills/intent-discover/rules/algo-intent-recovery.md +39 -0
  78. package/templates/en/codex/skills/intent-discover/rules/designer-questions.md +78 -0
  79. package/templates/en/codex/skills/intent-discover/rules/drift-terrain.md +105 -0
  80. package/templates/en/codex/skills/intent-discover/rules/mode-selection.md +31 -0
  81. package/templates/en/codex/skills/intent-export-cc-sdd/SKILL.md +85 -0
  82. package/templates/en/codex/skills/intent-export-cc-sdd/rules/drift-export-check.md +75 -0
  83. package/templates/en/codex/skills/intent-export-cc-sdd/rules/export-questions.md +23 -0
  84. package/templates/en/codex/skills/intent-export-cc-sdd/rules/map-cc-sdd.md +62 -0
  85. package/templates/en/codex/skills/intent-export-openspec/SKILL.md +87 -0
  86. package/templates/en/codex/skills/intent-export-openspec/rules/drift-export-check.md +50 -0
  87. package/templates/en/codex/skills/intent-export-openspec/rules/export-questions.md +23 -0
  88. package/templates/en/codex/skills/intent-export-openspec/rules/map-openspec.md +75 -0
  89. package/templates/en/codex/skills/intent-from-spec/SKILL.md +58 -0
  90. package/templates/en/codex/skills/intent-from-spec/rules/extract-intent.md +56 -0
  91. package/templates/en/codex/skills/intent-from-spec/rules/gap-readout.md +54 -0
  92. package/templates/en/codex/skills/intent-from-spec/rules/load-bearing.md +48 -0
  93. package/templates/en/codex/skills/intent-from-spec/rules/omission-recap.md +42 -0
  94. package/templates/en/codex/skills/intent-improve/SKILL.md +67 -0
  95. package/templates/en/codex/skills/intent-improve/rules/improve-axes.md +121 -0
  96. package/templates/en/codex/skills/intent-overview/SKILL.md +61 -0
  97. package/templates/en/codex/skills/intent-overview/rules/aggregate-sources.md +61 -0
  98. package/templates/en/codex/skills/intent-overview/rules/gap-readout.md +54 -0
  99. package/templates/en/codex/skills/intent-overview/rules/mermaid-tree.md +78 -0
  100. package/templates/en/codex/skills/intent-overview/rules/progress-readout.md +119 -0
  101. package/templates/en/codex/skills/intent-packets/SKILL.md +94 -0
  102. package/templates/en/codex/skills/intent-packets/rules/algo-additive-slicing.md +55 -0
  103. package/templates/en/codex/skills/intent-packets/rules/algo-characterization-test.md +40 -0
  104. package/templates/en/codex/skills/intent-packets/rules/algo-example-mapping.md +47 -0
  105. package/templates/en/codex/skills/intent-packets/rules/algo-migration-slicing.md +47 -0
  106. package/templates/en/codex/skills/intent-packets/rules/decision-slots.md +88 -0
  107. package/templates/en/codex/skills/intent-packets/rules/export-route.md +54 -0
  108. package/templates/en/codex/skills/intent-packets/rules/first-packet.md +35 -0
  109. package/templates/en/codex/skills/intent-packets/rules/packet-format.md +207 -0
  110. package/templates/en/codex/skills/intent-packets/rules/walking-skeleton.md +35 -0
  111. package/templates/en/codex/skills/intent-release-note/SKILL.md +56 -0
  112. package/templates/en/codex/skills/intent-release-note/rules/format-changelog.md +40 -0
  113. package/templates/en/codex/skills/intent-release-note/rules/format-github-releases.md +41 -0
  114. package/templates/en/codex/skills/intent-release-note/rules/format-select.md +32 -0
  115. package/templates/en/codex/skills/intent-release-note/rules/source-scope.md +42 -0
  116. package/templates/en/codex/skills/intent-status/SKILL.md +169 -0
  117. package/templates/en/codex/skills/intent-status/rules/decision-table.md +47 -0
  118. package/templates/en/codex/skills/intent-to-spec/SKILL.md +66 -0
  119. package/templates/en/codex/skills/intent-to-spec/rules/fabrication-guard.md +41 -0
  120. package/templates/en/codex/skills/intent-to-spec/rules/format-integrated.md +42 -0
  121. package/templates/en/codex/skills/intent-to-spec/rules/format-nonprogram.md +45 -0
  122. package/templates/en/codex/skills/intent-to-spec/rules/format-upstream.md +41 -0
  123. package/templates/en/codex/skills/intent-to-spec/rules/source-scope.md +50 -0
  124. package/templates/en/codex/skills/intent-validate/SKILL.md +78 -0
  125. package/templates/en/codex/skills/intent-validate/rules/validate-checks.md +121 -0
  126. package/templates/en/codex/skills/intent-writeback/SKILL.md +68 -0
  127. package/templates/en/codex/skills/intent-writeback/rules/writeback-protocol.md +139 -0
  128. package/templates/en/intent/README.md +118 -0
  129. package/templates/en/intent/cc-sdd/README.md +28 -0
  130. package/templates/en/intent/compass-archive/README.md +9 -0
  131. package/templates/en/intent/compass-archive/archive/.gitkeep +0 -0
  132. package/templates/en/intent/compass-archive.md +7 -0
  133. package/templates/en/intent/constraint-library.md +32 -0
  134. package/templates/en/intent/constraint-starters.md +58 -0
  135. package/templates/en/intent/context-cost-cues.md +55 -0
  136. package/templates/en/intent/deltas/README.md +11 -0
  137. package/templates/en/intent/deltas/archive/.gitkeep +0 -0
  138. package/templates/en/intent/deltas.md +34 -0
  139. package/templates/en/intent/drift-log/README.md +11 -0
  140. package/templates/en/intent/drift-log/archive/.gitkeep +0 -0
  141. package/templates/en/intent/drift-log.md +41 -0
  142. package/templates/en/intent/drift-patterns.md +68 -0
  143. package/templates/en/intent/export-log/README.md +12 -0
  144. package/templates/en/intent/export-log/archive/.gitkeep +0 -0
  145. package/templates/en/intent/export-log.md +6 -0
  146. package/templates/en/intent/glossary.md +23 -0
  147. package/templates/en/intent/intent-compass.md +55 -0
  148. package/templates/en/intent/intent-tree.md +59 -0
  149. package/templates/en/intent/milestones/README.md +10 -0
  150. package/templates/en/intent/milestones/archive/.gitkeep +0 -0
  151. package/templates/en/intent/milestones.md +22 -0
  152. package/templates/en/intent/mode.local.md +23 -0
  153. package/templates/en/intent/mode.md +32 -0
  154. package/templates/en/intent/modes/README.md +28 -0
  155. package/templates/en/intent/modes/behavior-unknown.md +57 -0
  156. package/templates/en/intent/modes/feature-growth.md +57 -0
  157. package/templates/en/intent/modes/non-code.md +46 -0
  158. package/templates/en/intent/modes/refactor.md +56 -0
  159. package/templates/en/intent/modes/standard.md +50 -0
  160. package/templates/en/intent/nl-spec/README.md +18 -0
  161. package/templates/en/intent/openspec/proposal.md +15 -0
  162. package/templates/en/intent/openspec/spec-delta.md +25 -0
  163. package/templates/en/intent/overview/README.md +18 -0
  164. package/templates/en/intent/packets/README.md +29 -0
  165. package/templates/en/intent/packets/index.md +6 -0
  166. package/templates/en/intent/packets/plan.md +23 -0
  167. package/templates/en/intent/release-note/README.md +18 -0
  168. package/templates/en/intent/scripts/intent-check.mjs +786 -0
  169. package/templates/en/intent/scripts/pre-push +27 -0
  170. package/templates/en/intent/spec-ingest/README.md +18 -0
  171. package/templates/ja/agents/claude/CLAUDE.md +62 -0
  172. package/templates/ja/agents/codex/AGENTS.md +62 -0
  173. package/templates/ja/agents/gemini/GEMINI.md +62 -0
  174. package/templates/ja/claude/skills/CONTRACT.md +90 -0
  175. package/templates/ja/claude/skills/intent-compass/SKILL.md +55 -0
  176. package/templates/ja/claude/skills/intent-compass/rules/algo-qoc.md +62 -0
  177. package/templates/ja/claude/skills/intent-compass/rules/constraint-surfacing.md +41 -0
  178. package/templates/ja/claude/skills/intent-discover/SKILL.md +63 -0
  179. package/templates/ja/claude/skills/intent-discover/rules/algo-drift-analysis.md +34 -0
  180. package/templates/ja/claude/skills/intent-discover/rules/algo-gore-lite.md +35 -0
  181. package/templates/ja/claude/skills/intent-discover/rules/algo-impact-analysis.md +37 -0
  182. package/templates/ja/claude/skills/intent-discover/rules/algo-intent-recovery.md +39 -0
  183. package/templates/ja/claude/skills/intent-discover/rules/designer-questions.md +78 -0
  184. package/templates/ja/claude/skills/intent-discover/rules/drift-terrain.md +105 -0
  185. package/templates/ja/claude/skills/intent-discover/rules/mode-selection.md +31 -0
  186. package/templates/ja/claude/skills/intent-export-cc-sdd/SKILL.md +88 -0
  187. package/templates/ja/claude/skills/intent-export-cc-sdd/rules/drift-export-check.md +75 -0
  188. package/templates/ja/claude/skills/intent-export-cc-sdd/rules/export-questions.md +23 -0
  189. package/templates/ja/claude/skills/intent-export-cc-sdd/rules/map-cc-sdd.md +62 -0
  190. package/templates/ja/claude/skills/intent-export-openspec/SKILL.md +90 -0
  191. package/templates/ja/claude/skills/intent-export-openspec/rules/drift-export-check.md +50 -0
  192. package/templates/ja/claude/skills/intent-export-openspec/rules/export-questions.md +23 -0
  193. package/templates/ja/claude/skills/intent-export-openspec/rules/map-openspec.md +75 -0
  194. package/templates/ja/claude/skills/intent-from-spec/SKILL.md +60 -0
  195. package/templates/ja/claude/skills/intent-from-spec/rules/extract-intent.md +56 -0
  196. package/templates/ja/claude/skills/intent-from-spec/rules/gap-readout.md +54 -0
  197. package/templates/ja/claude/skills/intent-from-spec/rules/load-bearing.md +48 -0
  198. package/templates/ja/claude/skills/intent-from-spec/rules/omission-recap.md +42 -0
  199. package/templates/ja/claude/skills/intent-improve/SKILL.md +70 -0
  200. package/templates/ja/claude/skills/intent-improve/rules/improve-axes.md +121 -0
  201. package/templates/ja/claude/skills/intent-overview/SKILL.md +63 -0
  202. package/templates/ja/claude/skills/intent-overview/rules/aggregate-sources.md +61 -0
  203. package/templates/ja/claude/skills/intent-overview/rules/gap-readout.md +54 -0
  204. package/templates/ja/claude/skills/intent-overview/rules/mermaid-tree.md +78 -0
  205. package/templates/ja/claude/skills/intent-overview/rules/progress-readout.md +119 -0
  206. package/templates/ja/claude/skills/intent-packets/SKILL.md +97 -0
  207. package/templates/ja/claude/skills/intent-packets/rules/algo-additive-slicing.md +55 -0
  208. package/templates/ja/claude/skills/intent-packets/rules/algo-characterization-test.md +40 -0
  209. package/templates/ja/claude/skills/intent-packets/rules/algo-example-mapping.md +47 -0
  210. package/templates/ja/claude/skills/intent-packets/rules/algo-migration-slicing.md +47 -0
  211. package/templates/ja/claude/skills/intent-packets/rules/decision-slots.md +88 -0
  212. package/templates/ja/claude/skills/intent-packets/rules/export-route.md +54 -0
  213. package/templates/ja/claude/skills/intent-packets/rules/first-packet.md +35 -0
  214. package/templates/ja/claude/skills/intent-packets/rules/packet-format.md +207 -0
  215. package/templates/ja/claude/skills/intent-packets/rules/walking-skeleton.md +35 -0
  216. package/templates/ja/claude/skills/intent-release-note/SKILL.md +58 -0
  217. package/templates/ja/claude/skills/intent-release-note/rules/format-changelog.md +40 -0
  218. package/templates/ja/claude/skills/intent-release-note/rules/format-github-releases.md +41 -0
  219. package/templates/ja/claude/skills/intent-release-note/rules/format-select.md +32 -0
  220. package/templates/ja/claude/skills/intent-release-note/rules/source-scope.md +42 -0
  221. package/templates/ja/claude/skills/intent-status/SKILL.md +171 -0
  222. package/templates/ja/claude/skills/intent-status/rules/decision-table.md +47 -0
  223. package/templates/ja/claude/skills/intent-to-spec/SKILL.md +68 -0
  224. package/templates/ja/claude/skills/intent-to-spec/rules/fabrication-guard.md +41 -0
  225. package/templates/ja/claude/skills/intent-to-spec/rules/format-integrated.md +42 -0
  226. package/templates/ja/claude/skills/intent-to-spec/rules/format-nonprogram.md +45 -0
  227. package/templates/ja/claude/skills/intent-to-spec/rules/format-upstream.md +41 -0
  228. package/templates/ja/claude/skills/intent-to-spec/rules/source-scope.md +50 -0
  229. package/templates/ja/claude/skills/intent-validate/SKILL.md +80 -0
  230. package/templates/ja/claude/skills/intent-validate/rules/validate-checks.md +121 -0
  231. package/templates/ja/claude/skills/intent-writeback/SKILL.md +71 -0
  232. package/templates/ja/claude/skills/intent-writeback/rules/writeback-protocol.md +139 -0
  233. package/templates/ja/codex/skills/CONTRACT.md +81 -0
  234. package/templates/ja/codex/skills/intent-compass/SKILL.md +52 -0
  235. package/templates/ja/codex/skills/intent-compass/rules/algo-qoc.md +62 -0
  236. package/templates/ja/codex/skills/intent-compass/rules/constraint-surfacing.md +41 -0
  237. package/templates/ja/codex/skills/intent-discover/SKILL.md +60 -0
  238. package/templates/ja/codex/skills/intent-discover/rules/algo-drift-analysis.md +34 -0
  239. package/templates/ja/codex/skills/intent-discover/rules/algo-gore-lite.md +35 -0
  240. package/templates/ja/codex/skills/intent-discover/rules/algo-impact-analysis.md +37 -0
  241. package/templates/ja/codex/skills/intent-discover/rules/algo-intent-recovery.md +39 -0
  242. package/templates/ja/codex/skills/intent-discover/rules/designer-questions.md +78 -0
  243. package/templates/ja/codex/skills/intent-discover/rules/drift-terrain.md +105 -0
  244. package/templates/ja/codex/skills/intent-discover/rules/mode-selection.md +31 -0
  245. package/templates/ja/codex/skills/intent-export-cc-sdd/SKILL.md +85 -0
  246. package/templates/ja/codex/skills/intent-export-cc-sdd/rules/drift-export-check.md +75 -0
  247. package/templates/ja/codex/skills/intent-export-cc-sdd/rules/export-questions.md +23 -0
  248. package/templates/ja/codex/skills/intent-export-cc-sdd/rules/map-cc-sdd.md +62 -0
  249. package/templates/ja/codex/skills/intent-export-openspec/SKILL.md +87 -0
  250. package/templates/ja/codex/skills/intent-export-openspec/rules/drift-export-check.md +50 -0
  251. package/templates/ja/codex/skills/intent-export-openspec/rules/export-questions.md +23 -0
  252. package/templates/ja/codex/skills/intent-export-openspec/rules/map-openspec.md +75 -0
  253. package/templates/ja/codex/skills/intent-from-spec/SKILL.md +58 -0
  254. package/templates/ja/codex/skills/intent-from-spec/rules/extract-intent.md +56 -0
  255. package/templates/ja/codex/skills/intent-from-spec/rules/gap-readout.md +54 -0
  256. package/templates/ja/codex/skills/intent-from-spec/rules/load-bearing.md +48 -0
  257. package/templates/ja/codex/skills/intent-from-spec/rules/omission-recap.md +42 -0
  258. package/templates/ja/codex/skills/intent-improve/SKILL.md +67 -0
  259. package/templates/ja/codex/skills/intent-improve/rules/improve-axes.md +121 -0
  260. package/templates/ja/codex/skills/intent-overview/SKILL.md +61 -0
  261. package/templates/ja/codex/skills/intent-overview/rules/aggregate-sources.md +61 -0
  262. package/templates/ja/codex/skills/intent-overview/rules/gap-readout.md +54 -0
  263. package/templates/ja/codex/skills/intent-overview/rules/mermaid-tree.md +78 -0
  264. package/templates/ja/codex/skills/intent-overview/rules/progress-readout.md +119 -0
  265. package/templates/ja/codex/skills/intent-packets/SKILL.md +94 -0
  266. package/templates/ja/codex/skills/intent-packets/rules/algo-additive-slicing.md +55 -0
  267. package/templates/ja/codex/skills/intent-packets/rules/algo-characterization-test.md +40 -0
  268. package/templates/ja/codex/skills/intent-packets/rules/algo-example-mapping.md +47 -0
  269. package/templates/ja/codex/skills/intent-packets/rules/algo-migration-slicing.md +47 -0
  270. package/templates/ja/codex/skills/intent-packets/rules/decision-slots.md +88 -0
  271. package/templates/ja/codex/skills/intent-packets/rules/export-route.md +54 -0
  272. package/templates/ja/codex/skills/intent-packets/rules/first-packet.md +35 -0
  273. package/templates/ja/codex/skills/intent-packets/rules/packet-format.md +207 -0
  274. package/templates/ja/codex/skills/intent-packets/rules/walking-skeleton.md +35 -0
  275. package/templates/ja/codex/skills/intent-release-note/SKILL.md +56 -0
  276. package/templates/ja/codex/skills/intent-release-note/rules/format-changelog.md +40 -0
  277. package/templates/ja/codex/skills/intent-release-note/rules/format-github-releases.md +41 -0
  278. package/templates/ja/codex/skills/intent-release-note/rules/format-select.md +32 -0
  279. package/templates/ja/codex/skills/intent-release-note/rules/source-scope.md +42 -0
  280. package/templates/ja/codex/skills/intent-status/SKILL.md +169 -0
  281. package/templates/ja/codex/skills/intent-status/rules/decision-table.md +47 -0
  282. package/templates/ja/codex/skills/intent-to-spec/SKILL.md +66 -0
  283. package/templates/ja/codex/skills/intent-to-spec/rules/fabrication-guard.md +41 -0
  284. package/templates/ja/codex/skills/intent-to-spec/rules/format-integrated.md +42 -0
  285. package/templates/ja/codex/skills/intent-to-spec/rules/format-nonprogram.md +45 -0
  286. package/templates/ja/codex/skills/intent-to-spec/rules/format-upstream.md +41 -0
  287. package/templates/ja/codex/skills/intent-to-spec/rules/source-scope.md +50 -0
  288. package/templates/ja/codex/skills/intent-validate/SKILL.md +78 -0
  289. package/templates/ja/codex/skills/intent-validate/rules/validate-checks.md +121 -0
  290. package/templates/ja/codex/skills/intent-writeback/SKILL.md +68 -0
  291. package/templates/ja/codex/skills/intent-writeback/rules/writeback-protocol.md +139 -0
  292. package/templates/ja/intent/README.md +118 -0
  293. package/templates/ja/intent/cc-sdd/README.md +28 -0
  294. package/templates/ja/intent/compass-archive/README.md +9 -0
  295. package/templates/ja/intent/compass-archive/archive/.gitkeep +0 -0
  296. package/templates/ja/intent/compass-archive.md +7 -0
  297. package/templates/ja/intent/constraint-library.md +32 -0
  298. package/templates/ja/intent/constraint-starters.md +58 -0
  299. package/templates/ja/intent/context-cost-cues.md +55 -0
  300. package/templates/ja/intent/deltas/README.md +11 -0
  301. package/templates/ja/intent/deltas/archive/.gitkeep +0 -0
  302. package/templates/ja/intent/deltas.md +34 -0
  303. package/templates/ja/intent/drift-log/README.md +11 -0
  304. package/templates/ja/intent/drift-log/archive/.gitkeep +0 -0
  305. package/templates/ja/intent/drift-log.md +41 -0
  306. package/templates/ja/intent/drift-patterns.md +68 -0
  307. package/templates/ja/intent/export-log/README.md +12 -0
  308. package/templates/ja/intent/export-log/archive/.gitkeep +0 -0
  309. package/templates/ja/intent/export-log.md +6 -0
  310. package/templates/ja/intent/glossary.md +23 -0
  311. package/templates/ja/intent/intent-compass.md +55 -0
  312. package/templates/ja/intent/intent-tree.md +59 -0
  313. package/templates/ja/intent/milestones/README.md +10 -0
  314. package/templates/ja/intent/milestones/archive/.gitkeep +0 -0
  315. package/templates/ja/intent/milestones.md +22 -0
  316. package/templates/ja/intent/mode.local.md +23 -0
  317. package/templates/ja/intent/mode.md +32 -0
  318. package/templates/ja/intent/modes/README.md +28 -0
  319. package/templates/ja/intent/modes/behavior-unknown.md +57 -0
  320. package/templates/ja/intent/modes/feature-growth.md +57 -0
  321. package/templates/ja/intent/modes/non-code.md +46 -0
  322. package/templates/ja/intent/modes/refactor.md +56 -0
  323. package/templates/ja/intent/modes/standard.md +50 -0
  324. package/templates/ja/intent/nl-spec/README.md +18 -0
  325. package/templates/ja/intent/openspec/proposal.md +15 -0
  326. package/templates/ja/intent/openspec/spec-delta.md +25 -0
  327. package/templates/ja/intent/overview/README.md +18 -0
  328. package/templates/ja/intent/packets/README.md +29 -0
  329. package/templates/ja/intent/packets/index.md +6 -0
  330. package/templates/ja/intent/packets/plan.md +23 -0
  331. package/templates/ja/intent/release-note/README.md +18 -0
  332. package/templates/ja/intent/scripts/intent-check.mjs +786 -0
  333. package/templates/ja/intent/scripts/pre-push +27 -0
  334. package/templates/ja/intent/spec-ingest/README.md +18 -0
@@ -0,0 +1,47 @@
1
+ # Algorithm: Migration Slicing
2
+
3
+ 大きな変更を、振る舞いを保ったまま個別にデプロイできる「移行スライス」へ分解する技法。`refactor` モードの Packet 分解フェーズで使う。あるべき設計と現状の差分を、behavior-preserving / testable / rollbackable な単位に切り、現状から一歩ずつ進める道筋を導く。
4
+
5
+ ## 手順
6
+
7
+ 入力=refactor 対象の Intent(あるべき設計)と現状、Drift Analysis で出た drift リスト。
8
+
9
+ 1. **Mikado pre-pass: 前提を逆算する**
10
+ - 各 drift の解消(目標)について「これを安全に変えるには、先に何が真である必要があるか」を再帰的に逆算し、前提グラフ(Mikado Method の Mikado Graph)をインデント付きの箇条書きで書く。
11
+ - 前提を持たない**葉**が、最初に着手できる変更。これは計画時の机上の逆算であり、試しにコードを変えて確かめることはしない(実装時の「実験が失敗したら即座に戻し、葉から攻める」という Mikado の規律は、各スライスの Rollback に明記して export の実装ヒントへ流す)。
12
+
13
+ 2. **差分を最小の移行単位に切る**
14
+ - 現状 → あるべきの差分を、振る舞いを壊さずに適用できる最小の単位へ分割する。前提グラフの葉に近い変更からスライスを起こす(依存の発見はグラフ、単位の分解はスライス、と分けて考える)。
15
+ - 各スライスは単体でデプロイ可能で、既存の振る舞いを保ったまま設計を一歩進めるものにする。
16
+
17
+ 3. **依存順に並べ、unblock の連鎖にする**
18
+ - 各スライスを依存関係の順に並べ、前のスライスが次のスライスを unblock するようにする。
19
+ - どのスライスで止めても、その時点までの状態が一貫している(中間状態も behavior-preserving)ことを確認する。
20
+ - 依存制約の中で複数のスライスが着手可能な場合は、**リスク削減・後続スライスの解放が大きいものを先に**し、その理由を一文添える(数値スコアリングはしない。根拠の無い見せかけの定量化になる)。
21
+
22
+ 4. **各スライスに検証点と rollback を付ける**
23
+ - 各スライスに characterization / 回帰の検証点を付け、振る舞いが保たれていることを観測可能にする → **Validation**。
24
+ - 失敗時にどう戻すか(スライス単位で巻き戻せること)→ **Rollback**。
25
+
26
+ ## packet の組み立て
27
+
28
+ 順序付き移行スライス群を packet にまとめる。各 packet は次を満たす。
29
+
30
+ - **Parent Intent**: 対応する L1/L2/L3 への参照(必須)。drift 由来なら元の drift も示す。
31
+ - **Scope / Non-scope**: そのスライスが含む移行 / 含まない移行。
32
+ - **Expected Behavior**: 移行後も保たれる既存の振る舞い。
33
+ - **Safety / Invariants**: 移行中も崩してはならない不変条件。
34
+ - **Validation / Rollback**: 上記由来。
35
+ - **cc-sdd Mapping**: cc-sdd へどう渡すかの方針。
36
+
37
+ ## 規律
38
+
39
+ - 各スライスは **behavior-preserving / testable / rollbackable** であること。
40
+ - **drift トレーサビリティ**: 入力の drift リストにある各 drift は、スライス(packet)になるか、Open Questions / 理由付きの明示的な先送りになるか、必ずいずれかに終端させる。drift を黙って落とさない。
41
+ - スライスは依存順に並べ、各々が単体でデプロイ可能であること。
42
+ - 数は改修見込みの大きさに応じて可変とし、数合わせをしない(小規模なら 1 個でよい・1〜7 を緩い目安とする)。大きすぎるスライスは分割案を提示する。
43
+ - これは Intent の詰め方(packet 分解の技法)であって、移行の実行コードではない。コードを変更しない。
44
+
45
+ ## 出力
46
+
47
+ 順序付き移行スライス群。各スライスは上記構造を持ち、Scope / Validation / Rollback が各 packet に流れる。packet ファイル(`active/` 配下)を更新(案として提示)する。
@@ -0,0 +1,88 @@
1
+ # Decision Slots カタログ(完全性スキーマ)
2
+
3
+ 聞き漏らしやすい話題を「目次」として一覧化する**完全性スキーマ(completeness schema)の単一の正本**。要求本文の自由記述任せにせず、漏れの種類を構造的に限定する。`intent-discover`(posture 確認)・`intent-packets`(スロット播種)・`intent-validate`(充足検査)はこのカタログを単一参照として読む。
4
+
5
+ このカタログは「見本(漏れやすい話題の目次)」であって、固定の網ではない。プロジェクト種別での欠落補完は discover の posture 確認とモード別差分に委ねる。
6
+
7
+ ## 値域とステータス
8
+
9
+ 各スロットは値域 `確定値 | 未決定(理由付き)| 該当なし` のいずれかを取り、次の4ステータスのいずれかで**必ず閉じる**(「黙って飛ばす」を構造的に防ぐ)。
10
+
11
+ | ステータス | 意味 | 併記する内容 |
12
+ |------------|------|--------------|
13
+ | 回答済み | 確定値が決まっている | 確定値(packet の `## Decisions` または閉じ先の節) |
14
+ | 未定 | まだ決めていない(遅延中) | 理由・downstream への注意書き・再訪条件(Revisit when) |
15
+ | 非該当 | このスロットは当該 packet に該当しない | 該当しない根拠(黙って落とさない) |
16
+ | ADR候補へ送る | architecture-significant な決定 | compass の Decision Rules へ送る(前倒し固定の対象) |
17
+
18
+ - `回答済み` は値域 `確定値`、`未定` は値域 `未決定(理由付き)`、`非該当` は値域 `該当なし` に対応する。`ADR候補へ送る` は値が compass 側で確定するまでの宣言。
19
+ - 「閉じ先」が既存節(`## Validation` / `## Expected Behavior` 等)のスロットは、`## Decisions` に値を二重に書かず「既存節で閉じている」旨を宣言してよい(重複定義しない)。
20
+
21
+ ## 共通コアスロット(全モードで播く)
22
+
23
+ 全 packet に播く8スロット。前半4(④中心)は「制約下の意思決定」由来、後半4は既存成果物が未カバーだった欠落補完分。
24
+
25
+ | ID | スロット名 | 確認内容 | 完了条件 | 閉じ先 | 前倒し/遅延ドア | 根拠 |
26
+ |----|-----------|----------|----------|--------|-----------------|------|
27
+ | `decision-consistency` | 整合性モデル(consistency model) | データ変更時、即時整合(strong)か結果整合(eventual)か | どちらの整合モデルかが宣言され、下流が前提にできる | packet `## Decisions`(新規) | 前倒し(一方向: 後から覆すと外部影響が大きい) | 不可逆・複数 packet 拘束。ISO/IEC/IEEE 42010 の decision/rationale |
28
+ | `decision-idempotency` | 冪等性・リトライ(idempotency) | 書き込み再試行時の不整合防止(冪等キー等) | 再試行時の挙動が宣言される | packet `## Decisions`(新規) | 遅延可(双方向: 局所化でき可逆なら裁量) | 受入オラクルに効く。リトライ前提の品質特性 |
29
+ | `decision-error-semantics` | エラー意味論・境界バリデーション(error semantics) | 入力が空/期待外のときの境界検証とエラー返却(Fail-Fast 等) | 異常入力時の返却契約が宣言される | packet `## Decisions`(新規) | 遅延可(双方向) | 受入オラクル・外部契約に効く |
30
+ | `decision-authz` | 認可(authorization) | 実行できるアクター・アクセスできるデータの行レベル権限 | 誰が何にアクセスできるかが宣言される | packet `## Decisions`(新規) | 前倒し(一方向: セキュリティ/法規制の床) | 不可逆・セキュリティ床。高コスト決定 |
31
+ | `decision-quality-priority` | 品質目標の順位付け(quality priority) | 性能/信頼性/保守性/セキュリティのうち load-bearing な上位2-3特性 | 上位特性が順位付きで宣言される | packet `## Decisions`(新規。compass Invariants と連携可) | 遅延可(双方向) | 品質トレードオフ点。ISO/IEC 25010 の品質語彙 |
32
+ | `decision-fit-criterion` | 数値基準・適合基準(fit criterion) | 受入判定をどう測るか(fit criterion / SLO / test oracle) | 受入の数値・観測条件が宣言される | packet `## Validation`(既存)を参照。未定なら `## Decisions` で宣言 | 遅延可(双方向) | 受入オラクルに効く。Volere の fit criterion |
33
+ | `decision-exception-flow` | 例外フロー(exception flow) | 正常系だけでなく代表的な異常系フローが定義されているか | 代表的な異常系フローが宣言される | packet `## Expected Behavior`(既存)を参照。欠落なら `## Decisions` で宣言 | 遅延可(双方向) | ハッピーパス偏重の漏れ補完(PBR テスト/運用観点) |
34
+ | `decision-downstream-trace` | 下流トレース(downstream trace) | この packet を実現/検証する作業・テストへのリンク(realized-by / verified-by) | 下流リンクが宣言される(または最小十分と判断し空) | packet `## Verification protocol` / トレースリンク(新規・任意) | 遅延可(双方向) | 双方向トレース(pre-RS の欠落補完) |
35
+
36
+ - `decision-fit-criterion` / `decision-exception-flow` は閉じ先が既存節のため、既存節で閉じていれば `## Decisions` には「既存節で閉じている」旨の参照のみを置く(重複定義しない)。
37
+ - 共通コアは全モードで播く。`intent-validate` の `decision-slot-unsown` 検査は「この8 ID のうち1つも `## Decisions` に播かれていない」(共通コア未播種)を検出する。
38
+
39
+ ## モード別差分スロット(mode に応じて加算)
40
+
41
+ `.intent/mode.md` の mode に応じて共通コアに**加算**される差分スロット。スロット定義はこの表が正であり、skill 本体へハードコードしない(Mode/Algorithm/Skill の3層分離に乗る)。
42
+
43
+ ### standard
44
+
45
+ | ID | スロット名 | 確認内容 | 完了条件 | 閉じ先 | 前倒し/遅延ドア |
46
+ |----|-----------|----------|----------|--------|-----------------|
47
+ | `decision-perf-budget` | 性能予算(performance budget) | レイテンシ・スループット・リソースの許容枠 | 性能の許容枠が宣言される | packet `## Decisions` | 遅延可(双方向) |
48
+ | `decision-data-ownership` | データ所有権(data ownership) | このデータの正本はどこか・誰が書き換えられるか | データの正本と書き換え主体が宣言される | packet `## Decisions` | 前倒し(一方向: 後から覆すと外部影響大) |
49
+
50
+ ### refactor
51
+
52
+ | ID | スロット名 | 確認内容 | 完了条件 | 閉じ先 | 前倒し/遅延ドア |
53
+ |----|-----------|----------|----------|--------|-----------------|
54
+ | `decision-characterization` | 保持すべき挙動・characterization tests | 現状の観測可能な振る舞いをそのまま固定するテスト観点 | 観測振る舞いが固定される | 既存 `algo-characterization-test.md` を参照(重複定義しない) | 前倒し(一方向: 安全網を先に固定) |
55
+ | `decision-change-boundary` | 変更境界(change boundary) | どこまで変えてよく、どこは触らないか | 変更可能範囲と不可侵範囲が宣言される | packet `## Decisions` | 前倒し(一方向) |
56
+ | `decision-rollout-safety` | 段階展開の安全性(rollout safety) | 変更を段階的に出す際の戻し方・観測点 | ロールアウト戦略と戻し方が宣言される | packet `## Decisions` / `## Rollback`(既存)を参照 | 遅延可(双方向) |
57
+
58
+ ### behavior-unknown
59
+
60
+ | ID | スロット名 | 確認内容 | 完了条件 | 閉じ先 | 前倒し/遅延ドア |
61
+ |----|-----------|----------|----------|--------|-----------------|
62
+ | `decision-observed-facts` | 観測済み事実とその出所 | 何を観測したか・その出所はどこか | 観測事実と出所が宣言される | packet `## Decisions` / `## Expected Behavior`(既存)を参照 | 前倒し(一方向: 事実を先に固定) |
63
+ | `decision-hypothesis-confidence` | 仮説と確証度の区別 | どれが事実でどれが仮説か・確証度はどの程度か | 事実/仮説と確証度が区別される | packet `## Decisions` | 遅延可(双方向) |
64
+ | `decision-current-vs-future` | 現挙動と将来意図の分離 | 「今こう動いている」と「こう動かしたい」を混ぜていないか | 現挙動と将来意図が分離して宣言される | packet `## Decisions` | 遅延可(双方向) |
65
+
66
+ ### feature-growth
67
+
68
+ | ID | スロット名 | 確認内容 | 完了条件 | 閉じ先 | 前倒し/遅延ドア |
69
+ |----|-----------|----------|----------|--------|-----------------|
70
+ | `decision-existing-boundary` | 既存境界との整合 | 既存のモジュール境界・契約と整合するか | 既存境界との整合方針が宣言される | packet `## Decisions` | 前倒し(一方向) |
71
+ | `decision-backward-compat` | 後方互換性(backward compatibility) | 既存利用者・既存データを壊さないか | 後方互換の方針が宣言される | packet `## Decisions` | 前倒し(一方向: 高コスト決定) |
72
+ | `decision-data-migration` | データ移行(data migration) | 既存データをどう移すか・移行中の整合 | 移行戦略が宣言される | packet `## Decisions` | 前倒し(一方向: 不可逆) |
73
+ | `decision-staged-rollout` | 段階展開(staged rollout) | 新旧をどう並走させ、どう切り替えるか | 段階展開戦略が宣言される | packet `## Decisions` | 遅延可(双方向) |
74
+ | `decision-legacy-impact` | 旧機能への影響 | この拡張が既存機能に与える副作用 | 旧機能への影響が宣言される | packet `## Decisions` | 遅延可(双方向) |
75
+
76
+ ## 3規律
77
+
78
+ このカタログを適用する skill は次の3規律を守る。
79
+
80
+ 1. **既定値を出さない(anchoring 回避)**: スロットに「妥当な既定値」「推奨値」を提示しない。最初に提示された値に判断が引きずられる anchoring bias を避けるため。複数案の対称並列は将来の拡張候補として保留する。
81
+ 2. **ツールは該当性・値を推論しない**: スロットが該当するか・どの値を取るかを成果物の内容から推論・自動充填しない。人が宣言する(`depends_on` を推論しないのと同じ宣言ベースの規律)。`intent-validate` は実際に宣言されたスロット・ステータスのみを検査対象とする。
82
+ 3. **天井(How)を固定しない**: スロットは「何を決めるか(what + constraints + oracle)」を宣言するもので、実装の How を packet に書かせない。規則の内側の局所探索はエージェントの裁量ゾーンに委ねる。
83
+
84
+ ## 拡張の作法
85
+
86
+ - **表に行を足すだけで拡張が完結する**(他ファイルの構造変更を要しない・「表が正」パターン)。共通コアを増やすなら共通コア表に、モード別差分を増やすなら該当モードの表に1行足す。
87
+ - **既存成果物がカバーするスロットは「閉じ先」を参照し、新しい入れ物を作らない**。意図/範囲/利害関係者/制約/受入証拠 等は既存の tree / compass / packet 既存節がカバーするため、`## Decisions` に作り直さずその閉じ先を参照する。
88
+ - 既存 rule と同一対象のスロット(例: `decision-characterization`)は既存ファイル(`algo-characterization-test.md`)を参照に留め、定義を重複させない。
@@ -0,0 +1,54 @@
1
+ # Export Route(出口判定レーン)
2
+
3
+ 計画フェーズ(discover→compass→packets)の後、どの出口へ進むかを案件種別から決める **read-only の判定規約**。出口は3系統:
4
+
5
+ - **cc-sdd 実装 export** → `/intent-export-cc-sdd`
6
+ - **OpenSpec 実装 export** → `/intent-export-openspec`
7
+ - **読める Spec 射影** → `/intent-to-spec`
8
+
9
+ この規約は **intent-packets の単一正本**であり、`/intent-packets` の出口提示と export 系の preflight が本ルールを参照する(rule 本体を他 skill に複製しない)。判定は意味的で、`intent-check.mjs` 等の機械検査スクリプトに寄せない(INV2)。
10
+
11
+ ## 入力(すべて read-only 観測)
12
+
13
+ 判定の入力は次の3つ。いずれも Read / Glob で観測し、ファイルの作成・変更・削除をしない(read-only・INV5):
14
+
15
+ 1. **target format**: `.intent/mode.local.md`(無ければ旧 `.intent/mode.md`)の `format` 行の値(値域 `cc-sdd` / `openspec` / `to-spec`)。
16
+ 2. **mode**: 同ファイルの `mode` 値(`non-code` / `standard` 系)。
17
+ 3. **前提**: `.kiro/` ディレクトリの有無(cc-sdd 導入の有無の手がかり)。
18
+
19
+ ## 判定(first-match・決定的)
20
+
21
+ 同一の入力に対して常に同一の結果を返す(決定的)。上から評価し最初に該当した行を採る。
22
+
23
+ ### A. format が有効値で明示されているとき(最優先)
24
+
25
+ | `format` | 推薦する出口 |
26
+ |----------|--------------|
27
+ | `openspec` | `/intent-export-openspec`(**OpenSpec 案件は OpenSpec を促す**) |
28
+ | `cc-sdd` | `/intent-export-cc-sdd` |
29
+ | `to-spec` | `/intent-to-spec` |
30
+
31
+ 明示があればその出口を確定的に推薦する。
32
+
33
+ ### B. format が未指定のとき(mode + 前提から推論)
34
+
35
+ `format` が「未指定」(①行が無い ②プレースホルダ値 `(未確定 — …)` ③値域外の値、のいずれか。mode.local.md の読み取り契約に従う)のときは、mode と `.kiro/` の有無から**推論して候補を提示**する。4象限すべてを次のとおり扱う:
36
+
37
+ | mode | `.kiro/` | 結果 |
38
+ |------|----------|------|
39
+ | non-code | 不在 | `/intent-to-spec` を候補筆頭(読める成果物が目的・DR15) |
40
+ | standard 系 | 存在 | `/intent-export-cc-sdd` を候補筆頭(実装案件・cc-sdd 導入済み) |
41
+ | non-code | 存在 | **候補列挙**(`/intent-to-spec` を上位に置きつつ `/intent-export-cc-sdd` も併記。non-code でも cc-sdd 導入済みは起こりうるため1つに畳まない) |
42
+ | standard 系 | 不在 | **候補列挙**(`/intent-export-cc-sdd`〔導入が要る〕・`/intent-to-spec`・`/intent-export-openspec` を併記。一意に決まらない) |
43
+
44
+ ### C. フォールバック
45
+
46
+ 上記以外も含め、format が未指定で入力から出口を**一意に決められないときは、単一の出口に畳まず候補を列挙**する(断定より提示・出口は利用者の意図次第)。
47
+
48
+ ## 規律
49
+
50
+ - **決め打ちにしない**: 問題は「案件種別を見ず1つに決め打ちすること」。別の固定宛先(to-spec 一本道・openspec 一本道)にすり替えない。曖昧なら候補提示。
51
+ - **read-only**: 判定は観測のみ。状態を書き換えない(INV5)。
52
+ - **機械検査に寄せない**: 意味的判定は本ルール + 文脈で成立させ、`intent-check.mjs` 等のスクリプトに移さない(INV2)。
53
+ - **利用者への問い返しに依存しない**: 出口の提示は本ルールの規約と既定で一意化し、対話補完を前提にしない。
54
+ - **外部ツールを触らない**: `.kiro/` の有無を読むのは観測であって、kiro / cc-sdd / OpenSpec への変更ではない(INV1)。
@@ -0,0 +1,35 @@
1
+ # First Packet 推薦
2
+
3
+ 最初に着手すべき packet をちょうど1つ、定性的な理由とともに推薦して記録する手順。`/intent-packets` の優先順位提示(Step 4)で常に使う。
4
+
5
+ ## 適用条件
6
+
7
+ - **常時適用する。** `.intent/mode.md` の designer-questions に依存しない(off・未記録でも適用する)。
8
+ - SKILL.md Step 4 では、walking-skeleton の適用の**後**に本手順を適用する(walking-skeleton が適用されなかった場合も、本手順は適用する)。
9
+
10
+ ## 手順
11
+
12
+ 1. **材料を読む**
13
+ - packet 候補と優先順位、(記録されていれば)`.intent/packets/plan.md` の「Walking Skeleton」セクション、`.intent/mode.md` の purpose を読む。
14
+
15
+ 2. **最初に着手すべき packet をちょうど1つ選ぶ**
16
+ - 理由は次の定性観点から該当するものを挙げる: **リスク低減** / **依存解放** / **rollback 容易性** / **学びの大きさ**。
17
+ - purpose=poc が記録されている場合は「仮説を最も安く反証できるか」の観点を必ず理由に含める(purpose が未記録・product の場合は purpose を参照しない)。
18
+
19
+ 2.5. **優先順位・トレードオフの許容をユーザーに確認する**
20
+ - 推薦を確定する前に、優先順位とトレードオフの許容をユーザーに確認する: **速度 vs 品質のどちらを優先するか**、**この着手で削ってよい/後回しにしてよいスコープはどこか**。
21
+ - これは追認であり、推薦の上書きを促すものではない。推薦は提案であり、ここで得た利用者の優先順位判断が推薦と食い違う場合は、利用者の判断を優先して推薦・理由を見直す。
22
+ - 「該当なし/不明/後で確認」を選べる形で問い、回答を強制しない。保留・「後で確認」が選ばれた場合は推測で埋めず、当該項目を `.intent/packets/plan.md` の「Open Questions」へ逃がして(無ければ既存内容を保持したまま追記して)推薦を継続する。
23
+
24
+ 3. **Walking Skeleton と整合させる**
25
+ - Walking Skeleton(E2E を貫く最小実装)の決定が記録済みなら、推薦をそれと整合させる。整合しない推薦を行う場合は、その理由を明示する。
26
+
27
+ 4. **推薦を記録する**
28
+ - `.intent/packets/plan.md` の「Recommended First Packet」セクションに記録する: **推薦 packet**(packet 名)/ **理由**(定性観点)/ **Walking Skeleton との整合**(整合 / 整合しない場合はその理由 / Walking Skeleton 未記録)。
29
+ - **旧 scaffold への非破壊追記**: plan.md に「Recommended First Packet」セクションが無ければ、既存の記録内容を保持したままセクションを追記してから記録する。
30
+
31
+ ## 規律
32
+
33
+ - 数値スコアリング(重み付け合計・点数化)を用いない。
34
+ - 推薦は提案であり、利用者の優先順位判断を上書きしない。
35
+ - コードを変更しない。
@@ -0,0 +1,207 @@
1
+ # Packet ファイル形式
2
+
3
+ packet ファイル(`.intent/packets/active/<packet_id>.md`・`.intent/packets/archive/<年>/<packet_id>.md`)の形式・ID 規則・状態遷移・index 再生成手順の**単一の正本**。packet を起案・更新・移動する skill と、packet を読む skill はこの規則に従う。
4
+
5
+ ## frontmatter スキーマ(12キー固定)
6
+
7
+ 各 packet ファイルは先頭に YAML frontmatter(`---` 区切り)を持つ。キーは次の **12キー固定**: `packet_id` / `name` / `state` / `created_at` / `updated_at` / `closed_at` / `parent_intents` / `spec_refs` / `superseded_by` / `summary` / `depends_on` / `mode`。
8
+
9
+ ```yaml
10
+ ---
11
+ packet_id: pkt-20260612-auth-session-k3p9 # 不変。ファイル名と一致。末尾はセッション固有 rand。packet 間参照専用
12
+ name: "認証セッション整理" # packet 名の正本。export-log / Source Packet / deltas / slug 導出の照合キー
13
+ state: implementing # draft | ready | implementing | verifying | done
14
+ created_at: 2026-06-12T05:00:00Z # 起案日時(ISO 8601)
15
+ updated_at: 2026-06-12T05:00:00Z # 最終更新時点(ISO 8601)。新規作成時は created_at と同値、内容更新時はその時点
16
+ closed_at: "" # done 時に記入(日付)。移行時の不明は空のまま
17
+ parent_intents: [L1-2, L2-3] # tree への参照
18
+ spec_refs: [] # writeback 完了時に確定記入
19
+ superseded_by: "" # 置換時に後継 packet_id
20
+ summary: "認証セッションの整理" # index の1行要約の源
21
+ depends_on: [] # 依存先 packet の packet_id リスト(既定 [])。packet 間参照専用
22
+ mode: standard # packet 起草時に確定していたモード(起草時固定・遡及更新しない)
23
+ ---
24
+ ```
25
+
26
+ - `state` は `draft | ready | implementing | verifying | done` の5値(「state 値域」参照)。superseded は state ではなく `superseded_by` 記入による**別軸**(「状態遷移と置き場所」参照)。
27
+ - `depends_on` は依存先 packet の `packet_id` のリスト(既定 `[]`)。`superseded_by` と同じく **packet 間参照には `packet_id` を用いる**(`name` は使わない)。人が宣言する依存のみを保持し、ツールは依存を推論・算出しない。
28
+ - **`mode` は packet が起草された時点で確定していたモードの出自記録**。値はモード名(例: `standard` / `deep` / `quick`)。起草時に CONTRACT.md の fallback 規約(mode.local.md → mode.md → standard)で解決した値を刻む。**起草時固定**(DR13)—起草後にモードがローカルで変わっても既存 packet の `mode` を遡及更新しない。モード不在・未確定の場合は既定値 `standard` を記録し、停止しない。**後方互換**: `mode` を持たない既存 packet は欠落として扱い、停止せず続行する(読むたびの自動補完をしない)。tree / compass / plan には刻まない(DR11)。
29
+ - **`updated_at` は packet の最終更新時点(ISO 8601)**。書き手スキル(intent-packets / writeback 等)が当該 packet を変更した時点で打刻する正本フィールド。打刻規律は次の通り:
30
+ - **新規作成時は `created_at` と同値**で初期化する(`—` や空にはしない)。
31
+ - **内容を更新した時点**を `updated_at` に記録する(その時点の現在時刻を ISO 8601 で打つ)。
32
+ - **内容変更を伴わない再実行では打刻しない(冪等)**。無変更で日時だけ進めない。
33
+ - 打刻責務は書くフェーズ(intent-packets / writeback 等)が負い、read-only 検証層(intent-validate)は `updated_at` を**読むのみ**で書き換えない。
34
+ - **後方互換**: `updated_at` を持たない既存 packet は欠落として扱い、即時一括移行を強制しない。読み手は不在を「未記入/未観測」として明示し推測で埋めない(`depends_on` 不在=「依存なし」と同型の遅延補完)。次に当該 packet を更新する書き手フローが差分追記する(非破壊)。
35
+ - **未確定のキーは空値で保持する**(キー自体を省略しない — index 再生成と検査の決定性のため)。`depends_on` は依存が無くても `[]` を保持し、キーを省略しない。
36
+ - **summary 保守規範**: packet 本文を更新した skill は frontmatter の `summary` も追従させる。
37
+
38
+ ## name と packet_id の使い分け
39
+
40
+ - **`name` は packet 名の正本(照合キー)**。export-log の `| packet |` 列・cc-sdd 下書きの `## Source Packet`・deltas の Delta 見出し・cc-sdd スラッグ導出はすべて `name` を用いる。これらに `packet_id` を用いてはならない。
41
+ - **`packet_id` はファイル名(`<packet_id>.md`)と `superseded_by` 等の packet 間参照専用**。
42
+
43
+ ### name の可変性
44
+
45
+ - 初回 export(export-log に行が載った時点)以降、`name` は**不変**。改名は supersede(後継 packet の起案 + 旧 packet の置換)として扱う。
46
+ - export 前の改名は差分更新として許可する(その場合も `packet_id`・ファイル名は変えない)。
47
+
48
+ ### 名前 → ファイルの解決手順
49
+
50
+ 1. `index.md` の `name` 列、または `active/` 配下の frontmatter の `name` を照合してファイルを特定する。
51
+ 2. `active/` に無ければ `archive/` を**明示的に**参照する(「通常 archive/ は読まない」原則の明示例外)。
52
+
53
+ ## ID 規則
54
+
55
+ - 形式: `pkt-<YYYYMMDD>-<スラッグ>-<rand>`。日付部は**起案日**(シェルで取得する)。末尾の `<rand>` は**セッション固有のランダムな短いトークン**(後述)で、並行セッションでも ID が衝突しないことを保証する不変の識別子の一部。
56
+ - `<rand>` は半角英小文字と数字(`[a-z0-9]`)4文字で、起案時にシェルで生成する(例: `LC_ALL=C tr -dc 'a-z0-9' < /dev/urandom | head -c 4`)。生成できない場合は推測値を埋めず、その旨を利用者に告知して停止する(日時を取得できない場合と同じ規律)。
57
+ - スラッグは `name` から次節の規則で導出する。次節は map-cc-sdd(cc-sdd export のスラッグ規則)と**同文の複製**であり、変更する場合は両方を同時に改訂する(cc-sdd 出力ディレクトリ名も同じ `name` から同じ規則で導出されるため、両者は一致する)。
58
+
59
+ ### スラッグ規則(決定的)
60
+
61
+ packet 名からディレクトリ名(スラッグ)を以下の順で**決定的に**導出する。同じ packet 名は常に同じスラッグになる。
62
+
63
+ 1. NFC 正規化する。
64
+ 2. 前後の空白を trim する。
65
+ 3. ASCII 大文字を小文字にする。
66
+ 4. 空白とパスに危険な文字(`/ \ : * ? " < > |`)を `-` に置換する。
67
+ 5. 連続する `-` を1つに圧縮する。
68
+ 6. 先頭・末尾の `-` を除去する。
69
+
70
+ - 非 ASCII 文字(日本語等)はそのまま保持する。
71
+ - 結果が空文字列になる場合はスラッグを `unnamed-packet` とし、その旨を利用者に告知する。
72
+
73
+ ### 衝突回避(並行セッション対応)
74
+
75
+ - 末尾の `<rand>` により、同日・同スラッグの**別 packet** を起案しても ID は衝突しない。**並行(並列)セッション**が互いの未保存 packet を読めない状況でも、各セッションが独立に生成した `<rand>` が異なるため別 ID になる。連番(`-2`, `-3`, …)で既存を読んでから採番する旧方式は、並行セッションでは互いを見られず衝突を防げないため用いない。
76
+ - 起案時に万一、生成した ID が既存ファイル(`active/` または `archive/`)と一致した場合は、黙って上書きせず `<rand>` を再生成して別 ID を割り当て、packet 名 → ID の対応を利用者に告知する。
77
+ - `packet_id` とファイル名(`<packet_id>.md`)は**不変**(改名・state 変更・移動でも変えない)。`<rand>` も ID の一部として一度確定したら変えない。
78
+ - **後方互換**: `<rand>` を持たない旧形式の ID(`pkt-<YYYYMMDD>-<スラッグ>`)も有効。即時一括移行は強制せず、既存 packet の ID は据え置く(改名は supersede 扱い)。
79
+
80
+ ## state 値域
81
+
82
+ `state` は進行段階を区別する5値。各値は相互排他で、packet はちょうど1つの段階を取る。state は**宣言的な状態記録**であり、遷移規則・ガード・自動進行を持つ管理機構(state machine)を伴わない。
83
+
84
+ | state | 意味 | 置き場所 | Evidence | depends_on の扱い |
85
+ |-------|------|----------|----------|-------------------|
86
+ | `draft` | 起案中・未確定 | `active/` | 不要 | 任意 |
87
+ | `ready` | 着手可(依存解決済み・実装待ち) | `active/` | 不要 | 依存先が全て `done` であることが宣言の前提 |
88
+ | `implementing` | 実装中 | `active/` | 進行中の暫定記録可 | — |
89
+ | `verifying` | 実装済み・検証待ち(Evidence 未確定) | `active/` | 収集中(未確定明示) | — |
90
+ | `done` | 証拠取得済み・完了 | `archive/<年>/` | **確定済みであることが前提** | — |
91
+
92
+ - 終端は `done` のみ。`state=done` の確定は `## Evidence` 節に確定した検証結果があることを前提条件とする(「人/検査が確認 → 記入 → done」の宣言的順序であり、自動遷移ではない)。
93
+ - 進行段階の変更は宣言的に記入し、その確定は人または検査ゲートに基づく(AI の自己申告のみで確定しない)。
94
+
95
+ ### 後方互換移行(旧 `draft | active | done` から)
96
+
97
+ | 旧 state | 新 state | 根拠 |
98
+ |----------|----------|------|
99
+ | `draft` | `draft` | 同一 |
100
+ | `active` | `implementing` | 着手済み packet の安全側既定(最も情報を失わない。後で `ready`/`verifying` へ宣言し直せる) |
101
+ | `done` | `done` | 同一 |
102
+
103
+ - `active → implementing` を既定にする理由: 旧 `active` は「着手済み or 着手可」の両方を含んでいたため、安全側(進行中とみなす)に倒し「終わっていないのに done 扱い」を防ぐ。
104
+ - 移行は**差分更新案として提示**し、利用者確認のうえ記入する。既存 packet を破壊しない・削除しない(**移動のみ**)。
105
+ - **`depends_on`/`## Evidence` の欠落の扱い**: 既存 packet に `depends_on` キーや `## Evidence` 節が無くても、即時一括移行を強制しない。読み手側は `depends_on` 不在を「依存なし(空集合と等価)」、`Evidence` 不在を「未記入」として扱う(推測で埋めない)。packet を次に更新する起案/更新フローが `depends_on: []` を差分追記する(非破壊の遅延補完)。
106
+
107
+ ## 状態遷移と置き場所
108
+
109
+ - superseded は state ではなく `superseded_by` に後継 `packet_id` を記入する**別軸**。
110
+ - 置き場所の対応:
111
+ - `draft | ready | implementing | verifying` → `active/`
112
+ - `done` または `superseded_by` 記入済み → `archive/<年>/`
113
+ - state の記入と移動は一連の操作として行う(done のまま `active/` に滞留させない。滞留は status の整合検査の対象)。
114
+ - **削除禁止**: packet ファイルは移動のみで、削除しない。
115
+
116
+ ## 本文セクション構成
117
+
118
+ frontmatter の直後に `# <name>` 見出しを置き(推奨)、以下の節を続ける(現行の packet 定義節の構成を継承)。
119
+
120
+ - `## Parent Intent` — この packet が支える L0 / L1 / L2 / L3。
121
+ - `## Why` — なぜこの packet が必要か。
122
+ - `## Scope` — 含むこと。
123
+ - `## Non-scope` — 含まないこと。
124
+ - `## Expected Behavior` — 完了後に観測できる振る舞い。
125
+ - `## Decisions` — 制約下の意思決定スロット(completeness schema の④中心スロット)。**`## Expected Behavior` の後・`## Safety / Invariants` の前**に置く。**スロットの値域(`確定値 | 未決定(理由付き)| 該当なし`)・4ステータス・発火条件・スロット ID の正本は `decision-slots.md`**(このカタログを単一参照として読む。本節はその投影)。**必須節**(下記の任意節と異なり、共通コアスロットを閉じる入れ物として常に保持する。スロット未播種なら空節で保持し、推測で埋めない)。
126
+ - `## Safety / Invariants` — 守るべき制約。**packet 固有 invariant の正本**(compass には書かない。compass にはプロジェクト普遍の invariant のみを置く)。
127
+ - `## Validation` — どう検証するか(**計画**)。テスト、手動確認、ログ確認、型検査など。
128
+ - `## Evidence` — 何を検証したか(**結果**)。`Validation`(計画)の直後・`Rollback` の前に置く。各エントリに「検証した結果・実施日・対応する検査軸 ID(`validate-checks.md` の安定 kebab-case ID)・出所(intent-validate / drift-watch / 人確認)」を含められる。
129
+ - `## Rollback` — 失敗時にどう戻せるか。
130
+ - `## Out of scope` — **任意(推奨)**。やらないこと(non-goals)を明示し過剰実装を防ぐ。未記入なら節を省略してよい。
131
+ - `## Verification protocol` — **任意(推奨)**。先に書くテスト・守るべき既存テスト・追加すべき失敗モードのテストを保持する。下流トレースリンク(realized-by / verified-by)もここに任意で保持できる。未記入なら節を省略してよい。
132
+ - `## cc-sdd Mapping` — この packet を cc-sdd の requirements / design / tasks にどう変換するか。
133
+
134
+ ### `## Decisions`(人間固定とエージェント裁量の分離)
135
+
136
+ `## Decisions` は制約下の意思決定スロットを保持する節で、内部に次の2区分を持つ(区別して保持する)。
137
+
138
+ - **人間が固定した決定(Human-fixed / 確定値)**: 人が前倒しで固定した可視の設計規則(visible design rules)。値域 `確定値` のスロット。エージェントはこの規則を覆さない。
139
+ - **エージェント裁量ゾーン(Agent-discretion / 未定遅延)**: 規則の内側で局所探索をエージェントに委ねる領域。値域 `未決定(理由付き)` のスロット(`未定(遅延中)`)が対応づく。`未定` には理由・downstream への注意書き・再訪条件(Revisit when)を併記する。
140
+
141
+ ```markdown
142
+ ## Decisions
143
+ ### Human-fixed(確定値・visible rules)
144
+ - `decision-authz` 回答済み: 実行できるアクターは管理者ロールのみ
145
+ ### Agent-discretion(未定遅延・再訪条件付き)
146
+ - `decision-idempotency` 未定: リトライ方式は実装裁量。Revisit when: 外部公開 API 化のとき
147
+ ```
148
+
149
+ - スロットの値域・ステータス・発火条件・スロット ID は `decision-slots.md` が正本。本節はその投影であり、値域や ID をここで再定義しない。
150
+ - 閉じ先が既存節(`## Validation` / `## Expected Behavior` 等)のスロットは、本節に値を二重に書かず「既存節で閉じている」旨の参照のみを置く(重複定義しない)。
151
+ - スロット未播種なら**空節で保持**し(推測で埋めない)、節自体は省略しない。
152
+
153
+ ### 節の格付け(必須 / 任意)
154
+
155
+ - **必須**: `## Decisions`(共通コアスロットを閉じる入れ物)のみ。スロット未播種でも空節として保持する。
156
+ - **任意(推奨)**: `## Out of scope` / `## Verification protocol` と下流トレースリンク(realized-by / verified-by)。未記入なら**節を省略してよい**(packet の肥大化と decision fatigue を避ける軽量思想を維持する)。
157
+ - frontmatter は **12キー固定**のまま変更しない。本節群の追加は**本文節のみ**であり、frontmatter を増やさない(トレースリンクも本文に持ち、frontmatter キーを足さない)。
158
+
159
+ ### `## Validation`(計画)と `## Evidence`(結果)の区別
160
+
161
+ `Validation` は「どう検証するつもりか(計画)」、`Evidence` は「実際に検証した結果(実態)」であり、両者を**混在させない**。
162
+
163
+ ```markdown
164
+ ## Evidence
165
+ - 2026-06-15 — `unit: auth-session 失効テスト` green / `invariant-conflict` 該当なし
166
+ - 検査軸: invariant-conflict, l3-intent-mismatch
167
+ - 出所: intent-validate(人確認: ◯◯)
168
+ ```
169
+
170
+ - 各エントリ: 検証した結果・実施日・検査軸 ID(kebab-case)・出所を含められる。
171
+ - 結果が無ければ**空節で保持**し、未記入を推測で埋めない。
172
+ - Evidence は AI の自己申告ではなく、検査結果(intent-validate / drift-watch)または人の確認に基づき、出所を辿れる形で記録する。
173
+ - **`state=done` は Evidence に確定済みの検証結果があることを前提とする**(done だが Evidence 空は矛盾状態)。
174
+
175
+ ### 検証語彙の非コード degrade(任意・正本)
176
+
177
+ `## Validation` / `## Rollback` の検証語彙はコード成果物を前提に書かれている。非コード成果物(文書・業務・研究)を packets で詰めるときは、次の読み替えを適用してよい(**任意の degrade**であり、ここが読み替え語彙の**正本**=非コードモード側はこの定義を参照する)。
178
+
179
+ - `testable` → 「レビュー観点/受容基準で判定可能」
180
+ - `rollback` → 「版管理/差し戻し」
181
+ - `behavior-preserving` → 「既存成果物の意味/合意を壊さない」
182
+ - ⑥単体完結(終端判定)の「利用者/呼び出し側」 → 「読み手/受け手」(非コード成果物では、packet の完了形が読み手/受け手から見て中途半端でない一貫した区切りになっていることを指す)
183
+
184
+ - この degrade は**任意**であり、コード前提の語彙を必須にしない(コード成果物では従来語彙のまま使う)。
185
+ - degrade を適用しても **packets 段はスキップしない**。非コード作業も packets を経由し、`## Decisions` の決定スロット播種(C3)を保つ(語彙を読み替えるだけで、packets を迂回しない)。
186
+
187
+ ## index.md 再生成手順
188
+
189
+ `.intent/packets/index.md` は生成物であり手編集しない。canonical(packets/ 配下)を変更した skill は、処理完了時に以下の手順で再生成する。
190
+
191
+ 1. `active/` 配下の全 packet ファイルの **frontmatter のみ**を読む(本文を読まない — 決定的)。
192
+ 2. `| packet_id | name | state | summary |` のテーブルを `packet_id` **昇順**で構成する(`depends_on` は index 列に出さない — 決定性とテーブル肥大回避。依存は read-only 側が `active/` の frontmatter を直接読む)。
193
+ 3. `active/` が空(または不在)の場合は、ヘッダのみの空テーブルが正規形。
194
+
195
+ ## read-only 側が読む契約
196
+
197
+ intent-status / intent-overview などの read-only 側スキルは、本正本が定める次のインターフェースを**読むのみ**で、packet 正本を変更しない。
198
+
199
+ - **`state`(5値域)**: `draft | ready | implementing | verifying | done`。進捗の段階判定に用いる。
200
+ - **`depends_on`(packet_id のリスト)**: ブロック状態は「`depends_on` の中に `done` でない packet がある=ブロック中」として read-only で導出する。導出結果は packet に書き戻さない。依存に基づく次工程の自動起動・順序自動決定はしない。
201
+ - **`## Evidence` 節**: 検証結果・実施日・検査軸 ID・出所。進捗の「証拠の確定度」の素材。
202
+
203
+ **後方互換の読み取り規律(推測で埋めない)**:
204
+ - `depends_on` 不在 → 「依存なし(空集合)」として読む。
205
+ - `## Evidence` 不在/空 → 「未記入/未観測」として明示し、補完しない。
206
+ - 旧 `state: active` → 「進行中(`implementing` 相当)」として読む。
207
+ - 新フィールド・新節が未記入または不在のときは、当該箇所を「未記入/未観測」と明示する。
@@ -0,0 +1,35 @@
1
+ # Walking Skeleton Check
2
+
3
+ 最優先 packet が主要なユーザージャーニーを端から端まで貫く(walking skeleton である)かを確認する手順。`/intent-packets` の優先順位提示(Step 4)で、`.intent/mode.md` の designer-questions が `on` のときのみ使う。対話はすべて利用者への確認として行う(確認の手段は SKILL.md の規約に従う)。
4
+
5
+ ## 適用条件
6
+
7
+ - `.intent/mode.md` の `designer-questions` を読む。`on` のときのみ、Step 4 の優先順位提示に本手順を適用する。
8
+ - **designer-questions が on と記録されていない(off・未記録)ときは適用せず、既存 Step 4 の挙動を変えない**(未記録の場合の告知は `.intent/mode.md` の規約に従う)。
9
+ - **purpose は参照しない。**
10
+
11
+ ## 手順
12
+
13
+ 1. **E2E 判定**
14
+ - 最優先 packet の Scope と Expected Behavior を読み、主要なユーザージャーニーを端から端まで(入力 → 処理 → 観測可能な出力)貫くかを判定する。
15
+ - 判定の根拠は packet の記述に求める。途中の層で止まる packet(処理だけ・UI だけ等)は「貫かない」と判定する。
16
+
17
+ 2. **判定結果と根拠を提示して確認する**
18
+ - 判定結果(貫く / 貫かない)とその根拠を利用者に提示し、確認する。
19
+ - 根拠は平易な言葉で提示する: この packet(cc-sdd に渡す作業単位)が何を作り、完了後に何がどこまで動くかを述べ、欄名を知らなくても判定根拠が読めるようにする。
20
+
21
+ 3. **是正案を提示する(「貫かない」と判定した場合)**
22
+ - 最初の packet を walking skeleton にする案を、次のいずれかで提示する:
23
+ - **並べ替え案**: E2E を貫く packet が最優先になるよう優先順位を並べ替える。
24
+ - **統合案**: 複数 packet の Scope を統合し、E2E を貫く packet を作る。
25
+ - 利用者が walking skeleton 化を意図的に見送る場合は、それも選択として受け付ける(黙って落とさず記録する。手順 4)。
26
+
27
+ 4. **確認結果を記録する**
28
+ - `.intent/packets/plan.md` の「Walking Skeleton」セクションに記録する: **最優先 packet**(packet 名)/ **E2E 判定**(貫く / 貫かない)/ **確認結果**(利用者の確認内容)。
29
+ - 意図的な見送りは、その理由とともに Deferred セクションへも記録する。
30
+ - **旧 scaffold への非破壊追記**: plan.md に「Walking Skeleton」セクションが無ければ、既存の記録内容を保持したままセクションを追記してから記録する。
31
+
32
+ ## 規律
33
+
34
+ - 確認結果は intent-validate が参照する。記録を省略しない。
35
+ - コードを変更しない。
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: intent-release-note
3
+ description: git のコミット履歴を read-only で読み、各コミットを意図(packet name / parent intent / deltas / milestones)とテキスト照合して「なぜ変わったか」を厚くした release note を、format(changelog 風 / github-releases 風)で `.intent/release-note/` 配下へ派生出力する外向きの射影スキル。git・canonical は一切変更しない(read-only)。紐づかないコミットは薄い行で残し、意図と現実の落差を可視化する。
4
+ ---
5
+
6
+ # intent-release-note Skill
7
+
8
+ ## Core Mission
9
+ - **Success Criteria**:
10
+ - 指定 range(既定 = 直近 tag〜HEAD、引数で `<from>..<to>` 指定可・fallback 付き)の git log を **read-only** で読む(commit / tag 作成 / push をしない)。
11
+ - 各コミットを意図(packet name / parent intent / deltas / milestones)と**テキスト照合**し、紐づいたものには「なぜ(どの意図のため変わったか)」を添える。
12
+ - 照合できないコミットは薄い changelog 行で並べ、**意図と現実の落差を可視化**する(黙って捨てない)。
13
+ - format(`rules/format-changelog.md` / `rules/format-github-releases.md` を引数で選択)に従って `.intent/release-note/` 配下へ派生出力する(全置換再生成)。
14
+ - canonical(intent-tree / compass / packets)・git の状態を一切変更しない(INV16 / INV17)。
15
+
16
+ ## Execution Steps
17
+
18
+ ### Step 1: range 解釈(範囲を確定する)
19
+ - 利用者が `/intent-release-note` を実行したとき、まず引数の range 指定を `rules/source-scope.md` に従って解釈する。
20
+ - 既定(range 無指定)は **直近 tag〜HEAD**(`git describe --tags --abbrev=0` で直近 tag を求め `<tag>..HEAD`)。引数 `<from>..<to>` があればそれを用いる。
21
+ - 直近 tag が無く既定が解決できないときは全履歴へ **fallback** し、その旨を出力に注記する(Fail-Soft)。不正な range 引数は明示エラーとし、release note を生成しない。
22
+ - 範囲が確定したら Step 2 へ進む(range は引数 + 既定 + fallback で一意化し、対話補完に依存しない)。
23
+
24
+ ### Step 2: git log の read-only 読取
25
+ - `rules/source-scope.md` の **read-only allowlist** に従い、確定した range のコミットを read-only で読む。
26
+ - 用いてよいのは読み取り系の `git log` / `git tag`(一覧)/ `git describe` / `git rev-list` / `git rev-parse` / `git show` のみ。
27
+ - **書き込み系(`git commit` / `git tag <name>` 作成 / `git push` / `git checkout` / `git switch` / `git reset` / `git restore` / `git merge` / `git rebase` / `git cherry-pick` 等)を一切叩かない**(INV16)。
28
+ - 各コミットのハッシュ・件名・本文・author・日時を素材として読み取る。
29
+
30
+ ### Step 3: コミット↔intent のテキスト照合(断定せず候補提示)
31
+ - 各コミットを intent と**テキスト照合**する。照合素材の優先順位は (1) packet name → (2) parent intent → (3) deltas → (4) milestones。`.intent/` 配下(`packets/`・`intent-tree.md`・`intent-compass.md`・`deltas.md`・`milestones.md`)の記載とコミットメッセージを、**ファイルから機械観測できる範囲**で照合する。
32
+ - いずれかにテキスト照合できたコミットには「なぜ(その意図のため変わったか)」を添える。複数該当時は最上位の素材を採る。
33
+ - 照合は既存 `intent-status` の温度と同型: **機械スコアリング・閾値・新判別軸を持たず**(AD23)、確信が低いときは**断定せず候補として提示**する(照合不能=常態として誤検出を許容する)。
34
+ - どれとも照合できないコミットは**薄い changelog 行で残す**(黙って捨てない・AD22)。
35
+
36
+ ### Step 4: format 写像(既定なら format を明示)
37
+ - `rules/format-select.md` に従って format を確定する。引数 `changelog` / `github-releases`、無指定なら既定(changelog)を用い、**どの format で生成したかを出力に明示する**。
38
+ - 確定した format の出力構造ルール(`rules/format-changelog.md` または `rules/format-github-releases.md`)へ、Step 3 の照合済み素材(紐づくコミットの「なぜ」付き + 紐づかないコミットの薄い行)を渡して組み立てる。
39
+ - target format を本文へハードコードしない(rules に委譲・AD24)。出力構造そのものは format-* ルールの責務であり、本 SKILL は git 読み・照合・委譲を担う。
40
+
41
+ ### Step 5: 派生 Write(`.intent/release-note/` へ全置換)
42
+ - 組み上がった release note を `.intent/release-note/release-note.md` へ **全置換**で Write する(派生・再生成可能)。
43
+ - 書込み先は `.intent/release-note/` 配下に限定する。canonical(intent-tree / compass / packets)・git の状態を一切変更しない(INV16 / INV17)。
44
+ - 対象 range にコミットが1件も無いときは、空である旨を出力に明示し canonical / git を変更しない。
45
+
46
+ ## Output Description
47
+ - 出力の冒頭で対象 range(fallback したならその注記)と format(既定を用いたならその明示)を示す。
48
+ - 本体は選択した format の出力構造(changelog 風 = 種類別カテゴリ / github-releases 風 = 物語+変更一覧)に従う(`rules/format-*.md` の構成)。
49
+ - 意図に紐づくコミットは「なぜ」付き、紐づかないコミットは薄い行で並べ、落差が読み取れる形にする。
50
+
51
+ ## Safety & Fallback
52
+ - **read-only の所有境界**: git は読むだけ(Step 2 の allowlist のみ)。commit / tag 作成 / push / working tree・ref を変更する操作をしない(INV16)。
53
+ - **派生出力の所有境界**: 書込みは `.intent/release-note/` 配下のみ。canonical を書き換えない(INV17)。
54
+ - **照合の所有境界**: テキスト照合のみ(機械スコアリングを持たない・AD23)。落差を落とさない(薄い行で残す・AD22)。
55
+ - **format の所有境界**: 出力構造は `rules/format-*.md` に委譲し、本文へハードコードしない(AD24)。format-* の出力構造を変更しない(seam 確定済み)。
56
+ - **異常系**: tag 不在 → fallback + 注記。不正 range → 明示エラーで生成しない。空 range → 空を明示。いずれも git / canonical を変更しない。
@@ -0,0 +1,40 @@
1
+ # format 写像:changelog 風(Keep a Changelog 体裁)
2
+
3
+ `intent-release-note` skill(後続 packet で付加)が、git のコミット履歴と意図照合の結果を、**Keep a Changelog 風の release note** へ組み立てるための出力構造の定義。SKILL.md は手順と git 読み取り・intent 照合を担い、「どの素材をどの見出しへ・どの順で置くか」は本ルールを参照する。
4
+
5
+ ## 責務の境界(出力構造の定義であって読み取り・照合ではない)
6
+
7
+ - 本ルールは **format 写像(出力構造の定義)** である。release note のセクション構成・カテゴリ分け・並び順だけを定める。
8
+ - git log を読む・コミットを意図(packet name / parent intent / deltas)と照合する・range を解釈するといった手続きは **SKILL.md の責務**であり、本ルールは行わない(本 seam では SKILL.md 未設置。本ルールは器として先置きされる)。
9
+ - 紐づいたコミットへ「なぜ(どの意図のため)」を添えること、紐づかないコミットを薄い行で残すこと(落差の可視化)の**判断**は SKILL.md が行う。本ルールは、その結果を**どの構造に流し込むか**だけを定める。
10
+ - 出力先が派生ディレクトリ(`.intent/release-note/`・git 非追跡・read-only)であること、canonical・git を書き換えないことは skill 側の不変条件であり、本ルールはその前提のもとで構造のみを与える。
11
+
12
+ ## 基本姿勢(変更を分類して時系列に積む)
13
+
14
+ changelog 風は、**1リリース(または1 range)の変更を種類ごとに分類して並べる**体裁である。読み手は「このバージョンで何が増え・変わり・直り・消えたか」を素早く把握したい立場を想定する。したがって:
15
+
16
+ - バージョン(または range)見出しのもとに、変更を種類別カテゴリへ振り分ける。
17
+ - 各エントリは1行の簡潔な記述を基本とし、意図に紐づくものは「なぜ」を一言添える(添える文言は SKILL.md が用意し、本ルールはそれを Added/Changed 等の該当カテゴリへ置く)。
18
+ - 素材に無い変更を体裁のために創作しない(紐づかないコミットは薄い行のまま残す)。
19
+
20
+ ## 構成(上から下へ)
21
+
22
+ | 順 | セクション | 何を置くか |
23
+ |---|---|---|
24
+ | 1 | 見出し(バージョン / range と日付) | 対象 range(既定は前タグ〜HEAD)の識別と、生成時点の日付 |
25
+ | 2 | Added(追加) | 新機能・新規追加にあたるコミット |
26
+ | 3 | Changed(変更) | 既存挙動の変更・改善にあたるコミット |
27
+ | 4 | Fixed(修正) | バグ修正にあたるコミット |
28
+ | 5 | Removed(削除) | 機能・要素の削除にあたるコミット |
29
+ | 6 | Other(その他・紐づかない変更) | 上記に分類できない・意図に紐づかないコミットを薄い行で残す(落差の可視化) |
30
+
31
+ - カテゴリ(2–5)は Keep a Changelog の標準カテゴリに合わせる。該当コミットが無いカテゴリは見出しごと省く(空見出しを作らない)。
32
+ - セクション 6 は、意図に紐づかない/分類不能なコミットを**黙って捨てず**薄い1行で残す枠。素材が無ければ省く。
33
+ - 各エントリの「なぜ」注記は、SKILL.md が照合結果として付したものをそのまま該当カテゴリ内に置く(本ルールが照合し直さない)。
34
+
35
+ ## 不変条件
36
+
37
+ - git・canonical を読み直さない・変更しない(読み取り・照合は SKILL.md、書き込みは派生ディレクトリへの SKILL.md の Write の責務)。
38
+ - 変更を種類別カテゴリへ分類する構造を崩さない(changelog 風体裁の核)。
39
+ - 意図に紐づくコミットの「なぜ」と、紐づかないコミットの薄い行を、ともに落とさず配置する(落差を消さない)。
40
+ - 素材に無い変更・背景を、体裁を整えるために足さない。