openspecui 0.0.0 → 0.1.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 (323) hide show
  1. package/dist/cli.mjs +91 -0
  2. package/dist/index.mjs +3 -0
  3. package/dist/open-CmiqsyCQ.mjs +473 -0
  4. package/dist/src-CNuprcB-.mjs +13604 -0
  5. package/package.json +35 -7
  6. package/web/assets/index-BhzIZ_eQ.js +150 -0
  7. package/web/assets/index-D6x5Q1lW.css +1 -0
  8. package/web/dist/assets/index-BhzIZ_eQ.js +150 -0
  9. package/web/dist/assets/index-CqKOZnDE.css +1 -0
  10. package/web/dist/assets/index-D6x5Q1lW.css +1 -0
  11. package/web/dist/assets/index-Om_P2_SF.js +155 -0
  12. package/web/dist/index.html +14 -0
  13. package/web/index.html +14 -0
  14. package/.gitmodules +0 -3
  15. package/CHAT.md +0 -3
  16. package/references/openspec/.changeset/README.md +0 -6
  17. package/references/openspec/.changeset/config.json +0 -12
  18. package/references/openspec/.coderabbit.yaml +0 -11
  19. package/references/openspec/.devcontainer/README.md +0 -92
  20. package/references/openspec/.devcontainer/devcontainer.json +0 -68
  21. package/references/openspec/.github/CODEOWNERS +0 -2
  22. package/references/openspec/.github/workflows/ci.yml +0 -222
  23. package/references/openspec/.github/workflows/release-prepare.yml +0 -50
  24. package/references/openspec/AGENTS.md +0 -18
  25. package/references/openspec/CHANGELOG.md +0 -205
  26. package/references/openspec/LICENSE +0 -22
  27. package/references/openspec/README.md +0 -374
  28. package/references/openspec/assets/openspec_dashboard.png +0 -0
  29. package/references/openspec/assets/openspec_pixel_dark.svg +0 -89
  30. package/references/openspec/assets/openspec_pixel_light.svg +0 -89
  31. package/references/openspec/bin/openspec.js +0 -3
  32. package/references/openspec/build.js +0 -31
  33. package/references/openspec/openspec/AGENTS.md +0 -454
  34. package/references/openspec/openspec/changes/IMPLEMENTATION_ORDER.md +0 -68
  35. package/references/openspec/openspec/changes/add-antigravity-support/proposal.md +0 -11
  36. package/references/openspec/openspec/changes/add-antigravity-support/specs/cli-init/spec.md +0 -9
  37. package/references/openspec/openspec/changes/add-antigravity-support/specs/cli-update/spec.md +0 -8
  38. package/references/openspec/openspec/changes/add-antigravity-support/tasks.md +0 -12
  39. package/references/openspec/openspec/changes/add-scaffold-command/proposal.md +0 -11
  40. package/references/openspec/openspec/changes/add-scaffold-command/specs/cli-scaffold/spec.md +0 -36
  41. package/references/openspec/openspec/changes/add-scaffold-command/tasks.md +0 -12
  42. package/references/openspec/openspec/changes/archive/2025-01-11-add-update-command/design.md +0 -86
  43. package/references/openspec/openspec/changes/archive/2025-01-11-add-update-command/proposal.md +0 -29
  44. package/references/openspec/openspec/changes/archive/2025-01-11-add-update-command/specs/cli-update/spec.md +0 -59
  45. package/references/openspec/openspec/changes/archive/2025-01-11-add-update-command/tasks.md +0 -20
  46. package/references/openspec/openspec/changes/archive/2025-01-13-add-list-command/proposal.md +0 -20
  47. package/references/openspec/openspec/changes/archive/2025-01-13-add-list-command/specs/cli-list/spec.md +0 -69
  48. package/references/openspec/openspec/changes/archive/2025-01-13-add-list-command/tasks.md +0 -26
  49. package/references/openspec/openspec/changes/archive/2025-08-05-initialize-typescript-project/design.md +0 -64
  50. package/references/openspec/openspec/changes/archive/2025-08-05-initialize-typescript-project/proposal.md +0 -18
  51. package/references/openspec/openspec/changes/archive/2025-08-05-initialize-typescript-project/tasks.md +0 -25
  52. package/references/openspec/openspec/changes/archive/2025-08-06-add-init-command/design.md +0 -104
  53. package/references/openspec/openspec/changes/archive/2025-08-06-add-init-command/proposal.md +0 -30
  54. package/references/openspec/openspec/changes/archive/2025-08-06-add-init-command/specs/cli-init/spec.md +0 -148
  55. package/references/openspec/openspec/changes/archive/2025-08-06-add-init-command/tasks.md +0 -38
  56. package/references/openspec/openspec/changes/archive/2025-08-06-adopt-future-state-storage/proposal.md +0 -24
  57. package/references/openspec/openspec/changes/archive/2025-08-06-adopt-future-state-storage/specs/openspec-conventions/spec.md +0 -120
  58. package/references/openspec/openspec/changes/archive/2025-08-06-adopt-future-state-storage/tasks.md +0 -38
  59. package/references/openspec/openspec/changes/archive/2025-08-11-add-complexity-guidelines/proposal.md +0 -13
  60. package/references/openspec/openspec/changes/archive/2025-08-11-add-complexity-guidelines/specs/openspec-docs/README.md +0 -472
  61. package/references/openspec/openspec/changes/archive/2025-08-11-add-complexity-guidelines/tasks.md +0 -9
  62. package/references/openspec/openspec/changes/archive/2025-08-13-add-archive-command/proposal.md +0 -15
  63. package/references/openspec/openspec/changes/archive/2025-08-13-add-archive-command/specs/cli-archive/spec.md +0 -111
  64. package/references/openspec/openspec/changes/archive/2025-08-13-add-archive-command/tasks.md +0 -44
  65. package/references/openspec/openspec/changes/archive/2025-08-13-add-diff-command/proposal.md +0 -19
  66. package/references/openspec/openspec/changes/archive/2025-08-13-add-diff-command/specs/cli-diff/spec.md +0 -77
  67. package/references/openspec/openspec/changes/archive/2025-08-13-add-diff-command/tasks.md +0 -23
  68. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/design.md +0 -56
  69. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/proposal.md +0 -17
  70. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-change/spec.md +0 -48
  71. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-list/spec.md +0 -12
  72. package/references/openspec/openspec/changes/archive/2025-08-19-add-change-commands/tasks.md +0 -34
  73. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/proposal.md +0 -20
  74. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-change/spec.md +0 -23
  75. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-show/spec.md +0 -83
  76. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-spec/spec.md +0 -23
  77. package/references/openspec/openspec/changes/archive/2025-08-19-add-interactive-show-command/tasks.md +0 -142
  78. package/references/openspec/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/proposal.md +0 -13
  79. package/references/openspec/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/specs/cli-archive/spec.md +0 -191
  80. package/references/openspec/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/tasks.md +0 -57
  81. package/references/openspec/openspec/changes/archive/2025-08-19-add-spec-commands/design.md +0 -45
  82. package/references/openspec/openspec/changes/archive/2025-08-19-add-spec-commands/proposal.md +0 -19
  83. package/references/openspec/openspec/changes/archive/2025-08-19-add-spec-commands/specs/cli-spec/spec.md +0 -43
  84. package/references/openspec/openspec/changes/archive/2025-08-19-add-spec-commands/tasks.md +0 -22
  85. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/design.md +0 -104
  86. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/proposal.md +0 -22
  87. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-archive/spec.md +0 -18
  88. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-diff/spec.md +0 -12
  89. package/references/openspec/openspec/changes/archive/2025-08-19-add-zod-validation/tasks.md +0 -59
  90. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/proposal.md +0 -93
  91. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-archive/spec.md +0 -48
  92. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-diff/spec.md +0 -45
  93. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/openspec-conventions/spec.md +0 -101
  94. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/tasks.md +0 -55
  95. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/design.md +0 -19
  96. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/proposal.md +0 -67
  97. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/cli-list/spec.md +0 -57
  98. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/openspec-conventions/spec.md +0 -23
  99. package/references/openspec/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/tasks.md +0 -27
  100. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/proposal.md +0 -20
  101. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-change/spec.md +0 -22
  102. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-spec/spec.md +0 -23
  103. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-validate/spec.md +0 -149
  104. package/references/openspec/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/tasks.md +0 -81
  105. package/references/openspec/openspec/changes/archive/2025-08-19-fix-update-tool-selection/proposal.md +0 -40
  106. package/references/openspec/openspec/changes/archive/2025-08-19-fix-update-tool-selection/specs/cli-update/spec.md +0 -23
  107. package/references/openspec/openspec/changes/archive/2025-08-19-fix-update-tool-selection/tasks.md +0 -21
  108. package/references/openspec/openspec/changes/archive/2025-08-19-improve-validate-error-messages/proposal.md +0 -25
  109. package/references/openspec/openspec/changes/archive/2025-08-19-improve-validate-error-messages/specs/cli-validate/spec.md +0 -55
  110. package/references/openspec/openspec/changes/archive/2025-08-19-improve-validate-error-messages/tasks.md +0 -21
  111. package/references/openspec/openspec/changes/archive/2025-08-19-structured-spec-format/proposal.md +0 -36
  112. package/references/openspec/openspec/changes/archive/2025-08-19-structured-spec-format/specs/openspec-conventions/spec.md +0 -192
  113. package/references/openspec/openspec/changes/archive/2025-08-19-structured-spec-format/tasks.md +0 -19
  114. package/references/openspec/openspec/changes/archive/2025-09-12-add-view-dashboard-command/proposal.md +0 -38
  115. package/references/openspec/openspec/changes/archive/2025-09-12-add-view-dashboard-command/specs/cli-view/spec.md +0 -109
  116. package/references/openspec/openspec/changes/archive/2025-09-12-add-view-dashboard-command/tasks.md +0 -47
  117. package/references/openspec/openspec/changes/archive/2025-09-29-add-agents-md-config/proposal.md +0 -28
  118. package/references/openspec/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-init/spec.md +0 -71
  119. package/references/openspec/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-update/spec.md +0 -41
  120. package/references/openspec/openspec/changes/archive/2025-09-29-add-agents-md-config/tasks.md +0 -17
  121. package/references/openspec/openspec/changes/archive/2025-09-29-add-multi-agent-init/proposal.md +0 -35
  122. package/references/openspec/openspec/changes/archive/2025-09-29-add-multi-agent-init/specs/cli-init/spec.md +0 -45
  123. package/references/openspec/openspec/changes/archive/2025-09-29-add-multi-agent-init/tasks.md +0 -16
  124. package/references/openspec/openspec/changes/archive/2025-09-29-add-slash-command-support/proposal.md +0 -119
  125. package/references/openspec/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-init/spec.md +0 -21
  126. package/references/openspec/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-update/spec.md +0 -22
  127. package/references/openspec/openspec/changes/archive/2025-09-29-add-slash-command-support/tasks.md +0 -20
  128. package/references/openspec/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/proposal.md +0 -19
  129. package/references/openspec/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/tasks.md +0 -9
  130. package/references/openspec/openspec/changes/archive/2025-09-29-improve-deterministic-tests/proposal.md +0 -78
  131. package/references/openspec/openspec/changes/archive/2025-09-29-improve-deterministic-tests/tasks.md +0 -25
  132. package/references/openspec/openspec/changes/archive/2025-09-29-improve-init-onboarding/proposal.md +0 -13
  133. package/references/openspec/openspec/changes/archive/2025-09-29-improve-init-onboarding/specs/cli-init/spec.md +0 -92
  134. package/references/openspec/openspec/changes/archive/2025-09-29-improve-init-onboarding/tasks.md +0 -12
  135. package/references/openspec/openspec/changes/archive/2025-09-29-remove-diff-command/proposal.md +0 -81
  136. package/references/openspec/openspec/changes/archive/2025-09-29-remove-diff-command/tasks.md +0 -37
  137. package/references/openspec/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/proposal.md +0 -25
  138. package/references/openspec/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/specs/cli-view/spec.md +0 -9
  139. package/references/openspec/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/tasks.md +0 -8
  140. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/proposal.md +0 -29
  141. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-init/spec.md +0 -40
  142. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-update/spec.md +0 -22
  143. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/openspec-conventions/spec.md +0 -27
  144. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-file-name/tasks.md +0 -22
  145. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-instructions/design.md +0 -130
  146. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-instructions/proposal.md +0 -117
  147. package/references/openspec/openspec/changes/archive/2025-09-29-update-agent-instructions/tasks.md +0 -69
  148. package/references/openspec/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/proposal.md +0 -19
  149. package/references/openspec/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/specs/cli-validate/spec.md +0 -9
  150. package/references/openspec/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/tasks.md +0 -11
  151. package/references/openspec/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/proposal.md +0 -25
  152. package/references/openspec/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-init/spec.md +0 -56
  153. package/references/openspec/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-update/spec.md +0 -41
  154. package/references/openspec/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/tasks.md +0 -19
  155. package/references/openspec/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/proposal.md +0 -25
  156. package/references/openspec/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-init/spec.md +0 -48
  157. package/references/openspec/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-update/spec.md +0 -48
  158. package/references/openspec/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/tasks.md +0 -30
  159. package/references/openspec/openspec/changes/archive/2025-10-14-add-kilocode-workflows/proposal.md +0 -17
  160. package/references/openspec/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-init/spec.md +0 -43
  161. package/references/openspec/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-update/spec.md +0 -27
  162. package/references/openspec/openspec/changes/archive/2025-10-14-add-kilocode-workflows/tasks.md +0 -15
  163. package/references/openspec/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/proposal.md +0 -12
  164. package/references/openspec/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/specs/cli-init/spec.md +0 -39
  165. package/references/openspec/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/tasks.md +0 -17
  166. package/references/openspec/openspec/changes/archive/2025-10-14-add-windsurf-workflows/proposal.md +0 -17
  167. package/references/openspec/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-init/spec.md +0 -42
  168. package/references/openspec/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-update/spec.md +0 -27
  169. package/references/openspec/openspec/changes/archive/2025-10-14-add-windsurf-workflows/tasks.md +0 -17
  170. package/references/openspec/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/proposal.md +0 -12
  171. package/references/openspec/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/specs/cli-validate/spec.md +0 -39
  172. package/references/openspec/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/tasks.md +0 -12
  173. package/references/openspec/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/proposal.md +0 -12
  174. package/references/openspec/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/specs/docs-agent-instructions/spec.md +0 -33
  175. package/references/openspec/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/tasks.md +0 -11
  176. package/references/openspec/openspec/changes/archive/2025-10-14-slim-root-agents-file/proposal.md +0 -13
  177. package/references/openspec/openspec/changes/archive/2025-10-14-slim-root-agents-file/tasks.md +0 -15
  178. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/proposal.md +0 -14
  179. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/specs/cli-init/spec.md +0 -10
  180. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/tasks.md +0 -8
  181. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/proposal.md +0 -15
  182. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-init/spec.md +0 -32
  183. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-update/spec.md +0 -10
  184. package/references/openspec/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/tasks.md +0 -11
  185. package/references/openspec/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md +0 -49
  186. package/references/openspec/openspec/changes/archive/2025-10-14-update-release-automation/tasks.md +0 -12
  187. package/references/openspec/openspec/changes/archive/2025-10-22-add-archive-command-arguments/proposal.md +0 -17
  188. package/references/openspec/openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md +0 -32
  189. package/references/openspec/openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md +0 -15
  190. package/references/openspec/openspec/changes/archive/2025-10-22-add-cline-support/proposal.md +0 -15
  191. package/references/openspec/openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md +0 -97
  192. package/references/openspec/openspec/changes/archive/2025-10-22-add-cline-support/tasks.md +0 -19
  193. package/references/openspec/openspec/changes/archive/2025-10-22-add-crush-support/proposal.md +0 -13
  194. package/references/openspec/openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md +0 -67
  195. package/references/openspec/openspec/changes/archive/2025-10-22-add-crush-support/tasks.md +0 -7
  196. package/references/openspec/openspec/changes/archive/2025-10-22-add-factory-slash-commands/proposal.md +0 -12
  197. package/references/openspec/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-init/spec.md +0 -54
  198. package/references/openspec/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-update/spec.md +0 -54
  199. package/references/openspec/openspec/changes/archive/2025-10-22-add-factory-slash-commands/tasks.md +0 -11
  200. package/references/openspec/openspec/changes/fix-cline-workflows-implementation/proposal.md +0 -13
  201. package/references/openspec/openspec/changes/fix-cline-workflows-implementation/specs/cli-init/spec.md +0 -11
  202. package/references/openspec/openspec/changes/fix-cline-workflows-implementation/tasks.md +0 -13
  203. package/references/openspec/openspec/changes/make-validation-scope-aware/proposal.md +0 -12
  204. package/references/openspec/openspec/changes/make-validation-scope-aware/specs/cli-validate/spec.md +0 -25
  205. package/references/openspec/openspec/changes/make-validation-scope-aware/tasks.md +0 -16
  206. package/references/openspec/openspec/project.md +0 -53
  207. package/references/openspec/openspec/specs/cli-archive/spec.md +0 -210
  208. package/references/openspec/openspec/specs/cli-change/spec.md +0 -91
  209. package/references/openspec/openspec/specs/cli-init/spec.md +0 -311
  210. package/references/openspec/openspec/specs/cli-list/spec.md +0 -103
  211. package/references/openspec/openspec/specs/cli-show/spec.md +0 -85
  212. package/references/openspec/openspec/specs/cli-spec/spec.md +0 -87
  213. package/references/openspec/openspec/specs/cli-update/spec.md +0 -190
  214. package/references/openspec/openspec/specs/cli-validate/spec.md +0 -218
  215. package/references/openspec/openspec/specs/cli-view/spec.md +0 -105
  216. package/references/openspec/openspec/specs/docs-agent-instructions/spec.md +0 -38
  217. package/references/openspec/openspec/specs/openspec-conventions/spec.md +0 -474
  218. package/references/openspec/openspec-parallel-merge-plan.md +0 -98
  219. package/references/openspec/package.json +0 -73
  220. package/references/openspec/pnpm-lock.yaml +0 -2324
  221. package/references/openspec/scripts/pack-version-check.mjs +0 -111
  222. package/references/openspec/src/cli/index.ts +0 -253
  223. package/references/openspec/src/commands/change.ts +0 -291
  224. package/references/openspec/src/commands/show.ts +0 -139
  225. package/references/openspec/src/commands/spec.ts +0 -250
  226. package/references/openspec/src/commands/validate.ts +0 -305
  227. package/references/openspec/src/core/archive.ts +0 -606
  228. package/references/openspec/src/core/config.ts +0 -41
  229. package/references/openspec/src/core/configurators/agents.ts +0 -23
  230. package/references/openspec/src/core/configurators/base.ts +0 -6
  231. package/references/openspec/src/core/configurators/claude.ts +0 -23
  232. package/references/openspec/src/core/configurators/cline.ts +0 -23
  233. package/references/openspec/src/core/configurators/codebuddy.ts +0 -24
  234. package/references/openspec/src/core/configurators/costrict.ts +0 -23
  235. package/references/openspec/src/core/configurators/iflow.ts +0 -23
  236. package/references/openspec/src/core/configurators/qoder.ts +0 -53
  237. package/references/openspec/src/core/configurators/qwen.ts +0 -47
  238. package/references/openspec/src/core/configurators/registry.ts +0 -49
  239. package/references/openspec/src/core/configurators/slash/amazon-q.ts +0 -51
  240. package/references/openspec/src/core/configurators/slash/antigravity.ts +0 -28
  241. package/references/openspec/src/core/configurators/slash/auggie.ts +0 -37
  242. package/references/openspec/src/core/configurators/slash/base.ts +0 -95
  243. package/references/openspec/src/core/configurators/slash/claude.ts +0 -42
  244. package/references/openspec/src/core/configurators/slash/cline.ts +0 -27
  245. package/references/openspec/src/core/configurators/slash/codebuddy.ts +0 -43
  246. package/references/openspec/src/core/configurators/slash/codex.ts +0 -126
  247. package/references/openspec/src/core/configurators/slash/costrict.ts +0 -36
  248. package/references/openspec/src/core/configurators/slash/crush.ts +0 -42
  249. package/references/openspec/src/core/configurators/slash/cursor.ts +0 -42
  250. package/references/openspec/src/core/configurators/slash/factory.ts +0 -41
  251. package/references/openspec/src/core/configurators/slash/gemini.ts +0 -27
  252. package/references/openspec/src/core/configurators/slash/github-copilot.ts +0 -39
  253. package/references/openspec/src/core/configurators/slash/iflow.ts +0 -42
  254. package/references/openspec/src/core/configurators/slash/kilocode.ts +0 -21
  255. package/references/openspec/src/core/configurators/slash/opencode.ts +0 -83
  256. package/references/openspec/src/core/configurators/slash/qoder.ts +0 -84
  257. package/references/openspec/src/core/configurators/slash/qwen.ts +0 -55
  258. package/references/openspec/src/core/configurators/slash/registry.ts +0 -81
  259. package/references/openspec/src/core/configurators/slash/roocode.ts +0 -27
  260. package/references/openspec/src/core/configurators/slash/toml-base.ts +0 -66
  261. package/references/openspec/src/core/configurators/slash/windsurf.ts +0 -27
  262. package/references/openspec/src/core/converters/json-converter.ts +0 -61
  263. package/references/openspec/src/core/index.ts +0 -2
  264. package/references/openspec/src/core/init.ts +0 -986
  265. package/references/openspec/src/core/list.ts +0 -104
  266. package/references/openspec/src/core/parsers/change-parser.ts +0 -234
  267. package/references/openspec/src/core/parsers/markdown-parser.ts +0 -237
  268. package/references/openspec/src/core/parsers/requirement-blocks.ts +0 -234
  269. package/references/openspec/src/core/schemas/base.schema.ts +0 -20
  270. package/references/openspec/src/core/schemas/change.schema.ts +0 -42
  271. package/references/openspec/src/core/schemas/index.ts +0 -20
  272. package/references/openspec/src/core/schemas/spec.schema.ts +0 -17
  273. package/references/openspec/src/core/styles/palette.ts +0 -8
  274. package/references/openspec/src/core/templates/agents-root-stub.ts +0 -16
  275. package/references/openspec/src/core/templates/agents-template.ts +0 -457
  276. package/references/openspec/src/core/templates/claude-template.ts +0 -1
  277. package/references/openspec/src/core/templates/cline-template.ts +0 -1
  278. package/references/openspec/src/core/templates/costrict-template.ts +0 -1
  279. package/references/openspec/src/core/templates/index.ts +0 -50
  280. package/references/openspec/src/core/templates/project-template.ts +0 -38
  281. package/references/openspec/src/core/templates/slash-command-templates.ts +0 -60
  282. package/references/openspec/src/core/update.ts +0 -129
  283. package/references/openspec/src/core/validation/constants.ts +0 -48
  284. package/references/openspec/src/core/validation/types.ts +0 -19
  285. package/references/openspec/src/core/validation/validator.ts +0 -448
  286. package/references/openspec/src/core/view.ts +0 -189
  287. package/references/openspec/src/index.ts +0 -2
  288. package/references/openspec/src/utils/file-system.ts +0 -187
  289. package/references/openspec/src/utils/index.ts +0 -2
  290. package/references/openspec/src/utils/interactive.ts +0 -7
  291. package/references/openspec/src/utils/item-discovery.ts +0 -45
  292. package/references/openspec/src/utils/match.ts +0 -26
  293. package/references/openspec/src/utils/task-progress.ts +0 -43
  294. package/references/openspec/test/cli-e2e/basic.test.ts +0 -156
  295. package/references/openspec/test/commands/change.interactive-show.test.ts +0 -45
  296. package/references/openspec/test/commands/change.interactive-validate.test.ts +0 -48
  297. package/references/openspec/test/commands/show.test.ts +0 -123
  298. package/references/openspec/test/commands/spec.interactive-show.test.ts +0 -44
  299. package/references/openspec/test/commands/spec.interactive-validate.test.ts +0 -44
  300. package/references/openspec/test/commands/spec.test.ts +0 -324
  301. package/references/openspec/test/commands/validate.enriched-output.test.ts +0 -49
  302. package/references/openspec/test/commands/validate.test.ts +0 -133
  303. package/references/openspec/test/core/archive.test.ts +0 -680
  304. package/references/openspec/test/core/commands/change-command.list.test.ts +0 -76
  305. package/references/openspec/test/core/commands/change-command.show-validate.test.ts +0 -111
  306. package/references/openspec/test/core/converters/json-converter.test.ts +0 -184
  307. package/references/openspec/test/core/init.test.ts +0 -1710
  308. package/references/openspec/test/core/list.test.ts +0 -165
  309. package/references/openspec/test/core/parsers/change-parser.test.ts +0 -52
  310. package/references/openspec/test/core/parsers/markdown-parser.test.ts +0 -291
  311. package/references/openspec/test/core/update.test.ts +0 -1642
  312. package/references/openspec/test/core/validation.enriched-messages.test.ts +0 -74
  313. package/references/openspec/test/core/validation.test.ts +0 -489
  314. package/references/openspec/test/core/view.test.ts +0 -79
  315. package/references/openspec/test/fixtures/tmp-init/openspec/changes/c1/proposal.md +0 -7
  316. package/references/openspec/test/fixtures/tmp-init/openspec/changes/c1/specs/alpha/spec.md +0 -8
  317. package/references/openspec/test/fixtures/tmp-init/openspec/specs/alpha/spec.md +0 -12
  318. package/references/openspec/test/helpers/run-cli.ts +0 -139
  319. package/references/openspec/test/utils/file-system.test.ts +0 -211
  320. package/references/openspec/test/utils/marker-updates.test.ts +0 -287
  321. package/references/openspec/tsconfig.json +0 -21
  322. package/references/openspec/vitest.config.ts +0 -25
  323. package/references/openspec/vitest.setup.ts +0 -6
