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,97 @@
1
+ ---
2
+ name: intent-packets
3
+ description: From the Intent Tree and Intent Compass, build the Packet Plan before handing off to cc-sdd. Each packet has a parent intent and is behavior-preserving / testable / rollbackable. Does not implement.
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Glob, Grep, AskUserQuestion, Bash
6
+ argument-hint: <focus of the decomposition (optional)>
7
+ ---
8
+
9
+ # intent-packets Skill
10
+
11
+ ## Core Mission
12
+ - **Success Criteria**:
13
+ - There are as many packet candidates as the expected change size warrants (do not pad the count; one packet is fine for very small changes; treat 1–7 as a loose guide), and each packet references a parent intent
14
+ - Each packet is drafted as an individual file under `.intent/packets/active/` (1 packet = 1 file)
15
+ - Each packet has Scope / Non-scope / Expected Behavior / Decisions / Safety(Invariants) / Validation / Evidence / Rollback / cc-sdd Mapping (keep `Evidence` as an empty section when there is no result)
16
+ - In each packet's `## Decisions` section, the common-core slots from `decision-slots.md` (plus the mode-specific diffs) are each closed with one of the 4 statuses (answered / undetermined / not-applicable / ADR candidate) (do not fill in defaults; do not silently skip)
17
+ - Each packet is at a behavior-preserving / testable / rollbackable granularity
18
+ - No existing packet file has been destroyed (changes are presented as differential update proposals)
19
+ - No application code has been changed at all
20
+
21
+ ## Execution Steps
22
+
23
+ ### Step 1: Read the prerequisites
24
+ - Read `.intent/intent-tree.md` and `.intent/intent-compass.md`. If either is missing, guide the user to "run the corresponding command first" and stop.
25
+ - While reading, when you see an unsettled verb slipped into the settled phrasing of the compass / intent-tree (assume / reuse / planned / TBD / tentative, etc.), do not fix it by guessing; present it as a conversion proposal into Open Questions or an undetermined slot (with the reason and the revisit condition (Revisit when)). Promotion to a fixed value is left to the user's confirmation. Do not re-convert spots already recorded in Open Questions / Deferred / an undetermined slot.
26
+ - Read `.intent/mode.local.md` (falling back to `.intent/mode.md` if absent) for the mode state. If both are absent, default to standard and announce it in Open Questions (do not stop).
27
+ - Read `.intent/packets/index.md` and the existing packet files under `.intent/packets/active/` (the basis for differential updates).
28
+ - Legacy-install handling: if `.intent/packets/`, `plan.md`, `index.md`, or `README.md` is missing, the skill creates them itself before proceeding (do not wait for a scaffold reinstall).
29
+ - After-the-fact drafting (when implementation ran ahead): when the invocation context or the user's report makes clear that **implementation proceeded / completed without a corresponding Packet**, treat it with the same procedure as normal drafting (raise the Packet even after the fact; being already implemented is not a reason to skip drafting). In this case:
30
+ - Record the established facts (the wiring / behavior already implemented) as `what + constraints + oracle` in the packet file.
31
+ - For the **spec that cannot yet be fixed** (the trigger, threshold, judgment means, etc. — decisions not yet committed to, or placed provisionally), do not fill them by guessing; put them explicitly into the container as Open Questions and Deferred (`undecided (deferred, with a revisit condition)`, always with the revisit condition). "Not drafting a Packet because the spec cannot be fixed" is wrong — holding the unfixed as-is is exactly the Packet's role.
32
+ - Guide the order: **first raise the Packet with this skill (the drafting phase), then return the learnings gained from the implementation reality to canonical via a delta with `/intent-writeback` (the post-implementation phase)**. These two run in opposite directions; do not perform only writeback while skipping the Packet drafting (the phase boundary follows writeback-protocol.md §3).
33
+
34
+ ### Step 2: Apply the mode definition's algorithm
35
+ - Open the mode definition that `.intent/mode.local.md` (falling back to `.intent/mode.md`) `definition` points to, and read and apply the algo rule (`rules/algo-*.md`) assigned to the Packet decomposition phase (standard → `rules/algo-example-mapping.md`; refactor → `rules/algo-migration-slicing.md`; behavior-unknown → `rules/algo-example-mapping.md` + `rules/algo-characterization-test.md`). The examples are not exhaustive; the mode definition's table is always authoritative.
36
+
37
+ ### Step 3: Decompose into Packets
38
+ - Following Example Mapping, expand each L2/L3 capability into "rules, examples, questions, deferred".
39
+ - Derive Expected Behavior, Validation, and Rollback from the examples.
40
+ - Consolidate into as many packets as the expected change size warrants (do not target a count or pad it; one packet is fine for very small changes; treat 1–7 as a loose guide). Measure size qualitatively by "the number of concerns touched × the breadth of impact on existing boundaries"; do not bring in effort estimates or other numeric metrics. Always give each packet a parent intent (a reference to L0/L1/L2/L3).
41
+ - Draft each packet as an individual file at `.intent/packets/active/<packet_id>.md`. Read `rules/packet-format.md` and follow it for ID assignment, filling in the frontmatter keys, and the body section structure (including the `## Decisions` and `## Evidence` sections) — the canonical source is the single source of truth for the key set and value domains.
42
+ - Stamp `updated_at` (the writer's responsibility): after writing a packet file, record its update timestamp in the frontmatter `updated_at` (ISO 8601). On a new packet, set `updated_at` to the same timestamp as `created_at`; when you change the content of an existing packet, update `updated_at` to that moment. On a re-run that involves no content change, do not change `updated_at` (idempotent; do not stamp when nothing changed). Obtain the timestamp with Bash `date`, the same way as `created_at`. If you cannot obtain the date/time, do not write a guessed date — report that instead. Stamping is the writer's (this skill's) responsibility and is not given to the read-only verification layer (intent-validate).
43
+ - Read `rules/decision-slots.md` and seed the completeness-schema slots into each packet's `## Decisions` section (the canonical source for the slot definitions, value domains, and IDs is decision-slots.md; this section is its projection).
44
+ - Seed the common-core slots (the 8 IDs seeded in every mode) into every packet, and add the mode-specific diff slots according to `.intent/mode.local.md` (falling back to `.intent/mode.md`) mode (standard / refactor / behavior-unknown / feature-growth). The slot definitions are authoritative in the decision-slots.md table; do not hardcode them into the SKILL body.
45
+ - Close each slot with **exactly one** of the 4 statuses (answered / undetermined / not-applicable / send to ADR candidate) (structurally preventing "silently skipping"). Do not fill in a "reasonable default" or "recommended value" (anchoring avoidance). Do not infer or auto-fill a slot's applicability or value from the artifacts (a human declares them).
46
+ - Reflect the posture that discover recorded directly under tree L3 as "points that need a decision (④)" (even when no concrete value exists, treat the slot's existence as something to close).
47
+ - For slots already covered by existing artifacts, do not recreate them; reference their close target (e.g. `decision-fit-criterion` → `## Validation`, `decision-exception-flow` → `## Expected Behavior`, `decision-characterization` → `algo-characterization-test.md`). Do not write the value twice in `## Decisions`; declare that it "is closed in the existing section" (no duplicate definition).
48
+ - For an `undetermined` slot, also note the reason, the caveat for downstream, and the revisit condition (Revisit when). For a `not-applicable` slot, also note the rationale for non-applicability and do not silently drop it.
49
+ - Dosage triage (front-load / defer): sort each decision into "a human fixes it up front (visible rule)" or "delegate it to the agent and defer it (hidden / discretion)".
50
+ - A decision that meets any of the 5 front-loading criteria (irreversible / costly to change later; ripples across multiple modules or external users (external impact); makes acceptance tests or observation weak when left ambiguous (acceptance oracle); a security / regulatory floor; binds multiple packets) is **fixed up front**. An architecture-significant decision meeting two or more is sent to the compass's Decision Rules as an ADR candidate.
51
+ - A decision that can be localized inside the design rules and is reversible (cheap-to-reverse) and explorable is kept as `undetermined (deferred, with revisit condition)` and may be delegated to the agent's discretion zone (do not leave it neglected; always note the revisit condition).
52
+ - Front-loading is not limited to "finalizing the decision itself early"; prioritize **front-loading learning, risk discovery, and test-oracle formation** (do not force an early lock-in of the conclusion).
53
+ - Fill in `state` declaratively from the 5-value domain in `packet-format.md`. Do not finalize a progression stage (especially `verifying`/`done`) on the AI's self-report alone; base it on a human or a check gate (results from intent-validate / drift-watch). `state=done` presupposes finalized verification results in the `## Evidence` section.
54
+ - In `depends_on`, declaratively list the `packet_id`s of the packets this one depends on (default `[]`; never omit the key even when empty). Tools do not infer or compute dependencies.
55
+ - In the `## Evidence` section, record the verification result, the date, the check-axis ID (kebab-case ID from `validate-checks.md`), and the source (intent-validate / drift-watch / human confirmation). Evidence is based on check results or human confirmation, not the AI's self-report, and is recorded so the source is traceable. Keep it as an empty section when there is no result; never fill it in by guessing.
56
+ - Present an existing packet's `state: active` as a migration proposal to `implementing`, and a missing `depends_on`/`## Evidence` as a lazy-completion proposal (a differential addition of `depends_on: []`), riding on the existing differential-update-proposal discipline (no forced bulk migration; move only; never delete).
57
+ - If existing packet files exist, read them and present additions as differential update proposals rather than overwriting or destroying them.
58
+ - Reflect the Compass's **project-universal** invariants into each packet's Safety, and draft packet-specific invariants directly in the packet file's Safety / Invariants (do not write them into the compass).
59
+ - Read the constraints held in `.intent/intent-compass.md`'s `## Open Questions` as "packet-specific constraints (candidates)". For each candidate that matches this packet's work scope (Scope/Non-scope), confirm it with the user via AskUserQuestion, then transcribe it into that packet file's Safety / Invariants and remove the transcribed entry from the compass's `## Open Questions` (do not leave the hold duplicated). Candidates that match no packet remain held in the compass's `## Open Questions`.
60
+
61
+ ### Step 4: Judge termination, then present priorities and splits
62
+ - Decomposition termination (composite stop condition): stop splitting once a packet satisfies all six conditions. (1) one packet maps to one primary concern; (2) the acceptance criteria reduce to observable inputs, conditions, and expected results; (3) the boundaries of the solution space (fixed / discretionary / forbidden) are explicit; (4) cheap-to-reverse (backing out is cheap); (5) the trace target is clear (you can follow the parent intent / spec_refs); (6) standalone completeness: a packet's own done is a coherent behavioral boundary that is not half-baked as seen by the user / caller (do not create a done for half-done behavior). (6) is an independent condition distinct from (4) — (4) is "the builder-side rollback safety (intermediate states can be backed out)", while (6) is "the caller-side semantic consistency of the completed form"; the observer differs (do not fold (6) into (4)). Before these hold it is too coarse; splitting further after they hold is over-decomposition.
63
+ - The verifiability floor is discriminative testability: "a test can be written (testability)" is not enough; there must be "an oracle that can reject a wrong implementation". A packet for which no such rejecting oracle can be found has immature acceptance criteria — rework its Validation / Expected Behavior into observable form.
64
+ - A packet whose acceptance criteria span multiple concerns or multiple quality-attribute trade-offs is judged "still too coarse"; propose splitting it along concern lines (move toward one packet = one concern).
65
+ - Do not decompose a work unit down to implementation steps (a full specification of the how). Keep it at `what + constraints + oracle` (what / boundary constraints / an oracle that rejects wrong implementations), and leave the inside of the rules to the agent's discretion.
66
+ - Maintain the existing granularity discipline (behavior-preserving / testable / rollbackable; the count is variable with the change size, with 1–7 as a loose guide, and do not pad the count), and use "one packet = one concern" and (6) standalone completeness explicitly in the termination judgment.
67
+ - Indicate the packets' priority.
68
+ - Read `rules/walking-skeleton.md` and apply it according to the rule's applicability conditions.
69
+ - Read `rules/first-packet.md` and apply it.
70
+ - Present split proposals for packets that are too large.
71
+ - For packets confirmed by the user, declaratively update `state` from draft to `ready` (ready to start; dependencies resolved) and regenerate `index.md` (see `rules/packet-format.md` for the value domain and the regeneration procedure). Progression to in-progress/awaiting-verification/done (`implementing`/`verifying`/`done`) is done by subsequent declarations based on a human or a check gate.
72
+ - Supersede: when a plan revision replaces an existing packet with a successor, fill in `superseded_by` on the old packet at the same time the successor packet is drafted, move it to `archive/<year>/`, and regenerate the index.
73
+ - **In-flight guard**: if the packet being replaced has been exported (has a row in `.intent/export-log.md`) and has no terminal-state (promoted / closed) delta, warn that implementation may be in progress and do not move it without user confirmation.
74
+ - Treat a rename request for an exported packet as a supersede, not a rename (the name-mutability rule in `rules/packet-format.md`).
75
+ - Do not make implementation changes.
76
+
77
+ ## Output Description
78
+
79
+ **Reader**: a human developer who carves out the work units and hands them to the implementation flow.
80
+ **What this output makes them grasp first**: "**this is the packet to start with first (= the packet to export next). The next move is the exit that matches the case type.**" The packet list / priorities / split proposals are the detail that backs it up.
81
+
82
+ Lead the output with the conclusion (the packet to start and the next command).
83
+
84
+ - **The packet to start with first (top, with reasons)**: the recommended packet = the packet to export next (the same one). Attach the reason why it is led with.
85
+ - **Next move (one line, branched by case type)**: apply `rules/export-route.md` (the exit decision lane) read-only and present the exit chosen from the case type. Do not recommend cc-sdd unconditionally (no hardcoding):
86
+ - If the target format (the `format` line in `.intent/mode.local.md`) is set to a valid value, recommend that exit: `cc-sdd` → `/intent-export-cc-sdd` / `openspec` → `/intent-export-openspec` / `to-spec` → `/intent-to-spec`.
87
+ - If `format` is unspecified (absent / placeholder / out of range), infer the top candidate from mode (non-code / standard-family) and the prerequisite (presence of `.kiro/`) (non-code + no `.kiro/` → `/intent-to-spec` / standard + `.kiro/` present → `/intent-export-cc-sdd`).
88
+ - When it cannot be uniquely determined, do not collapse to a single exit — list candidates (the exit depends on the user's intent; the decision detail is owned by `rules/export-route.md`).
89
+ - **Details**: the packet files under `.intent/packets/active/` (new drafts / differential update proposals for existing ones; as many packets as the change size warrants, with 1–7 as a loose guide, each with a parent intent), updates to `.intent/packets/plan.md` and `.intent/packets/index.md`, the packet priorities, and split proposals for packets that are too large.
90
+
91
+ ## Safety & Fallback
92
+ - If there is no Intent Tree / Compass, stop and guide the user to the corresponding command.
93
+ - The absence of mode.md does not stop; continue with the standard default and announce it.
94
+ - Do not drop packets too far down into implementation tasks (above an Issue, before a spec).
95
+ - Do not delete packet files (move only).
96
+ - Bash usage is limited to getting the date/time, directory creation (mkdir) and moves under `.intent/packets/` (the invariant of not changing application code stays).
97
+ - Do not change application code.
@@ -0,0 +1,55 @@
1
+ # Algorithm: Additive Slicing
2
+
3
+ A technique for decomposing a new feature into "additive slices" that are added in an order that does not affect existing behavior. Used together with Example Mapping in the Packet decomposition phase of `feature-growth` mode. It composes the slices in three stages — establish the seam → additively stack the new feature → wire it into the existing system — deriving a path where each slice can be delivered independently while preserving the existing behavior. Where Migration Slicing takes a drift list (gaps to fix) as input, Additive Slicing takes the impact list and the new feature's intent — the inputs differ, so the two are not interchangeable.
4
+
5
+ ## Procedure
6
+
7
+ Input = the new feature's intent (structured via GORE-lite and concretized via Example Mapping) and the impact list produced by Impact Analysis in discover (each item = boundary touched / existing contract depended on / kind of impact). A thin impact list turns the slices into guesswork — if it lacks the depth to design the seams, go back to discover.
8
+
9
+ 1. **Cut the slice that establishes the seam**
10
+ - From the impact list's "extend / requires change" items, identify the junction points where the new feature meets the existing system, and put first a **behavior-preserving slice that creates the junction with the minimal change to the existing code**.
11
+ - Reference the established tactics: the interface insertion of **Branch by Abstraction** (Fowler / Hammant), the expand stage of **Parallel Change (expand-contract)** (Danilo Sato), and the **seam concept** (Feathers, Working Effectively with Legacy Code). All are moves for "creating a point where a new implementation can be plugged in without changing existing behavior".
12
+ - When the seam-establishing slice completes, the existing observable behavior must be unchanged.
13
+
14
+ 2. **Stack the new feature additively**
15
+ - Beyond the seam, stack the new feature as a **set of slices consisting only of new code that does not touch existing code**. The slices in this stage are unreachable from the existing system before wiring, so they can be stacked while keeping the impact on existing behavior at zero.
16
+ - The examples concretized by Example Mapping flow into each slice's Expected Behavior.
17
+
18
+ 3. **Wire it in and activate**
19
+ - Finally, place the **wiring slice that activates the new feature via the seam**. The wiring must be revertible to disabled on its own (each packet's Toggle Plan makes this concrete).
20
+
21
+ 4. **Explore and split candidates with SPIDR**
22
+ - For exploring slice candidates and splitting slices that are too large, use **SPIDR** (Mike Cohn: the five cuts of Spike / Paths / Interfaces / Data / Rules) as an auxiliary heuristic.
23
+ - Rough affinity with the stages: seam stage = Interfaces, additive stage = Paths / Rules, wiring stage = Data / Rules.
24
+
25
+ 5. **Attach a verification point, rollback, and toggle plan to each slice**
26
+ - Attach a regression verification point for existing behavior, so that behavior preservation is observable → **Validation**.
27
+ - How to revert on failure (each slice must be reversible on its own) → **Rollback**.
28
+ - Which scope is off-by-default / under what condition the toggle gets removed → **Toggle Plan**.
29
+
30
+ 6. **Confirm the termination of the impact list**
31
+ - Confirm that every item in the impact list terminates as one of — "protected by the Safety / Invariants of some slice" or "sent to Open Questions". Leave no item that is neither.
32
+
33
+ ## Assembling the packet
34
+
35
+ Consolidate the three-stage ordered additive slices into packets. Each packet satisfies the following.
36
+
37
+ - **Parent Intent**: a reference to the corresponding L1/L2/L3 (required). If it protects an impact-list item, also indicate the original item.
38
+ - **Scope / Non-scope**: the addition this slice includes / does not include.
39
+ - **Expected Behavior**: derived from the "examples" of Example Mapping. For the seam and wiring slices, also note "the existing behavior preserved".
40
+ - **Safety / Invariants**: invariants that must not be broken during the transition. State explicitly which impact-list items it protects (derived from the Compass invariants).
41
+ - **Validation / Rollback**: derived from the above.
42
+ - **Toggle Plan**: which scope is off-by-default / under what condition the toggle gets removed (Hodgson's Release Toggles). Estimating the toggle's implementation difficulty is outside the planning scope — write up to the plan for its existence and lifetime.
43
+ - **cc-sdd Mapping**: the policy for how to hand off to cc-sdd.
44
+
45
+ ## Discipline
46
+
47
+ - Each slice must be **behavior-preserving / testable / rollbackable**.
48
+ - **Impact-list traceability**: every item in the input impact list must terminate as one of — protected by the Safety / Invariants of some slice, or sent to Open Questions. Never silently drop an item.
49
+ - **Keep the stage order**: establish the seam → add → wire. Do not embed directly into existing modules without creating a seam.
50
+ - Keep the count variable with the expected change size; do not pad it (one is fine for very small changes; treat 1–7 as a loose guide). For slices that are too large, present split proposals along the SPIDR cuts.
51
+ - This is the structuring of intent (a packet-decomposition technique), not addition execution code. Do not change code.
52
+
53
+ ## Output
54
+
55
+ An ordered set of additive slices (establish the seam → add → wire). Each slice has the structure above, and its Scope / Validation / Rollback / Toggle Plan flow into each packet. Update (present as a proposal) the packet files (under `active/`).
@@ -0,0 +1,40 @@
1
+ # Algorithm: Characterization Test
2
+
3
+ A technique for capturing the "observable behavior" of unknown legacy as test points that pin it down exactly as it is now. Used together with Example Mapping in the Packet decomposition phase of `behavior-unknown` mode. **For a target with unknown behavior, run this technique first** and hand the observed facts to Example Mapping (you cannot write "examples" for behavior you do not know, so observation comes first). Before structuring intent, it fixes "how it behaves now" as a safety net and derives the packet's Expected Behavior and Validation from observed facts.
4
+
5
+ ## Procedure
6
+
7
+ Input = the target whose behavior is unknown (legacy code / existing behavior). It does not depend on Example Mapping's output (rather, this technique's observation becomes Example Mapping's input).
8
+
9
+ 1. **Observe the current behavior and pin it down without judging**
10
+ - Observe the target's current inputs/outputs and side effects, and write them down as characterization test points (tests that pin the current behavior exactly as it is) without judging "whether it is correct".
11
+ - This is the planning of test points, not actual test code implementation.
12
+
13
+ 2. **Sort the pinned behavior into intentional / accidental and hand it to Example Mapping**
14
+ - For each pinned behavior, sort which are intentional and which are accidental. The intentional observed facts become the material that the subsequent Example Mapping organizes into "rules / examples".
15
+ - Send the accidental ones (side effects / dependencies that cannot be separated from intent) to **Open Questions**; do not promote them to intent by guessing.
16
+
17
+ 3. **Make the characterization tests the starting point of Validation**
18
+ - Use the sorted behavior points as the starting point of each packet's **Validation**, so they can be used for regression detection during refactoring.
19
+ - How to revert on failure → **Rollback**.
20
+
21
+ ## Assembling the packet
22
+
23
+ Consolidate the pinned behavior points into packets. Each packet satisfies the following.
24
+
25
+ - **Parent Intent**: a reference to the corresponding L1/L2/L3 (required). If it stems from an observation, also indicate the original behavior.
26
+ - **Scope / Non-scope**: the behavior included / not included.
27
+ - **Expected Behavior**: derived from the current observed behavior pinned above.
28
+ - **Safety / Invariants**: among the pinned behaviors, the invariants that must not be broken.
29
+ - **Validation / Rollback**: derived from the above.
30
+ - **cc-sdd Mapping**: the policy for how to hand off to cc-sdd.
31
+
32
+ ## Discipline
33
+
34
+ - **Observation, not judgment**: pin the current behavior as fact exactly as it is, and do not delve into judging correctness or into causes.
35
+ - For anything where you cannot judge whether it is intentional or accidental, do not fill it with guesses; send it to **Open Questions**.
36
+ - This is the structuring of intent (a technique that pins down intent by observing behavior), not actual test code implementation. Do not change code.
37
+
38
+ ## Output
39
+
40
+ A set of test points that pin the current behavior (with the intentional / accidental sorting). The Expected Behavior / Validation of each point flows into each packet. Update (present as a proposal) the packet files (under `active/`).
@@ -0,0 +1,47 @@
1
+ # Algorithm: Example Mapping
2
+
3
+ A technique for grounding abstract capabilities into observable concrete examples. Used in the Packet decomposition phase of the `standard` and `behavior-unknown` modes. It expands a capability into "rules, examples, questions, deferred" and derives the packet's Expected Behavior and Validation. In behavior-unknown mode, the observed facts pinned by the preceding Characterization Test become the input for the "examples" (observe first, organize after).
4
+
5
+ ## Procedure
6
+
7
+ For each L2/L3 capability, expand it as if writing four-color cards.
8
+
9
+ 1. **Rules (the rules the capability follows)**
10
+ - Bullet the rules/constraints the capability must satisfy.
11
+
12
+ 2. **Examples (observable concrete scenarios)**
13
+ - For each rule, give concrete examples of "when this happens, behave like this".
14
+ - These become the packet's **Expected Behavior** (the behavior observable after completion).
15
+
16
+ 3. **Questions (undetermined)**
17
+ - Anything that cannot be filled in when trying to write an example, or that requires a decision, leave it as a "question".
18
+ - This becomes the packet's **Open Questions**, or is sent back to the Compass.
19
+
20
+ 4. **Deferred (what you decided not to do this time)**
21
+ - Anything judged mid-expansion as "this rule/example is excluded from this packet" must not be silently dropped — record it explicitly as **deferred**. It becomes the seed of a follow-up packet, or an Open Question.
22
+
23
+ 5. **Derive Validation and Rollback from the examples**
24
+ - How to verify each example (tests / manual check / type checking / log check) → **Validation**.
25
+ - How to revert on failure → **Rollback**.
26
+
27
+ ## Assembling the packet
28
+
29
+ Consolidate the expansion results into packets. Each packet satisfies the following.
30
+
31
+ - **Parent Intent**: a reference to the corresponding L0/L1/L2/L3 (required).
32
+ - **Scope / Non-scope**: what is included / what is not.
33
+ - **Expected Behavior**: derived from the "examples" above.
34
+ - **Safety / Invariants**: derived from the Compass invariants.
35
+ - **Validation / Rollback**: derived from the above.
36
+ - **cc-sdd Mapping**: the policy for how to hand off to cc-sdd.
37
+
38
+ ## Discipline
39
+
40
+ - Packets must be **behavior-preserving / testable / rollbackable**. In greenfield work with no existing behavior to preserve, read behavior-preserving as "can be introduced and removed standalone without affecting anything else".
41
+ - Keep the count variable with the expected change size; do not pad it (one is fine for very small changes; treat 1–7 as a loose guide). For packets that are too large, present split proposals.
42
+ - Do not drop them too far down into implementation tasks (above an Issue, before a spec).
43
+ - Do not change code.
44
+
45
+ ## Output
46
+
47
+ Update (present as a proposal) the packet files (under `active/`). Each packet has the structure above. Of the four expansion columns (Rules / Examples / Questions / Deferred), the rules and examples flow into each packet's Expected Behavior, the questions go to Open Questions, and the deferred items are kept in the `Deferred` section of `plan.md`.
@@ -0,0 +1,47 @@
1
+ # Algorithm: Migration Slicing
2
+
3
+ A technique for decomposing a large change into "migration slices" that preserve behavior and can be shipped individually. Used in the Packet decomposition phase of `refactor` mode. It cuts the gap between the intended design and the current state into behavior-preserving / testable / rollbackable units, deriving a path that advances from the current state one step at a time.
4
+
5
+ ## Procedure
6
+
7
+ Input = the Intent of the refactor target (the intended design) and the current state, plus the drift list produced by Drift Analysis.
8
+
9
+ 1. **Mikado pre-pass: back-calculate the prerequisites**
10
+ - For resolving each drift (the goal), recursively back-calculate "what must be true first for this to be changed safely", and write the prerequisite graph (the Mikado Method's Mikado Graph) as an indented bullet list.
11
+ - The **leaves** — entries with no prerequisites — are the changes you can start with. This is a desk back-calculation at planning time; do not experimentally change code to find out (write the implementation-time Mikado discipline of "revert immediately when an experiment fails, and attack from the leaves" into each slice's Rollback so it flows into the exported implementation hints).
12
+
13
+ 2. **Cut the gap into minimal migration units**
14
+ - Split the current → intended gap into the smallest units that can be applied without breaking behavior. Raise slices starting from the changes close to the leaves of the prerequisite graph (think of dependency discovery as the graph's job and unit decomposition as the slice's job, separately).
15
+ - Make each slice individually deployable and have it advance the design one step while preserving the existing behavior.
16
+
17
+ 3. **Order by dependency, into a chain of unblocks**
18
+ - Order the slices by their dependencies so that each slice unblocks the next.
19
+ - Confirm that at whichever slice you stop, the state up to that point is consistent (intermediate states are also behavior-preserving).
20
+ - When multiple slices are startable within the dependency constraints, **put first the one that reduces the most risk / unblocks the most downstream slices**, and attach a one-sentence reason (no numeric scoring — that would be groundless pseudo-quantification).
21
+
22
+ 4. **Attach a verification point and rollback to each slice**
23
+ - Attach a characterization / regression verification point to each slice so that behavior preservation is observable → **Validation**.
24
+ - How to revert on failure (each slice must be reversible on its own) → **Rollback**.
25
+
26
+ ## Assembling the packet
27
+
28
+ Consolidate the ordered migration slices into packets. Each packet satisfies the following.
29
+
30
+ - **Parent Intent**: a reference to the corresponding L1/L2/L3 (required). If it stems from a drift, also indicate the original drift.
31
+ - **Scope / Non-scope**: the migration this slice includes / does not include.
32
+ - **Expected Behavior**: the existing behavior preserved after the migration.
33
+ - **Safety / Invariants**: invariants that must not be broken during the migration.
34
+ - **Validation / Rollback**: derived from the above.
35
+ - **cc-sdd Mapping**: the policy for how to hand off to cc-sdd.
36
+
37
+ ## Discipline
38
+
39
+ - Each slice must be **behavior-preserving / testable / rollbackable**.
40
+ - **Drift traceability**: every drift in the input drift list must terminate as one of — a slice (packet), an Open Question, or an explicit deferral with a reason. Never silently drop a drift.
41
+ - Order slices by dependency, and each must be individually deployable.
42
+ - Keep the count variable with the expected change size; do not pad it (one is fine for very small changes; treat 1–7 as a loose guide). For slices that are too large, present split proposals.
43
+ - This is the structuring of intent (a packet-decomposition technique), not migration execution code. Do not change code.
44
+
45
+ ## Output
46
+
47
+ An ordered set of migration slices. Each slice has the structure above, and its Scope / Validation / Rollback flow into each packet. Update (present as a proposal) the packet files (under `active/`).
@@ -0,0 +1,88 @@
1
+ # Decision Slots Catalog (completeness schema)
2
+
3
+ The **single canonical source of the completeness schema** that lists easy-to-miss topics as a "table of contents". Instead of leaving coverage to free-form requirement prose, it structurally bounds the kinds of omissions. `intent-discover` (posture check), `intent-packets` (slot seeding), and `intent-validate` (satisfaction check) all read this catalog as the single reference.
4
+
5
+ This catalog is a "sample (a table of contents of easy-to-miss topics)", not a fixed net. Filling gaps for a project type is delegated to discover's posture check and the mode-specific deltas.
6
+
7
+ ## Value range and status
8
+
9
+ Each slot takes one of the value range `decided value | undecided (with reason) | not applicable`, and **must be closed** with one of the following 4 statuses (structurally preventing "silently skipping").
10
+
11
+ | Status | Meaning | What to record alongside |
12
+ |--------|---------|--------------------------|
13
+ | Answered | A decided value exists | The decided value (in the packet's `## Decisions` or the closing section) |
14
+ | Undecided | Not yet decided (deferred) | Reason, a downstream caveat, and a revisit condition (Revisit when) |
15
+ | Not applicable | This slot does not apply to this packet | The rationale for non-applicability (do not silently drop it) |
16
+ | Send to ADR candidate | An architecture-significant decision | Send it to the compass's Decision Rules (the target of up-front fixing) |
17
+
18
+ - `Answered` corresponds to the value range `decided value`, `Undecided` to `undecided (with reason)`, and `Not applicable` to `not applicable`. `Send to ADR candidate` is a declaration until the value is decided on the compass side.
19
+ - For a slot whose "closes in" is an existing section (`## Validation` / `## Expected Behavior`, etc.), you may declare in `## Decisions` that it "is closed in the existing section" rather than duplicating the value (do not define it twice).
20
+
21
+ ## Common core slots (seeded in all modes)
22
+
23
+ 8 slots seeded into every packet. The first 4 (centered on ④) stem from "decision-making under constraints"; the latter 4 fill gaps that existing artifacts did not cover.
24
+
25
+ | ID | Slot name | What to confirm | Completion condition | Closes in | Up-front/deferred door | Rationale |
26
+ |----|-----------|-----------------|----------------------|-----------|------------------------|-----------|
27
+ | `decision-consistency` | Consistency model | On data change, strong (immediate) or eventual consistency | Which consistency model is declared and downstream can rely on it | packet `## Decisions` (new) | Up-front (one-way: costly external impact if overturned later) | Irreversible, binds multiple packets. ISO/IEC/IEEE 42010 decision/rationale |
28
+ | `decision-idempotency` | Idempotency & retry | Preventing inconsistency on write retry (idempotency keys, etc.) | The behavior on retry is declared | packet `## Decisions` (new) | Deferrable (two-way: discretionary if localizable and reversible) | Affects the acceptance oracle; a retry-premised quality attribute |
29
+ | `decision-error-semantics` | Error semantics & boundary validation | Boundary validation and error return when input is empty/unexpected (Fail-Fast, etc.) | The return contract on abnormal input is declared | packet `## Decisions` (new) | Deferrable (two-way) | Affects the acceptance oracle and external contracts |
30
+ | `decision-authz` | Authorization | Which actors may act, and row-level permission to accessible data | Who can access what is declared | packet `## Decisions` (new) | Up-front (one-way: security/regulatory floor) | Irreversible, security floor. A high-cost decision |
31
+ | `decision-quality-priority` | Quality-goal prioritization | Among performance/reliability/maintainability/security, the load-bearing top 2-3 attributes | The top attributes are declared with a ranking | packet `## Decisions` (new; may link with compass Invariants) | Deferrable (two-way) | A quality trade-off point. ISO/IEC 25010 quality vocabulary |
32
+ | `decision-fit-criterion` | Numeric/fit criterion | How acceptance is measured (fit criterion / SLO / test oracle) | The numeric/observable acceptance condition is declared | Reference packet `## Validation` (existing). If undecided, declare in `## Decisions` | Deferrable (two-way) | Affects the acceptance oracle. Volere's fit criterion |
33
+ | `decision-exception-flow` | Exception flow | Whether representative abnormal-path flows are defined, not only the happy path | Representative abnormal-path flows are declared | Reference packet `## Expected Behavior` (existing). If missing, declare in `## Decisions` | Deferrable (two-way) | Fills the happy-path-bias gap (PBR test/operations viewpoints) |
34
+ | `decision-downstream-trace` | Downstream trace | Links to the work/tests that realize/verify this packet (realized-by / verified-by) | Downstream links are declared (or judged minimally-sufficient and left empty) | packet `## Verification protocol` / trace links (new, optional) | Deferrable (two-way) | Bidirectional trace (fills the pre-RS gap) |
35
+
36
+ - Because `decision-fit-criterion` / `decision-exception-flow` close in existing sections, if they are closed in the existing section, place only a reference in `## Decisions` stating it "is closed in the existing section" (do not define it twice).
37
+ - The common core is seeded in all modes. `intent-validate`'s `decision-slot-unsown` check detects "none of these 8 IDs is seeded in `## Decisions`" (common core unsown).
38
+
39
+ ## Mode-specific delta slots (added per mode)
40
+
41
+ Delta slots **added** to the common core according to the mode in `.intent/mode.md`. The slot definitions are canonical in this table and are not hardcoded into the skill body (riding on the Mode/Algorithm/Skill three-layer separation).
42
+
43
+ ### standard
44
+
45
+ | ID | Slot name | What to confirm | Completion condition | Closes in | Up-front/deferred door |
46
+ |----|-----------|-----------------|----------------------|-----------|------------------------|
47
+ | `decision-perf-budget` | Performance budget | The allowable envelope for latency/throughput/resources | The performance envelope is declared | packet `## Decisions` | Deferrable (two-way) |
48
+ | `decision-data-ownership` | Data ownership | Where this data's source of truth is and who may modify it | The data's source of truth and the modifying party are declared | packet `## Decisions` | Up-front (one-way: large external impact if overturned later) |
49
+
50
+ ### refactor
51
+
52
+ | ID | Slot name | What to confirm | Completion condition | Closes in | Up-front/deferred door |
53
+ |----|-----------|-----------------|----------------------|-----------|------------------------|
54
+ | `decision-characterization` | Behavior to preserve / characterization tests | Test points that pin the current observable behavior exactly as it is | The observed behavior is pinned | Reference the existing `algo-characterization-test.md` (do not define it twice) | Up-front (one-way: pin the safety net first) |
55
+ | `decision-change-boundary` | Change boundary | How far it is OK to change, and what must not be touched | The changeable range and the untouchable range are declared | packet `## Decisions` | Up-front (one-way) |
56
+ | `decision-rollout-safety` | Rollout safety | How to revert and what to observe when rolling out the change in stages | The rollout strategy and how to revert are declared | packet `## Decisions` / reference `## Rollback` (existing) | Deferrable (two-way) |
57
+
58
+ ### behavior-unknown
59
+
60
+ | ID | Slot name | What to confirm | Completion condition | Closes in | Up-front/deferred door |
61
+ |----|-----------|-----------------|----------------------|-----------|------------------------|
62
+ | `decision-observed-facts` | Observed facts and their source | What was observed and where its source is | The observed facts and their source are declared | packet `## Decisions` / reference `## Expected Behavior` (existing) | Up-front (one-way: pin the facts first) |
63
+ | `decision-hypothesis-confidence` | Distinguishing hypothesis from confidence | Which are facts and which are hypotheses, and to what degree of confidence | Facts/hypotheses and confidence are distinguished | packet `## Decisions` | Deferrable (two-way) |
64
+ | `decision-current-vs-future` | Separating current behavior from future intent | Whether "it behaves like this now" and "we want it to behave like this" are conflated | Current behavior and future intent are declared separately | packet `## Decisions` | Deferrable (two-way) |
65
+
66
+ ### feature-growth
67
+
68
+ | ID | Slot name | What to confirm | Completion condition | Closes in | Up-front/deferred door |
69
+ |----|-----------|-----------------|----------------------|-----------|------------------------|
70
+ | `decision-existing-boundary` | Consistency with existing boundaries | Whether it is consistent with existing module boundaries/contracts | The policy for consistency with existing boundaries is declared | packet `## Decisions` | Up-front (one-way) |
71
+ | `decision-backward-compat` | Backward compatibility | Whether it breaks existing users / existing data | The backward-compatibility policy is declared | packet `## Decisions` | Up-front (one-way: a high-cost decision) |
72
+ | `decision-data-migration` | Data migration | How to migrate existing data and consistency during migration | The migration strategy is declared | packet `## Decisions` | Up-front (one-way: irreversible) |
73
+ | `decision-staged-rollout` | Staged rollout | How to run old and new in parallel and how to switch over | The staged-rollout strategy is declared | packet `## Decisions` | Deferrable (two-way) |
74
+ | `decision-legacy-impact` | Impact on legacy features | The side effects this extension has on existing features | The impact on legacy features is declared | packet `## Decisions` | Deferrable (two-way) |
75
+
76
+ ## Three disciplines
77
+
78
+ A skill applying this catalog observes the following three disciplines.
79
+
80
+ 1. **Do not offer defaults (anchoring avoidance)**: do not present a "reasonable default" or "recommended value" for a slot. This avoids the anchoring bias where judgment is dragged toward the first value presented. Symmetric side-by-side presentation of multiple options is reserved as a future extension candidate.
81
+ 2. **The tool does not infer applicability or values**: do not infer or auto-fill whether a slot applies, or which value it takes, from the artifact contents. People declare them (the same declaration-based discipline as not inferring `depends_on`). `intent-validate` only checks the slots/statuses actually declared.
82
+ 3. **Do not fix the ceiling (How)**: a slot declares "what to decide (what + constraints + oracle)" and does not make the packet carry the implementation How. The local search inside the rules is delegated to the agent's discretion zone.
83
+
84
+ ## How to extend
85
+
86
+ - **Extension completes by just adding a row to the table** (no structural change to other files needed — the "table is canonical" pattern). To grow the common core, add a row to the common-core table; to grow a mode delta, add a row to that mode's table.
87
+ - **For a slot covered by an existing artifact, reference the "closes in" and do not create a new container**. Intent/scope/stakeholders/constraints/acceptance evidence, etc. are covered by the existing tree / compass / packet existing sections, so do not recreate them in `## Decisions`; reference their closing section.
88
+ - For a slot with the same subject as an existing rule (e.g. `decision-characterization`), keep it as a reference to the existing file (`algo-characterization-test.md`) and do not duplicate the definition.
@@ -0,0 +1,54 @@
1
+ # Export Route (exit decision lane)
2
+
3
+ A **read-only decision convention** that, after the planning phase (discover→compass→packets), chooses which exit to take based on the case type. There are three exits:
4
+
5
+ - **cc-sdd implementation export** → `/intent-export-cc-sdd`
6
+ - **OpenSpec implementation export** → `/intent-export-openspec`
7
+ - **readable Spec projection** → `/intent-to-spec`
8
+
9
+ This convention is the **single source of truth in intent-packets**; the exit suggestion in `/intent-packets` and the preflight in the export skills reference this rule (the rule body is not copied into other skills). The decision is semantic and is not pushed onto a mechanical check script such as `intent-check.mjs` (INV2).
10
+
11
+ ## Inputs (all read-only observation)
12
+
13
+ The decision takes three inputs. Each is observed with Read / Glob and never creates, modifies, or deletes a file (read-only, INV5):
14
+
15
+ 1. **target format**: the value of the `format` line in `.intent/mode.local.md` (or the legacy `.intent/mode.md`), with range `cc-sdd` / `openspec` / `to-spec`.
16
+ 2. **mode**: the `mode` value in the same file (`non-code` / `standard`-family).
17
+ 3. **prerequisite**: whether the `.kiro/` directory exists (a hint for whether cc-sdd is set up).
18
+
19
+ ## Decision (first-match, deterministic)
20
+
21
+ The same inputs always yield the same result (deterministic). Evaluate top-down and take the first matching row.
22
+
23
+ ### A. When format is explicitly set to a valid value (highest priority)
24
+
25
+ | `format` | recommended exit |
26
+ |----------|------------------|
27
+ | `openspec` | `/intent-export-openspec` (**for an OpenSpec case, promote OpenSpec**) |
28
+ | `cc-sdd` | `/intent-export-cc-sdd` |
29
+ | `to-spec` | `/intent-to-spec` |
30
+
31
+ When set, deterministically recommend that exit.
32
+
33
+ ### B. When format is unspecified (infer from mode + prerequisite)
34
+
35
+ When `format` is "unspecified" (any of: (1) the line is absent, (2) a placeholder value `(undetermined — …)`, (3) a value outside the range — per the read contract in mode.local.md), infer and **present candidates** from mode and the presence of `.kiro/`. Cover all four quadrants as follows:
36
+
37
+ | mode | `.kiro/` | result |
38
+ |------|----------|--------|
39
+ | non-code | absent | `/intent-to-spec` as the top candidate (a readable artifact is the goal, DR15) |
40
+ | standard-family | present | `/intent-export-cc-sdd` as the top candidate (implementation case, cc-sdd already set up) |
41
+ | non-code | present | **list candidates** (`/intent-to-spec` on top, but also list `/intent-export-cc-sdd`; a non-code case can still have cc-sdd set up, so do not collapse to one) |
42
+ | standard-family | absent | **list candidates** (`/intent-export-cc-sdd` [needs setup], `/intent-to-spec`, `/intent-export-openspec`; not uniquely determined) |
43
+
44
+ ### C. Fallback
45
+
46
+ Including any case not above: when format is unspecified and the exit cannot be uniquely determined from the inputs, **do not collapse to a single exit — list candidates** (present rather than assert; the exit depends on the user's intent).
47
+
48
+ ## Discipline
49
+
50
+ - **Do not hardcode a single exit**: the problem is "collapsing to one exit without looking at the case type." Do not swap in another fixed destination (a to-spec-only or openspec-only path). When ambiguous, present candidates.
51
+ - **read-only**: the decision only observes; it does not mutate state (INV5).
52
+ - **Do not push onto a mechanical check**: keep the semantic decision in this rule plus context; do not move it into a script such as `intent-check.mjs` (INV2).
53
+ - **Do not depend on asking the user back**: settle the exit suggestion via this rule's convention and defaults; do not assume interactive follow-up.
54
+ - **Do not touch external tools**: reading whether `.kiro/` exists is observation, not a change to kiro / cc-sdd / OpenSpec (INV1).
@@ -0,0 +1,35 @@
1
+ # First Packet Recommendation
2
+
3
+ The procedure for recommending and recording exactly one packet to start with, together with qualitative reasons. Always used at the priority presentation (Step 4) of `/intent-packets`.
4
+
5
+ ## Applicability
6
+
7
+ - **Always apply.** Does not depend on designer-questions in `.intent/mode.md` (apply even when it is off or unrecorded).
8
+ - In SKILL.md Step 4, apply this procedure **after** applying walking-skeleton (apply this procedure even when walking-skeleton was not applied).
9
+
10
+ ## Procedure
11
+
12
+ 1. **Read the materials**
13
+ - Read the packet candidates and their priorities, the "Walking Skeleton" section of `.intent/packets/plan.md` (if recorded), and the purpose in `.intent/mode.md`.
14
+
15
+ 2. **Choose exactly one packet to start with**
16
+ - For the reasons, cite the applicable ones among the following qualitative criteria: **risk reduction** / **unblocking dependencies** / **ease of rollback** / **size of learning**.
17
+ - When purpose=poc is recorded, always include the criterion "whether it can refute the hypothesis most cheaply" in the reasons (when purpose is unrecorded or product, do not reference purpose).
18
+
19
+ 2.5. **Confirm the priorities and acceptable trade-offs with the user**
20
+ - Before finalizing the recommendation, confirm the priorities and acceptable trade-offs with the user: **which to prioritize, speed vs. quality**, and **which scope may be cut or deferred for this starting point**.
21
+ - This is a confirmation, not a prompt to override the recommendation. The recommendation is a proposal; when the user's priority judgment obtained here conflicts with the recommendation, prefer the user's judgment and revise the recommendation and its reasons.
22
+ - Ask in a form where "not applicable / unknown / decide later" can be chosen, and do not force an answer. When a hold or "decide later" is chosen, do not fill it in by guessing; route the item to the "Open Questions" section of `.intent/packets/plan.md` (appending it while preserving the existing content if the section is absent) and continue the recommendation.
23
+
24
+ 3. **Align with the Walking Skeleton**
25
+ - If the decision on the walking skeleton (the minimal implementation that cuts end to end) is recorded, align the recommendation with it. When making a recommendation that does not align, state the reason explicitly.
26
+
27
+ 4. **Record the recommendation**
28
+ - Record in the "Recommended First Packet" section of `.intent/packets/plan.md`: **Recommended packet** (packet name) / **Reasons** (qualitative criteria) / **Alignment with Walking Skeleton** (aligned / if not aligned, the reason / Walking Skeleton not recorded).
29
+ - **Non-destructive append for older scaffolds**: if `plan.md` lacks a "Recommended First Packet" section, append the section while preserving the existing recorded content, then record.
30
+
31
+ ## Discipline
32
+
33
+ - Do not use numeric scoring (weighted sums, point ratings).
34
+ - The recommendation is a proposal; it does not override the user's own priority judgment.
35
+ - Do not change code.