openspecui 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/.gitmodules +3 -0
  2. package/CHAT.md +3 -0
  3. package/package.json +12 -0
  4. package/references/openspec/.changeset/README.md +6 -0
  5. package/references/openspec/.changeset/config.json +12 -0
  6. package/references/openspec/.coderabbit.yaml +11 -0
  7. package/references/openspec/.devcontainer/README.md +92 -0
  8. package/references/openspec/.devcontainer/devcontainer.json +68 -0
  9. package/references/openspec/.github/CODEOWNERS +2 -0
  10. package/references/openspec/.github/workflows/ci.yml +222 -0
  11. package/references/openspec/.github/workflows/release-prepare.yml +50 -0
  12. package/references/openspec/AGENTS.md +18 -0
  13. package/references/openspec/CHANGELOG.md +205 -0
  14. package/references/openspec/LICENSE +22 -0
  15. package/references/openspec/README.md +374 -0
  16. package/references/openspec/assets/openspec_dashboard.png +0 -0
  17. package/references/openspec/assets/openspec_pixel_dark.svg +89 -0
  18. package/references/openspec/assets/openspec_pixel_light.svg +89 -0
  19. package/references/openspec/bin/openspec.js +3 -0
  20. package/references/openspec/build.js +31 -0
  21. package/references/openspec/openspec/AGENTS.md +454 -0
  22. package/references/openspec/openspec/changes/IMPLEMENTATION_ORDER.md +68 -0
  23. package/references/openspec/openspec/changes/add-antigravity-support/proposal.md +11 -0
  24. package/references/openspec/openspec/changes/add-antigravity-support/specs/cli-init/spec.md +9 -0
  25. package/references/openspec/openspec/changes/add-antigravity-support/specs/cli-update/spec.md +8 -0
  26. package/references/openspec/openspec/changes/add-antigravity-support/tasks.md +12 -0
  27. package/references/openspec/openspec/changes/add-scaffold-command/proposal.md +11 -0
  28. package/references/openspec/openspec/changes/add-scaffold-command/specs/cli-scaffold/spec.md +36 -0
  29. package/references/openspec/openspec/changes/add-scaffold-command/tasks.md +12 -0
  30. package/references/openspec/openspec/changes/archive/2025-01-11-add-update-command/design.md +86 -0
  31. package/references/openspec/openspec/changes/archive/2025-01-11-add-update-command/proposal.md +29 -0
  32. package/references/openspec/openspec/changes/archive/2025-01-11-add-update-command/specs/cli-update/spec.md +59 -0
  33. package/references/openspec/openspec/changes/archive/2025-01-11-add-update-command/tasks.md +20 -0
  34. package/references/openspec/openspec/changes/archive/2025-01-13-add-list-command/proposal.md +20 -0
  35. package/references/openspec/openspec/changes/archive/2025-01-13-add-list-command/specs/cli-list/spec.md +69 -0
  36. package/references/openspec/openspec/changes/archive/2025-01-13-add-list-command/tasks.md +26 -0
  37. package/references/openspec/openspec/changes/archive/2025-08-05-initialize-typescript-project/design.md +64 -0
  38. package/references/openspec/openspec/changes/archive/2025-08-05-initialize-typescript-project/proposal.md +18 -0
  39. package/references/openspec/openspec/changes/archive/2025-08-05-initialize-typescript-project/tasks.md +25 -0
  40. package/references/openspec/openspec/changes/archive/2025-08-06-add-init-command/design.md +104 -0
  41. package/references/openspec/openspec/changes/archive/2025-08-06-add-init-command/proposal.md +30 -0
  42. package/references/openspec/openspec/changes/archive/2025-08-06-add-init-command/specs/cli-init/spec.md +148 -0
  43. package/references/openspec/openspec/changes/archive/2025-08-06-add-init-command/tasks.md +38 -0
  44. package/references/openspec/openspec/changes/archive/2025-08-06-adopt-future-state-storage/proposal.md +24 -0
  45. package/references/openspec/openspec/changes/archive/2025-08-06-adopt-future-state-storage/specs/openspec-conventions/spec.md +120 -0
  46. package/references/openspec/openspec/changes/archive/2025-08-06-adopt-future-state-storage/tasks.md +38 -0
  47. package/references/openspec/openspec/changes/archive/2025-08-11-add-complexity-guidelines/proposal.md +13 -0
  48. package/references/openspec/openspec/changes/archive/2025-08-11-add-complexity-guidelines/specs/openspec-docs/README.md +472 -0
  49. package/references/openspec/openspec/changes/archive/2025-08-11-add-complexity-guidelines/tasks.md +9 -0
  50. package/references/openspec/openspec/changes/archive/2025-08-13-add-archive-command/proposal.md +15 -0
  51. package/references/openspec/openspec/changes/archive/2025-08-13-add-archive-command/specs/cli-archive/spec.md +111 -0
  52. package/references/openspec/openspec/changes/archive/2025-08-13-add-archive-command/tasks.md +44 -0
  53. package/references/openspec/openspec/changes/archive/2025-08-13-add-diff-command/proposal.md +19 -0
  54. package/references/openspec/openspec/changes/archive/2025-08-13-add-diff-command/specs/cli-diff/spec.md +77 -0
  55. package/references/openspec/openspec/changes/archive/2025-08-13-add-diff-command/tasks.md +23 -0
  56. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/design.md +56 -0
  57. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/proposal.md +17 -0
  58. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-change/spec.md +48 -0
  59. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-list/spec.md +12 -0
  60. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/tasks.md +34 -0
  61. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/proposal.md +20 -0
  62. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-change/spec.md +23 -0
  63. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-show/spec.md +83 -0
  64. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-spec/spec.md +23 -0
  65. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/tasks.md +142 -0
  66. package/references/openspec/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/proposal.md +13 -0
  67. package/references/openspec/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/specs/cli-archive/spec.md +191 -0
  68. package/references/openspec/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/tasks.md +57 -0
  69. package/references/openspec/openspec/changes/archive/2025-08-19-add-spec-commands/design.md +45 -0
  70. package/references/openspec/openspec/changes/archive/2025-08-19-add-spec-commands/proposal.md +19 -0
  71. package/references/openspec/openspec/changes/archive/2025-08-19-add-spec-commands/specs/cli-spec/spec.md +43 -0
  72. package/references/openspec/openspec/changes/archive/2025-08-19-add-spec-commands/tasks.md +22 -0
  73. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/design.md +104 -0
  74. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/proposal.md +22 -0
  75. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-archive/spec.md +18 -0
  76. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-diff/spec.md +12 -0
  77. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/tasks.md +59 -0
  78. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/proposal.md +93 -0
  79. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-archive/spec.md +48 -0
  80. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-diff/spec.md +45 -0
  81. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/openspec-conventions/spec.md +101 -0
  82. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/tasks.md +55 -0
  83. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/design.md +19 -0
  84. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/proposal.md +67 -0
  85. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/cli-list/spec.md +57 -0
  86. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/openspec-conventions/spec.md +23 -0
  87. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/tasks.md +27 -0
  88. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/proposal.md +20 -0
  89. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-change/spec.md +22 -0
  90. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-spec/spec.md +23 -0
  91. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-validate/spec.md +149 -0
  92. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/tasks.md +81 -0
  93. package/references/openspec/openspec/changes/archive/2025-08-19-fix-update-tool-selection/proposal.md +40 -0
  94. package/references/openspec/openspec/changes/archive/2025-08-19-fix-update-tool-selection/specs/cli-update/spec.md +23 -0
  95. package/references/openspec/openspec/changes/archive/2025-08-19-fix-update-tool-selection/tasks.md +21 -0
  96. package/references/openspec/openspec/changes/archive/2025-08-19-improve-validate-error-messages/proposal.md +25 -0
  97. package/references/openspec/openspec/changes/archive/2025-08-19-improve-validate-error-messages/specs/cli-validate/spec.md +55 -0
  98. package/references/openspec/openspec/changes/archive/2025-08-19-improve-validate-error-messages/tasks.md +21 -0
  99. package/references/openspec/openspec/changes/archive/2025-08-19-structured-spec-format/proposal.md +36 -0
  100. package/references/openspec/openspec/changes/archive/2025-08-19-structured-spec-format/specs/openspec-conventions/spec.md +192 -0
  101. package/references/openspec/openspec/changes/archive/2025-08-19-structured-spec-format/tasks.md +19 -0
  102. package/references/openspec/openspec/changes/archive/2025-09-12-add-view-dashboard-command/proposal.md +38 -0
  103. package/references/openspec/openspec/changes/archive/2025-09-12-add-view-dashboard-command/specs/cli-view/spec.md +109 -0
  104. package/references/openspec/openspec/changes/archive/2025-09-12-add-view-dashboard-command/tasks.md +47 -0
  105. package/references/openspec/openspec/changes/archive/2025-09-29-add-agents-md-config/proposal.md +28 -0
  106. package/references/openspec/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-init/spec.md +71 -0
  107. package/references/openspec/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-update/spec.md +41 -0
  108. package/references/openspec/openspec/changes/archive/2025-09-29-add-agents-md-config/tasks.md +17 -0
  109. package/references/openspec/openspec/changes/archive/2025-09-29-add-multi-agent-init/proposal.md +35 -0
  110. package/references/openspec/openspec/changes/archive/2025-09-29-add-multi-agent-init/specs/cli-init/spec.md +45 -0
  111. package/references/openspec/openspec/changes/archive/2025-09-29-add-multi-agent-init/tasks.md +16 -0
  112. package/references/openspec/openspec/changes/archive/2025-09-29-add-slash-command-support/proposal.md +119 -0
  113. package/references/openspec/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-init/spec.md +21 -0
  114. package/references/openspec/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-update/spec.md +22 -0
  115. package/references/openspec/openspec/changes/archive/2025-09-29-add-slash-command-support/tasks.md +20 -0
  116. package/references/openspec/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/proposal.md +19 -0
  117. package/references/openspec/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/tasks.md +9 -0
  118. package/references/openspec/openspec/changes/archive/2025-09-29-improve-deterministic-tests/proposal.md +78 -0
  119. package/references/openspec/openspec/changes/archive/2025-09-29-improve-deterministic-tests/tasks.md +25 -0
  120. package/references/openspec/openspec/changes/archive/2025-09-29-improve-init-onboarding/proposal.md +13 -0
  121. package/references/openspec/openspec/changes/archive/2025-09-29-improve-init-onboarding/specs/cli-init/spec.md +92 -0
  122. package/references/openspec/openspec/changes/archive/2025-09-29-improve-init-onboarding/tasks.md +12 -0
  123. package/references/openspec/openspec/changes/archive/2025-09-29-remove-diff-command/proposal.md +81 -0
  124. package/references/openspec/openspec/changes/archive/2025-09-29-remove-diff-command/tasks.md +37 -0
  125. package/references/openspec/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/proposal.md +25 -0
  126. package/references/openspec/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/specs/cli-view/spec.md +9 -0
  127. package/references/openspec/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/tasks.md +8 -0
  128. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/proposal.md +29 -0
  129. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-init/spec.md +40 -0
  130. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-update/spec.md +22 -0
  131. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/openspec-conventions/spec.md +27 -0
  132. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/tasks.md +22 -0
  133. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-instructions/design.md +130 -0
  134. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-instructions/proposal.md +117 -0
  135. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-instructions/tasks.md +69 -0
  136. package/references/openspec/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/proposal.md +19 -0
  137. package/references/openspec/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/specs/cli-validate/spec.md +9 -0
  138. package/references/openspec/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/tasks.md +11 -0
  139. package/references/openspec/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/proposal.md +25 -0
  140. package/references/openspec/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-init/spec.md +56 -0
  141. package/references/openspec/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-update/spec.md +41 -0
  142. package/references/openspec/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/tasks.md +19 -0
  143. package/references/openspec/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/proposal.md +25 -0
  144. package/references/openspec/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-init/spec.md +48 -0
  145. package/references/openspec/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-update/spec.md +48 -0
  146. package/references/openspec/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/tasks.md +30 -0
  147. package/references/openspec/openspec/changes/archive/2025-10-14-add-kilocode-workflows/proposal.md +17 -0
  148. package/references/openspec/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-init/spec.md +43 -0
  149. package/references/openspec/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-update/spec.md +27 -0
  150. package/references/openspec/openspec/changes/archive/2025-10-14-add-kilocode-workflows/tasks.md +15 -0
  151. package/references/openspec/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/proposal.md +12 -0
  152. package/references/openspec/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/specs/cli-init/spec.md +39 -0
  153. package/references/openspec/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/tasks.md +17 -0
  154. package/references/openspec/openspec/changes/archive/2025-10-14-add-windsurf-workflows/proposal.md +17 -0
  155. package/references/openspec/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-init/spec.md +42 -0
  156. package/references/openspec/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-update/spec.md +27 -0
  157. package/references/openspec/openspec/changes/archive/2025-10-14-add-windsurf-workflows/tasks.md +17 -0
  158. package/references/openspec/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/proposal.md +12 -0
  159. package/references/openspec/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/specs/cli-validate/spec.md +39 -0
  160. package/references/openspec/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/tasks.md +12 -0
  161. package/references/openspec/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/proposal.md +12 -0
  162. package/references/openspec/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/specs/docs-agent-instructions/spec.md +33 -0
  163. package/references/openspec/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/tasks.md +11 -0
  164. package/references/openspec/openspec/changes/archive/2025-10-14-slim-root-agents-file/proposal.md +13 -0
  165. package/references/openspec/openspec/changes/archive/2025-10-14-slim-root-agents-file/tasks.md +15 -0
  166. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/proposal.md +14 -0
  167. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/specs/cli-init/spec.md +10 -0
  168. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/tasks.md +8 -0
  169. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/proposal.md +15 -0
  170. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-init/spec.md +32 -0
  171. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-update/spec.md +10 -0
  172. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/tasks.md +11 -0
  173. package/references/openspec/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md +49 -0
  174. package/references/openspec/openspec/changes/archive/2025-10-14-update-release-automation/tasks.md +12 -0
  175. package/references/openspec/openspec/changes/archive/2025-10-22-add-archive-command-arguments/proposal.md +17 -0
  176. package/references/openspec/openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md +32 -0
  177. package/references/openspec/openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md +15 -0
  178. package/references/openspec/openspec/changes/archive/2025-10-22-add-cline-support/proposal.md +15 -0
  179. package/references/openspec/openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md +97 -0
  180. package/references/openspec/openspec/changes/archive/2025-10-22-add-cline-support/tasks.md +19 -0
  181. package/references/openspec/openspec/changes/archive/2025-10-22-add-crush-support/proposal.md +13 -0
  182. package/references/openspec/openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md +67 -0
  183. package/references/openspec/openspec/changes/archive/2025-10-22-add-crush-support/tasks.md +7 -0
  184. package/references/openspec/openspec/changes/archive/2025-10-22-add-factory-slash-commands/proposal.md +12 -0
  185. package/references/openspec/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-init/spec.md +54 -0
  186. package/references/openspec/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-update/spec.md +54 -0
  187. package/references/openspec/openspec/changes/archive/2025-10-22-add-factory-slash-commands/tasks.md +11 -0
  188. package/references/openspec/openspec/changes/fix-cline-workflows-implementation/proposal.md +13 -0
  189. package/references/openspec/openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md +11 -0
  190. package/references/openspec/openspec/changes/fix-cline-workflows-implementation/tasks.md +13 -0
  191. package/references/openspec/openspec/changes/make-validation-scope-aware/proposal.md +12 -0
  192. package/references/openspec/openspec/changes/make-validation-scope-aware/specs/cli-validate/spec.md +25 -0
  193. package/references/openspec/openspec/changes/make-validation-scope-aware/tasks.md +16 -0
  194. package/references/openspec/openspec/project.md +53 -0
  195. package/references/openspec/openspec/specs/cli-archive/spec.md +210 -0
  196. package/references/openspec/openspec/specs/cli-change/spec.md +91 -0
  197. package/references/openspec/openspec/specs/cli-init/spec.md +311 -0
  198. package/references/openspec/openspec/specs/cli-list/spec.md +103 -0
  199. package/references/openspec/openspec/specs/cli-show/spec.md +85 -0
  200. package/references/openspec/openspec/specs/cli-spec/spec.md +87 -0
  201. package/references/openspec/openspec/specs/cli-update/spec.md +190 -0
  202. package/references/openspec/openspec/specs/cli-validate/spec.md +218 -0
  203. package/references/openspec/openspec/specs/cli-view/spec.md +105 -0
  204. package/references/openspec/openspec/specs/docs-agent-instructions/spec.md +38 -0
  205. package/references/openspec/openspec/specs/openspec-conventions/spec.md +474 -0
  206. package/references/openspec/openspec-parallel-merge-plan.md +98 -0
  207. package/references/openspec/package.json +73 -0
  208. package/references/openspec/pnpm-lock.yaml +2324 -0
  209. package/references/openspec/scripts/pack-version-check.mjs +111 -0
  210. package/references/openspec/src/cli/index.ts +253 -0
  211. package/references/openspec/src/commands/change.ts +291 -0
  212. package/references/openspec/src/commands/show.ts +139 -0
  213. package/references/openspec/src/commands/spec.ts +250 -0
  214. package/references/openspec/src/commands/validate.ts +305 -0
  215. package/references/openspec/src/core/archive.ts +606 -0
  216. package/references/openspec/src/core/config.ts +41 -0
  217. package/references/openspec/src/core/configurators/agents.ts +23 -0
  218. package/references/openspec/src/core/configurators/base.ts +6 -0
  219. package/references/openspec/src/core/configurators/claude.ts +23 -0
  220. package/references/openspec/src/core/configurators/cline.ts +23 -0
  221. package/references/openspec/src/core/configurators/codebuddy.ts +24 -0
  222. package/references/openspec/src/core/configurators/costrict.ts +23 -0
  223. package/references/openspec/src/core/configurators/iflow.ts +23 -0
  224. package/references/openspec/src/core/configurators/qoder.ts +53 -0
  225. package/references/openspec/src/core/configurators/qwen.ts +47 -0
  226. package/references/openspec/src/core/configurators/registry.ts +49 -0
  227. package/references/openspec/src/core/configurators/slash/amazon-q.ts +51 -0
  228. package/references/openspec/src/core/configurators/slash/antigravity.ts +28 -0
  229. package/references/openspec/src/core/configurators/slash/auggie.ts +37 -0
  230. package/references/openspec/src/core/configurators/slash/base.ts +95 -0
  231. package/references/openspec/src/core/configurators/slash/claude.ts +42 -0
  232. package/references/openspec/src/core/configurators/slash/cline.ts +27 -0
  233. package/references/openspec/src/core/configurators/slash/codebuddy.ts +43 -0
  234. package/references/openspec/src/core/configurators/slash/codex.ts +126 -0
  235. package/references/openspec/src/core/configurators/slash/costrict.ts +36 -0
  236. package/references/openspec/src/core/configurators/slash/crush.ts +42 -0
  237. package/references/openspec/src/core/configurators/slash/cursor.ts +42 -0
  238. package/references/openspec/src/core/configurators/slash/factory.ts +41 -0
  239. package/references/openspec/src/core/configurators/slash/gemini.ts +27 -0
  240. package/references/openspec/src/core/configurators/slash/github-copilot.ts +39 -0
  241. package/references/openspec/src/core/configurators/slash/iflow.ts +42 -0
  242. package/references/openspec/src/core/configurators/slash/kilocode.ts +21 -0
  243. package/references/openspec/src/core/configurators/slash/opencode.ts +83 -0
  244. package/references/openspec/src/core/configurators/slash/qoder.ts +84 -0
  245. package/references/openspec/src/core/configurators/slash/qwen.ts +55 -0
  246. package/references/openspec/src/core/configurators/slash/registry.ts +81 -0
  247. package/references/openspec/src/core/configurators/slash/roocode.ts +27 -0
  248. package/references/openspec/src/core/configurators/slash/toml-base.ts +66 -0
  249. package/references/openspec/src/core/configurators/slash/windsurf.ts +27 -0
  250. package/references/openspec/src/core/converters/json-converter.ts +61 -0
  251. package/references/openspec/src/core/index.ts +2 -0
  252. package/references/openspec/src/core/init.ts +986 -0
  253. package/references/openspec/src/core/list.ts +104 -0
  254. package/references/openspec/src/core/parsers/change-parser.ts +234 -0
  255. package/references/openspec/src/core/parsers/markdown-parser.ts +237 -0
  256. package/references/openspec/src/core/parsers/requirement-blocks.ts +234 -0
  257. package/references/openspec/src/core/schemas/base.schema.ts +20 -0
  258. package/references/openspec/src/core/schemas/change.schema.ts +42 -0
  259. package/references/openspec/src/core/schemas/index.ts +20 -0
  260. package/references/openspec/src/core/schemas/spec.schema.ts +17 -0
  261. package/references/openspec/src/core/styles/palette.ts +8 -0
  262. package/references/openspec/src/core/templates/agents-root-stub.ts +16 -0
  263. package/references/openspec/src/core/templates/agents-template.ts +457 -0
  264. package/references/openspec/src/core/templates/claude-template.ts +1 -0
  265. package/references/openspec/src/core/templates/cline-template.ts +1 -0
  266. package/references/openspec/src/core/templates/costrict-template.ts +1 -0
  267. package/references/openspec/src/core/templates/index.ts +50 -0
  268. package/references/openspec/src/core/templates/project-template.ts +38 -0
  269. package/references/openspec/src/core/templates/slash-command-templates.ts +60 -0
  270. package/references/openspec/src/core/update.ts +129 -0
  271. package/references/openspec/src/core/validation/constants.ts +48 -0
  272. package/references/openspec/src/core/validation/types.ts +19 -0
  273. package/references/openspec/src/core/validation/validator.ts +448 -0
  274. package/references/openspec/src/core/view.ts +189 -0
  275. package/references/openspec/src/index.ts +2 -0
  276. package/references/openspec/src/utils/file-system.ts +187 -0
  277. package/references/openspec/src/utils/index.ts +2 -0
  278. package/references/openspec/src/utils/interactive.ts +7 -0
  279. package/references/openspec/src/utils/item-discovery.ts +45 -0
  280. package/references/openspec/src/utils/match.ts +26 -0
  281. package/references/openspec/src/utils/task-progress.ts +43 -0
  282. package/references/openspec/test/cli-e2e/basic.test.ts +156 -0
  283. package/references/openspec/test/commands/change.interactive-show.test.ts +45 -0
  284. package/references/openspec/test/commands/change.interactive-validate.test.ts +48 -0
  285. package/references/openspec/test/commands/show.test.ts +123 -0
  286. package/references/openspec/test/commands/spec.interactive-show.test.ts +44 -0
  287. package/references/openspec/test/commands/spec.interactive-validate.test.ts +44 -0
  288. package/references/openspec/test/commands/spec.test.ts +324 -0
  289. package/references/openspec/test/commands/validate.enriched-output.test.ts +49 -0
  290. package/references/openspec/test/commands/validate.test.ts +133 -0
  291. package/references/openspec/test/core/archive.test.ts +680 -0
  292. package/references/openspec/test/core/commands/change-command.list.test.ts +76 -0
  293. package/references/openspec/test/core/commands/change-command.show-validate.test.ts +111 -0
  294. package/references/openspec/test/core/converters/json-converter.test.ts +184 -0
  295. package/references/openspec/test/core/init.test.ts +1710 -0
  296. package/references/openspec/test/core/list.test.ts +165 -0
  297. package/references/openspec/test/core/parsers/change-parser.test.ts +52 -0
  298. package/references/openspec/test/core/parsers/markdown-parser.test.ts +291 -0
  299. package/references/openspec/test/core/update.test.ts +1642 -0
  300. package/references/openspec/test/core/validation.enriched-messages.test.ts +74 -0
  301. package/references/openspec/test/core/validation.test.ts +489 -0
  302. package/references/openspec/test/core/view.test.ts +79 -0
  303. package/references/openspec/test/fixtures/tmp-init/openspec/changes/c1/proposal.md +7 -0
  304. package/references/openspec/test/fixtures/tmp-init/openspec/changes/c1/specs/alpha/spec.md +8 -0
  305. package/references/openspec/test/fixtures/tmp-init/openspec/specs/alpha/spec.md +12 -0
  306. package/references/openspec/test/helpers/run-cli.ts +139 -0
  307. package/references/openspec/test/utils/file-system.test.ts +211 -0
  308. package/references/openspec/test/utils/marker-updates.test.ts +287 -0
  309. package/references/openspec/tsconfig.json +21 -0
  310. package/references/openspec/vitest.config.ts +25 -0
  311. package/references/openspec/vitest.setup.ts +6 -0
