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,41 @@
1
+ # format 写像:github-releases 風(GitHub Releases 体裁)
2
+
3
+ `intent-release-note` skill(後続 packet で付加)が、git のコミット履歴と意図照合の結果を、**GitHub Releases 風の 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
+ github-releases 風は、**1リリースを「読み物」として上から下へ読ませる**体裁である。読み手は「このリリースで何が嬉しいか(ハイライト)」をまず掴み、必要なら変更一覧へ降りていく立場を想定する。したがって:
15
+
16
+ - リリースのタイトルと短い要約(このリリースの主旨)を最上部に置く。
17
+ - 注目すべき変更を「ハイライト」として数点、意図に紐づく「なぜ」とともに先に立てる。
18
+ - 網羅的な変更一覧は、ハイライトの後に置く(読み飛ばし可能な詳細として)。
19
+ - 素材に無い成果を体裁のために創作しない(紐づかないコミットは薄い行のまま変更一覧へ残す)。
20
+
21
+ ## 構成(上から下へ)
22
+
23
+ | 順 | セクション | 何を置くか |
24
+ |---|---|---|
25
+ | 1 | リリースタイトル | 対象 range(既定は前タグ〜HEAD)を識別するタイトル(タグ名・バージョン等) |
26
+ | 2 | 概要(このリリースの主旨) | このリリース全体が何を達成したかの短い要約 |
27
+ | 3 | ハイライト | 注目すべき変更を数点。意図に紐づく「なぜ」を添えて先に立てる |
28
+ | 4 | 変更一覧(What's Changed) | range 内の変更を網羅的に列挙。意図に紐づくものは「なぜ」付き、紐づかないものは薄い行(落差の可視化) |
29
+ | 5 | コントリビュータ(あれば) | range 内の貢献者。素材(git author)が取れる場合のみ |
30
+
31
+ - セクション 1–4 を基本構成とする。順序を入れ替えない(タイトル → 概要 → ハイライト → 変更一覧の「読み物」順を github-releases 風体裁の核とする)。
32
+ - セクション 3(ハイライト)と 4(変更一覧)は、SKILL.md が照合で「注目」と判断したものをハイライトへ、それ以外を変更一覧へ置く(本ルールが照合し直さない)。
33
+ - セクション 4 では、意図に紐づかないコミットを**黙って捨てず**薄い1行で残す。
34
+ - セクション 5 は素材(git author)が無ければ省く(空見出しを作らない)。
35
+
36
+ ## 不変条件
37
+
38
+ - git・canonical を読み直さない・変更しない(読み取り・照合は SKILL.md、書き込みは派生ディレクトリへの SKILL.md の Write の責務)。
39
+ - タイトル → 概要 → ハイライト → 変更一覧の「読み物」順を崩さない(github-releases 風体裁の核)。
40
+ - 意図に紐づくコミットの「なぜ」と、紐づかないコミットの薄い行を、ともに落とさず配置する(落差を消さない)。
41
+ - 素材に無い成果・背景を、体裁を整えるために足さない。
@@ -0,0 +1,32 @@
1
+ # format 選択手順(format 引数の解釈・委譲規律)
2
+
3
+ `intent-release-note` skill が、利用者の指定した format 引数を解釈し、対応する出力構造ルールへ委譲するための正本。SKILL.md は手順と報告形式のみを持ち、「どの format 引数をどの出力構造ルールへ委譲するか」は本ルールを参照する。本ルールは **委譲規律のみ**を持ち、出力構造そのもの(節構成・カテゴリ・並び)は持たない(それは `format-changelog.md` / `format-github-releases.md` の責務であり、二重管理しない・AD24)。
4
+
5
+ ## posture(format を本体にハードコードせず rules へ委譲する)
6
+
7
+ target format を SKILL.md 本体へハードコードしない。format の選択は本ルールで解釈し、選ばれた出力構造の組み立ては該当 format ルールへ委譲する。format ルールを増やしたいときは出力構造ルールを足し、本ルールの委譲表に1行加えるだけで済むようにする。
8
+
9
+ ## format 引数の解釈と委譲
10
+
11
+ 利用者が `/intent-release-note` に与えた format 引数を、次のとおり解釈し委譲する。
12
+
13
+ | format 引数 | 委譲先(出力構造ルール) | 体裁 |
14
+ |---|---|---|
15
+ | `changelog`(または同義の指定) | `rules/format-changelog.md` | Keep a Changelog 風(種類別カテゴリ) |
16
+ | `github-releases`(または同義の指定) | `rules/format-github-releases.md` | GitHub Releases 風(物語+変更一覧) |
17
+ | 無指定(既定) | `rules/format-changelog.md`(既定 format) | 既定を用い、**どの format で生成したかを出力に明示する** |
18
+
19
+ - format 引数で一意に format が確定したら、対話補完は行わない(利用者への問い返しに依存せず、既定で一意化する)。
20
+ - 既定 format(無指定時)は `changelog` とし、生成物の冒頭で「format = changelog(既定)」のように、どの format を用いたかを明示する。
21
+
22
+ ## 委譲後の責務分担
23
+
24
+ - 本ルール: どの format を使うかを確定し、該当 format ルールへ「素材(照合済みコミット群=紐づくコミットの『なぜ』付き + 紐づかないコミットの薄い行)」を渡す。
25
+ - 委譲先(format-* ルール): 受け取った素材を、その format の出力構造(セクション・カテゴリ・並び)へ流し込む。git 読み・照合は行わない(SKILL.md の責務)。
26
+
27
+ ## 不変条件
28
+
29
+ - 出力構造(節・カテゴリ・並び)を本ルールに書かない(format-* の責務。二重管理しない)。
30
+ - target format を SKILL.md 本体へハードコードしない(本ルールで選択し委譲する・AD24)。
31
+ - 既定 format を用いたときは、どの format で生成したかを必ず出力に明示する。
32
+ - format の選択に独自の機械スコアリング・閾値を持ち込まない(引数の素直な解釈と既定のみ)。
@@ -0,0 +1,42 @@
1
+ # source scope 解釈手順(git range の解釈・read-only)
2
+
3
+ `intent-release-note` skill が、利用者の指定した範囲(git range)を解釈し、その範囲のコミットを read-only で読み取るための正本。SKILL.md は手順と報告形式のみを持ち、「range をどう解釈し、どの read-only git コマンドで読むか」は本ルールを参照する。本ルールは git 履歴を**読むだけ**であり、git の状態(commit / tag / branch / working tree)も canonical な `.intent/*.md` も一切変更しない(書き込みは `.intent/release-note/` 配下のみ、かつ SKILL.md の責務)。
4
+
5
+ ## posture(独自パーサを持たず git を読んで解釈する)
6
+
7
+ range の解釈とコミットの読み取りは、独自のパーサ・スキーマ・索引を持たず、read-only git コマンドの出力を直接読んで行う。新しい構造を導入せず、git のコミットメッセージ・タグ・日時をそのまま素材として扱う。
8
+
9
+ ## range の解釈(引数 + 既定 + fallback)
10
+
11
+ 利用者が `/intent-release-note` に与えた range 引数を起点に、次のとおり対象範囲を解釈する。
12
+
13
+ | 入力 | 解釈すること | 解決 |
14
+ |---|---|---|
15
+ | range 無指定 | 既定範囲を用いる | **直近 tag〜HEAD**(直近の到達可能タグから HEAD まで)。`git describe --tags --abbrev=0` で直近 tag を求め、`<tag>..HEAD` を対象とする |
16
+ | `<from>..<to>` 指定 | 明示された範囲を用いる | 与えられた `<from>..<to>` をそのまま対象とする |
17
+
18
+ - 引数で範囲が一意に確定したら、対話補完は行わない(不要な問いを足さない。利用者への問い返しに依存せず、既定 + fallback で一意化する)。
19
+
20
+ ## 異常系(Fail-Soft と明示エラー)
21
+
22
+ | 状況 | 振る舞い |
23
+ |---|---|
24
+ | 直近 tag が存在せず既定範囲が解決できない | **fallback**: 全履歴(最初のコミット〜HEAD)を対象とし、「tag が無いため全履歴を対象にした」旨を出力に注記する(Fail-Soft)。指定があればその範囲へ fallback する |
25
+ | 与えられた range 引数が不正(解釈不能) | **明示エラー**: range が解釈できない旨を返し、release note を生成しない(誤った範囲で出力しない) |
26
+ | 対象 range にコミットが1件も無い | 空である旨を出力に明示し、canonical / git を一切変更しない |
27
+
28
+ ## read-only git コマンドの allowlist(書き込み厳禁)
29
+
30
+ range の解決とコミット読み取りには、次の **read-only コマンドのみ**を用いる。
31
+
32
+ - 許可(読み取り用法のみ): `git log` / `git tag`(一覧のみ。`-a`/`-m` 等の作成用法は不可)/ `git describe` / `git rev-list` / `git rev-parse` / `git show`。
33
+ - **禁止(一切叩かない)**: `git commit` / `git tag <name>`(作成)/ `git push` / `git fetch --prune 以外の書き込み` / `git checkout` / `git switch` / `git reset` / `git restore` / `git merge` / `git rebase` / `git cherry-pick` / その他 working tree・ref・remote を変更する操作。
34
+
35
+ git の状態を変更しないこと(INV16)。本ルールは range を解決し読み取る素材を SKILL.md へ渡すだけであり、照合・format 写像・出力先 Write は行わない。
36
+
37
+ ## 不変条件
38
+
39
+ - git を読み直すだけで変更しない(read-only。書き込みは SKILL.md の `.intent/release-note/` への Write の責務)。
40
+ - 既定 range(直近 tag〜HEAD)・引数 range・fallback・不正エラーの解釈規律を崩さない。
41
+ - read-only allowlist の外のコマンドを足さない(書き込み系を導入しない)。
42
+ - range の解釈に独自の機械スコアリング・閾値を持ち込まない(照合は SKILL.md の Step 3 の責務であり、本ルールは範囲解決のみ)。
@@ -0,0 +1,169 @@
1
+ ---
2
+ name: intent-status
3
+ description: .intent/ の現状を読み取り、現在地の要約と「次の一手」をちょうど1つ推奨する読み取り専用の案内スキル。ファイルの作成・変更・削除は一切しない。
4
+ ---
5
+
6
+ # intent-status Skill
7
+
8
+ ## Core Mission
9
+ - **Success Criteria**:
10
+ - `.intent/` 配下の成果物(mode・intent-tree・intent-compass・packets/ の index と packet ファイル群・packet 毎ディレクトリの cc-sdd 下書き群・deltas)の存在と記入状態を読み取り、現在地の要約を提示している
11
+ - `.intent/packets/index.md` と `active/` 配下の実体の整合(index に無い packet・実体の無い行・name / state / summary の不一致)、active/ 内の done / superseded_by 記入済みファイルの滞留、export-log 最新行の packet の active/ 不在(archive 在中)を検査し、違反を現在地サマリで報告している
12
+ - 孤児 spec 検査: `.kiro/specs/` に進行/完了している spec があるのに、`active/` のどの packet・`deltas.md` のどの delta ともテキスト照合できない場合、「起草されていない実装の可能性(Packet を経ずに実装された疑い)」として詳細に併記している(断定せず候補提示。照合不能は常態として誤検知を許容し、次の一手の first-match は奪わない。`.kiro/specs/` 不在の環境ではこの検査を行わない)
13
+ - intent-tree 起票漏れ検査(discover スキップ): `.kiro/specs/` に設計/実装が進んだ spec があるのに、`.intent/intent-tree.md` の **L0〜L4 の見出し・本文**(O#/C#/B#/P# のような ID アンカーは intent-planner に存在しないためテキスト照合のみで判定する)のどれともテキスト照合できない場合、「intent-tree に起票されていない実装の可能性(discover スキップ)」として詳細に併記している(断定せず候補提示。照合不能は常態として誤検知を許容し、次の一手の first-match は奪わない。`.intent/intent-tree.md` 不在または `.kiro/specs/` 不在の環境ではこの検査を行わない)。この起票漏れ(tree 層)・既存の孤児 spec 検査(Packet 層)・writeback 漏れ(下流層)を3階層で棲み分け、同一 spec が複数層に該当する場合は最上流の1層でのみ提示して二重警告を出さない
14
+ - 報告冒頭にミニ工程レール(全 packet を5信号 ✅/🔵/⚪/🔴/◻ で縦に並べ、各行に `[現在の工程 → 次に通る工程]` を併記する)を置き、「いまどの packet が 🔵 今ここで・この後どの工程が残り・どこに ⚪ 残工程 / 🔴 反映漏れがあるか」を一望できるようにしている。内部用語(突合手順・整合検査・enforcement 用語)は冒頭でなく詳細(後段)に退避している
15
+ - 「次の一手」を `rules/decision-table.md` の first-match でちょうど1つ推奨し、推奨理由と判断根拠(どの成果物のどの状態に基づくか)を併記している
16
+ - 推奨候補を discover / compass / packets / export / validate / improve / writeback / 「アクション不要」の中から選定している
17
+ - mode.md の enforcement が remind または gate のとき intent-check による鮮度検査を行い、違反(判定行の `result=stale` または `pending` が 1 以上)の検出時は現在地サマリに intent-check の stdout を引用した鮮度警告を併記している(off・未記載・不正値・実行不可のときは現行どおり警告を出さない)
18
+ - mode.md の drift-watch が `on` のとき drift-log を読んで軽い集計(`caught N / missed N / false-positive N / unjudged N`)を現在地サマリに1ブロック併記している(off・未記載・不正値・セクション不在・mode.md 不在のときは併記せず現行どおり続行する)。drift-log は読むのみで書き込まない(read-only 維持)
19
+ - intent-compass.md の節更新日(`Updated (Invariants):` / `Updated (Decision Rules):`)と active/ 配下 packet の `updated_at` を Read/Glob/Grep のみで照合し、「compass 更新後に未追随」の packet 件数が閾値以上のとき `/intent-validate` を頃合いとして推奨し(決定表 row 12)、その根拠(どの節が更新後・未追随が何件か)を併記している。確定診断はせず概算にとどめ、閾値未満では提案しない(read-only 維持)
20
+ - `.intent/milestones.md` の各 event を Read/Glob/Grep のみで読み、event 記録日時より後に「compass の `Updated (Decision Rules):` 反映打刻」または「deltas の該当 Decision 参照」のいずれも無いものを「未消化 milestone(記録済みだが対応する見直しが未処理)」として把握し、残課題として現在地報告に併記している(Step 3.6 と同型の ISO 8601 辞書順・両端実打刻ペアのみの比較。断定せず候補提示。`.intent/milestones.md` 不在時はこの検査を省略する。read-only 維持)
21
+ - ファイルの作成・変更・削除を一切行っていない(read-only)
22
+ - 出力中の主要術語に、その意味の一行説明を `術語(説明)` の形で常時併記している
23
+
24
+ ## Execution Steps
25
+
26
+ ### Step 1: `.intent/` の存在を確認する
27
+ - `.intent/` が存在しなければ、セットアップ手順(`npx intent-planner` の実行)を案内して終了する。
28
+ - `.intent/mode.local.md`(無ければ旧 `.intent/mode.md`)の mode 状態を読む。どちらにも無ければ standard 既定で続行し、Open Questions に「モード未確定・`/intent-discover` 推奨」を併記する(停止しない)。Enforcement / Drift-watch は `.intent/mode.md` を読む。
29
+
30
+ ### Step 2: 成果物を読み取る
31
+ - `.intent/intent-tree.md` / `.intent/intent-compass.md` / `.intent/packets/index.md` と対象 packet ファイル(`.intent/packets/active/` 配下。通常の処理ではこの2種のみを読み、全 packet ファイルの本文丸読みをしない)/ `.intent/cc-sdd/<スラッグ>/*.md`(packet 毎ディレクトリの下書き群)/ `deltas`(分割形 `.intent/deltas/*.md` 群があれば正本・無ければ旧 `.intent/deltas.md` ミラー。`rules/decision-table.md` 脚注10の分割形横断読み)を読み、それぞれの 有/無/未記入 と特記事項(未解決 Question、Status: pending の delta、「保留」タグ付き見送り項目など)を把握する。
32
+ - packets 整合検査: `.intent/packets/index.md` と `.intent/packets/active/` 配下の実体を突合し(実体側は各ファイルの frontmatter のみを読む)、乖離 — index に無い packet・実体の無い行・name / state / summary の不一致 — を整合違反として把握する。あわせて active/ 配下に `state: done` または `superseded_by` 記入済みの packet ファイルが滞留していれば、その滞留も整合違反として把握する(報告のみ。自動修復はしない)。
33
+ - index.md が不在の場合は、`active/` 配下の frontmatter から直接一覧を構成して処理を継続し、Step 5 で index の再生成(canonical を変更する skill の実行)を促す。
34
+ - 現行 Source Packet(最新 export)の特定は export-log(分割形 `.intent/export-log/*.md` 群があれば正本・`exported_at` 昇順/無ければ旧 `.intent/export-log.md` ミラー。`rules/decision-table.md` 脚注10の分割形横断読み)の最新行(末尾のデータ行)の packet 名を正とする。解決順序: ①利用者の明示指定 → ②export-log 最新行(正典) → ③下書きの `## Source Packet` 見出し(packet ディレクトリが1つのみの場合に限り採用。複数ある場合は各ディレクトリの見出しを候補として列挙し断定しない) → ④下書き本文と index.md / packet ファイルのテキスト照合(自然言語の候補提示にとどめ、断定しない)。export-log が不在または最新行が解釈不能で③以降へフォールバックした場合は、その事実を Step 5 の報告に含める。現行 Source Packet(export-log 最新行の packet)が `active/` に不在(archive 在中)の場合も、その事実を Step 5 の報告に含める。
35
+ - 現行 packet のディレクトリ(`.intent/cc-sdd/<スラッグ>/`)の有無を確認する。packet 名とディレクトリの同定は「ディレクトリ内 requirements.md の `## Source Packet` 見出しが packet 名と一致すること」を正とする(slug 再計算は探索の高速路にとどめ、見出し不一致なら同定しない)。
36
+ - `.kiro/specs/` は存在する場合のみ読み、各 spec の spec.json と tasks.md のチェック状況を文脈に使う。対応 spec の特定は spec ディレクトリ名および各 spec の requirements.md「Project Description (Input)」本文と Source Packet 名のテキスト照合による(照合規則の詳細は `rules/decision-table.md` の脚注に従う)。
37
+ - 孤児 spec 検査(起草スキップの検出): `.kiro/specs/` が存在する場合に限り、各 spec が「進行/完了している」(spec.json が requirements 以降のフェーズ・または tasks.md に1つ以上チェック済みタスクがある)にもかかわらず、`active/` のどの packet・`archive/` のどの packet・`deltas`(分割形 `.intent/deltas/*.md` 群があれば正本・無ければ旧 `.intent/deltas.md` ミラー。`rules/decision-table.md` 脚注10の分割形横断読み)のどの delta ともテキスト照合できない spec を「孤児 spec」として把握する。照合は既存の対応 spec 特定と同じ手段(spec ディレクトリ名・requirements.md「Project Description (Input)」本文と packet 名・spec_refs のテキスト照合。規則は `rules/decision-table.md` 脚注に従う)で行い、**ファイルから機械観測できる範囲に限る**(git 履歴・コード差分・タイムスタンプは見ない)。孤児 spec は「Packet を経ずに実装された疑い(起草フェーズのスキップ)」として Step 5 ③ 詳細に併記する。照合不能は常態(脚注の既知限界)であり**断定せず**候補提示にとどめ、次の一手の first-match には影響させない(整合検査と同じ「報告に留める」温度。誤検知を許容する)。
38
+ - intent-tree 起票漏れ検査(discover スキップの検出): `.kiro/specs/` と `.intent/intent-tree.md` がともに存在する場合に限り、各 spec が「設計/実装が進んでいる」(spec.json が requirements 以降のフェーズ・または tasks.md に1つ以上チェック済みタスクがある)にもかかわらず、`.intent/intent-tree.md` の **L0〜L4 の見出し・本文**(L0 Product Purpose / L1 Desired Outcomes / L2 Capabilities / L3 Behavioral・Architectural Intents / L4 Candidate Packets。intent-planner の現行記法はこの **L0〜L4 のレベル記号**であり、`O#`/`C#`/`B#`/`P#` のような **ID アンカーは存在しないので照合に使わずテキスト照合のみで行う**)のどれともテキスト照合できない spec を「intent-tree に起票されていない実装の可能性(discover スキップ=起票フェーズそのもののスキップ)」として把握する。照合は既存の対応 spec 特定と同じ手段(spec ディレクトリ名・requirements.md「Project Description (Input)」本文と intent-tree の L0〜L4 見出し・本文のテキスト照合。規則は `rules/decision-table.md` 脚注に従う)で行い、**ファイルから機械観測できる範囲に限る**(git 履歴・コード差分・タイムスタンプは見ない)。これは孤児 spec 検査(Packet 不在)よりさらに**上流**の起票漏れであり、両検査の階層は分けて扱う(後述の3階層棲み分け)。intent-tree への起票漏れは Step 5 ③ 詳細に併記する。照合不能は常態(脚注の既知限界)であり**断定せず**候補提示にとどめ、次の一手の first-match には影響させない(整合検査・孤児 spec 検査と同じ「報告に留める」温度。誤検知を許容する)。`.intent/intent-tree.md` 不在または `.kiro/specs/` 不在の環境ではこの検査を行わない。
39
+ - 起票漏れ/孤児 spec/writeback 漏れの3階層棲み分け: 同一 spec が複数層に該当しうるため、上流から **①intent-tree 起票漏れ(discover スキップ=tree 層)→ ②孤児 spec=Packet 不在(packet 層)→ ③writeback 漏れ(enforcement/鮮度。下流層)** の順で位置づけ、該当した spec は**最上流の1層でのみ提示**して二重警告を出さない(上流が該当する spec を下流層でも重ねて警告しない)。提示時は `discover → packets → writeback` の段階対処として案内する(詳細は `rules/decision-table.md` 脚注に従う)。
40
+
41
+ ### Step 3: 鮮度を検査する(enforcement 連動)
42
+ - Step 1 で読んだ `.intent/mode.md` の `## Enforcement(ユーザー管理)` セクションにある `enforcement` の値を確認する。`off`・未記載・不正値のときは本 Step を行わない(intent-check を実行せず、鮮度警告も出さない。現行動作の維持)。
43
+ - `remind` または `gate` のときは、Bash で `node .intent/scripts/intent-check.mjs` を実行する。実行不可(Bash が使えない・スクリプト不在・exit 2)の場合は本 Step を省略し、既存挙動で続行する。
44
+ - 判定は stdout 1行目の判定行 `intent-check: result=<ok|stale|not-applicable> enforcement=<off|remind|gate> commits=<N|-> threshold=<M> grace=<in-implementation|-> pending=<K> block=<yes|no>` をそのまま信頼し、再導出しない。`result=stale` または `pending` が 1 以上のとき違反として扱う。
45
+ - 違反を検出した場合は、Step 5 の現在地サマリに intent-check の stdout(判定行 + 人間可読の根拠行)を引用した鮮度警告を併記する。intent-check は読み取り専用スクリプト(ファイルの作成・変更・削除を行わない)であり、本スキルの read-only 性質は維持される。
46
+
47
+ ### Step 3.5: drift 併記(drift-watch 連動)
48
+ - Step 1 で読んだ `.intent/mode.md` の `## Drift-watch(ユーザー管理)` セクションにある `drift-watch` の値を確認する。`on` でないとき(`off`・未記載・不正値・セクション不在・mode.md 不在)は本 Step を行わない(drift 併記をせず、現行どおり続行する。現行動作の維持)。
49
+ - `on` のときは `.intent/drift-log.md` を **Read / Grep で読むのみ**(Write しない。Bash は既存の intent-check 起動に限る原則を変えない)で、各エントリの `outcome` と `user-verdict` を集計する。`caught` / `missed` / `false-positive` は `outcome` の値から、`unjudged` は `user-verdict=unjudged` の件数から数える。
50
+ - 集計結果は鮮度警告と同じ位置・温度感で、Step 5 の現在地サマリに `caught N / missed N / false-positive N / unjudged N` の1ブロックとして軽く併記する(情報過多にしない)。`.intent/drift-log.md` が不在のときはこのブロックを省略する(エラーにしない)。
51
+ - drift-log は読むのみで書き込まない(read-only 維持)。`missed=0` は「効いた」ではなく「記録漏れの疑い」として、断定せず提示する。
52
+
53
+ ### Step 3.6: conformance 陳腐化の頃合いを概算する(read-only)
54
+ - 目的: compass(Invariants / Decision Rules)が更新されたのに packet がまだ追随していない「頃合い」を概算し、決定表 row 12 で `/intent-validate` を推す材料にする。確定診断(要修正/推奨)は validate の `invariant-stale-vs-compass` 等が行い、status は概算にとどめる。
55
+ - 取得は **Read / Glob / Grep のみ**で行う(Bash=intent-check は使わない。drift-log と同じく read-only の範囲を広げない):
56
+ - `.intent/intent-compass.md` の `Updated (Invariants):` / `Updated (Decision Rules):` 行の ISO 8601 値を読む(`—` は未打刻)。
57
+ - `.intent/packets/active/` 各 packet の frontmatter `updated_at` を読む(`archive/` は対象外)。
58
+ - 判定: いずれかの compass 節更新日 > その packet の `updated_at` を満たす active packet を「compass 更新後に未追随」として数える。比較は ISO 8601 文字列の辞書順。両端が実打刻のペアのみ対象とし、`updated_at` 不在の packet は対象外(推測で埋めない=後方互換規律)。compass 節更新日が両方 `—` のときは本 Step を行わない(頃合いを出さない)。
59
+ - 未追随件数が閾値(既定 1 件、決定表 row 12 に明示)以上のとき、Step 5 ③ 詳細に「どの compass 節が更新後・未追随 packet が何件か」を根拠として併記する。閾値未満のときは併記しない(狼少年化の回避)。本 Step は何も書き込まない(read-only 維持)。
60
+
61
+ ### Step 3.7: 未消化 milestone を残課題として把握する(read-only)
62
+ - 目的: `.intent/milestones.md`(節目イベント記録)に記録された節目イベントのうち、対応する Decision の見直し(Revisit 反映)がまだ消化されていないものを「未消化 milestone」として残課題に挙げる。記録は利用者の宣言的記入に委ね、status は照合のみを行う(算出・推論・自動修正なし)。
63
+ - 取得・比較は Step 3.6 と同じ **Read / Glob / Grep のみ**で行う(Bash=intent-check は使わない。read-only の範囲を広げない):
64
+ - `.intent/milestones.md` の各 event 行から `event`(自然文文字列)と `recorded_at`(ISO 8601 の記録日時)を読む。
65
+ - `.intent/intent-compass.md` の `Updated (Decision Rules):` 行の ISO 8601 値(Revisit 反映打刻。`—` は未打刻)と、`.intent/deltas.md` の各 delta が当該 Decision を参照しているかを読む。
66
+ - 判定: 各 event について、その `recorded_at` より後に「compass の `Updated (Decision Rules):` 反映打刻がある」または「deltas に該当 Decision への参照がある」のいずれも観測できないものを「未消化 milestone(記録済みだが対応する見直しが未処理)」として数える。日時の比較は Step 3.6 と同じ ISO 8601 文字列の辞書順とし、両端が実打刻のペアのみ対象とする(`recorded_at` 不在・`Updated (Decision Rules):` が `—` の event は推測で埋めず対象外=後方互換規律)。
67
+ - 未消化 milestone を検出したとき、Step 5 ③ 詳細に「どの event が未消化か」を残課題として併記する(断定せず候補提示。照合不能は常態として誤検知を許容し、次の一手の first-match は奪わない)。`.intent/milestones.md` が不在のときは本 Step を行わない(検査をスキップして続行・エラーにしない)。本 Step は何も書き込まない(read-only 維持)。
68
+
69
+ ### Step 4: 決定表で次の一手を1つに決める
70
+ - `rules/decision-table.md` を読み、first-match(上から評価し、最初に該当した行のみ)で「次の一手」をちょうど1つ決定する。
71
+ - 複数候補の併記はしない(理由と根拠は併記する)。推奨が複数見える曖昧なケースも、決定表の優先順位で機械的に1つへ畳む。
72
+
73
+ ### Step 5: 報告する
74
+ 報告は**読み手が「いまどこで、次に何をするか」に最短で辿り着ける順序**で構成する。内部用語(突合手順・整合検査・enforcement 用語など)は先頭に出さず、③ 以降の詳細に退避する。
75
+
76
+ - ① **工程レール(冒頭ミニレール)**: 全 packet を縦に並べ、各 packet に5信号(✅ 反映済 / 🔵 今ここ / ⚪ 未着手 / 🔴 反映漏れ / ◻ 統合済)のいずれか1つを付け、**続けて `[現在の工程 → 次に通る工程]` を併記する**。信号の判定も工程併記も overview の `progress-readout.md`「工程レール」と同じ規律(5信号は `state` × export-log の行有無 × deltas の対応エントリ有無を first-match で突合、工程併記は packet `state` を固定パイプライン `discover→compass→packets→export→実装→verify→writeback` 上の位置として読み替え。いずれも算出・推論しない)に従う。例: `P2 🔵 今ここ [implementing → 次: verify→writeback]` / `P3 ⚪ 未着手 [ready → 次: export→実装]`。これにより**「P いくつが今ここで・この後どの工程が残り・どこに ⚪ 残工程 / 🔴 反映漏れがあるか」を1枚で一望**させる。各信号は用語一覧に従い意味を併記する。レールは read-only mirror であり、status は何も変更しない。
77
+ - ② **次の一手(ちょうど1つ・1行)**: スキル名 or「アクション不要」を**1行で**先に示し、続けて推奨理由 + 判断根拠(どの成果物のどの状態に基づくか)を簡潔に添える。決定表(`rules/decision-table.md`)の first-match 結果を、内部の行番号でなく**人間が次に取る行動**として翻訳して提示する。
78
+ - ③ **詳細(折りたたみ位置)**: ① の各信号の根拠となった成果物ごとの 有/無/未記入 と特記事項、現行 Source Packet(export-log 最新行に基づく packet 名)と当該 packet のディレクトリ(`.intent/cc-sdd/<スラッグ>/`)の有無。packets 整合検査の違反(index ↔ active/ の乖離・done / superseded_by の滞留・export-log 最新行の packet の active/ 不在)を検出した場合はその内容を、index 不在の場合は再生成の案内を、Step 3 で違反を検出した場合は intent-check の stdout を引用した鮮度警告を、Step 3.5 で drift-watch が `on` のときは drift-log の軽い集計(`caught N / missed N / false-positive N / unjudged N`)を、Step 3.6 で conformance 陳腐化の頃合い(未追随件数が閾値以上)を検出した場合は「どの compass 節が更新後・未追随 packet が何件か」の根拠を、鮮度警告と同じ位置・温度感で1ブロック併記する。Step 2 で intent-tree 起票漏れ(discover スキップの疑い)を検出した場合は、その spec 名と「設計/実装が進んでいますが、`.intent/intent-tree.md` の L0〜L4 のどのノードともテキスト照合できませんでした。discover フェーズそのものをスキップした疑いがあります。`/intent-discover` で intent-tree(L0〜L4)へ起票し、その後 `/intent-packets` で Packet を起こし、`/intent-writeback` で実装の現実を canonical へ戻すのが順序です」という案内を、断定を避けた候補提示の温度で1ブロック併記する(次の一手の決定表結果は変えない)。Step 2 で孤児 spec(起草されていない実装の疑い)を検出した場合は、その spec 名と「Packet を経ずに実装された疑いがあります。事後でも `/intent-packets` で Packet を起こし(未確定の仕様は Open Questions / Deferred として明示)、その後 `/intent-writeback` で実装の現実を canonical へ戻すのが順序です」という案内を、断定を避けた候補提示の温度で1ブロック併記する(次の一手の決定表結果は変えない)。**この2検査と writeback 漏れ(鮮度警告)は上流から tree 層 → packet 層 → 下流層の3階層で棲み分け、同一 spec が複数層に該当する場合は最上流の1層でのみ提示して二重警告を出さない**(上流が該当する spec を下流の孤児 spec/鮮度警告で重ねて出さず、`discover → packets → writeback` の段階対処として案内する)。Step 3.7 で未消化 milestone(記録済みだが対応する見直しが未処理の節目イベント)を検出した場合は、その event 名と「節目イベントが記録されていますが、対応する Decision の見直し(Revisit 反映)がまだ消化されていない可能性があります。`/intent-improve` で該当 Decision Rule の `Revisit when` 照合・再提案を確認するのが順序です」という案内を、鮮度警告と同じ位置・温度感で(断定を避けた候補提示の温度で)1ブロック併記する(次の一手の決定表結果は変えない)。
79
+ - ④ Open Questions: ユーザー確認が必要な点。確認は自然言語での候補提示にとどめ、次のアクションの判断はユーザーに委ねる(一方向報告)。
80
+ - **未記入・不在の表示**: 成果物が未記入・不在のときは、`Intent Tree(やりたいことの階層マップ): 未作成` のように「術語(説明): 状態」の形で、その成果物が**まだ無い/中身が入っていない**ことが術語を知らなくても分かる平易な日本語で示す。整合検査の違反(`superseded_by` 滞留・index との乖離・archive 在中等)も同様に、術語に説明を併記しつつ「何がどう滞留/乖離しているか」を平易な日本語で示す。
81
+
82
+ ## 用語の常時併記ルール
83
+
84
+ 出力に現れる術語は、下記「用語説明一覧」を参照して `術語(説明)` の括弧書き形式で意味を併記する。具体的な規約は以下の通り。
85
+
86
+ - **常時併記ルール**: status 出力に現れる intent-planner 固有の術語(成果物名・state 値・検査用語・コマンド名)は、**英語表記のまま正として保ち、訳語に置換しない**。その上で、各術語にはその意味を表す日本語の一行説明を `術語(説明)` の括弧書き形式で併記する。併記は**初出箇所に限定せず、その術語が出力に現れるたびに毎回行う**(status 出力は状況により出る項目が変わる断片的な報告であり「初出」が安定しないため、毎回その場で意味が分かることを優先する)。
87
+ - **冗長回避の運用**: 同一出力内で同じ術語が繰り返し現れて冗長になる場合でも、各項目を**術語のみで放置しない**。一覧・表形式の項目見出しでは括弧書き併記を保ち、本文中の反復言及では文脈で意味が辿れる限り形式を簡潔に整えてよい。形式を整える場合も「術語の意味が辿れる状態」を維持することが条件。
88
+
89
+ ### 用語説明一覧
90
+
91
+ status が出力時に参照する術語と一行説明(この一覧はこの SKILL 内で self-contained に保つ)。
92
+
93
+ **成果物名**
94
+
95
+ | 術語 | 一行説明 |
96
+ |------|----------|
97
+ | Intent Tree | やりたいことの階層マップ(L0=目的 〜 L4=作業単位候補) |
98
+ | Intent Compass | 局所最適を防ぐための判断基準 |
99
+ | Packets / packet | cc-sdd に渡す前の作業単位(Issue より上位・spec より手前の粒度) |
100
+ | Source Packet | その下書きの元になった packet(export 元の同定) |
101
+ | delta | canonical 成果物を事後更新するための差分記録 |
102
+
103
+ **state(5値)**
104
+
105
+ | 術語 | 一行説明 |
106
+ |------|----------|
107
+ | state: draft | 起案中・未確定 |
108
+ | state: ready | 着手可(依存解決済み・実装待ち) |
109
+ | state: implementing | 実装中 |
110
+ | state: verifying | 実装済み・検証待ち(Evidence 未確定) |
111
+ | state: done | 証拠取得済み・完了 |
112
+
113
+ **工程レール(5信号 + 工程併記)**(packet を `state` × export-log の行有無 × deltas の対応エントリ有無で突合し、first-match で1つ付ける。さらに各行に `[現在の工程 → 次に通る工程]` を併記し、packet `state` を固定パイプライン `discover→compass→packets→export→実装→verify→writeback` 上の位置として読み替える。判定の正本は `rules/decision-table.md` ではなく overview の `progress-readout.md`「工程レール」だが、status の冒頭ミニレールも同じ5信号語彙 + 工程併記を使う)
114
+
115
+ | 信号 | 一行説明 |
116
+ |------|----------|
117
+ | ✅ 反映済 | 実装完了し intent へ書き戻し済み(`state: done` かつ対応 delta が promoted/closed) |
118
+ | 🔵 今ここ | いま手をつけている1工程(export 済み・未反映のうち現行 Source Packet=export-log 最新行) |
119
+ | 🔴 反映漏れ | 実装の証跡があるのに未反映(export 済み・未反映のうち現行 Source Packet 以外=過去の取り残し) |
120
+ | ⚪ 未着手 | まだ cc-sdd へ export していない(export-log に行が無い) |
121
+ | ◻ 統合済 | 後継 packet に統合され役目を終えた(`superseded_by` が非空) |
122
+
123
+ **置換軸**
124
+
125
+ | 術語 | 一行説明 |
126
+ |------|----------|
127
+ | superseded_by | この packet を置き換えた後継 packet の ID(state ではなく置換を表す別軸) |
128
+
129
+ **enforcement / staleness**
130
+
131
+ | 術語 | 一行説明 |
132
+ |------|----------|
133
+ | enforcement | 書き戻し漏れの強制度(off=検査しない / remind=警告のみ / gate=export・push を停止) |
134
+ | stale(staleness) | 書き戻しが古い(実装が進んだのに intent へ反映されていない状態) |
135
+ | conformance 陳腐化 | compass(Invariants/Decision Rules)が更新されたのに packet がまだ追随していない状態(status は頃合いを概算し、確定診断は `/intent-validate` が行う) |
136
+
137
+ **drift-watch**
138
+
139
+ | 術語 | 一行説明 |
140
+ |------|----------|
141
+ | drift-watch | 意図からのズレ(drift)の監視(off=何もしない / on=照合警告と記録。いずれも警告のみで停止しない) |
142
+
143
+ **drift 集計の4語**(`caught` / `missed` / `false-positive` は **outcome**、`unjudged` は **user-verdict** の値。種別を取り違えない)
144
+
145
+ | 術語 | 種別 | 一行説明 |
146
+ |------|------|----------|
147
+ | caught | outcome | export 時にズレを捕捉できた(捕捉成功) |
148
+ | missed | outcome | ズレを防げず通してしまった |
149
+ | false-positive | outcome | 誤検知だった |
150
+ | unjudged | user-verdict | まだ人がそのズレの妥当性を判定していない(outcome ではなく user-verdict の値) |
151
+
152
+ ## Output Description
153
+
154
+ **読み手**: 「いま自分がどこにいて、次に何をすればいいか」を最短で知りたい人間開発者。
155
+ **この出力で最初に掴ませること**: ①工程レールで「どの packet が 🔵 今ここ・この後どの工程が残るか」、続けて②「次の一手ちょうど1つ」。内部用語(突合・整合検査・enforcement)はそのあとの詳細に退避する。出力は Step 5 の順序(①工程レール → ②次の一手 → ③詳細 → ④Open Questions)で構成する。
156
+
157
+ - ① **工程レール**(冒頭・結論): 全 packet を縦に並べ、各行に5信号 + `[現在の工程 → 次に通る工程]` を併記(残工程 ⚪ と反映漏れ 🔴 を一望)
158
+ - ② **次の一手ちょうど1つ**(推奨理由・判断根拠付き)
159
+ - ③ **詳細**: 現在地の要約(成果物ごとの存在と記入状態 + 特記事項。現行 Source Packet と当該 packet ディレクトリの有無を含む。enforcement 違反の検出時は intent-check の stdout を引用した鮮度警告を含む。drift-watch が `on` のときは drift-log の軽い集計 `caught N / missed N / false-positive N / unjudged N` の1ブロックを併記し、`on` でないときは併記しない。conformance 陳腐化の頃合い(Step 3.6)を検出したときは未追随の根拠を1ブロック併記し、閾値未満のときは併記しない)。packets 整合検査の結果(index ↔ active/ の乖離・done / superseded_by 滞留・export-log 最新行の packet の active/ 不在の報告。index 不在時の再生成案内を含む)も詳細に置く。
160
+ - ④ 人間が確認すべき Open Questions
161
+
162
+ ## Safety & Fallback
163
+ - **read-only 宣言**: ファイルの作成・変更・削除を一切行わない(frontmatter に Write を持たない。Bash は読み取り専用スクリプト `node .intent/scripts/intent-check.mjs` の起動に限り、この性質を変えない)。drift-log の読み取りは Read / Grep のみで行い(Bash 起動の対象を広げない・drift-log に書き込まない)、この read-only 性質を変えない。
164
+ - `.intent/` 不在時はセットアップ手順を案内して終了する。
165
+ - mode.md 不在は停止せず standard 既定で続行し告知する。
166
+ - enforcement が `off`・未記載・不正値のときは intent-check を実行せず鮮度警告も出さない(現行動作)。`remind`・`gate` でも intent-check が実行不可(Bash 不可・スクリプト不在・exit 2)のときは鮮度検査を省略して続行する。
167
+ - drift-watch が `on` でないとき(`off`・未記載・不正値・セクション不在・mode.md 不在)は drift 併記を行わず、現行動作とバイト等価のまま続行する。`on` でも `.intent/drift-log.md` が不在のときは drift ブロックを省略する(エラーにしない)。
168
+ - `.intent/export-log.md` が不在または最新行が解釈不能のときは、下書きの `## Source Packet` 見出し → index.md / packet ファイルとのテキスト照合の順にフォールバックし(テキスト照合は候補提示にとどめ断定しない)、フォールバックした事実を報告に含める。
169
+ - `.kiro/specs/` が無い環境でも動作する(該当行は `rules/decision-table.md` の条件文言付き推奨に従う)。
@@ -0,0 +1,47 @@
1
+ # intent-status 推奨決定表(first-match、上から評価)
2
+
3
+ `intent-status` skill が「次の一手」をちょうど1つ決定するための正本。SKILL.md は手順と報告形式のみを持ち、判定は本表を参照する。すべての条件はファイルから機械的に観測可能であることを必須とする(status は Read/Glob/Grep のみで、git 履歴・タイムスタンプ・コード差分を直接は参照できない。唯一の例外は row 9 で、読み取り専用スクリプト `node .intent/scripts/intent-check.mjs` の判定行を介した観測に限る — 脚注4参照)。row 12(conformance 陳腐化の頃合い)は Read/Glob/Grep のみで成立し、intent-check には依存しない — 脚注7参照。
4
+
5
+ | # | 条件(ファイルから観測可能) | 推奨 |
6
+ |---|------|------|
7
+ | 1 | `.intent/` なし | セットアップ案内(終了) |
8
+ | 2 | intent-tree 未記入 or mode 未確定 | `/intent-discover` |
9
+ | 3 | compass 未記入 | `/intent-compass` |
10
+ | 4 | packets 未記入 | `/intent-packets` |
11
+ | 5 | packets に Invariants/Anti-direction との**明示的な文言衝突**(validate-checks の「要修正」級に限る)を読取中に検出 | `/intent-validate` |
12
+ | 6 | Status: pending の delta が滞留(deltas は脚注10の分割形横断読みで観測) | `/intent-writeback`(昇格再開) |
13
+ | 7 | 現行 Source Packet(最新 export)に対応する delta エントリなし、**かつ実装完了の証拠あり**。一次判定: 現行 Source Packet の `state` が `done`(`## Evidence` 確定済み)。補助信号: `state` が観測できない既存 packet(細分化前)への後方互換時のみ、対応する `.kiro/specs/` spec の tasks 全チェック済みを実装完了の証拠とみなす(`.kiro/` 不在の場合も本行に該当するが、推奨文言に「実装完了が前提。未完なら cc-sdd 実装を継続」を必須付記)。なお packet `state=done` だが kiro tasks 未完(またはその逆)の食い違いは「不整合」として報告に留め、自動で一方を正としない(宣言規律) | `/intent-writeback` |
14
+ | 8 | 現行 Source Packet に対応する delta エントリなし、かつ**実装進行中**。一次判定: 現行 Source Packet の `state` が `draft`/`ready`/`implementing`/`verifying`(`done` 未到達。`depends_on` に `done` でない packet があればブロック中=着手前)。補助信号: `state` が観測できない既存 packet への後方互換時のみ、対応 spec の tasks 未完を実装進行中とみなす | アクション不要(注記: cc-sdd 実装を継続。`verifying` は Evidence 確定 → `state=done` 後に `/intent-writeback`) |
15
+ | 9 | enforcement(mode.md の `## Enforcement(ユーザー管理)` セクション)が remind または gate、かつ intent-check の判定行が grace なしの stale(`grace=-` かつ `result=stale`) | `/intent-writeback`(staleness の解消) |
16
+ | 10 | 「保留」タグ付きの見送り項目が残存 | `/intent-improve`(再提案または却下への確定を促す。タグの確定更新は `/intent-writeback` が行う) |
17
+ | 11 | active/ 配下に delta エントリ(deltas を脚注10の分割形横断読みで観測)の無い packet ファイルがあり、かつ現行 Source Packet と不一致(export 済みか未 export かは export-log を脚注10の分割形横断読みで観測し行があるか否かで判別 → 候補列挙 + ユーザー確認付き) | `/intent-validate`(問題なければ続けて `/intent-export-cc-sdd` または `/intent-writeback` をユーザーが選択) |
18
+ | 12 | conformance 陳腐化の頃合い: intent-compass.md の節更新日(`Updated (Invariants):` / `Updated (Decision Rules):` のいずれか、実打刻=`—` でない)が、active/ 配下の packet の `updated_at`(実打刻のもの)より新しく、その「compass 更新後に未追随」の packet が **閾値件数(既定: 1 件)以上**ある(頃合いの概算。確定診断は validate に委ねる) | `/intent-validate`(compass 更新が packet に追随しているかの照合。conformance 陳腐化の点検) |
19
+ | 13 | 上記いずれもなし | アクション不要(常設注記: 実装の節目での定期的な `/intent-improve` を推奨) |
20
+
21
+ ## 脚注
22
+
23
+ 1. 優先順位は first-match で「ちょうど1つ」を保証する(上から評価し、最初に該当した行のみを採用する。複数候補の併記はしない)。各行の条件はすべて `.intent/`(+存在すれば `.kiro/specs/` の spec.json・tasks.md チェック状況)の記載内容のみから判定する。
24
+ 2. row 7/8 の実装進捗の一次情報は現行 Source Packet 自身の `state`(`## Evidence` 確定状況)であり、kiro tasks は `state` を観測できない既存 packet への後方互換時の補助信号にすぎない。その補助信号における「対応する spec」は `.kiro/specs/` 配下の **spec ディレクトリ名および各 spec の requirements.md「Project Description (Input)」本文**と Source Packet 名のテキスト照合で特定し、特定できなければ row 7 の `.kiro/` 不在側(条件文言付き推奨)に倒す(export は feature 名を記録しないため照合不能は常態として設計し、頻度が高い場合の限界も deltas.md 運用説明の既知限界に含める)。
25
+ 3. row 11 等の「ユーザー確認」は自然言語での候補提示とユーザー自身の次アクション判断を指す。status は read-only・一方向報告であり、対話確認ツールは使わない。packet ごとの下書き(`.intent/cc-sdd/<packetスラッグ>/`、Git 非追跡・ローカル専用)は永続保持され、export 履歴は export-log(脚注10の分割形横断読み)に記録されるため、「過去に export されたが書き戻されていない packet」の候補は export-log 全行 × 残存する `.intent/cc-sdd/<packetスラッグ>/` 下書き × deltas(脚注10)の突合で機械的に列挙できる(row 11 はその候補列挙にユーザー確認を添える)。この突合手順は deltas の運用説明にも記載されている。
26
+ 4. row 9 の条件は、`node .intent/scripts/intent-check.mjs`(Bash 限定例外に基づく読み取り専用スクリプト。ファイルの作成・変更・削除を行わない)の stdout 1行目の判定行のみから観測し、再導出しない。enforcement が off・未記載・不正値のとき、または intent-check が実行不可(Bash 不可・スクリプト不在・exit 2)のときは本行に該当しない(現行動作)。pending delta の滞留は row 6 が先に拾うため、本行は staleness(grace なし)専用である。
27
+ 5. 「次の一手」で提示しうる各コマンドの平易な一言(下表)。これは status 出力でコマンド名に添えて利用者の理解を助けるための**純粋な説明**であり、推奨先の同定・条件・優先順位(first-match)には一切関与しない(どの条件でどのコマンドを推すかは上の表本体のみが決める)。
28
+
29
+ | コマンド | 一言説明 |
30
+ |------|------|
31
+ | `/intent-discover` | 最初の意図整理(やりたいことを intent-tree と mode に書き起こす) |
32
+ | `/intent-compass` | 判断基準づくり(局所最適を防ぐ Invariants/Anti-direction を定める) |
33
+ | `/intent-packets` | 作業単位への分割(cc-sdd に渡せる粒度の packet に切り出す) |
34
+ | `/intent-validate` | 矛盾・抜けの点検(packet と判断基準の文言衝突などを洗い出す) |
35
+ | `/intent-writeback` | 実装結果を意図へ反映(delta を昇格し成果物を事後更新する) |
36
+ | `/intent-improve` | 再整合の提案(保留項目の確定や定期的な見直しを促す) |
37
+ | `/intent-export-cc-sdd` | cc-sdd へ受け渡し(現行 Source Packet を実装フローへ export する) |
38
+
39
+ 6. **工程レール5信号との対応**: status の冒頭ミニレール(SKILL.md Step 5 ①)は本表の結果を人間可読に翻訳する**表示層**であり、本表のロジック(first-match・row の条件)を変えない。信号の判定正本は overview の `progress-readout.md`「工程レール」にあり、本表との関係は次のとおり(参考対応。厳密な分岐は本表の first-match が正): 🔴 反映漏れ(export 済み・未反映の取り残し)= row 6/7(`/intent-writeback`)が拾う対象。🔵 今ここ(現行 Source Packet の未反映)= row 6/7/8 のいずれか(実装の進捗で分岐)。⚪ 未着手(未 export)= row 8/11(着手=cc-sdd 実装継続 or export)。✅ 反映済のみ(未反映・未着手が無い)= row 13(アクション不要。ただし row 12 の conformance 陳腐化の頃合いに該当すれば `/intent-validate` が先に拾う)。◻ 統合済(`superseded_by` 非空)はレール表示専用で、それ自体は次の一手を発火させない(整合検査で滞留があれば報告する)。
40
+
41
+ 7. **row 12(conformance 陳腐化の頃合い)の観測と温度感**: 本行は status の Read/Glob/Grep のみで成立する(row 9 のような intent-check 起動を要さない・read-only を一切広げない)。観測手順は (a) `.intent/intent-compass.md` の `Updated (Invariants):` / `Updated (Decision Rules):` 行の ISO 8601 値を読む、(b) `.intent/packets/active/` 各 packet の frontmatter `updated_at` を読む、(c) compass 節更新日 > packet `updated_at` を満たす packet を「未追随」として数える、の3点で、比較は ISO 8601 文字列の辞書順による(`invariant-stale-vs-compass` と同型)。両端が実打刻(`—`/不在でない)のペアのみを対象とし、`updated_at` 不在の packet は対象外(推測で埋めない。後方互換規律)。閾値(未追随件数)は既定 1 件で、行末に明示する。これは「validate を回す頃合い」の**概算**であり、status は確定診断をしない(要修正/推奨の確定は `/intent-validate` の `invariant-stale-vs-compass` 等が行う)。row 5/11 の validate(要修正級の文言衝突・不一致)が先に該当すればそちらが優先され、本行は他に緊急の一手が無いときの「頃合い提案」として row 13(アクション不要)の手前で発火する。compass を更新しない純粋な時間経過は本行では捉えない(validate 実行時点を記録しない設計上の近似)。
42
+
43
+ 8. **intent-tree 起票漏れ検査(discover スキップ)の照合手段**: 本検査は決定表のどの row も発火させない**報告専用**の検査であり(次の一手の first-match を奪わない)、SKILL.md Step 2 で把握し Step 5 ③ 詳細に併記する。照合は既存の対応 spec 照合(脚注2の手段)を再利用する: `.kiro/specs/` 配下の **spec ディレクトリ名**および各 spec の **requirements.md「Project Description (Input)」本文**を、`.intent/intent-tree.md` の **L0〜L4 の見出し・本文**(L0 Product Purpose / L1 Desired Outcomes / L2 Capabilities / L3 Behavioral・Architectural Intents / L4 Candidate Packets)とテキスト照合する。intent-planner の intent-tree ノードは **L0〜L4 のレベル記号**で表され、`O#`/`C#`/`B#`/`P#` のような **ID アンカーは存在しない**ため、照合は ID ではなくテキスト照合のみで行う。対象は spec.json が requirements 以降のフェーズ・または tasks.md に1つ以上チェック済みタスクがある「設計/実装が進んだ spec」に限る。照合は **ファイルから機械観測できる範囲**に限る(git 履歴・コード差分・タイムスタンプは見ない)。照合不能は常態(export は feature 名を記録しない既知限界。脚注2と同性質)として誤検知を許容し、**断定せず**候補提示にとどめる。`.intent/intent-tree.md` 不在または `.kiro/specs/` 不在の環境では本検査を省略する。
44
+
45
+ 9. **起票漏れ/孤児 spec/writeback 漏れの3階層棲み分け(二重警告の回避)**: 設計ドラフトのみ先行した spec は、上流から下流へ次の3層のいずれか(または複数)に該当しうる。**①intent-tree 起票漏れ(discover スキップ=tree 層。脚注8)— intent-tree への起票そのものをスキップ。②孤児 spec=Packet 不在(packet 層。SKILL.md Step 2 の孤児 spec 検査)— intent-tree には起票されたが Packet を経ずに実装。③writeback 漏れ(下流層。row 6/7/9 の `/intent-writeback` 系・鮮度警告)— Packet 実装後に canonical へ未反映。** 同一 spec が複数層に該当する場合は、**最上流の1層でのみ提示**し、下流層では重ねて警告しない(上流が該当する spec を下流の孤児 spec 検査・鮮度警告で二重に出さない)。提示時は `discover → packets → writeback` の段階対処として案内し、まず最上流の不足から順に埋めるよう促す。この棲み分けは status の報告(Step 5 ③)に閉じた整理であり、決定表本体の first-match(次の一手1つ)には影響させない(①②は報告専用、③のみ row として next-move を発火させうる)。
46
+
47
+ 10. **append-only 記録の分割形横断読み(deltas / export-log。INV25・D6)**: `deltas` / `export-log` を読むときは、**分割形 `.intent/<rec>/*.md` 群(あれば正本・自然キー昇順)→ 無ければ旧 `.intent/<rec>.md`(生成 active ミラー)への read fallback** の順で横断読みする(overview の `aggregate-sources.md` と同一規律。分割しても通読できる)。分割形と旧単一ミラーが共存するときは**分割形を正本**とし、ミラーを二重に数えない(同一エントリの二重計上を避ける)。archive(`.intent/<rec>/archive/`)は履歴であり、status の active 面の判定(書き戻し漏れ突合・現在地・孤児 spec 照合)では active を薄く読む(archive を active 集計に混ぜない)。読み取りのみで、いずれのファイルも変更しない(read-only・INV2/A3)。この規律は移行前の単一ファイル形式(旧 scaffold)でも壊れない(read fallback で同じ突合結果を返す=behavior-preserving・Anti-direction 88)。
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: intent-to-spec
3
+ description: 指定した範囲(source scope)の Intent(intent-tree / compass)・steering 制約・packets/requirements の三層を read-only で読み、指定したフォーマット(target format)でひとつの読める自然言語 Spec へ写像する外向きの生成スキル。生成各記述を射影元へトレースし、射影元に無い記述は inferred として標識する(捏造抑制)。出力は `.intent/nl-spec/` 配下の派生物に限定し、canonical な成果物は一切変更しない。
4
+ ---
5
+
6
+ # intent-to-spec Skill
7
+
8
+ ## Core Mission
9
+ - **Success Criteria**:
10
+ - 利用者が指定した範囲(source scope: Intent サブツリー / packet 群 / steering 制約 / 横断 requirements)の `.intent/` 成果物のみを素材として read-only で読み、三層(Intent の why/不変則/判断基準 / steering 級の制約 / requirements の個別要求)を横断的に束ねている(R1.1 / R1.2)
11
+ - source scope が曖昧、または該当する成果物が不在のとき、自然言語 Spec を生成せず、何が曖昧か(利用可能な範囲)または不足している成果物(用意する該当スキル)を利用者に示して止まっている(R1.3)
12
+ - 射影元(intent-tree / compass / packets / steering)を read-only で扱い、作成・変更・削除していない(R1.4)
13
+ - 指定された target format(why 前面の上流向け / requirements 横断の統合仕様書 / その中間)に従って自然言語 Spec を構成し、format が無指定なら既定を用い、どの format で生成したかを出力に明示している(R2.1 / R2.4)
14
+ - 生成した各記述を、それがどの射影元(どの Intent の L層 / どの compass 節 / どの packet / どの制約)に由来するか辿れる形でトレース可能にしている(R3.1)
15
+ - 射影元に対応する根拠がない記述を inferred として標識し、確定(canonical 由来でトレースの付く記述)と混在させていない(R3.2)。射影元を超えて補完した箇所を利用者が確認できる一覧として提示している(R3.3)
16
+ - 射影元に存在する不変則・制約を、生成 Spec の中で省略・改変せず保持している(R3.4)
17
+ - 生成物を派生(derived・再生成可能)として `.intent/nl-spec/` 配下へ全置換で出力し、canonical な成果物(intent-tree / compass / packets)を作成・変更・削除していない。出力の冒頭に派生・再生成可能・正本ではない旨を明示している(R4.1 / R4.2 / R4.3)
18
+ - 意図計画フェーズにおいてアプリケーションコードを変更していない(R4.4)。命名規約 `intent-*` に従い、外部 spec ツール・kiro-* 開発環境を変更せず、`map-cc-sdd.md` を呼ばず `/intent-export-cc-sdd` の振る舞いを変更していない(R5.5)
19
+
20
+ ## Execution Steps
21
+
22
+ ### Step 1: source 解釈(範囲を確定する。曖昧/不在なら生成しない)
23
+ - 利用者が `/intent-to-spec` を実行したとき、まず引数の範囲ヒントと format 指定を `rules/source-scope.md` に従って解釈する。範囲が引数だけで一意に定まらない軸は、利用者に自然言語で問い、回答を待ってから確定する(推測で埋めない)。
24
+ - **生成しないゲート(fail-fast。R1.3)**: source scope が曖昧(引数でも対話でも軸が一意に定まらない)、または該当成果物が不在(指定された intent-tree / compass / packet / steering が存在しない・未記入)のときは、自然言語 Spec を**生成せず**、`.intent/nl-spec/` 配下に一切書き込まない。何が曖昧か(利用可能な範囲: 実在するサブツリー・packet 一覧・steering の有無)、または不足している成果物(用意する該当スキル: discover / compass / packets 等)を名指しして提示し、止まる。
25
+ - 範囲が確定したら Step 2 へ進む。
26
+
27
+ ### Step 2: 三層読取(read-only で三層を読む)
28
+ - `rules/source-scope.md` の「三層の読み取り(正確な参照・固定)」表に従い、確定した範囲について三層を横断的に read-only で読み取る。
29
+ - Intent の why/不変則/判断基準(`.intent/intent-tree.md` の L0–L4 / `.intent/intent-compass.md` の North Star・Invariants・Anti-direction・Decision Rules)、steering 級の制約(指定時のみ tech.md 等)、requirements の個別要求(`.intent/packets/index.md` + `.intent/packets/active/*.md`)を、ひとつの文書の素材として束ねる。
30
+ - canonical 由来の素材と inferred 由来の素材(intent-tree の Assumptions / Open Questions)は、読み取りの段階で区別したまま保持し、混在させない。範囲外の成果物は読まない。射影元は read-only で扱い変更しない(R1.4)。
31
+
32
+ ### Step 3: target format 写像(既定なら format を明示する)
33
+ - 確定した target format に従って、Step 2 が束ねた三層の素材を、どの層・どの見出し・どの packet 由来かの由来を保ったまま、ひとつの自然言語 Spec へ写像する。
34
+ - **上流向け(why 前面)**のときは `rules/format-upstream.md`、**統合仕様書(requirements 横断)**のときは `rules/format-integrated.md` に委譲する。中間 format は両ルールの度合い調整として表現し、別ルールを増やさない。
35
+ - **format 無指定のとき(R2.4)**: 既定の format を用い、**どの format で生成したか**(既定として上流向け / 統合仕様書のいずれを用いたか)を出力に明示する。黙って既定を選ばない。
36
+ - 写像は本スキルの format 系ルールに委譲する。`map-cc-sdd.md` は**呼ばない**(cc-sdd 写像は export-cc-sdd の所有であり、本スキルは touch しない)。
37
+
38
+ ### Step 4: 捏造照合(トレース付与・inferred 標識・不変則保持)
39
+ - `rules/fabrication-guard.md` に従い、format 写像が組み上げた自然言語 Spec が射影元を超えて捏造していないかを照合する。
40
+ - 各記述を射影元(どの Intent の L層 / どの compass 節 / どの packet / どの制約)へ辿れる形でトレースする(R3.1)。射影元に根拠のない記述は inferred として標識し、確定と混在させない(R3.2)。射影元の不変則・制約を省略・改変せず保持する(R3.4)。補完した(inferred)箇所の一覧を、利用者が確認できる形で提示する(R3.3。警告であり生成を止めるものではない)。
41
+
42
+ ### Step 5: 派生 Write(`.intent/nl-spec/` へ全置換)
43
+ - すべての読み取り・写像・照合が終わってから、**最後に** 生成した自然言語 Spec を `.intent/nl-spec/<format>.md` へ**全置換**で書き込む(同 scope+format の再実行は全置換で冪等。R4.2)。
44
+ - 出力の冒頭に、本 Spec が派生(derived)・再生成可能であり・正本ではなく・Git 非追跡であること、および inferred として標識した記述は利用者の確認まで暫定であることを明示する(R4.3)。
45
+ - canonical な `.intent/*.md`(intent-tree / compass / packets)・steering(tech.md)・アプリケーションコードには一切書き込まない(R4.1 / R4.4)。書込み先は `.intent/nl-spec/` 配下に限定する。
46
+
47
+ ## Output Description
48
+ - `.intent/nl-spec/<format>.md`(派生・再生成可能・Git 非追跡。正本ではない旨を冒頭に明示)。内容は確定した target format に従い:
49
+ - **上流向け**: 目的(why)→ 守るべき不変則・制約 → 判断基準 → 個別の要求 → 前提・未確定(inferred 別枠、あれば)の順(`rules/format-upstream.md` の構成に従う)。
50
+ - **統合仕様書**: 概要 → 前提となる不変則・制約 → 統合要求と受入条件 → 前提・未確定(inferred 別枠、あれば)の順(`rules/format-integrated.md` の構成に従う)。
51
+ - **format 既定明示**: format が無指定だったときは、どの format(既定)で生成したかを出力に明示する(R2.4)。
52
+ - **トレース・inferred 標識**: 各記述に射影元への参照を付与し、射影元に根拠のない記述は inferred として確定と別枠・別標識で置く。
53
+ - **補完箇所の確認用一覧**: inferred として標識した記述を、どの記述が・どの理由で補完されたか名指しした一覧として併記する。
54
+ - 素材が無い層・セクションは省略し理由(未記入/未観測)を明示する(推測で埋めない)。
55
+
56
+ ## Safety & Fallback
57
+ - **書込み境界**: 書込み先は `.intent/nl-spec/` 配下限定である。canonical な `.intent/*.md`(intent-tree / compass / packets / mode 等)・steering(tech.md)・アプリケーションコードは read-only であり、そこへは作成・変更・削除を一切行わない(書き込みは `.intent/nl-spec/` 配下への派生物に限る。R4.1)。
58
+ - **派生・正本ではない**: 生成物は派生(derived)・再生成可能であり正本ではない。この旨を出力の冒頭に明示し、canonical との二重正本を作らない(R4.3)。
59
+ - **捏造抑制(外向きの load-bearing 課題)**: トレースの付かない記述を確定として残さない(各記述は射影元へ辿れるか、さもなくば inferred 標識される、のいずれか)。inferred を確定と混在させず、射影元の不変則・制約を省略・改変しない。補完箇所は必ず確認用一覧として提示し、黙って本文へ溶かし込まない(R3.x)。
60
+ - **写像の所有境界**: format 写像は本スキルの `rules/format-upstream.md` / `rules/format-integrated.md` に委譲し、`map-cc-sdd.md` を呼ばない。`/intent-export-cc-sdd`(source/format 固定の特殊ケース)の振る舞いを変更しない(R5.3 / R5.5)。
61
+ - **読み取りのみ**: 射影元(intent-tree / compass / packets / steering)は read-only で扱い、作成・変更・削除しない(R1.4)。
62
+ - **外部依存ゼロ**(INV2 / R5.1)。外部パッケージ・AST パーサ・独自スキーマを導入せず、Node 標準と自然言語ヒューリスティクスに限定し、射影を自然言語のワークフロー内で完結させる。
63
+ - **アプリケーションコードを変更しない**(INV6 / R4.4)。
64
+ - **命名・外部非変更**: 命名規約 `intent-*` に従い、外部 spec ツール・kiro-* 開発環境を変更しない(R5.5)。
65
+ - **前提不在時**: source scope が曖昧、または該当成果物が不在のとき、何も書き込まず不在/曖昧を明示し、利用可能な範囲または不足成果物(用意する該当スキル)を案内して止まる(fail-fast。R1.3)。
66
+ - **部分欠落時**: 素材が読み取れない層・セクションは「未記入/未観測」と明示し省略する(推測で埋めない)。
@@ -0,0 +1,41 @@
1
+ # 捏造抑制:生成物↔射影元の照合(トレース・inferred 標識・不変則保持)
2
+
3
+ `intent-to-spec` skill が、format 写像の組み上げた自然言語 Spec が**射影元(Intent / packet / 制約)を超えて捏造していないか**を照合し、生成物が射影元へ辿れることを保証するための正本。SKILL.md は手順と報告形式のみを持ち、「各記述をどう射影元へ結び、何を inferred として標識し、何を保持し、何を確認用に提示するか」は本ルールを参照する。本ルールは生成物と射影元の**照合**を担い、射影元(intent-tree / compass / packets / steering)を一切変更しない(読み取りは source scope 解釈、配置は format 写像、書き込みは SKILL.md の派生 Write の責務)。
4
+
5
+ 外向きの load-bearing 課題は**捏造抑制**である。内向き(spec-ingest)の難所が「沈黙の検出」であるのに対し、外向きの難所は、射影元に無い詳細を流暢に埋めてしまう hallucination を抑えることにある。文章として読めてしまうがゆえに、根拠の有無は本文を読んだだけでは判別できない。本ルールはその判別を、生成物の各記述を射影元へ突き合わせる照合として与える。
6
+
7
+ ## 照合の発想は drift-export-check と同型(生成物↔射影元)
8
+
9
+ - 本照合は `drift-export-check.md`(export 時に design/tasks ヒントを compass の方向と突き合わせる水際照合)と**同型**である。あちらは export 直前の下書きを compass の North Star / Anti-direction / Invariants へ照らすが、本ルールは同じ「生成物↔射影元」照合の発想を、**生成 Spec 全体**へ向ける。
10
+ - 照合の根拠は、source scope 解釈が読み取り・format 写像が由来を保ったまま配置した**三層の素材そのもの**(intent-tree の L0–L4 / compass の North Star・Invariants・Anti-direction・Decision Rules / packets の個別要求・依存・証拠 /(指定時のみ)steering)にする。新しい構造を持たず、その由来情報を辿って各記述の根拠を確かめる。
11
+ - 照合は**意味的な突き合わせ**であって機械判定ではない。疑わしい記述(射影元に根拠が見当たらないのに本文へ溶け込んでいる詳細)は拾う側に倒す。
12
+
13
+ ## 手順
14
+
15
+ 1. **各記述を射影元へトレースする(Req 3.1)**
16
+ - 生成 Spec の各記述について、それがどの射影元に由来するか(どの Intent の L層・どの compass 節・どの packet・どの制約)を、辿れる形の参照として付与する。
17
+ - 参照は、source scope 解釈と format 写像が保ってきた由来情報(どの層・どの見出し・どの packet 由来か)に基づく。新たに射影元を読み直して作るのではなく、受け渡された由来をそのまま参照に落とす。
18
+ - 1つの記述が複数の射影元に由来するときは、由来をすべて挙げる。トレースの付かない記述を確定として残さない。
19
+
20
+ 2. **射影元に根拠のない記述を inferred として標識する(Req 3.2)**
21
+ - 手順1で射影元への対応が見つからない記述(流暢さのために補われた詳細・受入条件・前提)は、**inferred として標識する**。
22
+ - inferred の記述を**確定(canonical 由来でトレースの付く記述)と混在させない**。本文へ溶かし込まず、確定の記述とは識別できる別枠・別標識で置く。
23
+ - intent-tree の Assumptions / Open Questions のように、読み取りの段階から inferred として区別されてきた素材も、確定と混ぜずに inferred 側へ置く(format 写像が保ってきた区別をここで崩さない)。
24
+
25
+ 3. **不変則・制約を省略・改変せず保持する(Req 3.4)**
26
+ - 射影元に存在する**不変則・制約**(compass の Invariants /(指定時のみ)steering の守るべき制約 / packets の依存・受入条件のうち制約に当たるもの)が、生成 Spec の中で**省略・改変されていないか**を照合する。
27
+ - 射影元の不変則・制約を、生成 Spec はそのまま保持する。要約のために落とさず、言い換えで意味を変えず、緩めたり強めたりしない。読みやすさのための言い回しの調整は許されるが、制約の内容を変える書き換えはしない。
28
+ - 落ちている不変則・制約が見つかったら、それを補って保持する(射影元にあるものを生成物が削ってはならない)。
29
+
30
+ 4. **補完箇所を確認用に提示する(Req 3.3)**
31
+ - 射影元を超えて詳細を補完した箇所(手順2で inferred として標識した記述)の**一覧を、利用者が確認できる形で提示する**。
32
+ - 一覧は、どの記述が・どの理由で射影元に根拠を持たない(補完された)かを名指しし、利用者がその補完を容れるか退けるか判断できる粒度にする。
33
+ - 提示は警告であり、生成を止めるものではない。補完の採否は利用者の判断に委ねる。
34
+
35
+ ## 不変条件
36
+
37
+ - 射影元(intent-tree / compass / packets / steering)を読み直して再解釈しない・変更しない(照合のみ。読み取りは source scope 解釈、配置は format 写像の責務)。
38
+ - トレースの付かない記述を確定として残さない(各記述は射影元へ辿れるか、さもなくば inferred として標識される、のいずれかである)。
39
+ - inferred の記述を確定(canonical 由来)と混在させない(別枠・別標識を崩さない)。
40
+ - 射影元の不変則・制約を省略・改変しない(要約での欠落・言い換えでの意味変更・緩和/強化のいずれもしない)。
41
+ - 補完した箇所は必ず確認用の一覧として提示する(黙って本文へ溶かし込まない)。
@@ -0,0 +1,42 @@
1
+ # format 写像:統合仕様書向け(requirements 横断を統合)
2
+
3
+ `intent-to-spec` skill が、source scope 解釈が読み取った三層の素材を、**統合仕様書向けの自然言語 Spec**(横断した requirements と受入条件を読める形で1つにまとめた、実装に近い体裁)へ組み立てるための写像規則。SKILL.md は手順と報告形式のみを持ち、「どの素材をどの順で・どの見出しに配置するか」は本ルールを参照する。
4
+
5
+ ## 責務の境界(写像であって読み取り・照合ではない)
6
+
7
+ - 本ルールは **format 写像** である。素材の構成・順序・見出しへの割り当てだけを担う。
8
+ - 射影元(intent-tree / compass / packets / steering)を**読み直さない**。独自のパーサ・スキーマを持たず、source scope 解釈が受け渡した素材(どの層・どの見出し・どの packet 由来かを保ったもの)をそのまま並べ替える。
9
+ - 各記述を射影元へ辿れる形にすること、射影元に無い記述を inferred として標識すること、不変則を省略・改変せず保持することは**捏造抑制ルールの責務**であり、本ルールは行わない。本ルールは canonical 由来の素材と inferred 由来の素材(Assumptions / Open Questions)を**区別したまま**受け取り、その区別を崩さずに配置することだけを守る。
10
+ - 中間 format(上流と統合の中間)は、独立した別ルールを持たない。本ルールと format-upstream(上流向け)が両極を表し、中間は両極の**度合い**として表現する(上流向けの「why 前面」を統合側へどれだけ寄せるかの調整であり、別ルールを増やさない)。
11
+
12
+ ## 基本姿勢(横断した要求を実装に近い形へ統合する)
13
+
14
+ 統合仕様書向け Spec は、**横断した requirements と受入条件を、実装者がそのまま読み下せる1つのまとまりへ統合する**体裁である。読み手は実装に着手する立場を想定する。したがって:
15
+
16
+ - 散在する個別要求を、機能のまとまりごとに**統合**して並べ、各要求にその受入条件(満たすべき条件)を添える。
17
+ - why(目的)と制約(不変則・判断基準)は、個別要求を**支える前提**として簡潔に保ち、上流向けほど前面化しない(前面化を強めるほど上流向けへ寄る=度合いの調整)。
18
+ - 流暢さのために素材に無い詳細・受入条件を足さない(補完が要る箇所は捏造抑制ルールが inferred として扱うのであり、本ルールが本文に溶かし込んではならない)。
19
+
20
+ ## 構成(横断要求を統合し、各要求に受入条件を添える)
21
+
22
+ source scope 解釈が受け渡した三層の素材を、次の順で配置する。各セクションには、その素材がどの層・どの見出し由来かが後段の捏造抑制ルールで辿れるよう、由来を保ったまま渡す。
23
+
24
+ | 順 | セクション | 何を置くか | 主な素材の由来 |
25
+ |---|---|---|---|
26
+ | 1 | 概要(何を作るか) | 統合した仕様が向かう範囲と、それが満たす目的の要約 | Intent の North Star(compass)+ intent-tree の L0–L1(簡潔に) |
27
+ | 2 | 前提となる不変則・制約 | 全要求に共通して守るべき不変則と判断基準 | compass の Invariants / Anti-direction / Decision Rules(+指定時のみ steering 制約) |
28
+ | 3 | 統合要求と受入条件 | 横断 requirements を機能のまとまりごとに統合し、各要求にその受入条件を添えた本体 | 横断 requirements(packets の個別要求・依存・証拠)+受入条件 |
29
+ | 4 | 前提・未確定(あれば) | 確定した上記と**混ぜずに**別枠で置く前提・未解決の問い | intent-tree の Assumptions / Open Questions(inferred 由来) |
30
+
31
+ - セクション 1–3 は canonical 由来の素材で構成する。本体はセクション 3 であり、横断 requirements を機能のまとまりごとに統合し、各要求に対応する受入条件を添える(要求と受入条件を切り離さない)。
32
+ - セクション 2 の why・制約は本体(3)を支える前提として簡潔に置く。これを前面化するほど上流向けへ寄る(中間 format は本セクションと上流向けの「why 前面」のあいだの度合いとして表現する)。
33
+ - セクション 4 は inferred 由来(Assumptions / Open Questions)の素材を、canonical の本文へ溶かさず**末尾の別枠**に置く。素材が無ければセクションごと省く(空見出しを作らない)。
34
+ - 該当する素材が無い層はセクションを省く(無い情報を埋めない)。ただし統合要求と受入条件(3)は統合仕様書向け体裁の要であり、素材が読み取れているなら必ず置く。
35
+
36
+ ## 不変条件
37
+
38
+ - 射影元を読み直さない・変更しない(写像のみ。読み取りは source scope 解釈、書き込みは SKILL.md の派生 Write の責務)。
39
+ - 横断 requirements とその受入条件を切り離さない(各要求にその受入条件を添えた統合構成を崩さない)。
40
+ - 上流向けと統合向けの中間は度合いとして表現し、別ルールを作らない(本ルールと format-upstream が両極)。
41
+ - canonical 由来の素材と inferred 由来の素材を混在させない(区別を保ったまま配置し、標識そのものは捏造抑制ルールに委ねる)。
42
+ - 素材に無い詳細・受入条件を、文章を整えるために足さない。