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,31 @@
1
+ # Mode Selection
2
+
3
+ リポジトリの状況から Intent の詰め方モードを推奨するロジック。`/intent-discover` の冒頭で使う。これは拡張点でもある(新モードを足したら、ここに推奨条件を追記する)。
4
+
5
+ ## 手順
6
+
7
+ 1. **利用可能なモードを列挙する**
8
+ - `.intent/modes/*.md` を Glob で探す。各モードの「適合する状況」節を読む。
9
+
10
+ 2. **リポジトリ状況を軽く観察する**
11
+ - 既存コードの有無・規模、テストの有無、README/docs の充実度、`.intent/` の既存成果物の有無。
12
+ - 深く読み込まない。推奨に必要な手がかりだけ。
13
+
14
+ 3. **モードを推奨する**
15
+ - 現在の同梱モードは `standard` / `refactor` / `behavior-unknown` / `feature-growth` の4つ。リポジトリ状況から次の条件で推奨する:
16
+ - 新規・意図が未言語化 → `standard`(既定)
17
+ - 既存大規模・リファクタ対象(既存コード規模が大きい・設計ドリフトがある)→ `refactor`(意図を書かずに作られたコード=vibe coding も refactor へ。discover で Intent Recovery を併用する)
18
+ - 振る舞いが不明なレガシー(テストなし/少ない・仕様が失われている)→ `behavior-unknown`
19
+ - 既存システムへの**機能追加**(extend / integrate / add-to 系の要望・振る舞いが既知・再設計が目的でない)→ `feature-growth`(使い分け: 既存の構造を変えたいなら `refactor`、既存へ付加したいなら `feature-growth`)
20
+ - どの条件にも明確に当てはまらない場合は `standard` を推奨する。
21
+
22
+ 4. **利用者に確認する**
23
+ - 推奨モードと理由を提示し、`AskUserQuestion` で確認・変更を求める。
24
+ - **モード候補が1つでも複数でも、推奨 → 確認 → 記録の配線は必ず通す**。これにより、モードが増減しても利用者の体験が変わらない。
25
+
26
+ 5. **確定結果を記録する**
27
+ - 確定したモードを `.intent/mode.local.md`(mode 状態のローカル正本・git 非追跡)に書く(mode / selected / reason / definition)。旧環境で `mode.local.md` が存在しない場合の読み取りは、後方互換フォールバック(`mode.local.md` → `mode.md` → standard)で吸収される。Enforcement / Drift-watch の読み取りは引き続き `mode.md` を参照する。
28
+
29
+ ## 新モードを推奨対象に加える
30
+
31
+ 新しい `.intent/modes/<name>.md` を作ったら、上記 3 の推奨指針に「どんなリポジトリ状況で <name> を推奨するか」を追記する。
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: intent-export-cc-sdd
3
+ description: 選んだ packet 1つを、トークンを浪費せず cc-sdd へ渡せる凝縮した下書きに変換する。cc-sdd の本体生成は侵さない。続行指示時に /kiro-spec-init を起動できる。
4
+ ---
5
+
6
+ # intent-export-cc-sdd Skill
7
+
8
+ ## Core Mission
9
+ - **Success Criteria**:
10
+ - 対象 packet 1つを cc-sdd の凝縮 Project Description + design/tasks ヒントに変換している
11
+ - 入力を対象 packet ファイル + compass のプロジェクト普遍 Invariants/Anti-direction に限定し、Tree/Compass 全文を cc-sdd へ転記していない
12
+ - tasks ヒントが parent intent / invariant 参照を持ち、impl への伝播構造になっている
13
+ - 出力主役が自然言語案内で、続行指示時に /kiro-spec-init を起動できる
14
+ - アプリケーションコードを一切変更していない
15
+
16
+ ## Execution Steps
17
+
18
+ ### Step 1: 対象 packet を1つに絞る
19
+ - `.intent/packets/index.md` を読み、active packet の候補を提示する。index.md が不在の場合は `.intent/packets/active/` 配下の frontmatter から直接候補一覧を構成して継続し、index の再生成を促す。`.intent/packets/` 自体が不在(または `active/` が空)なら「先に `/intent-packets` を実行」を案内して停止する。
20
+ - 引数で packet が指定されていればそれを、なければ候補から優先順位や利用者への確認で1つに絞り(利用者に自然言語で問い、回答を待つ)、確定した対象 packet のファイル(`.intent/packets/active/` 配下)のみを読む(全 packet ファイルの丸読みをしない)。
21
+ - **draft ガード**: 確定した対象 packet の `state` が draft の場合、「active 化して export を続行するか」を利用者に自然言語で問い、回答を待つ。利用者が承認したら frontmatter の `state` を active へ更新して `index.md` を再生成してから続行する(確認なしに draft のまま export しない。export が canonical を書き換えるのはこの active 化に限る)。
22
+ - `.intent/mode.local.md`(無ければ旧 `.intent/mode.md`)の mode 状態を読む。無ければ standard 既定で続行し告知する。
23
+
24
+ ### Step 1.5: enforcement ゲート(writeback 鮮度検査)
25
+ - Step 1 で読んだ `.intent/mode.md` の `## Enforcement(ユーザー管理)` セクションから `enforcement` の値を確認する。off・未記載・不正値(mode.md 不在を含む)なら本検査を行わず、現行どおり Step 2 へ続行する。
26
+ - remind または gate のとき、`node .intent/scripts/intent-check.mjs` を実行し(読み取り専用スクリプト。ファイルの作成・変更・削除を行わない)、stdout に従う。
27
+ - **判定行の解釈規則**: 停止判断は stdout 1行目の判定行の `block=` のみを正とする(再導出・独自解釈をしない)。警告の要否は `result=stale` または `pending>0` で決める。`result=not-applicable` のときも判定行の `pending=` の値をそのまま使う。
28
+ - gate かつ `block=yes` のとき: 根拠(pending の packet 名・経過コミット数/閾値。intent-check の2行目以降の人間可読行をそのまま引用する)を提示して export を停止し、`/intent-writeback` の実行を案内する。続けて「それでも export を続行するか」を利用者に自然言語で問い、回答を待ち、利用者が明示的に続行を指示したときのみ、警告を提示したうえで export を実行する(誤検知時の逃げ道)。
29
+ - remind かつ違反検出(`result=stale` または `pending>0`)のとき: 同じ根拠を警告として提示し、停止せず続行する。
30
+ - intent-check 自体が実行不可(コマンド実行不可・スクリプト不在・exit 2)のときのみ: staleness を not-applicable として扱い、`.intent/deltas.md` の pending な Delta エントリ(`- Status: pending` を持つもの)を読んで確認し、その結果を `pending` として上と同じ分岐に入る。
31
+
32
+ ### Step 1.6: drift 照合(drift-watch)
33
+ - Step 1 で読んだ `.intent/mode.md` の `## Drift-watch(ユーザー管理)` セクションから `drift-watch` の値を確認する。`on` でないとき(off・未記載・不正値・セクション不在・mode.md 不在を含む)は本照合を行わず、現行どおり Step 1.7 へ続行する(現行動作とバイト等価)。
34
+ - `on` のときのみ、`rules/drift-export-check.md` を読み、適用する。対象 packet の design/tasks ヒント × compass(North Star / Anti-direction / Invariants)の照合・抵触の名指し提示・drift-log への `stage: export` エントリの append・outcome の利用者判定での確定は、すべて rule の手順に委ねる(ここに手順を複製しない)。
35
+ - この照合は **warn のみ・export を停止しない**(停止できるのは Step 1.5 の enforcement ゲートだけ。drift-watch は誤検知前提のため止めない)。
36
+ - 3関所の順序と直交: **enforcement(手続き・停止しうる, Step 1.5) → drift-watch(方向・停止しない, Step 1.6) → Open Questions(期限・停止しない, Step 1.7)**。検査対象が直交する(手続き / 方向 / 期限)。
37
+
38
+ ### Step 1.7: 未回答 Open Questions の確認
39
+ - `rules/export-questions.md` を読み、適用する。
40
+
41
+ ### Step 1.8: cc-sdd 前提の preflight 照合(warn のみ・停止しない)
42
+ - `.kiro/` ディレクトリの有無を read-only で観測する(Read/Glob。`intent-check.mjs` 等の機械検査に寄せない)。
43
+ - `.kiro/` が**不在**のとき: cc-sdd(kiro)が導入されていない可能性を **warn** する。「cc-sdd 前提(`.kiro/`)が見当たらない。cc-sdd を導入するか、読める成果物が目的なら format 軸の射影(読める Spec への出口)も選べる」と案内する(出口の選び方は `rules/export-route.md` の出口判定レーンに従う。本 SKILL から他 export/射影スキルのコマンド名は名指ししない)。**下書き生成は止めない**(Step 2 以降へ続行する)。
44
+ - `.kiro/` が**存在**するとき: 何も出さず Step 2 へ続行する(従来どおり・warn 無し)。
45
+ - この照合は **warn のみ・export を停止しない**(停止できるのは Step 1.5 の enforcement ゲートだけ。preflight は drift-watch と同じ誤検知前提で止めない=`.kiro/` を後から入れる経路を潰さない)。出口の妥当性は `rules/export-route.md`(出口判定レーン)の規約に沿う。
46
+
47
+ ### Step 2: マッピング規則を適用する
48
+ - `rules/map-cc-sdd.md` を読み、適用する。
49
+ - 入力は対象 packet ファイル1つ(Safety / Invariants の packet 固有 invariant を含む)+ `.intent/intent-compass.md` のプロジェクト普遍 Invariants/Anti-direction のみ(Tree 全文・他 packet は読まない。方向が要る場合のみ Tree L0–L1 を要約参照)。
50
+
51
+ ### Step 3: 下書きを生成する
52
+ - 下書きは packet ごとのディレクトリ `.intent/cc-sdd/<スラッグ>/` 配下に書く。スラッグの導出と衝突時の扱いは `rules/map-cc-sdd.md` の「出力レイアウト」節に従う。
53
+ - `.intent/cc-sdd/<スラッグ>/requirements.md` に凝縮 Project Description(cc-sdd 投入本文)を書く。
54
+ - `.intent/cc-sdd/<スラッグ>/design.md` に design ヒント(箇条書き)、`.intent/cc-sdd/<スラッグ>/tasks.md` に「Intent 由来の制約」セクション + tasks チェック項目を書く。
55
+ - cc-sdd の本体は完成させない。tasks ヒントには parent intent と invariant 参照を必ず残す。
56
+ - 下書きの生成を終えたら、export 記録を **packet 単位の分割ファイル** `.intent/export-log/<packet-slug>.md` へ書く(CONTRACT「append-only 記録の分割・archive 規約」に従う)。`<packet-slug>` は packet 名から既存スラッグ規則(`intent-packets/rules/packet-format.md`)で導出する(新採番・連番を作らない)。ファイルには scaffold と同じテーブルヘッダ(`| packet | exported_at | commit |`)+ `| <packet 名> | <export 日時(ISO 8601 UTC)> | <コミットハッシュ> |` の1行を書く(既存ファイルがあれば行を追記し、過去の行は消さない)。コミットハッシュは `git rev-parse --short HEAD`(読み取り専用)で取得し、取れない場合は `-`。`.intent/export-log/` ディレクトリが無ければ作る。
57
+ - 続けて旧 `.intent/export-log.md` を**生成 active ミラー**として再生成する: `.intent/export-log/*.md` の全データ行を `exported_at` 昇順に連結し、scaffold と同じヘッダ + 全行で上書きする(分割ファイルが正本・ミラーは派生で手編集しない)。これにより単一ファイルを読む既存経路(status / validate / writeback / intent-check)が壊れない。読み手横断追随が完結する後続スライス(wire)でミラーは fold される。
58
+
59
+ ### Step 4: 受け渡しを案内する(自然言語主導)
60
+ - 出力の主役は自然言語案内: 対象 packet の `.intent/cc-sdd/<スラッグ>/requirements.md` のパスを示し、「このまま cc-sdd に渡してよいか」を利用者に自然言語で問い、回答を待つ。
61
+ - 利用者が続行を指示したら、対象 packet の `.intent/cc-sdd/<スラッグ>/requirements.md` の本文を読み、その本文を引数として `/kiro-spec-init` を起動する(利用者にコピペを強制しない)。
62
+ - フォールバックとして、`/kiro-spec-init` 用の改行最小化コピーブロックも併記する(主ではない)。
63
+ - **代行は `/kiro-spec-init` の起動まで**。その後の requirements → design → tasks は cc-sdd の3フェーズ承認に従い、各フェーズで利用者の続行指示を待つ。自動で突き進まない。
64
+ - **戻り先の明示(writeback フェーズの入口)**: 案内の末尾に、cc-sdd 実装が一巡したら(実装の現実から学びが出たら)`/intent-writeback` で canonical へ戻すことを一行添える。実装後の学びを packet ファイルへ Evidence 直書きして済ませず、必ず writeback(delta 経由)を通す。これは「実装前の起草(compass/packets が canonical を直接書く)」と「実装後の逆抽出(writeback で delta 経由)」のフェーズ境界を利用者に明示するための案内。
65
+
66
+ ## Output Description
67
+ - 対象 packet の `.intent/cc-sdd/<スラッグ>/{requirements, design, tasks}.md` の更新案
68
+ - `.intent/export-log.md` への export 記録1行(追記)
69
+ - draft を active 化した場合の対象 packet ファイルの `state` 更新と `.intent/packets/index.md` の再生成(該当なしの場合は省略)
70
+ - 未回答 `[export まで]` Question の確認結果(提示した問いと利用者判断。該当なしの場合は省略)
71
+ - cc-sdd へ渡してよいかの確認(自然言語案内・主)
72
+ - `/kiro-spec-init` 用コピーブロック(フォールバック・従)
73
+ - 実装前に確認すべき点
74
+ - 実装が一巡したあとの戻り先案内(`/intent-writeback` で canonical へ。packet への Evidence 直書きで済ませない)
75
+
76
+ ## Safety & Fallback
77
+ - `.intent/packets/` が不在(または `active/` が空)なら停止して `/intent-packets` を案内する。
78
+ - index.md 不在は停止せず、`active/` 配下から直接候補を構成して継続し、index の再生成を促す。
79
+ - canonical への書き込みは draft ガードの active 化(`state` 更新 + `index.md` 再生成)のみで、利用者の承認を得たときに限る。intent-tree / intent-compass / packet 本文は書き換えない。
80
+ - mode.md 不在は停止せず standard 既定で続行し告知する。
81
+ - enforcement の検査は fail-open: intent-check が実行不可でも export を止めない。停止するのは enforcement が gate で判定行が `block=yes` のとき、または実行不可フォールバックで gate かつ pending を検出したときのみで、いずれの場合も利用者の明示続行で実行できる。
82
+ - Open Questions の確認は停止ではなく確認であり、明示続行で export できる。
83
+ - cc-sdd の requirements/design/tasks の本体を完成させない(下書き・ヒントまで)。
84
+ - `/kiro-spec-init` 以降の cc-sdd フェーズを自動起動しない。
85
+ - アプリケーションコードは変更しない(INV6。他 skill の起動は INV6 と別概念であり許される)。
@@ -0,0 +1,75 @@
1
+ # Drift Export Check(export 水際照合)
2
+
3
+ `/intent-export-cc-sdd` の Step 1.6 で使う、対象 packet の design/tasks ヒント × compass の照合ロジック。`drift-watch: on` のときだけ走る(off / 未記載 / 不正値は何もしない)。enforcement ゲート(Step 1.5・停止しうる)の後・Open Questions 確認(Step 1.7・停止しない)の前に挟み、cc-sdd へ渡す直前――逆戻りが効かなくなる直前――で compass の方向から外れていないかを警告する。
4
+
5
+ ## 照合の根拠は compass
6
+
7
+ - **照合の根拠は `.intent/intent-compass.md` の North Star / Anti-direction / Invariants** にする。export の段階では compass が既に存在するため、ここでは型カタログ(`.intent/drift-patterns.md`)ではなく compass を根拠にする(discover の地形診断は compass も packet もまだ無いため型カタログを根拠にする。export はその姉妹工程で、根拠が compass である点が違い)。
8
+ - 水際照合は**誤検知前提**。compass の要素に「抵触した」ことは逸脱の確定ではない。妥当な設計を誤って拾うこと(false-positive)を最初から織り込み、空振りも含めて記録する。
9
+ - **この照合は方向の関所であり、停止しない**。enforcement ゲート(手続きの関所・停止しうる)とは検査対象が直交する。drift の検知で export を止めることはしない(停止できるのは Step 1.5 の enforcement ゲートだけ)。
10
+
11
+ ## 手順
12
+
13
+ 1. **入力を取得する**
14
+ - 対象 packet の **design/tasks ヒント生成内容**(いま export が生成しようとしている下書きの中身)を入力にする。
15
+ - `.intent/intent-compass.md` の **North Star** / **Anti-direction** / **Invariants**(プロジェクト普遍 Invariant)を読む。
16
+ - **compass 不在 / 未記入のとき**: 水際照合をスキップし、その旨を利用者に告知する(停止しない / drift-log にも書かない)。以降の手順は実行しない。
17
+
18
+ 2. **design/tasks ヒントを compass と照合する**
19
+ - 生成しようとしている design/tasks ヒントを、compass の **Invariants**(壊してはいけない制約に抵触しないか)・**Anti-direction**(避けると決めた方向へ寄っていないか)・**North Star**(最終状態から逸れていないか)に照らす。
20
+ - これは**意味的な照合**であって機械判定ではない。誤検知前提で、疑わしければ拾う。
21
+
22
+ 3. **抵触があるとき**
23
+ - 利用者に**警告のみ提示する**――**export を停止しない**。何に抵触したか(どの Invariant / Anti-direction / North Star か)と、design/tasks ヒントのどの部分が外れているかを名指しする。
24
+ - `drift-log.md` へ1エントリ append する(後述の append 手順)。値は:
25
+ - `pattern: <該当する drift-patterns の id | uncatalogued:<短い名> | ->`(特定できれば id、カタログ外の実逸脱なら `uncatalogued:<短い名>`、判別できなければ `-`)
26
+ - `stage: export`
27
+ - `packet: <対象 packet 名>`
28
+ - `mechanism: compass-anti-direction`(Anti-direction に抵触したとき)または `compass-invariant`(Invariant に抵触したとき。どちらの compass 要素に抵触したかで選ぶ)
29
+ - `outcome: caught`(**下書き**。drift-watch の推定であり、確定は利用者の `user-verdict` と後述の判定で決まる)
30
+ - `user-verdict: unjudged`
31
+ - `recorded_at: <ISO 8601>`
32
+ - `commit: <短縮ハッシュ | ->`
33
+ - `note: <1〜2行>`(何に抵触し、何を警告したか)
34
+ - 複数箇所が抵触したら、抵触ごとに1エントリずつ append する。
35
+
36
+ 4. **outcome は利用者判定で確定する(下書きの解決)**
37
+ - `outcome` は手順3で `caught` を**下書き**しただけであり、最終値は利用者の判定で決まる:
38
+ - 利用者が警告を容れて design を引き戻したとき → `caught`(捕捉成功・効いた系)
39
+ - 利用者が無視してそのまま通したとき → `missed`(防げず通った・効かなかった系)
40
+ - 設計が実際には妥当で誤検知だったとき → `false-positive`(誤検知だった・効かなかった系)
41
+ - `user-verdict` が確定値を裏づける: 妥当な指摘なら `valid` / 誤検知なら `false-alarm` / 未判定なら `unjudged`。利用者が未判定でも `unjudged` のまま記録・集計対象になる。
42
+
43
+ ## drift-log への append 手順
44
+
45
+ - **分割形で書く(CONTRACT「append-only 記録の分割・archive 規約」)**: drift-log は事象由来なので、単一 `drift-log.md` 末尾へ追記せず **日付+slug 単位の分割ファイル** `drift-log/<date>-<slug>.md` へ1エントリ書く。`<date>` は recorded_at の日付、`<slug>` は pattern(事象)を既存スラッグ規則(`intent-packets/rules/packet-format.md`)で導出する(新採番・連番を作らない)。別事象が別ファイルを触るため末尾衝突が原理的に消える。既存エントリは書き換え・削除しない(**append-only**)。
46
+ - **9キーを固定順で必ず全部書く**: `pattern` → `stage` → `packet` → `mechanism` → `outcome` → `user-verdict` → `recorded_at` → `commit` → `note`。9キーのうち1つでも欠けたエントリは書かない。
47
+ - **recorded_at**: 記録時刻を ISO 8601 で書く(transaction time)。
48
+ - **commit**: `git rev-parse --short HEAD` の結果を書く。非リポジトリ・git CLI 不在などで取得できないときは `-` とする(fail-open。記録は続行する)。
49
+ - **`drift-log/` ディレクトリが不在のとき**: ディレクトリを作ってから分割ファイルを書く。旧単一 `drift-log.md` が残っていても読み手は共存して読める(移行は本スライスの migration が担う)。
50
+ - エントリ書式は `.intent/drift-log.md` の「エントリ書式」節の見本(`### drift-log entry`)に従う。
51
+
52
+ ## スコープ超過照合(DR9 第二防御・packet-scope-overflow)
53
+
54
+ compass 照合(上記)とは**照合根拠が別物**の第二の照合。compass 照合が「compass 普遍 Invariant に抵触したか」を見るのに対し、これは「**対象 packet の宣言スコープ(`## Scope` / `## Non-scope`)を超える実装指示が来ていないか**」を見る。超えたとき、新領域でこそ必要になる **packet 固有 invariant**(認可・データ整合性・トランザクション境界・冪等性)が cc-sdd 成果物に不在であることを drift として警告する。`drift-watch: on` のときだけ走り、**警告のみ・停止しない・誤検知前提**は compass 照合と同じ。これは第一防御(規約文書の「スコープ超過なら intent に戻る」規律=想起のみ)の効きを測る計器でもある。
55
+
56
+ 照合は2点で行う(利用者確定 2026-06-20「両方」):
57
+
58
+ 1. **export 水際(この Step 1.6)**: いま export しようとしている下書きが、対象 packet の `## Scope` を超え `## Non-scope` 側へ及んでいないかを見る。下書き自体がスコープを逸脱していれば、export 時点で拾える。
59
+ 2. **後段の軽い提示(実装段の再照合)**: export 後にユーザーが出した**実装指示の文面**が対象 packet の `## Scope` を超える(例: フロント専用 packet なのにバックエンド/認可/トランザクション境界の実装を指示)とき、軽く再照合して名指しする。これは「intent に戻る」(`/intent-packets` で新領域の packet を起こし再 export)への差し戻しを促す入口で、停止はしない。
60
+
61
+ ### 照合の入力と規律
62
+
63
+ - **入力は実装指示の文面と packet の `## Scope` / `## Non-scope` 宣言のみ**。コード差分・実装結果は読まない(INV5/INV6・DR14)。意味的照合であって機械判定ではない。
64
+ - 照合根拠は **packet 固有 invariant の不在**。compass 普遍 Invariant 照合(上記)とロジックを混同しない。普遍 Invariant が export で転記されていることは、新領域の固有制約をカバーしない(別レイヤー)。
65
+ - **異常系**: 対象 packet が無い / `## Scope` 未記入のときは照合をスキップし告知する(停止しない・drift-log に書かない)。
66
+
67
+ ### スコープ超過があるとき
68
+
69
+ - 利用者に**警告のみ提示する**――export も実装も停止しない。何が packet スコープ(例: フロント)を超え、どの新領域(例: バック/認可/トランザクション)に及び、どの packet 固有 invariant(認可・整合性・トランザクション境界・冪等性)が不在かを名指しし、「`/intent-packets` で新領域の packet を起こして再 export する(intent に戻る)」を案内する。
70
+ - `drift-log.md` へ1エントリ append する(上記 append 手順と同一)。値の差分は:
71
+ - `mechanism: packet-scope-overflow`(compass 系の2値とは別の第二防御由来。集計上分離できる)
72
+ - `pattern: uncatalogued:scope-overflow`(型カタログに scope-creep 型 seed があればその id。無ければ `uncatalogued:scope-overflow`)
73
+ - `stage: export`(水際で拾った場合)。後段の実装段で拾った場合も、export 由来の照合の延長として `stage: export` を用い、`note` に「実装段の再照合」と明記する(新 stage 値は増やさない=既存3値 `discover | export | improve` のスキーマを変えない)。
74
+ - 他キー(`packet` / `outcome: caught` 下書き / `user-verdict: unjudged` / `recorded_at` / `commit` / `note`)は compass 照合と同じ規律。
75
+ - `outcome` の確定は compass 照合と同じ(利用者が intent に戻れば `caught` / 無視して押し切れば `missed` / 実際は妥当な拡張で誤検知なら `false-positive`)。
@@ -0,0 +1,23 @@
1
+ # Export Questions Check
2
+
3
+ export 実行前に、未回答の `[export まで]` 付き Open Questions を確認する手順。`/intent-export-cc-sdd` の Step 1.7 で使う。対話はすべて利用者への確認として行う(確認の手段は SKILL.md の規約に従う)。
4
+
5
+ ## 検出
6
+
7
+ - `.intent/intent-tree.md` と `.intent/intent-compass.md` の Open Questions 節を読み、`[export まで]` を含む問いを検出する。節に残っている問い = 未回答として扱う。
8
+ - 検出対象はこの2ファイルのみ。問いの正本は両ファイルの Open Questions 節であり、`.intent/packets/plan.md` の Deferred は意図的見送りの記録であって問いではないため対象外。
9
+ - **enforcement 設定(`.intent/mode.md` の Enforcement セクション)は参照しない**(Step 1.5 の enforcement ゲートとは独立に動作する)。
10
+
11
+ ## 手順
12
+
13
+ 1. **検出ゼロの場合(タグ規約を持たない旧 scaffold を含む)**
14
+ - 何も提示せず、次のステップへ進む(挙動変化なし)。
15
+
16
+ 2. **検出ありの場合**
17
+ - 検出した問いの一覧を提示する。
18
+ - 「回答してから export するか、このまま続行するか」を利用者に確認する。
19
+ - これは停止ではなく確認である。利用者が明示的に続行を指示したら export を実行する。
20
+
21
+ ## 規律
22
+
23
+ - コードを変更しない。
@@ -0,0 +1,62 @@
1
+ # Mapping: packet → cc-sdd
2
+
3
+ 選んだ packet 1つを cc-sdd の下書きへ変換する規則。`intent-export-cc-sdd` skill が使う。これは export ターゲット別マッピングの1つ(cc-sdd 用)。別ターゲット(OpenSpec 等)を足す場合は `rules/map-<target>.md` を追加し、対応する `intent-export-<target>` skill を作る(縫い目)。
4
+
5
+ ## 入力範囲(厳守 / 情報源契約)
6
+
7
+ - 読むのは **対象 packet 1つ** と **`.intent/intent-compass.md` の Invariants / Anti-direction** のみ。
8
+ - Intent Tree 全文・他 packet は**読まない**。全体方向が必要なときのみ Tree の L0–L1 を**要約として**ピンポイント参照する(本文転記は不可)。
9
+ - これにより cc-sdd へ渡る情報量を 1 packet 相当に抑える(トークン爆発を防ぐ)。
10
+
11
+ ## 出力(3ファイルの下書き / 本体は作らない)
12
+
13
+ 下書きは packet ごとのディレクトリ `.intent/cc-sdd/<packetスラッグ>/` 配下に書く(スラッグの導出は次節「出力レイアウト」)。
14
+
15
+ ### `.intent/cc-sdd/<packetスラッグ>/requirements.md`
16
+ - cc-sdd の `/kiro-spec-init` に投入する **Project Description 本文**(凝縮テキスト)。
17
+ - 含めるもの: (a) 誰の課題か、(b) 現状、(c) 何を変えたいか / In・Out scope / 守るべき invariant / parent intent。
18
+ - **必須見出し(出力契約)**: `## Source Packet`・`## Parent Intent`・`## Invariants` の3見出しを必ず含める。`## Source Packet` の値は packet 名の**正確な転記**とする(このディレクトリがどの packet に属するかを同定する錨)。
19
+ - 情報源は対象 packet(Why/Scope/Expected Behavior/Safety)と compass の Invariants に限定する。
20
+
21
+ ### `.intent/cc-sdd/<packetスラッグ>/design.md`
22
+ - cc-sdd の design 生成時の**見落とし防止ヒント(箇条書き)**。本体ではない。
23
+ - 由来: packet の Scope/Non-scope/Rollback + compass の技術制約 Invariant。観点は責務境界・依存方向・副作用・移行/ロールバック・リスク・技術制約(compass Invariants のうち技術スタック・基盤・ライセンス制約があれば、cc-sdd の design 技術選定が逸脱しないようヒントに転記)。
24
+
25
+ ### `.intent/cc-sdd/<packetスラッグ>/tasks.md`
26
+ - 先頭に **「Intent 由来の制約」セクション**(parent intent / invariant / Anti-direction 要約)を置く。
27
+ - その後に cc-sdd の tasks 生成チェック項目(characterization test / migration slice / 各タスクの invariant 参照)。
28
+ - 由来: packet の Validation/Rollback + parent intent + compass の Invariants/Anti-direction。
29
+
30
+ ## 出力レイアウト(スラッグ規則と衝突規則)
31
+
32
+ ### スラッグ規則(決定的)
33
+
34
+ packet 名からディレクトリ名(スラッグ)を以下の順で**決定的に**導出する。同じ packet 名は常に同じスラッグになる。
35
+
36
+ 1. NFC 正規化する。
37
+ 2. 前後の空白を trim する。
38
+ 3. ASCII 大文字を小文字にする。
39
+ 4. 空白とパスに危険な文字(`/ \ : * ? " < > |`)を `-` に置換する。
40
+ 5. 連続する `-` を1つに圧縮する。
41
+ 6. 先頭・末尾の `-` を除去する。
42
+
43
+ - 非 ASCII 文字(日本語等)はそのまま保持する。
44
+ - 結果が空文字列になる場合はスラッグを `unnamed-packet` とし、その旨を利用者に告知する。
45
+
46
+ ### 衝突規則
47
+
48
+ - スラッグが既存ディレクトリと一致し、かつそのディレクトリの requirements.md の `## Source Packet` 見出しが**異なる** packet 名を指す場合のみ衝突とする。`-2` から始まる連番を付与して別名を割り当て、packet 名 → ディレクトリ名の対応を利用者に告知する。黙って上書きしない。
49
+ - `## Source Packet` が**同一** packet 名を指す場合は衝突ではなく再 export であり、同じディレクトリの下書きをその場で更新する。
50
+
51
+ ## impl への伝播(戦略X)
52
+
53
+ - tasks ヒントは「**個々のタスクに紐づく invariant 参照**」の粒度で書く。
54
+ - 狙い: cc-sdd が生成する本体 `tasks.md` の各タスクへ parent intent と invariant が**転記される**こと。これにより、別セッションで `.intent/` を読まずに起動される impl サブエージェントも、cc-sdd 成果物(tasks.md)経由で invariant / Anti-direction を参照できる。
55
+ - **責任分界**: intent-planner の責務は「転記されやすい構造でヒントを渡す」ところまで。実際の転記は cc-sdd の tasks 生成に委ねる(cc-sdd の挙動には依存しない)。完全転記は**保証ではなく、構造で確率を最大化**する。
56
+
57
+ ## 不変条件
58
+
59
+ - cc-sdd の requirements/design/tasks の**本体を完成させない**(下書き・ヒントまで)。
60
+ - tasks ヒントは必ず parent intent と invariant への参照を含む。
61
+ - **他 packet のディレクトリへは書き込まない**(書き込み先は対象 packet のスラッグ配下のみ)。
62
+ - cc-sdd の skill には介入しない。
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: intent-export-openspec
3
+ description: 選んだ packet 1つを、トークンを浪費せず OpenSpec へ渡せる proposal 下書き + delta spec ヒントに変換する。OpenSpec の本体生成は侵さない。続行指示時に /opsx:propose を起動できる。
4
+ ---
5
+
6
+ # intent-export-openspec Skill
7
+
8
+ ## Core Mission
9
+ - **Success Criteria**:
10
+ - 対象 packet 1つを OpenSpec の proposal 下書き(Why/What Changes/Impact)+ delta spec ヒントに変換している
11
+ - 入力を対象 packet ファイル + compass のプロジェクト普遍 Invariants/Anti-direction に限定し、Tree/Compass 全文を OpenSpec へ転記していない
12
+ - delta ヒントが parent intent / invariant 参照を持ち、impl への伝播構造になっている
13
+ - 出力主役が自然言語案内で、続行指示時に /opsx:propose を起動できる
14
+ - 出力先を `.intent/openspec/` に閉じ、`.intent/cc-sdd/` には触れていない
15
+ - アプリケーションコードを一切変更していない
16
+
17
+ ## Execution Steps
18
+
19
+ ### Step 1: 対象 packet を1つに絞る
20
+ - `.intent/packets/index.md` を読み、active packet の候補を提示する。index.md が不在の場合は `.intent/packets/active/` 配下の frontmatter から直接候補一覧を構成して継続し、index の再生成を促す。`.intent/packets/` 自体が不在(または `active/` が空)なら「先に `/intent-packets` を実行」を案内して停止する。
21
+ - 引数で packet が指定されていればそれを、なければ候補から優先順位や利用者への確認で1つに絞り(利用者に自然言語で問い、回答を待つ)、確定した対象 packet のファイル(`.intent/packets/active/` 配下)のみを読む(全 packet ファイルの丸読みをしない)。
22
+ - **draft ガード**: 確定した対象 packet の `state` が draft の場合、「active 化して export を続行するか」を利用者に自然言語で問い、回答を待つ。利用者が承認したら frontmatter の `state` を active へ更新して `index.md` を再生成してから続行する(確認なしに draft のまま export しない。export が canonical を書き換えるのはこの active 化に限る)。
23
+ - `.intent/mode.local.md`(無ければ旧 `.intent/mode.md`)の mode 状態を読む。無ければ standard 既定で続行し告知する。
24
+
25
+ ### Step 1.5: enforcement ゲート(writeback 鮮度検査)
26
+ - Step 1 で読んだ `.intent/mode.md` の `## Enforcement(ユーザー管理)` セクションから `enforcement` の値を確認する。off・未記載・不正値(mode.md 不在を含む)なら本検査を行わず、現行どおり Step 1.6 へ続行する。
27
+ - remind または gate のとき、`node .intent/scripts/intent-check.mjs` を実行し(読み取り専用スクリプト。ファイルの作成・変更・削除を行わない)、stdout に従う。
28
+ - **判定行の解釈規則**: 停止判断は stdout 1行目の判定行の `block=` のみを正とする(再導出・独自解釈をしない)。警告の要否は `result=stale` または `pending>0` で決める。`result=not-applicable` のときも判定行の `pending=` の値をそのまま使う。
29
+ - gate かつ `block=yes` のとき: 根拠(pending の packet 名・経過コミット数/閾値。intent-check の2行目以降の人間可読行をそのまま引用する)を提示して export を停止し、`/intent-writeback` の実行を案内する。続けて「それでも export を続行するか」を利用者に自然言語で問い、回答を待ち、利用者が明示的に続行を指示したときのみ、警告を提示したうえで export を実行する(誤検知時の逃げ道)。
30
+ - remind かつ違反検出(`result=stale` または `pending>0`)のとき: 同じ根拠を警告として提示し、停止せず続行する。
31
+ - intent-check 自体が実行不可(コマンド実行不可・スクリプト不在・exit 2)のときのみ: staleness を not-applicable として扱い、`.intent/deltas.md` の pending な Delta エントリ(`- Status: pending` を持つもの)を読んで確認し、その結果を `pending` として上と同じ分岐に入る。
32
+
33
+ ### Step 1.6: drift 照合(drift-watch)
34
+ - Step 1 で読んだ `.intent/mode.md` の `## Drift-watch(ユーザー管理)` セクションから `drift-watch` の値を確認する。`on` でないとき(off・未記載・不正値・セクション不在・mode.md 不在を含む)は本照合を行わず、現行どおり Step 1.7 へ続行する(現行動作とバイト等価)。
35
+ - `on` のときのみ、`rules/drift-export-check.md` を読み、適用する。対象 packet の proposal/delta ヒント × compass(North Star / Anti-direction / Invariants)の照合・抵触の名指し提示・drift-log への `stage: export` エントリの append・outcome の利用者判定での確定は、すべて rule の手順に委ねる(ここに手順を複製しない)。
36
+ - この照合は **warn のみ・export を停止しない**(停止できるのは Step 1.5 の enforcement ゲートだけ。drift-watch は誤検知前提のため止めない)。
37
+ - 3関所の順序と直交: **enforcement(手続き・停止しうる, Step 1.5) → drift-watch(方向・停止しない, Step 1.6) → Open Questions(期限・停止しない, Step 1.7)**。検査対象が直交する(手続き / 方向 / 期限)。
38
+
39
+ ### Step 1.7: 未回答 Open Questions の確認
40
+ - `rules/export-questions.md` を読み、適用する。
41
+
42
+ ### Step 1.8: OpenSpec 前提の preflight 照合(warn のみ・停止しない)
43
+ - **リポジトリ直下の `openspec/` ディレクトリ**(OpenSpec ツールの目印)の有無を read-only で観測する(Read/Glob。`intent-check.mjs` 等の機械検査に寄せない)。**`.intent/openspec/`(本スキル自身の下書き出力先)とは別物**であり、出力先を前提目印に誤認しない。
44
+ - リポジトリ直下 `openspec/` が**不在**のとき: OpenSpec が導入されていない可能性を **warn** する。「OpenSpec 前提(リポジトリ直下の `openspec/`)が見当たらない。OpenSpec を導入するか、読める成果物が目的なら format 軸の射影(読める Spec への出口)も選べる」と案内する(出口の選び方は `rules/export-route.md` の出口判定レーンに従う。本 SKILL から他 export/射影スキルのコマンド名は名指ししない)。**下書き生成は止めない**(Step 2 以降へ続行する)。
45
+ - リポジトリ直下 `openspec/` が**存在**するとき: 何も出さず Step 2 へ続行する(従来どおり・warn 無し)。
46
+ - この照合は **warn のみ・export を停止しない**(停止できるのは Step 1.5 の enforcement ゲートだけ。preflight は drift-watch と同じ誤検知前提で止めない=`openspec/` を後から入れる経路を潰さない)。OpenSpec の入口契約 `/opsx:propose` は read-only で観測できないため、リポジトリ直下 `openspec/` を導入の代理目印とする。
47
+
48
+ ### Step 2: マッピング規則を適用する
49
+ - `rules/map-openspec.md` を読み、適用する。
50
+ - 入力は対象 packet ファイル1つ(Safety / Invariants の packet 固有 invariant を含む)+ `.intent/intent-compass.md` のプロジェクト普遍 Invariants/Anti-direction のみ(Tree 全文・他 packet は読まない。方向が要る場合のみ Tree L0–L1 を要約参照)。
51
+
52
+ ### Step 3: 下書きを生成する
53
+ - 下書きは packet ごとのディレクトリ `.intent/openspec/<スラッグ>/` 配下に書く。スラッグの導出と衝突時の扱いは `rules/map-openspec.md` の「出力レイアウト」節に従う。多 packet を続けて export しても他 packet のディレクトリを上書きしない。
54
+ - `.intent/openspec/<スラッグ>/proposal.md` に proposal 下書き(`## Why` / `## What Changes` / `## Impact`)を書く。`/opsx:propose` に投入できる最小かつ常に有効な「変更記述」テキストを冒頭から導出できる形にする。
55
+ - `.intent/openspec/<スラッグ>/spec-delta.md` に delta spec ヒント skeleton(`## ADDED Requirements` 既定 + 条件付き `## MODIFIED Requirements` / `## REMOVED Requirements`、`### Requirement: <name>` / `#### Scenario: <name>` の骨格)を書く。
56
+ - OpenSpec の本体は完成させない。delta はヒント skeleton までに留め、突き合わせ・完成は OpenSpec 側(`/opsx:propose` 以降)に委ねる(INV4)。proposal/delta には parent intent と invariant 参照を必ず残す。
57
+ - 下書きの生成を終えたら、export 記録を **packet 単位の分割ファイル** `.intent/export-log/<packet-slug>.md` へ書く(CONTRACT「append-only 記録の分割・archive 規約」に従う。cc-sdd と openspec はどちらも同じ分割規約で各 packet のファイルへ書くため、旧来の「target 横断で共有する単一ログ」末尾への並行追記衝突は分割で構造的に消える)。`<packet-slug>` は packet 名から既存スラッグ規則(`intent-packets/rules/packet-format.md`)で導出する(新採番・連番を作らない)。ファイルには scaffold と同じテーブルヘッダ(`| packet | exported_at | commit |`)+ `| <packet 名> | <export 日時(ISO 8601 UTC)> | <コミットハッシュ> |` の1行を書く(既存ファイルがあれば行を追記し、過去の行は消さない)。コミットハッシュは `git rev-parse --short HEAD`(読み取り専用)で取得し、取れない場合は `-`。`.intent/export-log/` ディレクトリが無ければ作る。
58
+ - 続けて旧 `.intent/export-log.md` を**生成 active ミラー**として再生成する: `.intent/export-log/*.md` の全データ行を `exported_at` 昇順に連結し、scaffold と同じヘッダ + 全行で上書きする(分割ファイルが正本・ミラーは派生で手編集しない)。これにより単一ファイルを読む既存経路(status / validate / writeback / intent-check)が壊れない。読み手横断追随が完結する後続スライス(wire)でミラーは fold される。
59
+
60
+ ### Step 4: 受け渡しを案内する(自然言語主導)
61
+ - 出力の主役は自然言語案内: 対象 packet の `.intent/openspec/<スラッグ>/proposal.md` と `spec-delta.md` のパスを示し、「このまま OpenSpec に渡してよいか」を利用者に自然言語で問い、回答を待つ。
62
+ - 利用者が続行を指示したら、対象 packet の `.intent/openspec/<スラッグ>/proposal.md` から最小の変更記述を読み、それを引数として `/opsx:propose` を起動する(利用者にコピペを強制しない)。
63
+ - フォールバックとして、`/opsx:propose` 用のコピー可能な変更記述ブロックも併記する(主ではない)。
64
+ - **代行は `/opsx:propose` の起動まで**。その後の apply / sync / archive 等の後続ワークフローは OpenSpec 側に従い、自動で突き進まない。
65
+ - **戻り先の明示(writeback フェーズの入口)**: 案内の末尾に、OpenSpec 実装が一巡したら(実装の現実から学びが出たら)`/intent-writeback` で canonical へ戻すことを一行添える。実装後の学びを packet ファイルへ Evidence 直書きして済ませず、必ず writeback(delta 経由)を通す。これは「実装前の起草(compass/packets が canonical を直接書く)」と「実装後の逆抽出(writeback で delta 経由)」のフェーズ境界を利用者に明示するための案内。
66
+
67
+ ## Output Description
68
+ - 対象 packet の `.intent/openspec/<スラッグ>/{proposal, spec-delta}.md` の下書き(`/opsx:propose` 投入用 proposal + delta ヒント skeleton)
69
+ - `.intent/export-log.md` への export 記録1行(追記)
70
+ - draft を active 化した場合の対象 packet ファイルの `state` 更新と `.intent/packets/index.md` の再生成(該当なしの場合は省略)
71
+ - 未回答 `[export まで]` Question の確認結果(提示した問いと利用者判断。該当なしの場合は省略)
72
+ - OpenSpec へ渡してよいかの確認(自然言語案内・主)
73
+ - `/opsx:propose` 用コピーブロック(フォールバック・従)
74
+ - 実装前に確認すべき点
75
+ - 実装が一巡したあとの戻り先案内(`/intent-writeback` で canonical へ。packet への Evidence 直書きで済ませない)
76
+
77
+ ## Safety & Fallback
78
+ - `.intent/packets/` が不在(または `active/` が空)なら停止して `/intent-packets` を案内する。
79
+ - index.md 不在は停止せず、`active/` 配下から直接候補を構成して継続し、index の再生成を促す。
80
+ - canonical への書き込みは draft ガードの active 化(`state` 更新 + `index.md` 再生成)のみで、利用者の承認を得たときに限る。intent-tree / intent-compass / packet 本文は書き換えない。
81
+ - mode.md 不在は停止せず standard 既定で続行し告知する。
82
+ - enforcement の検査は fail-open: intent-check が実行不可でも export を止めない。停止するのは enforcement が gate で判定行が `block=yes` のとき、または実行不可フォールバックで gate かつ pending を検出したときのみで、いずれの場合も利用者の明示続行で実行できる。
83
+ - Open Questions の確認は停止ではなく確認であり、明示続行で export できる。
84
+ - OpenSpec の proposal / delta spec の本体を完成させない(下書き・ヒント skeleton まで)。
85
+ - `/opsx:propose` 以降の OpenSpec ワークフロー(apply / sync / archive 等)を自動起動しない。
86
+ - 出力先は `.intent/openspec/` に閉じ、`.intent/cc-sdd/` には書き込まない。
87
+ - アプリケーションコードは変更しない(INV6。他 skill の起動は INV6 と別概念であり許される)。
@@ -0,0 +1,50 @@
1
+ # Drift Export Check(export 水際照合)
2
+
3
+ `/intent-export-openspec` の Step 1.6 で使う、対象 packet の design/tasks ヒント × compass の照合ロジック。`drift-watch: on` のときだけ走る(off / 未記載 / 不正値は何もしない)。enforcement ゲート(Step 1.5・停止しうる)の後・Open Questions 確認(Step 1.7・停止しない)の前に挟み、OpenSpec へ渡す直前――逆戻りが効かなくなる直前――で compass の方向から外れていないかを警告する。
4
+
5
+ ## 照合の根拠は compass
6
+
7
+ - **照合の根拠は `.intent/intent-compass.md` の North Star / Anti-direction / Invariants** にする。export の段階では compass が既に存在するため、ここでは型カタログ(`.intent/drift-patterns.md`)ではなく compass を根拠にする(discover の地形診断は compass も packet もまだ無いため型カタログを根拠にする。export はその姉妹工程で、根拠が compass である点が違い)。
8
+ - 水際照合は**誤検知前提**。compass の要素に「抵触した」ことは逸脱の確定ではない。妥当な設計を誤って拾うこと(false-positive)を最初から織り込み、空振りも含めて記録する。
9
+ - **この照合は方向の関所であり、停止しない**。enforcement ゲート(手続きの関所・停止しうる)とは検査対象が直交する。drift の検知で export を止めることはしない(停止できるのは Step 1.5 の enforcement ゲートだけ)。
10
+
11
+ ## 手順
12
+
13
+ 1. **入力を取得する**
14
+ - 対象 packet の **design/tasks ヒント生成内容**(いま export が生成しようとしている下書きの中身)を入力にする。
15
+ - `.intent/intent-compass.md` の **North Star** / **Anti-direction** / **Invariants**(プロジェクト普遍 Invariant)を読む。
16
+ - **compass 不在 / 未記入のとき**: 水際照合をスキップし、その旨を利用者に告知する(停止しない / drift-log にも書かない)。以降の手順は実行しない。
17
+
18
+ 2. **design/tasks ヒントを compass と照合する**
19
+ - 生成しようとしている design/tasks ヒントを、compass の **Invariants**(壊してはいけない制約に抵触しないか)・**Anti-direction**(避けると決めた方向へ寄っていないか)・**North Star**(最終状態から逸れていないか)に照らす。
20
+ - これは**意味的な照合**であって機械判定ではない。誤検知前提で、疑わしければ拾う。
21
+
22
+ 3. **抵触があるとき**
23
+ - 利用者に**警告のみ提示する**――**export を停止しない**。何に抵触したか(どの Invariant / Anti-direction / North Star か)と、design/tasks ヒントのどの部分が外れているかを名指しする。
24
+ - `drift-log.md` へ1エントリ append する(後述の append 手順)。値は:
25
+ - `pattern: <該当する drift-patterns の id | uncatalogued:<短い名> | ->`(特定できれば id、カタログ外の実逸脱なら `uncatalogued:<短い名>`、判別できなければ `-`)
26
+ - `stage: export`
27
+ - `packet: <対象 packet 名>`
28
+ - `mechanism: compass-anti-direction`(Anti-direction に抵触したとき)または `compass-invariant`(Invariant に抵触したとき。どちらの compass 要素に抵触したかで選ぶ)
29
+ - `outcome: caught`(**下書き**。drift-watch の推定であり、確定は利用者の `user-verdict` と後述の判定で決まる)
30
+ - `user-verdict: unjudged`
31
+ - `recorded_at: <ISO 8601>`
32
+ - `commit: <短縮ハッシュ | ->`
33
+ - `note: <1〜2行>`(何に抵触し、何を警告したか)
34
+ - 複数箇所が抵触したら、抵触ごとに1エントリずつ append する。
35
+
36
+ 4. **outcome は利用者判定で確定する(下書きの解決)**
37
+ - `outcome` は手順3で `caught` を**下書き**しただけであり、最終値は利用者の判定で決まる:
38
+ - 利用者が警告を容れて design を引き戻したとき → `caught`(捕捉成功・効いた系)
39
+ - 利用者が無視してそのまま通したとき → `missed`(防げず通った・効かなかった系)
40
+ - 設計が実際には妥当で誤検知だったとき → `false-positive`(誤検知だった・効かなかった系)
41
+ - `user-verdict` が確定値を裏づける: 妥当な指摘なら `valid` / 誤検知なら `false-alarm` / 未判定なら `unjudged`。利用者が未判定でも `unjudged` のまま記録・集計対象になる。
42
+
43
+ ## drift-log への append 手順
44
+
45
+ - **分割形で書く(CONTRACT「append-only 記録の分割・archive 規約」)**: drift-log は事象由来なので、単一 `drift-log.md` 末尾へ追記せず **日付+slug 単位の分割ファイル** `drift-log/<date>-<slug>.md` へ1エントリ書く。`<date>` は recorded_at の日付、`<slug>` は pattern(事象)を既存スラッグ規則(`intent-packets/rules/packet-format.md`)で導出する(新採番・連番を作らない)。別事象が別ファイルを触るため末尾衝突が原理的に消える。既存エントリは書き換え・削除しない(**append-only**)。
46
+ - **9キーを固定順で必ず全部書く**: `pattern` → `stage` → `packet` → `mechanism` → `outcome` → `user-verdict` → `recorded_at` → `commit` → `note`。9キーのうち1つでも欠けたエントリは書かない。
47
+ - **recorded_at**: 記録時刻を ISO 8601 で書く(transaction time)。
48
+ - **commit**: `git rev-parse --short HEAD` の結果を書く。非リポジトリ・git CLI 不在などで取得できないときは `-` とする(fail-open。記録は続行する)。
49
+ - **`drift-log/` ディレクトリが不在のとき**: ディレクトリを作ってから分割ファイルを書く。旧単一 `drift-log.md` が残っていても読み手は共存して読める(移行は本スライスの migration が担う)。
50
+ - エントリ書式は `.intent/drift-log.md` の「エントリ書式」節の見本(`### drift-log entry`)に従う。
@@ -0,0 +1,23 @@
1
+ # Export Questions Check
2
+
3
+ export 実行前に、未回答の `[export まで]` 付き Open Questions を確認する手順。`/intent-export-openspec` の Step 1.7 で使う。対話はすべて利用者への確認として行う(確認の手段は SKILL.md の規約に従う)。
4
+
5
+ ## 検出
6
+
7
+ - `.intent/intent-tree.md` と `.intent/intent-compass.md` の Open Questions 節を読み、`[export まで]` を含む問いを検出する。節に残っている問い = 未回答として扱う。
8
+ - 検出対象はこの2ファイルのみ。問いの正本は両ファイルの Open Questions 節であり、`.intent/packets/plan.md` の Deferred は意図的見送りの記録であって問いではないため対象外。
9
+ - **enforcement 設定(`.intent/mode.md` の Enforcement セクション)は参照しない**(Step 1.5 の enforcement ゲートとは独立に動作する)。
10
+
11
+ ## 手順
12
+
13
+ 1. **検出ゼロの場合(タグ規約を持たない旧 scaffold を含む)**
14
+ - 何も提示せず、次のステップへ進む(挙動変化なし)。
15
+
16
+ 2. **検出ありの場合**
17
+ - 検出した問いの一覧を提示する。
18
+ - 「回答してから export するか、このまま続行するか」を利用者に確認する。
19
+ - これは停止ではなく確認である。利用者が明示的に続行を指示したら export を実行する。
20
+
21
+ ## 規律
22
+
23
+ - コードを変更しない。
@@ -0,0 +1,75 @@
1
+ # Mapping: packet → OpenSpec
2
+
3
+ 選んだ packet 1つを OpenSpec の proposal 下書き + delta spec ヒントへ変換する規則。`intent-export-openspec` skill が使う。これは export ターゲット別マッピングの1つ(OpenSpec 用)。別ターゲット(cc-sdd 等)は `rules/map-<target>.md` を追加し、対応する `intent-export-<target>` skill を作る(縫い目)。`map-cc-sdd` は変更しない。
4
+
5
+ ## 入力範囲(厳守 / 情報源契約)
6
+
7
+ - 読むのは **対象 packet 1つ** と **`.intent/intent-compass.md` の Invariants / Anti-direction** のみ。
8
+ - Intent Tree 全文・他 packet は**読まない**。全体方向が必要なときのみ Tree の L0–L1 を**要約として**ピンポイント参照する(本文転記は不可)。
9
+ - これにより OpenSpec へ渡る情報量を 1 packet 相当に抑える(トークン爆発を防ぐ)。
10
+ - 生成物(proposal / delta)に**他 packet・Intent Tree 本文を引用/転記しない**。出典は対象 packet と compass に限定する。
11
+
12
+ ## 出力(2ファイルの下書き / 本体は作らない)
13
+
14
+ 下書きは packet ごとのディレクトリ `.intent/openspec/<packetスラッグ>/` 配下に書く(スラッグの導出は次節「出力レイアウト」)。OpenSpec の入口契約(`/opsx:propose <自然言語の変更記述>`、proposal の Why/What Changes/Impact、delta spec の ADDED/MODIFIED/REMOVED + `### Requirement:` / `#### Scenario:`)に**片方向で**合わせる。OpenSpec 内部実装には依存しない。
15
+
16
+ ### `.intent/openspec/<packetスラッグ>/proposal.md`
17
+
18
+ OpenSpec の `/opsx:propose` に渡す **proposal 下書き**。3つの見出しを必ず含める。
19
+
20
+ - `## Why` — packet の intent / Why を写し、**parent intent**(この packet が仕える上位の狙い)を明示する。なぜ今この変更が必要かを述べる。
21
+ - `## What Changes` — packet の deliverables / Scope を**箇条書き**で列挙する。compass の **Anti-direction** はこの節の中で **out-of-scope(やらないこと)として明示**する。
22
+ - `## Impact` — この変更が影響する spec / 契約と、守るべき制約。compass の **Invariants** を写し、影響範囲(触れる契約・能力)と invariant を並べる。
23
+ - **primary 出力**: `/opsx:propose` に投入できる**最小かつ常に有効な変更記述**テキストを proposal 冒頭から導出できる形で書く(proposal の構造化はその上の付加価値)。
24
+ - 情報源は対象 packet(Why/Scope/Expected Behavior/Safety)と compass の Invariants / Anti-direction に限定する。
25
+
26
+ ### `.intent/openspec/<packetスラッグ>/spec-delta.md`
27
+
28
+ OpenSpec の delta spec の **ヒント skeleton**(本体ではない)。
29
+
30
+ - packet の受け入れ条件 / Expected Behavior を `### Requirement: <name>`(**normative な SHALL / MUST 文**)と `#### Scenario: <name>`(**GIVEN / WHEN / THEN**)の骨格へ対応づける。
31
+ - 見出し構文(`### Requirement:` / `#### Scenario:`)を**正確に seed** し、OpenSpec の validate に通る構造へ誘導する。
32
+ - 振り分け規則は次節「delta の振り分け」に従う。
33
+ - 本体は完成させない。突き合わせ・完成は OpenSpec 側(`/opsx:propose` 以降)に委ねる(INV4)。
34
+
35
+ ## delta の振り分け(ADDED / MODIFIED / REMOVED)
36
+
37
+ - **既定**: packet の受け入れ条件はすべて `## ADDED Requirements` に置く。
38
+ - **条件付き**: packet の **Scope** または compass の **Anti-direction** が既存の能力・振る舞いの**変更/廃止を明示的に参照している場合のみ**、`## MODIFIED Requirements` / `## REMOVED Requirements` に「**変更対象の能力名 + 変更方向**」のヒントを置く。
39
+ - MODIFIED / REMOVED は変更対象の同定ヒントに留め、既存 spec との突き合わせ・確定は OpenSpec 側に委ねる。明示参照がなければ MODIFIED / REMOVED は置かない。
40
+
41
+ ## 出力レイアウト(スラッグ規則と衝突規則)
42
+
43
+ ### スラッグ規則(決定的)
44
+
45
+ packet 名からディレクトリ名(スラッグ)を以下の順で**決定的に**導出する。同じ packet 名は常に同じスラッグになる。この規則は `packet-format.md` および `map-cc-sdd` のスラッグ規則と**同一**である(export ターゲット間で出力先導出を揃える)。
46
+
47
+ 1. NFC 正規化する。
48
+ 2. 前後の空白を trim する。
49
+ 3. ASCII 大文字を小文字にする。
50
+ 4. 空白とパスに危険な文字(`/ \ : * ? " < > |`)を `-` に置換する。
51
+ 5. 連続する `-` を1つに圧縮する。
52
+ 6. 先頭・末尾の `-` を除去する。
53
+
54
+ - 非 ASCII 文字(日本語等)はそのまま保持する。
55
+ - 結果が空文字列になる場合はスラッグを `unnamed-packet` とし、その旨を利用者に告知する。
56
+
57
+ ### 衝突規則
58
+
59
+ - スラッグが既存ディレクトリと一致し、かつそのディレクトリの proposal.md が指す packet が**異なる** packet 名を指す場合のみ衝突とする。`-2` から始まる連番を付与して別名を割り当て、packet 名 → ディレクトリ名の対応を利用者に告知する。黙って上書きしない。
60
+ - **同一** packet 名を指す場合は衝突ではなく再 export であり、同じディレクトリの下書きをその場で更新する。
61
+
62
+ ## intent 伝播(OpenSpec が生成する成果物へ届かせる)
63
+
64
+ - proposal の `## Why` に **parent intent** を、`## Impact` に **invariant** を明示し、OpenSpec が生成する成果物(spec / 設計 / タスク)へ取り込まれやすい構造で渡す。
65
+ - compass の **Invariants** を OpenSpec の **normative 文(SHALL / MUST)** と `## Impact` の制約へ落とし込む。delta の `### Requirement:` にも invariant が関わる場合はその制約を normative 文として seed する。
66
+ - 狙い: OpenSpec の change から実装へ進む段階でも parent intent と invariant が効き続け、局所最適防止が OpenSpec 経由でも蒸発しないこと。
67
+ - **責任分界**: intent-planner の責務は「**渡す内容の構造のみ**で parent intent / invariant を伝播する」ところまで。OpenSpec の内部実装には介入しない。実際の取り込みは OpenSpec 側に委ねる(OpenSpec の挙動には依存しない)。完全な取り込みは**保証ではなく、構造で確率を最大化**する。
68
+
69
+ ## 不変条件
70
+
71
+ - OpenSpec の proposal / delta spec の**本体を完成させない**(下書き・ヒント skeleton まで)。delta の完成は `/opsx:propose` 以降に委ねる(INV4)。
72
+ - proposal の `## Why` / `## Impact` は必ず parent intent と invariant への参照を含む。
73
+ - 生成物に他 packet・Intent Tree 本文を引用/転記しない(情報源は対象 packet + compass に限定)。
74
+ - **他 packet のディレクトリへは書き込まない**(書き込み先は対象 packet のスラッグ配下のみ)。
75
+ - OpenSpec の skill / 内部実装には介入しない。出力先は `.intent/openspec/` に閉じ、`.intent/cc-sdd/` には触れない。