sauron-cli 1.3.0 → 1.4.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 (653) hide show
  1. package/README.md +4 -2
  2. package/dist/index.js +8 -8
  3. package/package.json +1 -1
  4. package/templates/.agents/rules/memory.md +68 -68
  5. package/templates/.agents/skills/wiki/SKILL.md +14 -14
  6. package/55ea973d-e255-4f08-a313-a5d68243bd2d.png +0 -0
  7. package/OpenSpec-main/.actrc +0 -1
  8. package/OpenSpec-main/.changeset/README.md +0 -97
  9. package/OpenSpec-main/.changeset/config.json +0 -15
  10. package/OpenSpec-main/.coderabbit.yaml +0 -11
  11. package/OpenSpec-main/.devcontainer/README.md +0 -92
  12. package/OpenSpec-main/.devcontainer/devcontainer.json +0 -68
  13. package/OpenSpec-main/.github/CODEOWNERS +0 -2
  14. package/OpenSpec-main/.github/workflows/README.md +0 -20
  15. package/OpenSpec-main/.github/workflows/ci.yml +0 -346
  16. package/OpenSpec-main/.github/workflows/release-prepare.yml +0 -60
  17. package/OpenSpec-main/CHANGELOG.md +0 -594
  18. package/OpenSpec-main/LICENSE +0 -22
  19. package/OpenSpec-main/MAINTAINERS.md +0 -17
  20. package/OpenSpec-main/README.md +0 -206
  21. package/OpenSpec-main/README_OLD.md +0 -475
  22. package/OpenSpec-main/assets/openspec_bg.png +0 -0
  23. package/OpenSpec-main/assets/openspec_dashboard.png +0 -0
  24. package/OpenSpec-main/assets/openspec_pixel_dark.svg +0 -89
  25. package/OpenSpec-main/assets/openspec_pixel_light.svg +0 -89
  26. package/OpenSpec-main/bin/openspec.js +0 -5
  27. package/OpenSpec-main/build.js +0 -31
  28. package/OpenSpec-main/eslint.config.js +0 -42
  29. package/OpenSpec-main/flake.lock +0 -27
  30. package/OpenSpec-main/flake.nix +0 -114
  31. package/OpenSpec-main/openspec/changes/IMPLEMENTATION_ORDER.md +0 -68
  32. package/OpenSpec-main/openspec/changes/add-artifact-regeneration-support/proposal.md +0 -136
  33. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/.openspec.yaml +0 -2
  34. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/proposal.md +0 -93
  35. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/change-creation/spec.md +0 -15
  36. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/change-stacking-workflow/spec.md +0 -65
  37. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/cli-change/spec.md +0 -27
  38. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/openspec-conventions/spec.md +0 -29
  39. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/tasks.md +0 -39
  40. package/OpenSpec-main/openspec/changes/add-global-install-scope/.openspec.yaml +0 -2
  41. package/OpenSpec-main/openspec/changes/add-global-install-scope/design.md +0 -161
  42. package/OpenSpec-main/openspec/changes/add-global-install-scope/proposal.md +0 -101
  43. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/ai-tool-paths/spec.md +0 -35
  44. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-config/spec.md +0 -21
  45. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-init/spec.md +0 -28
  46. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-update/spec.md +0 -34
  47. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/command-generation/spec.md +0 -22
  48. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/global-config/spec.md +0 -24
  49. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/installation-scope/spec.md +0 -71
  50. package/OpenSpec-main/openspec/changes/add-global-install-scope/tasks.md +0 -61
  51. package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/.openspec.yaml +0 -2
  52. package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/proposal.md +0 -45
  53. package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/specs/developer-qa-workflow/spec.md +0 -49
  54. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/.openspec.yaml +0 -2
  55. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/proposal.md +0 -111
  56. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/specs/cli-init/spec.md +0 -121
  57. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/specs/cli-update/spec.md +0 -48
  58. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/tasks.md +0 -53
  59. package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/design.md +0 -86
  60. package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/proposal.md +0 -29
  61. package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/specs/cli-update/spec.md +0 -59
  62. package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/tasks.md +0 -20
  63. package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/proposal.md +0 -20
  64. package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/specs/cli-list/spec.md +0 -69
  65. package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/tasks.md +0 -26
  66. package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/design.md +0 -64
  67. package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/proposal.md +0 -18
  68. package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/tasks.md +0 -25
  69. package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/design.md +0 -104
  70. package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/proposal.md +0 -30
  71. package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/specs/cli-init/spec.md +0 -148
  72. package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/tasks.md +0 -38
  73. package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/proposal.md +0 -24
  74. package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/specs/openspec-conventions/spec.md +0 -120
  75. package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/tasks.md +0 -38
  76. package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/proposal.md +0 -13
  77. package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/specs/openspec-docs/README.md +0 -472
  78. package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/tasks.md +0 -9
  79. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/proposal.md +0 -15
  80. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/specs/cli-archive/spec.md +0 -111
  81. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/tasks.md +0 -44
  82. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/proposal.md +0 -19
  83. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/specs/cli-diff/spec.md +0 -77
  84. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/tasks.md +0 -23
  85. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/design.md +0 -56
  86. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/proposal.md +0 -17
  87. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-change/spec.md +0 -48
  88. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-list/spec.md +0 -12
  89. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/tasks.md +0 -34
  90. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/proposal.md +0 -20
  91. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-change/spec.md +0 -23
  92. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-show/spec.md +0 -83
  93. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-spec/spec.md +0 -23
  94. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/tasks.md +0 -142
  95. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/proposal.md +0 -13
  96. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/specs/cli-archive/spec.md +0 -191
  97. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/tasks.md +0 -57
  98. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/design.md +0 -45
  99. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/proposal.md +0 -19
  100. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/specs/cli-spec/spec.md +0 -43
  101. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/tasks.md +0 -22
  102. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/design.md +0 -104
  103. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/proposal.md +0 -22
  104. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-archive/spec.md +0 -18
  105. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-diff/spec.md +0 -12
  106. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/tasks.md +0 -59
  107. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/proposal.md +0 -93
  108. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-archive/spec.md +0 -48
  109. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-diff/spec.md +0 -45
  110. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/openspec-conventions/spec.md +0 -101
  111. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/tasks.md +0 -55
  112. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/design.md +0 -19
  113. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/proposal.md +0 -67
  114. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/cli-list/spec.md +0 -57
  115. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/openspec-conventions/spec.md +0 -23
  116. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/tasks.md +0 -27
  117. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/proposal.md +0 -20
  118. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-change/spec.md +0 -22
  119. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-spec/spec.md +0 -23
  120. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-validate/spec.md +0 -149
  121. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/tasks.md +0 -81
  122. package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/proposal.md +0 -40
  123. package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/specs/cli-update/spec.md +0 -23
  124. package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/tasks.md +0 -21
  125. package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/proposal.md +0 -25
  126. package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/specs/cli-validate/spec.md +0 -55
  127. package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/tasks.md +0 -21
  128. package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/proposal.md +0 -36
  129. package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/specs/openspec-conventions/spec.md +0 -192
  130. package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/tasks.md +0 -19
  131. package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/proposal.md +0 -38
  132. package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/specs/cli-view/spec.md +0 -109
  133. package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/tasks.md +0 -47
  134. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/proposal.md +0 -28
  135. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-init/spec.md +0 -71
  136. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-update/spec.md +0 -41
  137. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/tasks.md +0 -17
  138. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/proposal.md +0 -35
  139. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/specs/cli-init/spec.md +0 -45
  140. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/tasks.md +0 -16
  141. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/proposal.md +0 -119
  142. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-init/spec.md +0 -21
  143. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-update/spec.md +0 -22
  144. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/tasks.md +0 -20
  145. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/proposal.md +0 -19
  146. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/tasks.md +0 -9
  147. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-deterministic-tests/proposal.md +0 -78
  148. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-deterministic-tests/tasks.md +0 -25
  149. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/proposal.md +0 -13
  150. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/specs/cli-init/spec.md +0 -92
  151. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/tasks.md +0 -12
  152. package/OpenSpec-main/openspec/changes/archive/2025-09-29-remove-diff-command/proposal.md +0 -81
  153. package/OpenSpec-main/openspec/changes/archive/2025-09-29-remove-diff-command/tasks.md +0 -37
  154. package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/proposal.md +0 -25
  155. package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/specs/cli-view/spec.md +0 -9
  156. package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/tasks.md +0 -8
  157. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/proposal.md +0 -29
  158. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-init/spec.md +0 -40
  159. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-update/spec.md +0 -22
  160. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/openspec-conventions/spec.md +0 -27
  161. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/tasks.md +0 -22
  162. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/design.md +0 -130
  163. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/proposal.md +0 -117
  164. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/tasks.md +0 -69
  165. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/proposal.md +0 -19
  166. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/specs/cli-validate/spec.md +0 -9
  167. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/tasks.md +0 -11
  168. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/proposal.md +0 -25
  169. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-init/spec.md +0 -56
  170. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-update/spec.md +0 -41
  171. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/tasks.md +0 -19
  172. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/proposal.md +0 -25
  173. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-init/spec.md +0 -48
  174. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-update/spec.md +0 -48
  175. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/tasks.md +0 -30
  176. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/proposal.md +0 -17
  177. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-init/spec.md +0 -43
  178. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-update/spec.md +0 -27
  179. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/tasks.md +0 -15
  180. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/proposal.md +0 -12
  181. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/specs/cli-init/spec.md +0 -39
  182. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/tasks.md +0 -17
  183. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/proposal.md +0 -17
  184. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-init/spec.md +0 -42
  185. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-update/spec.md +0 -27
  186. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/tasks.md +0 -17
  187. package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/proposal.md +0 -12
  188. package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/specs/cli-validate/spec.md +0 -39
  189. package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/tasks.md +0 -12
  190. package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/proposal.md +0 -12
  191. package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/specs/docs-agent-instructions/spec.md +0 -33
  192. package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/tasks.md +0 -11
  193. package/OpenSpec-main/openspec/changes/archive/2025-10-14-slim-root-agents-file/proposal.md +0 -13
  194. package/OpenSpec-main/openspec/changes/archive/2025-10-14-slim-root-agents-file/tasks.md +0 -15
  195. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/proposal.md +0 -14
  196. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/specs/cli-init/spec.md +0 -10
  197. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/tasks.md +0 -8
  198. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/proposal.md +0 -15
  199. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-init/spec.md +0 -32
  200. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-update/spec.md +0 -10
  201. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/tasks.md +0 -11
  202. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md +0 -49
  203. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-release-automation/tasks.md +0 -12
  204. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/proposal.md +0 -17
  205. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md +0 -32
  206. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md +0 -15
  207. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/proposal.md +0 -15
  208. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md +0 -97
  209. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/tasks.md +0 -19
  210. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/proposal.md +0 -13
  211. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md +0 -67
  212. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/tasks.md +0 -7
  213. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/proposal.md +0 -12
  214. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-init/spec.md +0 -54
  215. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-update/spec.md +0 -54
  216. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/tasks.md +0 -11
  217. package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/design.md +0 -525
  218. package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/proposal.md +0 -29
  219. package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/specs/cli-completion/spec.md +0 -300
  220. package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/tasks.md +0 -81
  221. package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/design.md +0 -105
  222. package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/proposal.md +0 -20
  223. package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/specs/global-config/spec.md +0 -76
  224. package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/tasks.md +0 -26
  225. package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/design.md +0 -89
  226. package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/proposal.md +0 -60
  227. package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/specs/cli-config/spec.md +0 -213
  228. package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/tasks.md +0 -28
  229. package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/proposal.md +0 -15
  230. package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/specs/cli-completion/spec.md +0 -328
  231. package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/tasks.md +0 -49
  232. package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/design.md +0 -197
  233. package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/proposal.md +0 -18
  234. package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/specs/artifact-graph/spec.md +0 -103
  235. package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/tasks.md +0 -61
  236. package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/design.md +0 -74
  237. package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/proposal.md +0 -45
  238. package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/specs/change-creation/spec.md +0 -63
  239. package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/tasks.md +0 -30
  240. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/design.md +0 -112
  241. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/proposal.md +0 -33
  242. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/specs/cli-artifact-workflow/spec.md +0 -153
  243. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/tasks.md +0 -48
  244. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/design.md +0 -149
  245. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/proposal.md +0 -20
  246. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/specs/instruction-loader/spec.md +0 -70
  247. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/tasks.md +0 -13
  248. package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/design.md +0 -129
  249. package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/proposal.md +0 -20
  250. package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/specs/artifact-graph/spec.md +0 -49
  251. package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/tasks.md +0 -32
  252. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/design.md +0 -151
  253. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/proposal.md +0 -101
  254. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/specs/cli-artifact-workflow/spec.md +0 -109
  255. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/specs/cli-view/spec.md +0 -60
  256. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/tasks.md +0 -25
  257. package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/proposal.md +0 -11
  258. package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/specs/cli-init/spec.md +0 -105
  259. package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/specs/cli-update/spec.md +0 -92
  260. package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/tasks.md +0 -12
  261. package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/proposal.md +0 -13
  262. package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/specs/cli-init/spec.md +0 -105
  263. package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/specs/cli-update/spec.md +0 -92
  264. package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/tasks.md +0 -13
  265. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-agent-schema-selection/proposal.md +0 -26
  266. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-agent-schema-selection/tasks.md +0 -32
  267. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/design.md +0 -147
  268. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/proposal.md +0 -29
  269. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/specs/cli-artifact-workflow/spec.md +0 -98
  270. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/tasks.md +0 -29
  271. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/.openspec.yaml +0 -2
  272. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/design.md +0 -77
  273. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/proposal.md +0 -32
  274. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/specs/specs-sync-skill/spec.md +0 -67
  275. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/tasks.md +0 -40
  276. package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/proposal.md +0 -138
  277. package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/specs/cli-artifact-workflow/spec.md +0 -60
  278. package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/tasks.md +0 -35
  279. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/.openspec.yaml +0 -2
  280. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/design.md +0 -84
  281. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/proposal.md +0 -28
  282. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/specs/opsx-archive-skill/spec.md +0 -122
  283. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/tasks.md +0 -23
  284. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/.openspec.yaml +0 -2
  285. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/design.md +0 -94
  286. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/proposal.md +0 -25
  287. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/specs/nix-flake-support/spec.md +0 -79
  288. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/tasks.md +0 -65
  289. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/.openspec.yaml +0 -2
  290. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/design.md +0 -117
  291. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/proposal.md +0 -23
  292. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/specs/flake-update-script/spec.md +0 -93
  293. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/tasks.md +0 -55
  294. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/.openspec.yaml +0 -2
  295. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/design.md +0 -175
  296. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/proposal.md +0 -37
  297. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/specs/global-config/spec.md +0 -21
  298. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/specs/telemetry/spec.md +0 -116
  299. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/tasks.md +0 -47
  300. package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/proposal.md +0 -16
  301. package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/specs/cli-init/spec.md +0 -75
  302. package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/specs/cli-update/spec.md +0 -56
  303. package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/tasks.md +0 -6
  304. package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/design.md +0 -206
  305. package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/proposal.md +0 -21
  306. package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/specs/ci-nix-validation/spec.md +0 -104
  307. package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/tasks.md +0 -49
  308. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/.openspec.yaml +0 -2
  309. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/README.md +0 -3
  310. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/design.md +0 -70
  311. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/proposal.md +0 -32
  312. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/specs/no-changes.md +0 -9
  313. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/tasks.md +0 -22
  314. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/proposal.md +0 -20
  315. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/specs/cli-feedback/spec.md +0 -188
  316. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/tasks.md +0 -30
  317. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/.openspec.yaml +0 -2
  318. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/design.md +0 -115
  319. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/proposal.md +0 -27
  320. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/specs/opsx-onboard-skill/spec.md +0 -162
  321. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/tasks.md +0 -21
  322. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/design.md +0 -96
  323. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/proposal.md +0 -48
  324. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/specs/opsx-verify-skill/spec.md +0 -190
  325. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/tasks.md +0 -15
  326. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/.openspec.yaml +0 -2
  327. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/design.md +0 -193
  328. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/proposal.md +0 -32
  329. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/specs/cli-init/spec.md +0 -176
  330. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/specs/legacy-cleanup/spec.md +0 -158
  331. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/tasks.md +0 -67
  332. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/.openspec.yaml +0 -2
  333. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/design.md +0 -144
  334. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/proposal.md +0 -36
  335. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/ai-tool-paths/spec.md +0 -63
  336. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/cli-artifact-workflow/spec.md +0 -60
  337. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/command-generation/spec.md +0 -98
  338. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/tasks.md +0 -55
  339. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/.openspec.yaml +0 -2
  340. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/design.md +0 -665
  341. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/proposal.md +0 -774
  342. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/config-loading/spec.md +0 -119
  343. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/context-injection/spec.md +0 -51
  344. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/rules-injection/spec.md +0 -99
  345. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/schema-resolution/spec.md +0 -83
  346. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/tasks.md +0 -72
  347. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/.openspec.yaml +0 -2
  348. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/design.md +0 -117
  349. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/proposal.md +0 -167
  350. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/specs/schema-resolution/spec.md +0 -88
  351. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/tasks.md +0 -28
  352. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/.openspec.yaml +0 -2
  353. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/design.md +0 -113
  354. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/proposal.md +0 -55
  355. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-fork-command/spec.md +0 -66
  356. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-init-command/spec.md +0 -71
  357. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-validate-command/spec.md +0 -86
  358. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-which-command/spec.md +0 -65
  359. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/tasks.md +0 -67
  360. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml +0 -2
  361. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md +0 -3
  362. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md +0 -85
  363. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md +0 -38
  364. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md +0 -12
  365. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md +0 -37
  366. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md +0 -22
  367. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/design.md +0 -208
  368. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/proposal.md +0 -142
  369. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/specs/openspec-conventions/spec.md +0 -29
  370. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/specs/workspace-foundation/spec.md +0 -199
  371. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/tasks.md +0 -56
  372. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/design.md +0 -356
  373. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/proposal.md +0 -128
  374. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/cli-artifact-workflow/spec.md +0 -24
  375. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/workspace-foundation/spec.md +0 -35
  376. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/workspace-links/spec.md +0 -356
  377. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/tasks.md +0 -121
  378. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/design.md +0 -266
  379. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/proposal.md +0 -65
  380. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/specs/workspace-foundation/spec.md +0 -76
  381. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/specs/workspace-open/spec.md +0 -199
  382. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/tasks.md +0 -89
  383. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/design.md +0 -242
  384. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/proposal.md +0 -78
  385. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/artifact-graph/spec.md +0 -36
  386. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/change-creation/spec.md +0 -42
  387. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-artifact-workflow/spec.md +0 -100
  388. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-config/spec.md +0 -55
  389. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-update/spec.md +0 -21
  390. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/openspec-conventions/spec.md +0 -32
  391. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/schema-resolution/spec.md +0 -25
  392. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/workspace-change-planning/spec.md +0 -67
  393. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/workspace-links/spec.md +0 -163
  394. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/tasks.md +0 -133
  395. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/.openspec.yaml +0 -2
  396. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/design.md +0 -48
  397. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/proposal.md +0 -26
  398. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/specs/command-generation/spec.md +0 -63
  399. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/tasks.md +0 -19
  400. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/.openspec.yaml +0 -2
  401. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/design.md +0 -38
  402. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/proposal.md +0 -25
  403. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/specs/graceful-status-empty/spec.md +0 -27
  404. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/tasks.md +0 -16
  405. package/OpenSpec-main/openspec/changes/schema-alias-support/.openspec.yaml +0 -2
  406. package/OpenSpec-main/openspec/changes/schema-alias-support/proposal.md +0 -28
  407. package/OpenSpec-main/openspec/changes/simplify-skill-installation/.openspec.yaml +0 -2
  408. package/OpenSpec-main/openspec/changes/simplify-skill-installation/design.md +0 -288
  409. package/OpenSpec-main/openspec/changes/simplify-skill-installation/proposal.md +0 -202
  410. package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/cli-init/spec.md +0 -199
  411. package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/cli-update/spec.md +0 -177
  412. package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/profiles/spec.md +0 -142
  413. package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/propose-workflow/spec.md +0 -42
  414. package/OpenSpec-main/openspec/changes/simplify-skill-installation/tasks.md +0 -132
  415. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/.openspec.yaml +0 -2
  416. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/design.md +0 -149
  417. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/proposal.md +0 -47
  418. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/specs/template-artifact-pipeline/spec.md +0 -89
  419. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/tasks.md +0 -41
  420. package/OpenSpec-main/openspec/changes/workspace-agent-guidance/.openspec.yaml +0 -2
  421. package/OpenSpec-main/openspec/changes/workspace-agent-guidance/proposal.md +0 -100
  422. package/OpenSpec-main/openspec/changes/workspace-apply-repo-slice/proposal.md +0 -58
  423. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/HISTORICAL_DIRECTION.md +0 -511
  424. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/POC_REFERENCE_GUIDE.md +0 -266
  425. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/README.md +0 -107
  426. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/START_HERE.md +0 -105
  427. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/proposal.md +0 -62
  428. package/OpenSpec-main/openspec/changes/workspace-verify-and-archive/proposal.md +0 -57
  429. package/OpenSpec-main/openspec/config.yaml +0 -36
  430. package/OpenSpec-main/openspec/explorations/explore-workflow-ux.md +0 -116
  431. package/OpenSpec-main/openspec/explorations/workspace-architecture.md +0 -857
  432. package/OpenSpec-main/openspec/explorations/workspace-roadmap.md +0 -367
  433. package/OpenSpec-main/openspec/explorations/workspace-user-journeys.md +0 -2259
  434. package/OpenSpec-main/openspec/explorations/workspace-ux-simplification.md +0 -491
  435. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/.initiative.yaml +0 -27
  436. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/README.md +0 -33
  437. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/decisions.md +0 -204
  438. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/direction.md +0 -447
  439. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/questions.md +0 -23
  440. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/roadmap.md +0 -759
  441. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/tasks.md +0 -308
  442. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/evidence.md +0 -154
  443. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/plan.md +0 -90
  444. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/tasks.md +0 -44
  445. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/evidence.md +0 -68
  446. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/plan.md +0 -80
  447. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/tasks.md +0 -23
  448. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/evidence.md +0 -43
  449. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/plan.md +0 -85
  450. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/tasks.md +0 -17
  451. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/evidence.md +0 -77
  452. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/plan.md +0 -198
  453. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/tasks.md +0 -14
  454. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/evidence.md +0 -99
  455. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/plan.md +0 -236
  456. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/tasks.md +0 -21
  457. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/evidence.md +0 -97
  458. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/plan.md +0 -333
  459. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/tasks.md +0 -29
  460. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/evidence.md +0 -97
  461. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/plan.md +0 -184
  462. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/tasks.md +0 -27
  463. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/evidence.md +0 -239
  464. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/plan.md +0 -279
  465. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/tasks.md +0 -22
  466. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/decision-review.md +0 -64
  467. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/evidence.md +0 -106
  468. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/plan.md +0 -141
  469. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/tasks.md +0 -22
  470. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/10-let-workspaces-open-initiatives/plan.md +0 -430
  471. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/10-let-workspaces-open-initiatives/tasks.md +0 -43
  472. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/notes.md +0 -289
  473. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/plan.md +0 -39
  474. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/tasks.md +0 -8
  475. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/evidence.md +0 -45
  476. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/plan.md +0 -150
  477. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/tasks.md +0 -23
  478. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/evidence.md +0 -25
  479. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/plan.md +0 -98
  480. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/tasks.md +0 -25
  481. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/14-workspaces-beta-guide-split/plan.md +0 -37
  482. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/14-workspaces-beta-guide-split/tasks.md +0 -9
  483. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/evidence.md +0 -140
  484. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/plan.md +0 -344
  485. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/tasks.md +0 -39
  486. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/16-add-escalation-ux/plan.md +0 -26
  487. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/16-add-escalation-ux/tasks.md +0 -7
  488. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/17-harden-team-shared-coordination/plan.md +0 -25
  489. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/17-harden-team-shared-coordination/tasks.md +0 -7
  490. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/evidence.md +0 -397
  491. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/plan.md +0 -180
  492. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/tasks.md +0 -28
  493. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/19-review-workspace-beta-compatibility-before-public-release/plan.md +0 -62
  494. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/19-review-workspace-beta-compatibility-before-public-release/tasks.md +0 -16
  495. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/evidence.md +0 -47
  496. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/plan.md +0 -90
  497. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/tasks.md +0 -18
  498. package/OpenSpec-main/openspec/specs/ai-tool-paths/spec.md +0 -63
  499. package/OpenSpec-main/openspec/specs/artifact-graph/spec.md +0 -165
  500. package/OpenSpec-main/openspec/specs/change-creation/spec.md +0 -108
  501. package/OpenSpec-main/openspec/specs/ci-nix-validation/spec.md +0 -107
  502. package/OpenSpec-main/openspec/specs/cli-archive/spec.md +0 -210
  503. package/OpenSpec-main/openspec/specs/cli-artifact-workflow/spec.md +0 -398
  504. package/OpenSpec-main/openspec/specs/cli-change/spec.md +0 -92
  505. package/OpenSpec-main/openspec/specs/cli-completion/spec.md +0 -432
  506. package/OpenSpec-main/openspec/specs/cli-config/spec.md +0 -318
  507. package/OpenSpec-main/openspec/specs/cli-feedback/spec.md +0 -193
  508. package/OpenSpec-main/openspec/specs/cli-init/spec.md +0 -269
  509. package/OpenSpec-main/openspec/specs/cli-list/spec.md +0 -103
  510. package/OpenSpec-main/openspec/specs/cli-show/spec.md +0 -86
  511. package/OpenSpec-main/openspec/specs/cli-spec/spec.md +0 -88
  512. package/OpenSpec-main/openspec/specs/cli-update/spec.md +0 -229
  513. package/OpenSpec-main/openspec/specs/cli-validate/spec.md +0 -219
  514. package/OpenSpec-main/openspec/specs/cli-view/spec.md +0 -129
  515. package/OpenSpec-main/openspec/specs/command-generation/spec.md +0 -97
  516. package/OpenSpec-main/openspec/specs/config-loading/spec.md +0 -122
  517. package/OpenSpec-main/openspec/specs/context-injection/spec.md +0 -53
  518. package/OpenSpec-main/openspec/specs/docs-agent-instructions/spec.md +0 -62
  519. package/OpenSpec-main/openspec/specs/global-config/spec.md +0 -101
  520. package/OpenSpec-main/openspec/specs/instruction-loader/spec.md +0 -70
  521. package/OpenSpec-main/openspec/specs/legacy-cleanup/spec.md +0 -163
  522. package/OpenSpec-main/openspec/specs/openspec-conventions/spec.md +0 -556
  523. package/OpenSpec-main/openspec/specs/opsx-archive-skill/spec.md +0 -128
  524. package/OpenSpec-main/openspec/specs/opsx-onboard-skill/spec.md +0 -167
  525. package/OpenSpec-main/openspec/specs/opsx-verify-skill/spec.md +0 -189
  526. package/OpenSpec-main/openspec/specs/rules-injection/spec.md +0 -102
  527. package/OpenSpec-main/openspec/specs/schema-fork-command/spec.md +0 -71
  528. package/OpenSpec-main/openspec/specs/schema-init-command/spec.md +0 -76
  529. package/OpenSpec-main/openspec/specs/schema-resolution/spec.md +0 -201
  530. package/OpenSpec-main/openspec/specs/schema-validate-command/spec.md +0 -91
  531. package/OpenSpec-main/openspec/specs/schema-which-command/spec.md +0 -70
  532. package/OpenSpec-main/openspec/specs/specs-sync-skill/spec.md +0 -72
  533. package/OpenSpec-main/openspec/specs/telemetry/spec.md +0 -122
  534. package/OpenSpec-main/openspec/specs/workspace-change-planning/spec.md +0 -71
  535. package/OpenSpec-main/openspec/specs/workspace-foundation/spec.md +0 -279
  536. package/OpenSpec-main/openspec/specs/workspace-links/spec.md +0 -529
  537. package/OpenSpec-main/openspec/specs/workspace-open/spec.md +0 -205
  538. package/OpenSpec-main/openspec-parallel-merge-plan.md +0 -98
  539. package/OpenSpec-main/package-lock.json +0 -4978
  540. package/OpenSpec-main/package.json +0 -84
  541. package/OpenSpec-main/pnpm-lock.yaml +0 -3187
  542. package/OpenSpec-main/schemas/spec-driven/schema.yaml +0 -153
  543. package/OpenSpec-main/schemas/spec-driven/templates/design.md +0 -19
  544. package/OpenSpec-main/schemas/spec-driven/templates/proposal.md +0 -23
  545. package/OpenSpec-main/schemas/spec-driven/templates/spec.md +0 -8
  546. package/OpenSpec-main/schemas/spec-driven/templates/tasks.md +0 -9
  547. package/OpenSpec-main/schemas/workspace-planning/schema.yaml +0 -72
  548. package/OpenSpec-main/schemas/workspace-planning/templates/design.md +0 -33
  549. package/OpenSpec-main/schemas/workspace-planning/templates/proposal.md +0 -28
  550. package/OpenSpec-main/schemas/workspace-planning/templates/spec.md +0 -9
  551. package/OpenSpec-main/schemas/workspace-planning/templates/tasks.md +0 -15
  552. package/OpenSpec-main/scripts/README.md +0 -37
  553. package/OpenSpec-main/scripts/pack-version-check.mjs +0 -111
  554. package/OpenSpec-main/scripts/postinstall.js +0 -83
  555. package/OpenSpec-main/scripts/test-postinstall.sh +0 -57
  556. package/OpenSpec-main/scripts/update-flake.sh +0 -128
  557. package/OpenSpec-main/test/cli-e2e/basic.test.ts +0 -205
  558. package/OpenSpec-main/test/commands/artifact-workflow.test.ts +0 -1063
  559. package/OpenSpec-main/test/commands/change-initiative-link.test.ts +0 -532
  560. package/OpenSpec-main/test/commands/change.interactive-show.test.ts +0 -45
  561. package/OpenSpec-main/test/commands/change.interactive-validate.test.ts +0 -48
  562. package/OpenSpec-main/test/commands/completion.test.ts +0 -278
  563. package/OpenSpec-main/test/commands/config-profile.test.ts +0 -532
  564. package/OpenSpec-main/test/commands/config.test.ts +0 -285
  565. package/OpenSpec-main/test/commands/context-store.test.ts +0 -692
  566. package/OpenSpec-main/test/commands/feedback.test.ts +0 -429
  567. package/OpenSpec-main/test/commands/initiative.test.ts +0 -907
  568. package/OpenSpec-main/test/commands/schema.test.ts +0 -467
  569. package/OpenSpec-main/test/commands/show.test.ts +0 -123
  570. package/OpenSpec-main/test/commands/spec.interactive-show.test.ts +0 -44
  571. package/OpenSpec-main/test/commands/spec.interactive-validate.test.ts +0 -44
  572. package/OpenSpec-main/test/commands/spec.test.ts +0 -324
  573. package/OpenSpec-main/test/commands/validate.enriched-output.test.ts +0 -49
  574. package/OpenSpec-main/test/commands/validate.test.ts +0 -147
  575. package/OpenSpec-main/test/commands/workspace-initiative-open.test.ts +0 -638
  576. package/OpenSpec-main/test/commands/workspace-open.test.ts +0 -123
  577. package/OpenSpec-main/test/commands/workspace.interactive.test.ts +0 -696
  578. package/OpenSpec-main/test/commands/workspace.test.ts +0 -1812
  579. package/OpenSpec-main/test/core/archive.test.ts +0 -869
  580. package/OpenSpec-main/test/core/artifact-graph/graph.test.ts +0 -268
  581. package/OpenSpec-main/test/core/artifact-graph/instruction-loader.test.ts +0 -609
  582. package/OpenSpec-main/test/core/artifact-graph/outputs.test.ts +0 -175
  583. package/OpenSpec-main/test/core/artifact-graph/resolver.test.ts +0 -651
  584. package/OpenSpec-main/test/core/artifact-graph/schema.test.ts +0 -207
  585. package/OpenSpec-main/test/core/artifact-graph/state.test.ts +0 -174
  586. package/OpenSpec-main/test/core/artifact-graph/workflow.integration.test.ts +0 -182
  587. package/OpenSpec-main/test/core/available-tools.test.ts +0 -167
  588. package/OpenSpec-main/test/core/collections/initiatives/operations.test.ts +0 -342
  589. package/OpenSpec-main/test/core/collections/initiatives/resolution.test.ts +0 -21
  590. package/OpenSpec-main/test/core/collections/initiatives/schema.test.ts +0 -201
  591. package/OpenSpec-main/test/core/collections/initiatives/templates.test.ts +0 -74
  592. package/OpenSpec-main/test/core/collections/runtime.test.ts +0 -214
  593. package/OpenSpec-main/test/core/command-generation/adapters.test.ts +0 -710
  594. package/OpenSpec-main/test/core/command-generation/generator.test.ts +0 -110
  595. package/OpenSpec-main/test/core/command-generation/registry.test.ts +0 -108
  596. package/OpenSpec-main/test/core/command-generation/types.test.ts +0 -79
  597. package/OpenSpec-main/test/core/commands/change-command.list.test.ts +0 -76
  598. package/OpenSpec-main/test/core/commands/change-command.show-validate.test.ts +0 -111
  599. package/OpenSpec-main/test/core/completions/command-registry.test.ts +0 -201
  600. package/OpenSpec-main/test/core/completions/completion-provider.test.ts +0 -288
  601. package/OpenSpec-main/test/core/completions/generators/bash-generator.test.ts +0 -586
  602. package/OpenSpec-main/test/core/completions/generators/fish-generator.test.ts +0 -549
  603. package/OpenSpec-main/test/core/completions/generators/powershell-generator.test.ts +0 -621
  604. package/OpenSpec-main/test/core/completions/generators/zsh-generator.test.ts +0 -425
  605. package/OpenSpec-main/test/core/completions/installers/bash-installer.test.ts +0 -484
  606. package/OpenSpec-main/test/core/completions/installers/fish-installer.test.ts +0 -321
  607. package/OpenSpec-main/test/core/completions/installers/powershell-installer.test.ts +0 -824
  608. package/OpenSpec-main/test/core/completions/installers/zsh-installer.test.ts +0 -750
  609. package/OpenSpec-main/test/core/config-schema.test.ts +0 -340
  610. package/OpenSpec-main/test/core/context-store/foundation.test.ts +0 -364
  611. package/OpenSpec-main/test/core/context-store/registry.test.ts +0 -599
  612. package/OpenSpec-main/test/core/converters/json-converter.test.ts +0 -184
  613. package/OpenSpec-main/test/core/global-config.test.ts +0 -371
  614. package/OpenSpec-main/test/core/init.test.ts +0 -786
  615. package/OpenSpec-main/test/core/legacy-cleanup.test.ts +0 -1162
  616. package/OpenSpec-main/test/core/list.test.ts +0 -165
  617. package/OpenSpec-main/test/core/migration.test.ts +0 -150
  618. package/OpenSpec-main/test/core/parsers/change-parser.test.ts +0 -52
  619. package/OpenSpec-main/test/core/parsers/markdown-parser.test.ts +0 -355
  620. package/OpenSpec-main/test/core/parsers/requirement-blocks.test.ts +0 -46
  621. package/OpenSpec-main/test/core/planning-home.test.ts +0 -120
  622. package/OpenSpec-main/test/core/profile-sync-drift.test.ts +0 -92
  623. package/OpenSpec-main/test/core/profiles.test.ts +0 -63
  624. package/OpenSpec-main/test/core/project-config.test.ts +0 -610
  625. package/OpenSpec-main/test/core/shared/skill-generation.test.ts +0 -301
  626. package/OpenSpec-main/test/core/shared/tool-detection.test.ts +0 -333
  627. package/OpenSpec-main/test/core/templates/skill-templates-parity.test.ts +0 -172
  628. package/OpenSpec-main/test/core/update.test.ts +0 -1810
  629. package/OpenSpec-main/test/core/validation.enriched-messages.test.ts +0 -74
  630. package/OpenSpec-main/test/core/validation.test.ts +0 -680
  631. package/OpenSpec-main/test/core/view.test.ts +0 -129
  632. package/OpenSpec-main/test/core/workspace/foundation.test.ts +0 -694
  633. package/OpenSpec-main/test/core/workspace/legacy-state.test.ts +0 -221
  634. package/OpenSpec-main/test/core/workspace/skills.test.ts +0 -69
  635. package/OpenSpec-main/test/fixtures/tmp-init/openspec/changes/c1/proposal.md +0 -7
  636. package/OpenSpec-main/test/fixtures/tmp-init/openspec/changes/c1/specs/alpha/spec.md +0 -8
  637. package/OpenSpec-main/test/fixtures/tmp-init/openspec/specs/alpha/spec.md +0 -12
  638. package/OpenSpec-main/test/helpers/path-env.ts +0 -26
  639. package/OpenSpec-main/test/helpers/run-cli.ts +0 -150
  640. package/OpenSpec-main/test/prompts/searchable-multi-select.test.ts +0 -220
  641. package/OpenSpec-main/test/specs/source-specs-normalization.test.ts +0 -63
  642. package/OpenSpec-main/test/telemetry/config.test.ts +0 -298
  643. package/OpenSpec-main/test/telemetry/index.test.ts +0 -219
  644. package/OpenSpec-main/test/utils/change-metadata.test.ts +0 -368
  645. package/OpenSpec-main/test/utils/change-utils.test.ts +0 -201
  646. package/OpenSpec-main/test/utils/command-references.test.ts +0 -83
  647. package/OpenSpec-main/test/utils/file-system.test.ts +0 -322
  648. package/OpenSpec-main/test/utils/interactive.test.ts +0 -125
  649. package/OpenSpec-main/test/utils/marker-updates.test.ts +0 -448
  650. package/OpenSpec-main/test/utils/shell-detection.test.ts +0 -185
  651. package/OpenSpec-main/vitest.config.ts +0 -47
  652. package/OpenSpec-main/vitest.setup.ts +0 -15
  653. package/Scanner CLI Inteligente para Projetos.md +0 -433