@@ -1,234 +0,0 @@
1
- export interface RequirementBlock {
2
- headerLine: string; // e.g., '### Requirement: Something'
3
- name: string; // e.g., 'Something'
4
- raw: string; // full block including headerLine and following content
5
- }
6
-
7
- export interface RequirementsSectionParts {
8
- before: string;
9
- headerLine: string; // the '## Requirements' line
10
- preamble: string; // content between headerLine and first requirement block
11
- bodyBlocks: RequirementBlock[]; // parsed requirement blocks in order
12
- after: string;
13
- }
14
-
15
- export function normalizeRequirementName(name: string): string {
16
- return name.trim();
17
- }
18
-
19
- const REQUIREMENT_HEADER_REGEX = /^###\s*Requirement:\s*(.+)\s*$/;
20
-
21
- /**
22
- * Extracts the Requirements section from a spec file and parses requirement blocks.
23
- */
24
- export function extractRequirementsSection(content: string): RequirementsSectionParts {
25
- const normalized = normalizeLineEndings(content);
26
- const lines = normalized.split('\n');
27
- const reqHeaderIndex = lines.findIndex(l => /^##\s+Requirements\s*$/i.test(l));
28
-
29
- if (reqHeaderIndex === -1) {
30
- // No requirements section; create an empty one at the end
31
- const before = content.trimEnd();
32
- const headerLine = '## Requirements';
33
- return {
34
- before: before ? before + '\n\n' : '',
35
- headerLine,
36
- preamble: '',
37
- bodyBlocks: [],
38
- after: '\n',
39
- };
40
- }
41
-
42
- // Find end of this section: next line that starts with '## ' at same or higher level
43
- let endIndex = lines.length;
44
- for (let i = reqHeaderIndex + 1; i < lines.length; i++) {
45
- if (/^##\s+/.test(lines[i])) {
46
- endIndex = i;
47
- break;
48
- }
49
- }
50
-
51
- const before = lines.slice(0, reqHeaderIndex).join('\n');
52
- const headerLine = lines[reqHeaderIndex];
53
- const sectionBodyLines = lines.slice(reqHeaderIndex + 1, endIndex);
54
-
55
- // Parse requirement blocks within section body
56
- const blocks: RequirementBlock[] = [];
57
- let cursor = 0;
58
- let preambleLines: string[] = [];
59
-
60
- // Collect preamble lines until first requirement header
61
- while (cursor < sectionBodyLines.length && !/^###\s+Requirement:/.test(sectionBodyLines[cursor])) {
62
- preambleLines.push(sectionBodyLines[cursor]);
63
- cursor++;
64
- }
65
-
66
- while (cursor < sectionBodyLines.length) {
67
- const headerStart = cursor;
68
- const headerLineCandidate = sectionBodyLines[cursor];
69
- const headerMatch = headerLineCandidate.match(REQUIREMENT_HEADER_REGEX);
70
- if (!headerMatch) {
71
- // Not a requirement header; skip line defensively
72
- cursor++;
73
- continue;
74
- }
75
- const name = normalizeRequirementName(headerMatch[1]);
76
- cursor++;
77
- // Gather lines until next requirement header or end of section
78
- const bodyLines: string[] = [headerLineCandidate];
79
- while (cursor < sectionBodyLines.length && !/^###\s+Requirement:/.test(sectionBodyLines[cursor]) && !/^##\s+/.test(sectionBodyLines[cursor])) {
80
- bodyLines.push(sectionBodyLines[cursor]);
81
- cursor++;
82
- }
83
- const raw = bodyLines.join('\n').trimEnd();
84
- blocks.push({ headerLine: headerLineCandidate, name, raw });
85
- }
86
-
87
- const after = lines.slice(endIndex).join('\n');
88
- const preamble = preambleLines.join('\n').trimEnd();
89
-
90
- return {
91
- before: before.trimEnd() ? before + '\n' : before,
92
- headerLine,
93
- preamble,
94
- bodyBlocks: blocks,
95
- after: after.startsWith('\n') ? after : '\n' + after,
96
- };
97
- }
98
-
99
- export interface DeltaPlan {
100
- added: RequirementBlock[];
101
- modified: RequirementBlock[];
102
- removed: string[]; // requirement names
103
- renamed: Array<{ from: string; to: string }>;
104
- sectionPresence: {
105
- added: boolean;
106
- modified: boolean;
107
- removed: boolean;
108
- renamed: boolean;
109
- };
110
- }
111
-
112
- function normalizeLineEndings(content: string): string {
113
- return content.replace(/\r\n?/g, '\n');
114
- }
115
-
116
- /**
117
- * Parse a delta-formatted spec change file content into a DeltaPlan with raw blocks.
118
- */
119
- export function parseDeltaSpec(content: string): DeltaPlan {
120
- const normalized = normalizeLineEndings(content);
121
- const sections = splitTopLevelSections(normalized);
122
- const addedLookup = getSectionCaseInsensitive(sections, 'ADDED Requirements');
123
- const modifiedLookup = getSectionCaseInsensitive(sections, 'MODIFIED Requirements');
124
- const removedLookup = getSectionCaseInsensitive(sections, 'REMOVED Requirements');
125
- const renamedLookup = getSectionCaseInsensitive(sections, 'RENAMED Requirements');
126
- const added = parseRequirementBlocksFromSection(addedLookup.body);
127
- const modified = parseRequirementBlocksFromSection(modifiedLookup.body);
128
- const removedNames = parseRemovedNames(removedLookup.body);
129
- const renamedPairs = parseRenamedPairs(renamedLookup.body);
130
- return {
131
- added,
132
- modified,
133
- removed: removedNames,
134
- renamed: renamedPairs,
135
- sectionPresence: {
136
- added: addedLookup.found,
137
- modified: modifiedLookup.found,
138
- removed: removedLookup.found,
139
- renamed: renamedLookup.found,
140
- },
141
- };
142
- }
143
-
144
- function splitTopLevelSections(content: string): Record<string, string> {
145
- const lines = content.split('\n');
146
- const result: Record<string, string> = {};
147
- const indices: Array<{ title: string; index: number; level: number }> = [];
148
- for (let i = 0; i < lines.length; i++) {
149
- const m = lines[i].match(/^(##)\s+(.+)$/);
150
- if (m) {
151
- const level = m[1].length; // only care for '##'
152
- indices.push({ title: m[2].trim(), index: i, level });
153
- }
154
- }
155
- for (let i = 0; i < indices.length; i++) {
156
- const current = indices[i];
157
- const next = indices[i + 1];
158
- const body = lines.slice(current.index + 1, next ? next.index : lines.length).join('\n');
159
- result[current.title] = body;
160
- }
161
- return result;
162
- }
163
-
164
- function getSectionCaseInsensitive(sections: Record<string, string>, desired: string): { body: string; found: boolean } {
165
- const target = desired.toLowerCase();
166
- for (const [title, body] of Object.entries(sections)) {
167
- if (title.toLowerCase() === target) return { body, found: true };
168
- }
169
- return { body: '', found: false };
170
- }
171
-
172
- function parseRequirementBlocksFromSection(sectionBody: string): RequirementBlock[] {
173
- if (!sectionBody) return [];
174
- const lines = normalizeLineEndings(sectionBody).split('\n');
175
- const blocks: RequirementBlock[] = [];
176
- let i = 0;
177
- while (i < lines.length) {
178
- // Seek next requirement header
179
- while (i < lines.length && !/^###\s+Requirement:/.test(lines[i])) i++;
180
- if (i >= lines.length) break;
181
- const headerLine = lines[i];
182
- const m = headerLine.match(REQUIREMENT_HEADER_REGEX);
183
- if (!m) { i++; continue; }
184
- const name = normalizeRequirementName(m[1]);
185
- const buf: string[] = [headerLine];
186
- i++;
187
- while (i < lines.length && !/^###\s+Requirement:/.test(lines[i]) && !/^##\s+/.test(lines[i])) {
188
- buf.push(lines[i]);
189
- i++;
190
- }
191
- blocks.push({ headerLine, name, raw: buf.join('\n').trimEnd() });
192
- }
193
- return blocks;
194
- }
195
-
196
- function parseRemovedNames(sectionBody: string): string[] {
197
- if (!sectionBody) return [];
198
- const names: string[] = [];
199
- const lines = normalizeLineEndings(sectionBody).split('\n');
200
- for (const line of lines) {
201
- const m = line.match(REQUIREMENT_HEADER_REGEX);
202
- if (m) {
203
- names.push(normalizeRequirementName(m[1]));
204
- continue;
205
- }
206
- // Also support bullet list of headers
207
- const bullet = line.match(/^\s*-\s*`?###\s*Requirement:\s*(.+?)`?\s*$/);
208
- if (bullet) {
209
- names.push(normalizeRequirementName(bullet[1]));
210
- }
211
- }
212
- return names;
213
- }
214
-
215
- function parseRenamedPairs(sectionBody: string): Array<{ from: string; to: string }> {
216
- if (!sectionBody) return [];
217
- const pairs: Array<{ from: string; to: string }> = [];
218
- const lines = normalizeLineEndings(sectionBody).split('\n');
219
- let current: { from?: string; to?: string } = {};
220
- for (const line of lines) {
221
- const fromMatch = line.match(/^\s*-?\s*FROM:\s*`?###\s*Requirement:\s*(.+?)`?\s*$/);
222
- const toMatch = line.match(/^\s*-?\s*TO:\s*`?###\s*Requirement:\s*(.+?)`?\s*$/);
223
- if (fromMatch) {
224
- current.from = normalizeRequirementName(fromMatch[1]);
225
- } else if (toMatch) {
226
- current.to = normalizeRequirementName(toMatch[1]);
227
- if (current.from && current.to) {
228
- pairs.push({ from: current.from, to: current.to });
229
- current = {};
230
- }
231
- }
232
- }
233
- return pairs;
234
- }
@@ -1,20 +0,0 @@
1
- import { z } from 'zod';
2
- import { VALIDATION_MESSAGES } from '../validation/constants.js';
3
-
4
- export const ScenarioSchema = z.object({
5
- rawText: z.string().min(1, VALIDATION_MESSAGES.SCENARIO_EMPTY),
6
- });
7
-
8
- export const RequirementSchema = z.object({
9
- text: z.string()
10
- .min(1, VALIDATION_MESSAGES.REQUIREMENT_EMPTY)
11
- .refine(
12
- (text) => text.includes('SHALL') || text.includes('MUST'),
13
- VALIDATION_MESSAGES.REQUIREMENT_NO_SHALL
14
- ),
15
- scenarios: z.array(ScenarioSchema)
16
- .min(1, VALIDATION_MESSAGES.REQUIREMENT_NO_SCENARIOS),
17
- });
18
-
19
- export type Scenario = z.infer<typeof ScenarioSchema>;
20
- export type Requirement = z.infer<typeof RequirementSchema>;
@@ -1,42 +0,0 @@
1
- import { z } from 'zod';
2
- import { RequirementSchema } from './base.schema.js';
3
- import {
4
- MIN_WHY_SECTION_LENGTH,
5
- MAX_WHY_SECTION_LENGTH,
6
- MAX_DELTAS_PER_CHANGE,
7
- VALIDATION_MESSAGES
8
- } from '../validation/constants.js';
9
-
10
- export const DeltaOperationType = z.enum(['ADDED', 'MODIFIED', 'REMOVED', 'RENAMED']);
11
-
12
- export const DeltaSchema = z.object({
13
- spec: z.string().min(1, VALIDATION_MESSAGES.DELTA_SPEC_EMPTY),
14
- operation: DeltaOperationType,
15
- description: z.string().min(1, VALIDATION_MESSAGES.DELTA_DESCRIPTION_EMPTY),
16
- requirement: RequirementSchema.optional(),
17
- requirements: z.array(RequirementSchema).optional(),
18
- rename: z.object({
19
- from: z.string(),
20
- to: z.string(),
21
- }).optional(),
22
- });
23
-
24
- export const ChangeSchema = z.object({
25
- name: z.string().min(1, VALIDATION_MESSAGES.CHANGE_NAME_EMPTY),
26
- why: z.string()
27
- .min(MIN_WHY_SECTION_LENGTH, VALIDATION_MESSAGES.CHANGE_WHY_TOO_SHORT)
28
- .max(MAX_WHY_SECTION_LENGTH, VALIDATION_MESSAGES.CHANGE_WHY_TOO_LONG),
29
- whatChanges: z.string().min(1, VALIDATION_MESSAGES.CHANGE_WHAT_EMPTY),
30
- deltas: z.array(DeltaSchema)
31
- .min(1, VALIDATION_MESSAGES.CHANGE_NO_DELTAS)
32
- .max(MAX_DELTAS_PER_CHANGE, VALIDATION_MESSAGES.CHANGE_TOO_MANY_DELTAS),
33
- metadata: z.object({
34
- version: z.string().default('1.0.0'),
35
- format: z.literal('openspec-change'),
36
- sourcePath: z.string().optional(),
37
- }).optional(),
38
- });
39
-
40
- export type DeltaOperation = z.infer<typeof DeltaOperationType>;
41
- export type Delta = z.infer<typeof DeltaSchema>;
42
- export type Change = z.infer<typeof ChangeSchema>;
@@ -1,20 +0,0 @@
1
- export {
2
- ScenarioSchema,
3
- RequirementSchema,
4
- type Scenario,
5
- type Requirement,
6
- } from './base.schema.js';
7
-
8
- export {
9
- SpecSchema,
10
- type Spec,
11
- } from './spec.schema.js';
12
-
13
- export {
14
- DeltaOperationType,
15
- DeltaSchema,
16
- ChangeSchema,
17
- type DeltaOperation,
18
- type Delta,
19
- type Change,
20
- } from './change.schema.js';
@@ -1,17 +0,0 @@
1
- import { z } from 'zod';
2
- import { RequirementSchema } from './base.schema.js';
3
- import { VALIDATION_MESSAGES } from '../validation/constants.js';
4
-
5
- export const SpecSchema = z.object({
6
- name: z.string().min(1, VALIDATION_MESSAGES.SPEC_NAME_EMPTY),
7
- overview: z.string().min(1, VALIDATION_MESSAGES.SPEC_PURPOSE_EMPTY),
8
- requirements: z.array(RequirementSchema)
9
- .min(1, VALIDATION_MESSAGES.SPEC_NO_REQUIREMENTS),
10
- metadata: z.object({
11
- version: z.string().default('1.0.0'),
12
- format: z.literal('openspec'),
13
- sourcePath: z.string().optional(),
14
- }).optional(),
15
- });
16
-
17
- export type Spec = z.infer<typeof SpecSchema>;
@@ -1,8 +0,0 @@
1
- import chalk from 'chalk';
2
-
3
- export const PALETTE = {
4
- white: chalk.hex('#f4f4f4'),
5
- lightGray: chalk.hex('#c8c8c8'),
6
- midGray: chalk.hex('#8a8a8a'),
7
- darkGray: chalk.hex('#4a4a4a')
8
- };
@@ -1,16 +0,0 @@
1
- export const agentsRootStubTemplate = `# OpenSpec Instructions
2
-
3
- These instructions are for AI assistants working in this project.
4
-
5
- Always open \`@/openspec/AGENTS.md\` when the request:
6
- - Mentions planning or proposals (words like proposal, spec, change, plan)
7
- - Introduces new capabilities, breaking changes, architecture shifts, or big performance/security work
8
- - Sounds ambiguous and you need the authoritative spec before coding
9
-
10
- Use \`@/openspec/AGENTS.md\` to learn:
11
- - How to create and apply change proposals
12
- - Spec format and conventions
13
- - Project structure and guidelines
14
-
15
- Keep this managed block so 'openspec update' can refresh the instructions.
16
- `;