@@ -0,0 +1,104 @@
1
+ # Technical Design for Init Command
2
+
3
+ ## Architecture Overview
4
+
5
+ The init command follows a modular architecture with clear separation of concerns:
6
+
7
+ ```
8
+ CLI Layer (src/cli/index.ts)
9
+
10
+ Core Logic (src/core/init.ts)
11
+
12
+ Templates (src/core/templates/)
13
+
14
+ File System Utils (src/utils/file-system.ts)
15
+ ```
16
+
17
+ ## Key Design Decisions
18
+
19
+ ### 1. Template Management
20
+
21
+ **Decision**: Store templates as TypeScript modules rather than separate files
22
+ **Rationale**:
23
+ - Ensures templates are bundled with the compiled code
24
+ - Allows for dynamic content insertion
25
+ - Type-safe template handling
26
+ - No need for complex file path resolution
27
+
28
+ ### 2. Interactive vs Non-Interactive Mode
29
+
30
+ **Decision**: Support both interactive (default) and non-interactive modes
31
+ **Rationale**:
32
+ - Interactive mode for developer experience
33
+ - Non-interactive for CI/CD and automation
34
+ - Flags: `--yes` to accept defaults, `--no-input` for full automation
35
+
36
+ ### 3. Directory Structure Creation
37
+
38
+ **Decision**: Create all directories upfront, then populate files
39
+ **Rationale**:
40
+ - Fail fast if permissions issues
41
+ - Clear transaction boundary
42
+ - Easier to clean up on failure
43
+
44
+ ### 4. Error Handling Strategy
45
+
46
+ **Decision**: Implement rollback on failure
47
+ **Rationale**:
48
+ - Prevent partial installations
49
+ - Clear error states
50
+ - Better user experience
51
+
52
+ ## Implementation Details
53
+
54
+ ### File System Operations
55
+
56
+ ```typescript
57
+ // Atomic directory creation with rollback
58
+ interface InitTransaction {
59
+ createdPaths: string[];
60
+ rollback(): Promise<void>;
61
+ commit(): Promise<void>;
62
+ }
63
+ ```
64
+
65
+ ### Template System
66
+
67
+ ```typescript
68
+ interface Template {
69
+ path: string;
70
+ content: string | ((context: ProjectContext) => string);
71
+ }
72
+
73
+ interface ProjectContext {
74
+ projectName: string;
75
+ description: string;
76
+ techStack: string[];
77
+ conventions: string;
78
+ }
79
+ ```
80
+
81
+ ### CLI Command Structure
82
+
83
+ ```bash
84
+ openspec init [path] # Initialize in specified path (default: current directory)
85
+ --yes # Accept all defaults
86
+ --no-input # Skip all prompts
87
+ --force # Overwrite existing OpenSpec directory
88
+ --dry-run # Show what would be created
89
+ ```
90
+
91
+ ## Security Considerations
92
+
93
+ 1. **Path Traversal**: Sanitize all user-provided paths
94
+ 2. **File Permissions**: Check write permissions before starting
95
+ 3. **Existing Files**: Never overwrite without explicit --force flag
96
+ 4. **Template Injection**: Sanitize user inputs in templates
97
+
98
+ ## Future Extensibility
99
+
100
+ The design supports future enhancements:
101
+ - Custom template sources
102
+ - Project type presets (API, web app, library)
103
+ - Migration from other documentation systems
104
+ - Integration with version control systems
@@ -0,0 +1,30 @@
1
+ # Add Init Command for OpenSpec
2
+
3
+ ## Why
4
+
5
+ Projects need a simple way to adopt OpenSpec conventions. Currently, users must manually create the directory structure and understand all the conventions, which creates friction for adoption. An init command would enable instant OpenSpec setup with proper structure and guidance.
6
+
7
+ ## What Changes
8
+
9
+ - Add `openspec init` CLI command that creates the complete OpenSpec directory structure
10
+ - Generate template files (README.md with AI instructions, project.md template)
11
+ - Interactive prompt to select which AI tools to configure (Claude Code initially, others marked as "coming soon")
12
+ - Support for multiple AI coding assistants with extensible plugin architecture
13
+ - Smart file updates using content markers to preserve existing configurations
14
+ - Custom directory naming with `--dir` flag
15
+ - Validation to prevent overwriting existing OpenSpec structures
16
+ - Clear error messages with helpful guidance (e.g., suggesting 'openspec update' for existing structures)
17
+ - Display actionable next steps after successful initialization
18
+
19
+ ### Breaking Changes
20
+ - None - this is a new feature
21
+
22
+ ## Impact
23
+
24
+ - Affected specs: None (new feature)
25
+ - Affected code:
26
+ - src/cli/index.ts (add init command)
27
+ - src/core/init.ts (new - initialization logic)
28
+ - src/core/templates/ (new - template files)
29
+ - src/core/configurators/ (new - AI tool plugins)
30
+ - src/utils/file-system.ts (new - file operations)
@@ -0,0 +1,148 @@
1
+ # CLI Init Specification
2
+
3
+ ## Purpose
4
+
5
+ The `openspec init` command SHALL create a complete OpenSpec directory structure in any project, enabling immediate adoption of OpenSpec conventions with support for multiple AI coding assistants.
6
+
7
+ ## Behavior
8
+
9
+ ### Progress Indicators
10
+
11
+ WHEN executing initialization steps
12
+ THEN validate environment silently in background (no output unless error)
13
+ AND display progress with ora spinners:
14
+ - Show spinner: "⠋ Creating OpenSpec structure..."
15
+ - Then success: "✔ OpenSpec structure created"
16
+ - Show spinner: "⠋ Configuring AI tools..."
17
+ - Then success: "✔ AI tools configured"
18
+
19
+ ### Directory Creation
20
+
21
+ WHEN `openspec init` is executed
22
+ THEN create the following directory structure:
23
+ ```
24
+ openspec/
25
+ ├── project.md
26
+ ├── README.md
27
+ ├── specs/
28
+ └── changes/
29
+ └── archive/
30
+ ```
31
+
32
+ ### File Generation
33
+
34
+ The command SHALL generate:
35
+ - `README.md` containing complete OpenSpec instructions for AI assistants
36
+ - `project.md` with project context template
37
+
38
+ ### AI Tool Configuration
39
+
40
+ WHEN run interactively
41
+ THEN prompt user to select AI tools to configure:
42
+ - Claude Code (updates/creates CLAUDE.md with OpenSpec markers)
43
+ - Cursor (future)
44
+ - Aider (future)
45
+
46
+ ### AI Tool Configuration Details
47
+
48
+ WHEN Claude Code is selected
49
+ THEN create or update `CLAUDE.md` in the project root directory (not inside openspec/)
50
+
51
+ WHEN CLAUDE.md does not exist
52
+ THEN create new file with OpenSpec content wrapped in markers:
53
+ ```markdown
54
+ <!-- OPENSPEC:START -->
55
+ # OpenSpec Project
56
+
57
+ This document provides instructions for AI coding assistants on how to use OpenSpec conventions for spec-driven development. Follow these rules precisely when working on OpenSpec-enabled projects.
58
+
59
+ This project uses OpenSpec for spec-driven development. Specifications are the source of truth.
60
+
61
+ See @openspec/README.md for detailed conventions and guidelines.
62
+ <!-- OPENSPEC:END -->
63
+ ```
64
+
65
+ WHEN CLAUDE.md already exists
66
+ THEN preserve all existing content
67
+ AND insert OpenSpec content at the beginning of the file using markers
68
+ AND ensure markers don't duplicate if they already exist
69
+
70
+ The marker system SHALL:
71
+ - Use `<!-- OPENSPEC:START -->` to mark the beginning of managed content
72
+ - Use `<!-- OPENSPEC:END -->` to mark the end of managed content
73
+ - Allow OpenSpec to update its content without affecting user customizations
74
+ - Preserve all content outside the markers intact
75
+
76
+ WHY use markers:
77
+ - Users may have existing CLAUDE.md instructions they want to keep
78
+ - OpenSpec can update its instructions in future versions
79
+ - Clear boundary between OpenSpec-managed and user-managed content
80
+
81
+ ### Interactive Mode
82
+
83
+ WHEN run
84
+ THEN prompt user with: "Which AI tool do you use?"
85
+ AND show single-select menu with available tools:
86
+ - Claude Code
87
+ AND show disabled options as "coming soon" (not selectable):
88
+ - Cursor (coming soon)
89
+ - Aider (coming soon)
90
+ - Continue (coming soon)
91
+
92
+ User navigation:
93
+ - Use arrow keys to move between options
94
+ - Press Enter to select the highlighted option
95
+
96
+ ### Safety Checks
97
+
98
+ WHEN `openspec/` directory already exists
99
+ THEN display error with ora fail indicator:
100
+ "✖ Error: OpenSpec seems to already be initialized. Use 'openspec update' to update the structure."
101
+
102
+ WHEN checking initialization feasibility
103
+ THEN verify write permissions in the target directory silently
104
+ AND only display error if permissions are insufficient
105
+
106
+ ### Success Output
107
+
108
+ WHEN initialization completes successfully
109
+ THEN display actionable prompts for AI-driven workflow:
110
+ ```
111
+ ✔ OpenSpec initialized successfully!
112
+
113
+ Next steps - Copy these prompts to Claude:
114
+
115
+ ────────────────────────────────────────────────────────────
116
+ 1. Populate your project context:
117
+ "Please read openspec/project.md and help me fill it out
118
+ with details about my project, tech stack, and conventions"
119
+
120
+ 2. Create your first change proposal:
121
+ "I want to add [YOUR FEATURE HERE]. Please create an
122
+ OpenSpec change proposal for this feature"
123
+
124
+ 3. Learn the OpenSpec workflow:
125
+ "Please explain the OpenSpec workflow from openspec/README.md
126
+ and how I should work with you on this project"
127
+ ────────────────────────────────────────────────────────────
128
+ ```
129
+
130
+ The prompts SHALL:
131
+ - Be copy-pasteable for immediate use with AI tools
132
+ - Guide users through the AI-driven workflow
133
+ - Replace placeholder text ([YOUR FEATURE HERE]) with actual features
134
+
135
+ ### Exit Codes
136
+
137
+ - 0: Success
138
+ - 1: General error (including when OpenSpec directory already exists)
139
+ - 2: Insufficient permissions (reserved for future use)
140
+ - 3: User cancelled operation (reserved for future use)
141
+
142
+ ## Why
143
+
144
+ Manual creation of OpenSpec structure is error-prone and creates adoption friction. A standardized init command ensures:
145
+ - Consistent structure across all projects
146
+ - Proper AI instruction files are always included
147
+ - Quick onboarding for new projects
148
+ - Clear conventions from the start
@@ -0,0 +1,38 @@
1
+ # Implementation Tasks for Init Command
2
+
3
+ ## 1. Core Infrastructure
4
+ - [x] 1.1 Create src/utils/file-system.ts with directory/file creation utilities
5
+ - [x] 1.2 Create src/core/templates/index.ts for template management
6
+ - [x] 1.3 Create src/core/init.ts with main initialization logic
7
+ - [x] 1.4 Create src/core/config.ts for configuration management
8
+
9
+ ## 2. Template Files
10
+ - [x] 2.1 Create src/core/templates/readme-template.ts with OpenSpec README content
11
+ - [x] 2.2 Create src/core/templates/project-template.ts with customizable project.md
12
+ - [x] 2.3 Create src/core/templates/claude-template.ts for CLAUDE.md content with markers
13
+
14
+ ## 3. AI Tool Configurators
15
+ - [x] 3.1 Create src/core/configurators/base.ts with ToolConfigurator interface
16
+ - [x] 3.2 Create src/core/configurators/claude.ts for Claude Code configuration
17
+ - [x] 3.3 Create src/core/configurators/registry.ts for tool registration
18
+ - [x] 3.4 Implement marker-based file updates for existing configurations
19
+
20
+ ## 4. Init Command Implementation
21
+ - [x] 4.1 Add init command to src/cli/index.ts using Commander
22
+ - [x] 4.2 Implement AI tool selection with multi-select prompt (Claude Code available, others "coming soon") - requires at least one selection
23
+ - [x] 4.3 Add validation for existing OpenSpec directories with helpful error message
24
+ - [x] 4.4 Implement directory structure creation
25
+ - [x] 4.5 Implement file generation with templates and markers
26
+
27
+ ## 5. User Experience
28
+ - [x] 5.1 Add colorful console output for better UX
29
+ - [x] 5.2 Implement progress indicators (Step 1/3, 2/3, 3/3)
30
+ - [x] 5.3 Add success message with actionable next steps (edit project.md, create first change)
31
+ - [x] 5.4 Add error handling with helpful messages
32
+
33
+ ## 6. Testing and Documentation
34
+ - [x] 6.1 Add unit tests for file system utilities
35
+ - [x] 6.2 Add unit tests for marker-based file updates
36
+ - [x] 6.3 Add integration tests for init command
37
+ - [x] 6.4 Update package.json with proper bin configuration
38
+ - [x] 6.5 Test the built CLI command end-to-end
@@ -0,0 +1,24 @@
1
+ # Adopt Future State Storage for OpenSpec Changes
2
+
3
+ ## Why
4
+
5
+ The current approach of storing spec changes as diff files (`.spec.md.diff`) creates friction for both humans and AI. Diff syntax with `+` and `-` prefixes makes specs hard to read, AI tools struggle with the format when understanding future state, and GitHub can't show nice comparisons between current and proposed specs in different folders.
6
+
7
+ ## What Changes
8
+
9
+ - Change from storing diffs (`patches/[capability]/spec.md.diff`) to storing complete future state (`specs/[capability]/spec.md`)
10
+ - Update all documentation to reflect new storage format
11
+ - Migrate existing `add-init-command` change to new format
12
+ - Add new `openspec-conventions` capability to document these conventions
13
+
14
+
15
+
16
+ ## Impact
17
+
18
+ - Affected specs: New `openspec-conventions` capability
19
+ - Affected code:
20
+ - openspec/README.md (lines 85-108)
21
+ - docs/PRD.md (lines 376-382, 778-783)
22
+ - docs/openspec-walkthrough.md (lines 58-62, 112-126)
23
+ - openspec/changes/add-init-command/ (migration needed)
24
+
@@ -0,0 +1,120 @@
1
+ # OpenSpec Conventions Specification
2
+
3
+ ## Purpose
4
+
5
+ OpenSpec conventions SHALL define how system capabilities are documented, how changes are proposed and tracked, and how specifications evolve over time. This meta-specification serves as the source of truth for OpenSpec's own conventions.
6
+
7
+ ## Core Principles
8
+
9
+ The system SHALL follow these principles:
10
+ - Specs reflect what IS currently built and deployed
11
+ - Changes contain proposals for what SHOULD be changed
12
+ - AI drives the documentation process
13
+ - Specs are living documentation kept in sync with deployed code
14
+
15
+ ## Directory Structure
16
+
17
+ WHEN an OpenSpec project is initialized
18
+ THEN it SHALL have this structure:
19
+ ```
20
+ openspec/
21
+ ├── project.md # Project-specific context
22
+ ├── README.md # AI assistant instructions
23
+ ├── specs/ # Current deployed capabilities
24
+ │ └── [capability]/ # Single, focused capability
25
+ │ ├── spec.md # WHAT and WHY
26
+ │ └── design.md # HOW (optional, for established patterns)
27
+ └── changes/ # Proposed changes
28
+ ├── [change-name]/ # Descriptive change identifier
29
+ │ ├── proposal.md # Why, what, and impact
30
+ │ ├── tasks.md # Implementation checklist
31
+ │ ├── design.md # Technical decisions (optional)
32
+ │ └── specs/ # Complete future state
33
+ │ └── [capability]/
34
+ │ └── spec.md # Clean markdown (no diff syntax)
35
+ └── archive/ # Completed changes
36
+ └── YYYY-MM-DD-[name]/
37
+ ```
38
+
39
+ ## Change Storage Convention
40
+
41
+ ### Future State Storage
42
+
43
+ WHEN creating a change proposal
44
+ THEN store the complete future state of affected specs
45
+ AND use clean markdown without diff syntax
46
+
47
+ The `changes/[name]/specs/` directory SHALL contain:
48
+ - Complete spec files as they will exist after the change
49
+ - Clean markdown without `+` or `-` prefixes
50
+ - All formatting and structure of the final intended state
51
+
52
+ ### Proposal Format
53
+
54
+ WHEN documenting what changes
55
+ THEN the proposal SHALL explicitly describe each change:
56
+
57
+ ```markdown
58
+ **[Section or Behavior Name]**
59
+ - From: [current state/requirement]
60
+ - To: [future state/requirement]
61
+ - Reason: [why this change is needed]
62
+ - Impact: [breaking/non-breaking, who's affected]
63
+ ```
64
+
65
+ This explicit format compensates for not having inline diffs and ensures reviewers understand exactly what will change.
66
+
67
+ ## Change Lifecycle
68
+
69
+ The change process SHALL follow these states:
70
+
71
+ 1. **Propose**: AI creates change with future state specs and explicit proposal
72
+ 2. **Review**: Humans review proposal and future state
73
+ 3. **Approve**: Change is approved for implementation
74
+ 4. **Implement**: Follow tasks.md checklist (can span multiple PRs)
75
+ 5. **Deploy**: Changes are deployed to production
76
+ 6. **Update**: Specs in `specs/` are updated to match deployed reality
77
+ 7. **Archive**: Change is moved to `archive/YYYY-MM-DD-[name]/`
78
+
79
+ ## Viewing Changes
80
+
81
+ WHEN reviewing proposed changes
82
+ THEN reviewers can compare using:
83
+ - GitHub PR diff view when changes are committed
84
+ - Command line: `diff -u specs/[capability]/spec.md changes/[name]/specs/[capability]/spec.md`
85
+ - Any visual diff tool comparing current vs future state
86
+
87
+ The system relies on tools to generate diffs rather than storing them.
88
+
89
+ ## Capability Naming
90
+
91
+ Capabilities SHALL use:
92
+ - Verb-noun patterns (e.g., `user-auth`, `payment-capture`)
93
+ - Hyphenated lowercase names
94
+ - Singular focus (one responsibility per capability)
95
+ - No nesting (flat structure under `specs/`)
96
+
97
+ ## When Changes Require Proposals
98
+
99
+ A proposal SHALL be created for:
100
+ - New features or capabilities
101
+ - Breaking changes to existing behavior
102
+ - Architecture or pattern changes
103
+ - Performance optimizations that change behavior
104
+ - Security updates affecting access patterns
105
+
106
+ A proposal is NOT required for:
107
+ - Bug fixes restoring intended behavior
108
+ - Typos or formatting fixes
109
+ - Non-breaking dependency updates
110
+ - Adding tests for existing behavior
111
+ - Documentation clarifications
112
+
113
+ ## Why This Approach
114
+
115
+ Clean future state storage provides:
116
+ - **Readability**: No diff syntax pollution
117
+ - **AI-compatibility**: Standard markdown that AI tools understand
118
+ - **Simplicity**: No special parsing or processing needed
119
+ - **Tool-agnostic**: Any diff tool can show changes
120
+ - **Clear intent**: Explicit proposals document reasoning
@@ -0,0 +1,38 @@
1
+ # Implementation Tasks
2
+
3
+ ## 1. Update Core Documentation
4
+ - [x] 1.1 Update openspec/README.md section on "Creating a Change Proposal"
5
+ - [x] Replace `patches/` with `specs/` in directory structure
6
+ - [x] Update step 3 to show storing complete future state
7
+ - [x] Remove diff syntax instructions (+/- prefixes)
8
+
9
+ ## 2. Migrate Existing Change
10
+ - [x] 2.1 Convert add-init-command change to new format
11
+ - [x] Create `specs/cli-init/spec.md` with clean content (no diff markers)
12
+ - [x] Delete old `patches/` directory
13
+ - [x] 2.2 Test that the migrated change is clear and reviewable
14
+
15
+ ## 3. Update Documentation Examples
16
+ - [x] 3.1 Update docs/PRD.md
17
+ - [x] Fix directory structure examples (lines 376-382)
18
+ - [x] Update archive examples (lines 778-783)
19
+ - [x] Ensure consistency throughout
20
+ - [x] 3.2 Update docs/openspec-walkthrough.md
21
+ - [x] Replace diff examples with future state examples
22
+ - [x] Ensure the walkthrough reflects new approach
23
+
24
+ ## 4. Create New Spec
25
+ - [x] 4.1 Finalize openspec-conventions spec in main specs/ directory
26
+ - [x] Document the future state storage approach
27
+ - [x] Include examples of good proposals
28
+ - [x] Make it the source of truth for conventions
29
+
30
+ ## 5. Validation
31
+ - [x] 5.1 Verify all documentation is consistent
32
+ - [x] 5.2 Test creating a new change with the new approach
33
+ - [x] 5.3 Ensure GitHub PR view shows diffs clearly
34
+
35
+ ## 6. Deployment
36
+ - [x] 6.1 Get approval for this change
37
+ - [x] 6.2 Implement all tasks above
38
+ - [x] 6.3 After deployment, archive this change with completion date
@@ -0,0 +1,13 @@
1
+ # Add Complexity Management Guidelines
2
+
3
+ ## Why
4
+ OpenSpec currently lacks guidance on managing complexity, leading to over-engineered solutions when simple ones suffice.
5
+
6
+ ## What Changes
7
+ - Add "Start Simple" section to openspec/README.md with default minimalism rules
8
+ - Add complexity triggers to help identify when complexity is justified
9
+ - Enhance AI assistant instructions in CLAUDE.md to bias toward simplicity
10
+
11
+ ## Impact
12
+ - Affected specs: None (documentation only)
13
+ - Affected code: openspec/README.md, CLAUDE.md