@@ -1,116 +0,0 @@
1
- ## ADDED Requirements
2
-
3
- ### Requirement: Command execution tracking
4
- The system SHALL send a `command_executed` event to PostHog when any CLI command executes, including only the command name and OpenSpec version as properties.
5
-
6
- #### Scenario: Standard command execution
7
- - **WHEN** a user runs any openspec command
8
- - **THEN** the system sends a `command_executed` event with `command` and `version` properties
9
-
10
- #### Scenario: Subcommand execution
11
- - **WHEN** a user runs a nested command like `openspec change apply`
12
- - **THEN** the system sends a `command_executed` event with the full command path (e.g., `change:apply`)
13
-
14
- ### Requirement: Privacy-preserving event design
15
- The system SHALL NOT include command arguments, file paths, project names, spec content, error messages, or IP addresses in telemetry events.
16
-
17
- #### Scenario: Command with arguments
18
- - **WHEN** a user runs `openspec init my-project --force`
19
- - **THEN** the telemetry event contains only `command: "init"` and `version: "<version>"` without arguments
20
-
21
- #### Scenario: IP address exclusion
22
- - **WHEN** the system sends a telemetry event
23
- - **THEN** the event explicitly sets `$ip: null` to prevent IP tracking
24
-
25
- ### Requirement: Environment variable opt-out
26
- The system SHALL disable telemetry when `OPENSPEC_TELEMETRY=0` or `DO_NOT_TRACK=1` environment variables are set.
27
-
28
- #### Scenario: OPENSPEC_TELEMETRY opt-out
29
- - **WHEN** `OPENSPEC_TELEMETRY=0` is set in the environment
30
- - **THEN** the system sends no telemetry events
31
-
32
- #### Scenario: DO_NOT_TRACK opt-out
33
- - **WHEN** `DO_NOT_TRACK=1` is set in the environment
34
- - **THEN** the system sends no telemetry events
35
-
36
- #### Scenario: Environment variable takes precedence
37
- - **WHEN** the user has previously used the CLI (config exists)
38
- - **AND** the user sets `OPENSPEC_TELEMETRY=0`
39
- - **THEN** telemetry is disabled regardless of config state
40
-
41
- ### Requirement: CI environment auto-disable
42
- The system SHALL automatically disable telemetry when `CI=true` environment variable is detected.
43
-
44
- #### Scenario: CI environment detection
45
- - **WHEN** `CI=true` is set in the environment
46
- - **THEN** the system sends no telemetry events
47
-
48
- #### Scenario: CI with explicit enable
49
- - **WHEN** `CI=true` is set
50
- - **AND** `OPENSPEC_TELEMETRY=1` is explicitly set
51
- - **THEN** telemetry remains disabled (CI takes precedence for privacy)
52
-
53
- ### Requirement: First-run telemetry notice
54
- The system SHALL display a one-line telemetry disclosure notice on the first command execution, before any telemetry is sent.
55
-
56
- #### Scenario: First command execution
57
- - **WHEN** a user runs their first openspec command
58
- - **AND** telemetry is enabled
59
- - **THEN** the system displays: "Note: OpenSpec collects anonymous usage stats. Opt out: OPENSPEC_TELEMETRY=0"
60
-
61
- #### Scenario: Subsequent command execution
62
- - **WHEN** a user has already seen the notice (noticeSeen: true in config)
63
- - **THEN** the system does not display the notice
64
-
65
- #### Scenario: Notice before telemetry
66
- - **WHEN** displaying the first-run notice
67
- - **THEN** the notice appears before any telemetry event is sent
68
-
69
- ### Requirement: Anonymous user identification
70
- The system SHALL generate a random UUID as an anonymous identifier on first telemetry send, stored in global config.
71
-
72
- #### Scenario: First telemetry event
73
- - **WHEN** the first telemetry event is sent
74
- - **AND** no anonymousId exists in config
75
- - **THEN** the system generates a random UUID v4 and stores it in config
76
-
77
- #### Scenario: Persistent identity
78
- - **WHEN** a user runs multiple commands across sessions
79
- - **THEN** the same anonymousId is used for all events
80
-
81
- #### Scenario: Lazy generation with opt-out
82
- - **WHEN** a user opts out before running any command
83
- - **THEN** no anonymousId is ever generated or stored
84
-
85
- ### Requirement: Immediate event sending
86
- The system SHALL send telemetry events immediately without batching, using `flushAt: 1` and `flushInterval: 0` configuration.
87
-
88
- #### Scenario: Event transmission timing
89
- - **WHEN** a command executes
90
- - **THEN** the telemetry event is sent immediately, not queued for batch transmission
91
-
92
- ### Requirement: Graceful shutdown
93
- The system SHALL call `posthog.shutdown()` before CLI exit to ensure pending events are flushed.
94
-
95
- #### Scenario: Normal exit
96
- - **WHEN** a command completes successfully
97
- - **THEN** the system awaits `shutdown()` before exiting
98
-
99
- #### Scenario: Error exit
100
- - **WHEN** a command fails with an error
101
- - **THEN** the system still awaits `shutdown()` before exiting
102
-
103
- ### Requirement: Silent failure handling
104
- The system SHALL silently ignore telemetry failures without affecting CLI functionality.
105
-
106
- #### Scenario: Network failure
107
- - **WHEN** the telemetry request fails due to network error
108
- - **THEN** the CLI command completes normally without error message
109
-
110
- #### Scenario: PostHog outage
111
- - **WHEN** PostHog service is unavailable
112
- - **THEN** the CLI command completes normally without error message
113
-
114
- #### Scenario: Shutdown failure
115
- - **WHEN** `shutdown()` fails or times out
116
- - **THEN** the CLI exits normally without error message
@@ -1,47 +0,0 @@
1
- ## 1. Setup
2
-
3
- - [x] 1.1 Add `posthog-node` package as a dependency
4
- - [x] 1.2 Create `src/telemetry/` module directory
5
- - [x] 1.3 Add PostHog API key configuration (environment variable or embedded)
6
-
7
- ## 2. Global Config
8
-
9
- - [x] 2.1 Create or extend global config module for `~/.config/openspec/config.json`
10
- - [x] 2.2 Implement read/write functions that preserve existing config fields
11
- - [x] 2.3 Define telemetry config structure (`anonymousId`, `noticeSeen`)
12
-
13
- ## 3. Core Telemetry Module
14
-
15
- - [x] 3.1 Implement `isTelemetryEnabled()` checking `OPENSPEC_TELEMETRY`, `DO_NOT_TRACK`, and `CI` env vars
16
- - [x] 3.2 Implement `getOrCreateAnonymousId()` with lazy UUID generation
17
- - [x] 3.3 Initialize PostHog client with `flushAt: 1` and `flushInterval: 0`
18
- - [x] 3.4 Implement `trackCommand(commandName, version)` with `$ip: null`
19
- - [x] 3.5 Implement `shutdown()` with try/catch for silent failure handling
20
-
21
- ## 4. First-Run Notice
22
-
23
- - [x] 4.1 Implement `maybeShowTelemetryNotice()` function
24
- - [x] 4.2 Check `noticeSeen` flag before displaying notice
25
- - [x] 4.3 Display notice text: "Note: OpenSpec collects anonymous usage stats. Opt out: OPENSPEC_TELEMETRY=0"
26
- - [x] 4.4 Update `noticeSeen` in config after first display
27
-
28
- ## 5. CLI Integration
29
-
30
- - [x] 5.1 Add Commander.js `preAction` hook to show notice and track command
31
- - [x] 5.2 Add Commander.js `postAction` hook to call shutdown
32
- - [x] 5.3 Handle subcommand path extraction (e.g., `change:apply`)
33
-
34
- ## 6. Testing
35
-
36
- - [x] 6.1 Test opt-out via `OPENSPEC_TELEMETRY=0`
37
- - [x] 6.2 Test opt-out via `DO_NOT_TRACK=1`
38
- - [x] 6.3 Test auto-disable in CI environment
39
- - [x] 6.4 Test first-run notice display and noticeSeen persistence
40
- - [x] 6.5 Test anonymous ID generation and persistence
41
- - [x] 6.6 Test silent failure on network error (mock PostHog)
42
-
43
- ## 7. Documentation
44
-
45
- - [x] 7.1 Add telemetry disclosure section to README
46
- - [x] 7.2 Document opt-out methods (`OPENSPEC_TELEMETRY=0`, `DO_NOT_TRACK=1`)
47
- - [x] 7.3 Document what data is collected and not collected
@@ -1,16 +0,0 @@
1
- ## Why
2
-
3
- CodeBuddy slash command configurator currently uses inconsistent frontmatter fields compared to other tools. It uses `category` and `tags` fields (like Crush) but should use `argument-hint` field (like Factory, Auggie, and Codex) for better consistency. Additionally, the `proposal` command is missing frontmatter fields entirely. After reviewing CodeBuddy's official documentation, the correct format should use `description` and `argument-hint` fields with square bracket parameter format.
4
-
5
- ## What Changes
6
-
7
- - Replace `category` and `tags` fields with `argument-hint` field in CodeBuddy frontmatter
8
- - Add missing frontmatter fields to the `proposal` command
9
- - Use correct square bracket format for `argument-hint` parameters (e.g., `[change-id]`)
10
- - Ensure consistency with CodeBuddy's official documentation
11
-
12
- ## Impact
13
-
14
- - Affected specs: cli-init, cli-update
15
- - Affected code: `src/core/configurators/slash/codebuddy.ts`
16
- - CodeBuddy users will get proper argument hints in the correct format for slash commands
@@ -1,75 +0,0 @@
1
- ## MODIFIED Requirements
2
-
3
- ### Requirement: Slash Command Configuration
4
-
5
- The init command SHALL generate slash command files for supported editors using shared templates.
6
-
7
- #### Scenario: Generating slash commands for Antigravity
8
- - **WHEN** the user selects Antigravity during initialization
9
- - **THEN** create `.agent/workflows/openspec-proposal.md`, `.agent/workflows/openspec-apply.md`, and `.agent/workflows/openspec-archive.md`
10
- - **AND** ensure each file begins with YAML frontmatter that contains only a `description: <stage summary>` field followed by the shared OpenSpec workflow instructions wrapped in managed markers
11
- - **AND** populate the workflow body with the same proposal/apply/archive guidance used for other tools so Antigravity behaves like Windsurf while pointing to the `.agent/workflows/` directory
12
-
13
- #### Scenario: Generating slash commands for Claude Code
14
- - **WHEN** the user selects Claude Code during initialization
15
- - **THEN** create `.claude/commands/openspec/proposal.md`, `.claude/commands/openspec/apply.md`, and `.claude/commands/openspec/archive.md`
16
- - **AND** populate each file from shared templates so command text matches other tools
17
- - **AND** each template includes instructions for the relevant OpenSpec workflow stage
18
-
19
- #### Scenario: Generating slash commands for CodeBuddy Code
20
- - **WHEN** the user selects CodeBuddy Code during initialization
21
- - **THEN** create `.codebuddy/commands/openspec/proposal.md`, `.codebuddy/commands/openspec/apply.md`, and `.codebuddy/commands/openspec/archive.md`
22
- - **AND** populate each file from shared templates that include CodeBuddy-compatible YAML frontmatter for the `description` and `argument-hint` fields
23
- - **AND** use square bracket format for `argument-hint` parameters (e.g., `[change-id]`)
24
- - **AND** each template includes instructions for the relevant OpenSpec workflow stage
25
-
26
- #### Scenario: Generating slash commands for Cline
27
- - **WHEN** the user selects Cline during initialization
28
- - **THEN** create `.clinerules/workflows/openspec-proposal.md`, `.clinerules/workflows/openspec-apply.md`, and `.clinerules/workflows/openspec-archive.md`
29
- - **AND** populate each file from shared templates so command text matches other tools
30
- - **AND** include Cline-specific Markdown heading frontmatter
31
- - **AND** each template includes instructions for the relevant OpenSpec workflow stage
32
-
33
- #### Scenario: Generating slash commands for Crush
34
- - **WHEN** the user selects Crush during initialization
35
- - **THEN** create `.crush/commands/openspec/proposal.md`, `.crush/commands/openspec/apply.md`, and `.crush/commands/openspec/archive.md`
36
- - **AND** populate each file from shared templates so command text matches other tools
37
- - **AND** include Crush-specific frontmatter with OpenSpec category and tags
38
- - **AND** each template includes instructions for the relevant OpenSpec workflow stage
39
-
40
- #### Scenario: Generating slash commands for Cursor
41
- - **WHEN** the user selects Cursor during initialization
42
- - **THEN** create `.cursor/commands/openspec-proposal.md`, `.cursor/commands/openspec-apply.md`, and `.cursor/commands/openspec-archive.md`
43
- - **AND** populate each file from shared templates so command text matches other tools
44
- - **AND** each template includes instructions for the relevant OpenSpec workflow stage
45
-
46
- #### Scenario: Generating slash commands for Factory Droid
47
- - **WHEN** the user selects Factory Droid during initialization
48
- - **THEN** create `.factory/commands/openspec-proposal.md`, `.factory/commands/openspec-apply.md`, and `.factory/commands/openspec-archive.md`
49
- - **AND** populate each file from shared templates that include Factory-compatible YAML frontmatter for the `description` and `argument-hint` fields
50
- - **AND** include the `$ARGUMENTS` placeholder in the template body so droid receives any user-supplied input
51
- - **AND** wrap the generated content in OpenSpec managed markers so `openspec update` can safely refresh the commands
52
-
53
- #### Scenario: Generating slash commands for OpenCode
54
- - **WHEN** the user selects OpenCode during initialization
55
- - **THEN** create `.opencode/commands/openspec-proposal.md`, `.opencode/commands/openspec-apply.md`, and `.opencode/commands/openspec-archive.md`
56
- - **AND** populate each file from shared templates so command text matches other tools
57
- - **AND** each template includes instructions for the relevant OpenSpec workflow stage
58
-
59
- #### Scenario: Generating slash commands for Windsurf
60
- - **WHEN** the user selects Windsurf during initialization
61
- - **THEN** create `.windsurf/workflows/openspec-proposal.md`, `.windsurf/workflows/openspec-apply.md`, and `.windsurf/workflows/openspec-archive.md`
62
- - **AND** populate each file from shared templates (wrapped in OpenSpec markers) so workflow text matches other tools
63
- - **AND** each template includes instructions for the relevant OpenSpec workflow stage
64
-
65
- #### Scenario: Generating slash commands for Kilo Code
66
- - **WHEN** the user selects Kilo Code during initialization
67
- - **THEN** create `.kilocode/workflows/openspec-proposal.md`, `.kilocode/workflows/openspec-apply.md`, and `.kilocode/workflows/openspec-archive.md`
68
- - **AND** populate each file from shared templates (wrapped in OpenSpec markers) so workflow text matches other tools
69
- - **AND** each template includes instructions for the relevant OpenSpec workflow stage
70
-
71
- #### Scenario: Generating slash commands for Codex
72
- - **WHEN** the user selects Codex during initialization
73
- - **THEN** create global prompt files at `~/.codex/prompts/openspec-proposal.md`, `~/.codex/prompts/openspec-apply.md`, and `~/.codex/prompts/openspec-archive.md` (or under `$CODEX_HOME/prompts` if set)
74
- - **AND** populate each file from shared templates that map the first numbered placeholder (`$1`) to the primary user input (e.g., change identifier or question text)
75
- - **AND** wrap the generated content in OpenSpec markers so `openspec update` can refresh the prompts without touching surrounding custom notes
@@ -1,56 +0,0 @@
1
- ## MODIFIED Requirements
2
-
3
- ### Requirement: Slash Command Updates
4
-
5
- The update command SHALL refresh existing slash command files for configured tools without creating new ones, and ensure the OpenCode archive command accepts change ID arguments.
6
-
7
- #### Scenario: Updating slash commands for Antigravity
8
- - **WHEN** `.agent/workflows/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
9
- - **THEN** refresh the OpenSpec-managed portion of each file so the workflow copy matches other tools while preserving the existing single-field `description` frontmatter
10
- - **AND** skip creating any missing workflow files during update, mirroring the behavior for Windsurf and other IDEs
11
-
12
- #### Scenario: Updating slash commands for Claude Code
13
- - **WHEN** `.claude/commands/openspec/` contains `proposal.md`, `apply.md`, and `archive.md`
14
- - **THEN** refresh each file using shared templates
15
- - **AND** ensure templates include instructions for the relevant workflow stage
16
-
17
- #### Scenario: Updating slash commands for CodeBuddy Code
18
- - **WHEN** `.codebuddy/commands/openspec/` contains `proposal.md`, `apply.md`, and `archive.md`
19
- - **THEN** refresh each file using the shared CodeBuddy templates that include YAML frontmatter for the `description` and `argument-hint` fields
20
- - **AND** use square bracket format for `argument-hint` parameters (e.g., `[change-id]`)
21
- - **AND** preserve any user customizations outside the OpenSpec managed markers
22
-
23
- #### Scenario: Updating slash commands for Cline
24
- - **WHEN** `.clinerules/workflows/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
25
- - **THEN** refresh each file using shared templates
26
- - **AND** include Cline-specific Markdown heading frontmatter
27
- - **AND** ensure templates include instructions for the relevant workflow stage
28
-
29
- #### Scenario: Updating slash commands for Crush
30
- - **WHEN** `.crush/commands/` contains `openspec/proposal.md`, `openspec/apply.md`, and `openspec/archive.md`
31
- - **THEN** refresh each file using shared templates
32
- - **AND** include Crush-specific frontmatter with OpenSpec category and tags
33
- - **AND** ensure templates include instructions for the relevant workflow stage
34
-
35
- #### Scenario: Updating slash commands for Cursor
36
- - **WHEN** `.cursor/commands/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
37
- - **THEN** refresh each file using shared templates
38
- - **AND** ensure templates include instructions for the relevant workflow stage
39
-
40
- #### Scenario: Updating slash commands for Factory Droid
41
- - **WHEN** `.factory/commands/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
42
- - **THEN** refresh each file using the shared Factory templates that include YAML frontmatter for the `description` and `argument-hint` fields
43
- - **AND** ensure the template body retains the `$ARGUMENTS` placeholder so user input keeps flowing into droid
44
- - **AND** update only the content inside the OpenSpec managed markers, leaving any unmanaged notes untouched
45
- - **AND** skip creating missing files during update
46
-
47
- #### Scenario: Updating slash commands for OpenCode
48
- - **WHEN** `.opencode/command/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
49
- - **THEN** refresh each file using shared templates
50
- - **AND** ensure templates include instructions for the relevant workflow stage
51
- - **AND** ensure the archive command includes `$ARGUMENTS` placeholder in frontmatter for accepting change ID arguments
52
-
53
- #### Scenario: Updating slash commands for Windsurf
54
- - **WHEN** `.windsurf/workflows/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
55
- - **THEN** refresh each file using shared templates
56
- - **AND** ensure templates include instructions for the relevant workflow stage
@@ -1,6 +0,0 @@
1
- ## 1. Implementation
2
-
3
- - [x] 1.1 Update CodeBuddy frontmatter to use `argument-hint` instead of `category` and `tags`
4
- - [x] 1.2 Add missing frontmatter fields to the `proposal` command
5
- - [x] 1.3 Ensure all three commands (proposal, apply, archive) have consistent frontmatter structure
6
- - [x] 1.4 Test the changes by running `openspec init` and `openspec update`
@@ -1,206 +0,0 @@
1
- # Design: Nix CI Validation
2
-
3
- ## Context
4
-
5
- OpenSpec recently added Nix flake support to enable Nix users to install the tool. This includes:
6
- - `flake.nix`: Nix package definition with pnpm dependency fetching
7
- - `scripts/update-flake.sh`: Automation script to update version and hash when releasing
8
-
9
- Currently, there is no CI validation ensuring these Nix artifacts remain functional. The existing CI workflow (.github/workflows/ci.yml) validates Node.js builds, tests, and linting across multiple platforms (Linux, macOS, Windows) but does not validate Nix builds.
10
-
11
- **Stakeholders**: Nix users, maintainers, contributors who need confidence that Nix support works.
12
-
13
- **Constraints**:
14
- - Must work in GitHub Actions Linux runners
15
- - Should minimize CI runtime impact (<5 minutes added)
16
- - Should support local testing with `act` for rapid iteration
17
- - Must integrate with existing required checks
18
-
19
- ## Goals / Non-Goals
20
-
21
- **Goals**:
22
- - Validate `nix build` succeeds on every PR/push
23
- - Validate `scripts/update-flake.sh` executes without errors
24
- - Ensure Nix support doesn't regress silently
25
- - Support local testing with `act`
26
- - Optimize with caching to minimize CI time
27
-
28
- **Non-Goals**:
29
- - Testing on macOS (GitHub-hosted macOS runners are slower and more expensive; Nix flake already declares macOS support)
30
- - Building for all declared systems (x86_64-linux, aarch64-linux, x86_64-darwin, aarch64-darwin) - focus on most common platform
31
- - Validating Nix flake quality/style (nixpkgs-fmt, etc.) - can be added later if needed
32
- - Running OpenSpec's full test suite through Nix build - existing CI already does this
33
-
34
- ## Decisions
35
-
36
- ### Decision 1: Use DeterminateSystems nix-installer-action
37
-
38
- **What**: Use `determinatesystems/nix-installer-action` for installing Nix in CI.
39
-
40
- **Why**:
41
- - Official GitHub Action maintained by Determinate Systems (Nix experts)
42
- - Handles GitHub Actions environment quirks automatically
43
- - Includes automatic caching configuration
44
- - More reliable than curl | sh installation script
45
- - Better error messages and diagnostics
46
-
47
- **Alternatives considered**:
48
- - Official Nix installer (`curl -L https://nixos.org/nix/install | sh`): Works but requires manual setup of flakes, caching, and CI-specific configuration
49
- - `cachix/install-nix-action`: Popular alternative but determinatesystems is more actively maintained and has better GHA integration
50
-
51
- ### Decision 2: Use Magic Nix Cache for performance
52
-
53
- **What**: Use `determinatesystems/magic-nix-cache-action` for automatic binary caching.
54
-
55
- **Why**:
56
- - Zero-configuration caching for Nix store
57
- - Significantly reduces CI time on subsequent runs (from ~5min to ~1-2min)
58
- - Free for public repositories
59
- - Handles cache keys automatically
60
-
61
- **Alternatives considered**:
62
- - Manual Nix store caching with GitHub Actions cache: More complex, requires manual cache key management
63
- - Cachix: Excellent tool but requires account setup and token management
64
- - No caching: Acceptable for initial implementation, but poor developer experience
65
-
66
- ### Decision 3: Separate job for Nix validation
67
-
68
- **What**: Create a dedicated `nix-validate` job in .github/workflows/ci.yml that runs in parallel with other jobs.
69
-
70
- **Why**:
71
- - Keeps Nix validation isolated from Node.js validation
72
- - Allows parallel execution for faster CI
73
- - Easier to debug when Nix-specific issues occur
74
- - Can be marked as required check independently
75
-
76
- **Alternatives considered**:
77
- - Add Nix steps to existing jobs: Creates coupling between Node.js and Nix validation, harder to maintain
78
- - Separate workflow file: Overkill for a single job, harder to manage required checks
79
-
80
- ### Decision 4: Validate update script by executing it
81
-
82
- **What**: Run `scripts/update-flake.sh` as part of CI validation.
83
-
84
- **Why**:
85
- - Ensures the script doesn't break due to changes in package.json format, nix build output, or dependencies
86
- - Tests the full workflow users will follow when releasing
87
- - Catches errors early
88
-
89
- **Implementation approach**:
90
- - Execute script in a way that doesn't modify git state (or discard changes after)
91
- - Verify script exits with code 0
92
- - Optionally validate that flake.nix contains expected patterns after execution
93
-
94
- **Alternatives considered**:
95
- - Mock/dry-run mode: Would require modifying the script significantly
96
- - Skip validation: Risky - script could break and only be discovered at release time
97
- - Only run on release branches: Misses issues early in development
98
-
99
- ### Decision 5: Run on pull_request and push to main
100
-
101
- **What**: Configure Nix validation job to run on:
102
- - `pull_request` events (any PR to main)
103
- - `push` events (direct pushes to main)
104
- - `workflow_dispatch` (manual trigger for testing)
105
-
106
- **Why**:
107
- - Catches issues before merge (pull_request)
108
- - Validates main branch stays healthy (push)
109
- - Allows manual testing without creating PRs (workflow_dispatch)
110
-
111
- ### Decision 6: Support act for local testing
112
-
113
- **What**: Ensure workflow is compatible with `act` tool for local CI testing.
114
-
115
- **Why**:
116
- - Faster iteration when developing CI changes
117
- - Allows testing without pushing to GitHub
118
- - Reduces commit noise from CI debugging
119
-
120
- **Requirements**:
121
- - Use standard GitHub Actions syntax
122
- - Document any act-specific configuration needed
123
- - Test that Nix can be installed in act's Docker containers
124
-
125
- **Limitations**:
126
- - act may not perfectly replicate GitHub's runners, but close enough for validation
127
-
128
- ## Risks / Trade-offs
129
-
130
- ### Risk: CI runtime increase
131
-
132
- **Impact**: Adding Nix validation will increase total CI time by 2-5 minutes per run.
133
-
134
- **Mitigation**:
135
- - Run Nix job in parallel with existing jobs (no blocking delay)
136
- - Use magic-nix-cache for subsequent runs (~1-2 min with cache)
137
- - Configure appropriate timeout (10 minutes max)
138
-
139
- **Acceptance**: The benefit of preventing Nix regressions outweighs the cost.
140
-
141
- ### Risk: Nix installer failures in CI
142
-
143
- **Impact**: Transient failures in Nix installation could block PRs.
144
-
145
- **Mitigation**:
146
- - Use determinatesystems action which has retry logic
147
- - Monitor for flaky failures and adjust if needed
148
- - Document troubleshooting steps
149
-
150
- **Acceptance**: Nix installation is generally stable in GHA; this is low risk.
151
-
152
- ### Risk: Update script modifies git state
153
-
154
- **Impact**: Running update-flake.sh modifies flake.nix, which could cause CI to fail if git state is checked.
155
-
156
- **Mitigation**:
157
- - Run script in isolation without committing changes
158
- - Add `git checkout -- flake.nix` after validation
159
- - Or accept dirty git state in CI (doesn't affect build validation)
160
-
161
- **Acceptance**: Script validation is important enough to handle this carefully.
162
-
163
- ### Risk: act compatibility issues
164
-
165
- **Impact**: Workflow might not work perfectly with act due to Docker environment differences.
166
-
167
- **Mitigation**:
168
- - Document known limitations
169
- - Focus on GitHub Actions as primary validation target
170
- - Use act as best-effort local testing
171
-
172
- **Acceptance**: act support is nice-to-have, not required.
173
-
174
- ## Migration Plan
175
-
176
- ### Phase 1: Add Nix job (new, non-required)
177
- 1. Add `nix-validate` job to .github/workflows/ci.yml
178
- 2. Configure to run in parallel with existing jobs
179
- 3. Do NOT mark as required check initially
180
- 4. Monitor for ~1 week to ensure stability
181
-
182
- ### Phase 2: Make required
183
- 1. After validation is stable, add to required checks
184
- 2. Update branch protection rules in GitHub settings
185
- 3. Document in CONTRIBUTING.md or README
186
-
187
- ### Rollback Plan
188
- If Nix validation causes issues:
189
- 1. Remove job from required checks in GitHub settings (immediate)
190
- 2. Comment out or remove job from workflow (permanent fix)
191
- 3. Investigate and fix issues
192
- 4. Re-enable following same phased approach
193
-
194
- ## Open Questions
195
-
196
- - **Q**: Should we test update-flake.sh on every CI run, or only when package.json or pnpm-lock.yaml changes?
197
- - **A**: Test on every run for simplicity. The script is fast (<30 seconds) and catching regressions is valuable.
198
-
199
- - **Q**: Should we validate on macOS as well?
200
- - **A**: No for initial implementation. Linux validation is sufficient and macOS runners are slower/more expensive. Can add later if users report macOS-specific issues.
201
-
202
- - **Q**: Should we run full OpenSpec tests through the Nix build?
203
- - **A**: No. The Nix build already runs `pnpm test` as part of its build phase. Existing CI jobs cover testing thoroughly. Nix validation focuses on build success.
204
-
205
- - **Q**: What timeout should we use for the Nix validation job?
206
- - **A**: Start with 10 minutes. With caching, jobs should complete in 1-3 minutes. Without cache (first run), 5-7 minutes is expected.
@@ -1,21 +0,0 @@
1
- # Add Nix CI Validation
2
-
3
- ## Why
4
-
5
- The project recently added Nix flake support (flake.nix) and an automated update script (scripts/update-flake.sh) to enable Nix users to install OpenSpec. However, there is no CI validation ensuring these Nix artifacts continue to work as the project evolves. This creates risk that breaking changes could be merged without detection.
6
-
7
- ## What Changes
8
-
9
- - Add a new GitHub Actions workflow job to validate Nix flake builds successfully
10
- - Add validation that the update-flake.sh script executes without errors
11
- - Test on Linux (where Nix support is most common)
12
- - Ensure CI fails if Nix build or update script breaks
13
- - Enable local testing with `act` for developers
14
-
15
- ## Impact
16
-
17
- - Affected specs: New capability `ci-nix-validation`
18
- - Affected code: `.github/workflows/ci.yml` (add new job)
19
- - Affected infrastructure: GitHub Actions runners with Nix installed
20
- - Benefits: Prevents regressions in Nix support, gives confidence to Nix users
21
- - Trade-offs: Adds ~2-3 minutes to CI runtime
@@ -1,104 +0,0 @@
1
- # CI Nix Validation Specification
2
-
3
- ## ADDED Requirements
4
-
5
- ### Requirement: Nix Flake Build Validation
6
-
7
- The CI system SHALL validate that the Nix flake builds successfully on every pull request and push to main.
8
-
9
- #### Scenario: Successful flake build
10
-
11
- - **WHEN** a pull request or push to main is made
12
- - **THEN** the CI SHALL execute `nix build` and verify it completes with exit code 0
13
- - **AND** the build output SHALL contain the openspec binary
14
-
15
- #### Scenario: Flake build failure
16
-
17
- - **WHEN** the Nix flake configuration is broken
18
- - **THEN** the CI job SHALL fail with a non-zero exit code
19
- - **AND** the CI SHALL prevent merging of the pull request
20
-
21
- #### Scenario: Multi-platform support check
22
-
23
- - **WHEN** the flake declares support for multiple systems
24
- - **THEN** the CI SHALL validate the flake builds on at least Linux (x86_64-linux)
25
-
26
- ### Requirement: Update Script Validation
27
-
28
- The CI system SHALL validate that the update-flake.sh script executes successfully and produces valid output.
29
-
30
- #### Scenario: Update script execution
31
-
32
- - **WHEN** the CI runs the update script validation
33
- - **THEN** the script SHALL execute without errors
34
- - **AND** the script SHALL correctly extract the version from package.json
35
- - **AND** the script SHALL update flake.nix with the correct version
36
-
37
- #### Scenario: Update script with mock hash
38
-
39
- - **WHEN** validating the update script in CI
40
- - **THEN** the script SHALL be able to detect and extract the correct pnpm dependency hash
41
- - **AND** the flake.nix SHALL be updated with a valid sha256 hash
42
-
43
- ### Requirement: CI Job Integration
44
-
45
- The Nix validation jobs SHALL be integrated into the existing GitHub Actions workflow and required for merge.
46
-
47
- #### Scenario: PR merge requirements
48
-
49
- - **WHEN** a pull request is created
50
- - **THEN** the Nix validation job SHALL be included in required checks
51
- - **AND** the PR SHALL NOT be mergeable until Nix validation passes
52
-
53
- #### Scenario: Job execution triggers
54
-
55
- - **WHEN** code is pushed to a pull request OR pushed to main OR manually triggered
56
- - **THEN** the Nix validation job SHALL execute automatically
57
-
58
- ### Requirement: Local Testing Support
59
-
60
- The CI workflow SHALL be testable locally using the `act` tool to enable rapid iteration.
61
-
62
- #### Scenario: Local CI execution with act
63
-
64
- - **WHEN** a developer runs `act` with the Nix validation workflow
65
- - **THEN** the workflow SHALL execute in the local Docker environment
66
- - **AND** the developer SHALL receive feedback on Nix build status without pushing to GitHub
67
-
68
- #### Scenario: Act configuration compatibility
69
-
70
- - **WHEN** the workflow is designed
71
- - **THEN** it SHALL use standard GitHub Actions syntax compatible with `act`
72
- - **AND** any Nix-specific setup SHALL work in the act Docker environment
73
-
74
- ### Requirement: Nix Installation in CI
75
-
76
- The CI environment SHALL have Nix properly installed and configured before running validation.
77
-
78
- #### Scenario: Nix installation step
79
-
80
- - **WHEN** the Nix validation job starts
81
- - **THEN** Nix SHALL be installed using the official Nix installer or determinatesystems/nix-installer-action
82
- - **AND** the Nix installation SHALL be cached for subsequent runs to improve performance
83
-
84
- #### Scenario: Nix configuration for CI
85
-
86
- - **WHEN** Nix is installed in CI
87
- - **THEN** it SHALL be configured to work in the GitHub Actions environment
88
- - **AND** experimental features (flakes, nix-command) SHALL be enabled
89
-
90
- ### Requirement: CI Performance Optimization
91
-
92
- The Nix validation SHALL be optimized to minimize CI runtime impact.
93
-
94
- #### Scenario: Acceptable runtime
95
-
96
- - **WHEN** the Nix validation job runs
97
- - **THEN** it SHALL complete in under 5 minutes on a clean run
98
- - **AND** with caching, it SHALL complete in under 3 minutes on subsequent runs
99
-
100
- #### Scenario: Parallel execution
101
-
102
- - **WHEN** multiple CI jobs are running
103
- - **THEN** the Nix validation job SHALL run in parallel with other validation jobs (tests, lint)
104
- - **AND** SHALL NOT block other independent checks