sauron-cli 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (655) hide show
  1. package/.genesis/prompts/CLI Init_ Atualiza/303/247/303/243o com Mem/303/263ria.md" +133 -0
  2. package/.genesis/prompts/prompt-sauron-update-intelligence.md +20 -0
  3. package/README.md +4 -2
  4. package/dist/index.js +59 -15
  5. package/package.json +1 -1
  6. package/templates/.agents/rules/memory.md +68 -68
  7. package/templates/.agents/skills/wiki/SKILL.md +14 -14
  8. package/55ea973d-e255-4f08-a313-a5d68243bd2d.png +0 -0
  9. package/OpenSpec-main/.actrc +0 -1
  10. package/OpenSpec-main/.changeset/README.md +0 -97
  11. package/OpenSpec-main/.changeset/config.json +0 -15
  12. package/OpenSpec-main/.coderabbit.yaml +0 -11
  13. package/OpenSpec-main/.devcontainer/README.md +0 -92
  14. package/OpenSpec-main/.devcontainer/devcontainer.json +0 -68
  15. package/OpenSpec-main/.github/CODEOWNERS +0 -2
  16. package/OpenSpec-main/.github/workflows/README.md +0 -20
  17. package/OpenSpec-main/.github/workflows/ci.yml +0 -346
  18. package/OpenSpec-main/.github/workflows/release-prepare.yml +0 -60
  19. package/OpenSpec-main/CHANGELOG.md +0 -594
  20. package/OpenSpec-main/LICENSE +0 -22
  21. package/OpenSpec-main/MAINTAINERS.md +0 -17
  22. package/OpenSpec-main/README.md +0 -206
  23. package/OpenSpec-main/README_OLD.md +0 -475
  24. package/OpenSpec-main/assets/openspec_bg.png +0 -0
  25. package/OpenSpec-main/assets/openspec_dashboard.png +0 -0
  26. package/OpenSpec-main/assets/openspec_pixel_dark.svg +0 -89
  27. package/OpenSpec-main/assets/openspec_pixel_light.svg +0 -89
  28. package/OpenSpec-main/bin/openspec.js +0 -5
  29. package/OpenSpec-main/build.js +0 -31
  30. package/OpenSpec-main/eslint.config.js +0 -42
  31. package/OpenSpec-main/flake.lock +0 -27
  32. package/OpenSpec-main/flake.nix +0 -114
  33. package/OpenSpec-main/openspec/changes/IMPLEMENTATION_ORDER.md +0 -68
  34. package/OpenSpec-main/openspec/changes/add-artifact-regeneration-support/proposal.md +0 -136
  35. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/.openspec.yaml +0 -2
  36. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/proposal.md +0 -93
  37. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/change-creation/spec.md +0 -15
  38. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/change-stacking-workflow/spec.md +0 -65
  39. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/cli-change/spec.md +0 -27
  40. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/openspec-conventions/spec.md +0 -29
  41. package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/tasks.md +0 -39
  42. package/OpenSpec-main/openspec/changes/add-global-install-scope/.openspec.yaml +0 -2
  43. package/OpenSpec-main/openspec/changes/add-global-install-scope/design.md +0 -161
  44. package/OpenSpec-main/openspec/changes/add-global-install-scope/proposal.md +0 -101
  45. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/ai-tool-paths/spec.md +0 -35
  46. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-config/spec.md +0 -21
  47. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-init/spec.md +0 -28
  48. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-update/spec.md +0 -34
  49. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/command-generation/spec.md +0 -22
  50. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/global-config/spec.md +0 -24
  51. package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/installation-scope/spec.md +0 -71
  52. package/OpenSpec-main/openspec/changes/add-global-install-scope/tasks.md +0 -61
  53. package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/.openspec.yaml +0 -2
  54. package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/proposal.md +0 -45
  55. package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/specs/developer-qa-workflow/spec.md +0 -49
  56. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/.openspec.yaml +0 -2
  57. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/proposal.md +0 -111
  58. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/specs/cli-init/spec.md +0 -121
  59. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/specs/cli-update/spec.md +0 -48
  60. package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/tasks.md +0 -53
  61. package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/design.md +0 -86
  62. package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/proposal.md +0 -29
  63. package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/specs/cli-update/spec.md +0 -59
  64. package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/tasks.md +0 -20
  65. package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/proposal.md +0 -20
  66. package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/specs/cli-list/spec.md +0 -69
  67. package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/tasks.md +0 -26
  68. package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/design.md +0 -64
  69. package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/proposal.md +0 -18
  70. package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/tasks.md +0 -25
  71. package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/design.md +0 -104
  72. package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/proposal.md +0 -30
  73. package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/specs/cli-init/spec.md +0 -148
  74. package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/tasks.md +0 -38
  75. package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/proposal.md +0 -24
  76. package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/specs/openspec-conventions/spec.md +0 -120
  77. package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/tasks.md +0 -38
  78. package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/proposal.md +0 -13
  79. package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/specs/openspec-docs/README.md +0 -472
  80. package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/tasks.md +0 -9
  81. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/proposal.md +0 -15
  82. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/specs/cli-archive/spec.md +0 -111
  83. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/tasks.md +0 -44
  84. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/proposal.md +0 -19
  85. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/specs/cli-diff/spec.md +0 -77
  86. package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/tasks.md +0 -23
  87. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/design.md +0 -56
  88. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/proposal.md +0 -17
  89. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-change/spec.md +0 -48
  90. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-list/spec.md +0 -12
  91. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/tasks.md +0 -34
  92. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/proposal.md +0 -20
  93. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-change/spec.md +0 -23
  94. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-show/spec.md +0 -83
  95. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-spec/spec.md +0 -23
  96. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/tasks.md +0 -142
  97. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/proposal.md +0 -13
  98. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/specs/cli-archive/spec.md +0 -191
  99. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/tasks.md +0 -57
  100. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/design.md +0 -45
  101. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/proposal.md +0 -19
  102. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/specs/cli-spec/spec.md +0 -43
  103. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/tasks.md +0 -22
  104. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/design.md +0 -104
  105. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/proposal.md +0 -22
  106. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-archive/spec.md +0 -18
  107. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-diff/spec.md +0 -12
  108. package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/tasks.md +0 -59
  109. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/proposal.md +0 -93
  110. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-archive/spec.md +0 -48
  111. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-diff/spec.md +0 -45
  112. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/openspec-conventions/spec.md +0 -101
  113. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/tasks.md +0 -55
  114. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/design.md +0 -19
  115. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/proposal.md +0 -67
  116. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/cli-list/spec.md +0 -57
  117. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/openspec-conventions/spec.md +0 -23
  118. package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/tasks.md +0 -27
  119. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/proposal.md +0 -20
  120. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-change/spec.md +0 -22
  121. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-spec/spec.md +0 -23
  122. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-validate/spec.md +0 -149
  123. package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/tasks.md +0 -81
  124. package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/proposal.md +0 -40
  125. package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/specs/cli-update/spec.md +0 -23
  126. package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/tasks.md +0 -21
  127. package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/proposal.md +0 -25
  128. package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/specs/cli-validate/spec.md +0 -55
  129. package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/tasks.md +0 -21
  130. package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/proposal.md +0 -36
  131. package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/specs/openspec-conventions/spec.md +0 -192
  132. package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/tasks.md +0 -19
  133. package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/proposal.md +0 -38
  134. package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/specs/cli-view/spec.md +0 -109
  135. package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/tasks.md +0 -47
  136. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/proposal.md +0 -28
  137. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-init/spec.md +0 -71
  138. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-update/spec.md +0 -41
  139. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/tasks.md +0 -17
  140. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/proposal.md +0 -35
  141. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/specs/cli-init/spec.md +0 -45
  142. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/tasks.md +0 -16
  143. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/proposal.md +0 -119
  144. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-init/spec.md +0 -21
  145. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-update/spec.md +0 -22
  146. package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/tasks.md +0 -20
  147. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/proposal.md +0 -19
  148. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/tasks.md +0 -9
  149. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-deterministic-tests/proposal.md +0 -78
  150. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-deterministic-tests/tasks.md +0 -25
  151. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/proposal.md +0 -13
  152. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/specs/cli-init/spec.md +0 -92
  153. package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/tasks.md +0 -12
  154. package/OpenSpec-main/openspec/changes/archive/2025-09-29-remove-diff-command/proposal.md +0 -81
  155. package/OpenSpec-main/openspec/changes/archive/2025-09-29-remove-diff-command/tasks.md +0 -37
  156. package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/proposal.md +0 -25
  157. package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/specs/cli-view/spec.md +0 -9
  158. package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/tasks.md +0 -8
  159. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/proposal.md +0 -29
  160. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-init/spec.md +0 -40
  161. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-update/spec.md +0 -22
  162. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/openspec-conventions/spec.md +0 -27
  163. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/tasks.md +0 -22
  164. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/design.md +0 -130
  165. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/proposal.md +0 -117
  166. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/tasks.md +0 -69
  167. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/proposal.md +0 -19
  168. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/specs/cli-validate/spec.md +0 -9
  169. package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/tasks.md +0 -11
  170. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/proposal.md +0 -25
  171. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-init/spec.md +0 -56
  172. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-update/spec.md +0 -41
  173. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/tasks.md +0 -19
  174. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/proposal.md +0 -25
  175. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-init/spec.md +0 -48
  176. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-update/spec.md +0 -48
  177. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/tasks.md +0 -30
  178. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/proposal.md +0 -17
  179. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-init/spec.md +0 -43
  180. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-update/spec.md +0 -27
  181. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/tasks.md +0 -15
  182. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/proposal.md +0 -12
  183. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/specs/cli-init/spec.md +0 -39
  184. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/tasks.md +0 -17
  185. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/proposal.md +0 -17
  186. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-init/spec.md +0 -42
  187. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-update/spec.md +0 -27
  188. package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/tasks.md +0 -17
  189. package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/proposal.md +0 -12
  190. package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/specs/cli-validate/spec.md +0 -39
  191. package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/tasks.md +0 -12
  192. package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/proposal.md +0 -12
  193. package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/specs/docs-agent-instructions/spec.md +0 -33
  194. package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/tasks.md +0 -11
  195. package/OpenSpec-main/openspec/changes/archive/2025-10-14-slim-root-agents-file/proposal.md +0 -13
  196. package/OpenSpec-main/openspec/changes/archive/2025-10-14-slim-root-agents-file/tasks.md +0 -15
  197. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/proposal.md +0 -14
  198. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/specs/cli-init/spec.md +0 -10
  199. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/tasks.md +0 -8
  200. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/proposal.md +0 -15
  201. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-init/spec.md +0 -32
  202. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-update/spec.md +0 -10
  203. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/tasks.md +0 -11
  204. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md +0 -49
  205. package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-release-automation/tasks.md +0 -12
  206. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/proposal.md +0 -17
  207. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md +0 -32
  208. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md +0 -15
  209. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/proposal.md +0 -15
  210. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md +0 -97
  211. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/tasks.md +0 -19
  212. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/proposal.md +0 -13
  213. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md +0 -67
  214. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/tasks.md +0 -7
  215. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/proposal.md +0 -12
  216. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-init/spec.md +0 -54
  217. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-update/spec.md +0 -54
  218. package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/tasks.md +0 -11
  219. package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/design.md +0 -525
  220. package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/proposal.md +0 -29
  221. package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/specs/cli-completion/spec.md +0 -300
  222. package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/tasks.md +0 -81
  223. package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/design.md +0 -105
  224. package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/proposal.md +0 -20
  225. package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/specs/global-config/spec.md +0 -76
  226. package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/tasks.md +0 -26
  227. package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/design.md +0 -89
  228. package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/proposal.md +0 -60
  229. package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/specs/cli-config/spec.md +0 -213
  230. package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/tasks.md +0 -28
  231. package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/proposal.md +0 -15
  232. package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/specs/cli-completion/spec.md +0 -328
  233. package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/tasks.md +0 -49
  234. package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/design.md +0 -197
  235. package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/proposal.md +0 -18
  236. package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/specs/artifact-graph/spec.md +0 -103
  237. package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/tasks.md +0 -61
  238. package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/design.md +0 -74
  239. package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/proposal.md +0 -45
  240. package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/specs/change-creation/spec.md +0 -63
  241. package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/tasks.md +0 -30
  242. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/design.md +0 -112
  243. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/proposal.md +0 -33
  244. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/specs/cli-artifact-workflow/spec.md +0 -153
  245. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/tasks.md +0 -48
  246. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/design.md +0 -149
  247. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/proposal.md +0 -20
  248. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/specs/instruction-loader/spec.md +0 -70
  249. package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/tasks.md +0 -13
  250. package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/design.md +0 -129
  251. package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/proposal.md +0 -20
  252. package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/specs/artifact-graph/spec.md +0 -49
  253. package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/tasks.md +0 -32
  254. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/design.md +0 -151
  255. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/proposal.md +0 -101
  256. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/specs/cli-artifact-workflow/spec.md +0 -109
  257. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/specs/cli-view/spec.md +0 -60
  258. package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/tasks.md +0 -25
  259. package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/proposal.md +0 -11
  260. package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/specs/cli-init/spec.md +0 -105
  261. package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/specs/cli-update/spec.md +0 -92
  262. package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/tasks.md +0 -12
  263. package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/proposal.md +0 -13
  264. package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/specs/cli-init/spec.md +0 -105
  265. package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/specs/cli-update/spec.md +0 -92
  266. package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/tasks.md +0 -13
  267. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-agent-schema-selection/proposal.md +0 -26
  268. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-agent-schema-selection/tasks.md +0 -32
  269. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/design.md +0 -147
  270. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/proposal.md +0 -29
  271. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/specs/cli-artifact-workflow/spec.md +0 -98
  272. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/tasks.md +0 -29
  273. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/.openspec.yaml +0 -2
  274. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/design.md +0 -77
  275. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/proposal.md +0 -32
  276. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/specs/specs-sync-skill/spec.md +0 -67
  277. package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/tasks.md +0 -40
  278. package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/proposal.md +0 -138
  279. package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/specs/cli-artifact-workflow/spec.md +0 -60
  280. package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/tasks.md +0 -35
  281. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/.openspec.yaml +0 -2
  282. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/design.md +0 -84
  283. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/proposal.md +0 -28
  284. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/specs/opsx-archive-skill/spec.md +0 -122
  285. package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/tasks.md +0 -23
  286. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/.openspec.yaml +0 -2
  287. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/design.md +0 -94
  288. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/proposal.md +0 -25
  289. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/specs/nix-flake-support/spec.md +0 -79
  290. package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/tasks.md +0 -65
  291. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/.openspec.yaml +0 -2
  292. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/design.md +0 -117
  293. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/proposal.md +0 -23
  294. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/specs/flake-update-script/spec.md +0 -93
  295. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/tasks.md +0 -55
  296. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/.openspec.yaml +0 -2
  297. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/design.md +0 -175
  298. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/proposal.md +0 -37
  299. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/specs/global-config/spec.md +0 -21
  300. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/specs/telemetry/spec.md +0 -116
  301. package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/tasks.md +0 -47
  302. package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/proposal.md +0 -16
  303. package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/specs/cli-init/spec.md +0 -75
  304. package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/specs/cli-update/spec.md +0 -56
  305. package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/tasks.md +0 -6
  306. package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/design.md +0 -206
  307. package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/proposal.md +0 -21
  308. package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/specs/ci-nix-validation/spec.md +0 -104
  309. package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/tasks.md +0 -49
  310. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/.openspec.yaml +0 -2
  311. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/README.md +0 -3
  312. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/design.md +0 -70
  313. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/proposal.md +0 -32
  314. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/specs/no-changes.md +0 -9
  315. package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/tasks.md +0 -22
  316. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/proposal.md +0 -20
  317. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/specs/cli-feedback/spec.md +0 -188
  318. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/tasks.md +0 -30
  319. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/.openspec.yaml +0 -2
  320. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/design.md +0 -115
  321. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/proposal.md +0 -27
  322. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/specs/opsx-onboard-skill/spec.md +0 -162
  323. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/tasks.md +0 -21
  324. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/design.md +0 -96
  325. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/proposal.md +0 -48
  326. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/specs/opsx-verify-skill/spec.md +0 -190
  327. package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/tasks.md +0 -15
  328. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/.openspec.yaml +0 -2
  329. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/design.md +0 -193
  330. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/proposal.md +0 -32
  331. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/specs/cli-init/spec.md +0 -176
  332. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/specs/legacy-cleanup/spec.md +0 -158
  333. package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/tasks.md +0 -67
  334. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/.openspec.yaml +0 -2
  335. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/design.md +0 -144
  336. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/proposal.md +0 -36
  337. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/ai-tool-paths/spec.md +0 -63
  338. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/cli-artifact-workflow/spec.md +0 -60
  339. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/command-generation/spec.md +0 -98
  340. package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/tasks.md +0 -55
  341. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/.openspec.yaml +0 -2
  342. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/design.md +0 -665
  343. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/proposal.md +0 -774
  344. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/config-loading/spec.md +0 -119
  345. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/context-injection/spec.md +0 -51
  346. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/rules-injection/spec.md +0 -99
  347. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/schema-resolution/spec.md +0 -83
  348. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/tasks.md +0 -72
  349. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/.openspec.yaml +0 -2
  350. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/design.md +0 -117
  351. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/proposal.md +0 -167
  352. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/specs/schema-resolution/spec.md +0 -88
  353. package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/tasks.md +0 -28
  354. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/.openspec.yaml +0 -2
  355. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/design.md +0 -113
  356. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/proposal.md +0 -55
  357. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-fork-command/spec.md +0 -66
  358. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-init-command/spec.md +0 -71
  359. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-validate-command/spec.md +0 -86
  360. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-which-command/spec.md +0 -65
  361. package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/tasks.md +0 -67
  362. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml +0 -2
  363. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md +0 -3
  364. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md +0 -85
  365. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md +0 -38
  366. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md +0 -12
  367. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md +0 -37
  368. package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md +0 -22
  369. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/design.md +0 -208
  370. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/proposal.md +0 -142
  371. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/specs/openspec-conventions/spec.md +0 -29
  372. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/specs/workspace-foundation/spec.md +0 -199
  373. package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/tasks.md +0 -56
  374. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/design.md +0 -356
  375. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/proposal.md +0 -128
  376. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/cli-artifact-workflow/spec.md +0 -24
  377. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/workspace-foundation/spec.md +0 -35
  378. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/workspace-links/spec.md +0 -356
  379. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/tasks.md +0 -121
  380. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/design.md +0 -266
  381. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/proposal.md +0 -65
  382. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/specs/workspace-foundation/spec.md +0 -76
  383. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/specs/workspace-open/spec.md +0 -199
  384. package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/tasks.md +0 -89
  385. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/design.md +0 -242
  386. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/proposal.md +0 -78
  387. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/artifact-graph/spec.md +0 -36
  388. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/change-creation/spec.md +0 -42
  389. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-artifact-workflow/spec.md +0 -100
  390. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-config/spec.md +0 -55
  391. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-update/spec.md +0 -21
  392. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/openspec-conventions/spec.md +0 -32
  393. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/schema-resolution/spec.md +0 -25
  394. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/workspace-change-planning/spec.md +0 -67
  395. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/workspace-links/spec.md +0 -163
  396. package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/tasks.md +0 -133
  397. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/.openspec.yaml +0 -2
  398. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/design.md +0 -48
  399. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/proposal.md +0 -26
  400. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/specs/command-generation/spec.md +0 -63
  401. package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/tasks.md +0 -19
  402. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/.openspec.yaml +0 -2
  403. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/design.md +0 -38
  404. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/proposal.md +0 -25
  405. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/specs/graceful-status-empty/spec.md +0 -27
  406. package/OpenSpec-main/openspec/changes/graceful-status-no-changes/tasks.md +0 -16
  407. package/OpenSpec-main/openspec/changes/schema-alias-support/.openspec.yaml +0 -2
  408. package/OpenSpec-main/openspec/changes/schema-alias-support/proposal.md +0 -28
  409. package/OpenSpec-main/openspec/changes/simplify-skill-installation/.openspec.yaml +0 -2
  410. package/OpenSpec-main/openspec/changes/simplify-skill-installation/design.md +0 -288
  411. package/OpenSpec-main/openspec/changes/simplify-skill-installation/proposal.md +0 -202
  412. package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/cli-init/spec.md +0 -199
  413. package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/cli-update/spec.md +0 -177
  414. package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/profiles/spec.md +0 -142
  415. package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/propose-workflow/spec.md +0 -42
  416. package/OpenSpec-main/openspec/changes/simplify-skill-installation/tasks.md +0 -132
  417. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/.openspec.yaml +0 -2
  418. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/design.md +0 -149
  419. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/proposal.md +0 -47
  420. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/specs/template-artifact-pipeline/spec.md +0 -89
  421. package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/tasks.md +0 -41
  422. package/OpenSpec-main/openspec/changes/workspace-agent-guidance/.openspec.yaml +0 -2
  423. package/OpenSpec-main/openspec/changes/workspace-agent-guidance/proposal.md +0 -100
  424. package/OpenSpec-main/openspec/changes/workspace-apply-repo-slice/proposal.md +0 -58
  425. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/HISTORICAL_DIRECTION.md +0 -511
  426. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/POC_REFERENCE_GUIDE.md +0 -266
  427. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/README.md +0 -107
  428. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/START_HERE.md +0 -105
  429. package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/proposal.md +0 -62
  430. package/OpenSpec-main/openspec/changes/workspace-verify-and-archive/proposal.md +0 -57
  431. package/OpenSpec-main/openspec/config.yaml +0 -36
  432. package/OpenSpec-main/openspec/explorations/explore-workflow-ux.md +0 -116
  433. package/OpenSpec-main/openspec/explorations/workspace-architecture.md +0 -857
  434. package/OpenSpec-main/openspec/explorations/workspace-roadmap.md +0 -367
  435. package/OpenSpec-main/openspec/explorations/workspace-user-journeys.md +0 -2259
  436. package/OpenSpec-main/openspec/explorations/workspace-ux-simplification.md +0 -491
  437. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/.initiative.yaml +0 -27
  438. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/README.md +0 -33
  439. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/decisions.md +0 -204
  440. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/direction.md +0 -447
  441. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/questions.md +0 -23
  442. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/roadmap.md +0 -759
  443. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/tasks.md +0 -308
  444. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/evidence.md +0 -154
  445. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/plan.md +0 -90
  446. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/tasks.md +0 -44
  447. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/evidence.md +0 -68
  448. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/plan.md +0 -80
  449. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/tasks.md +0 -23
  450. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/evidence.md +0 -43
  451. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/plan.md +0 -85
  452. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/tasks.md +0 -17
  453. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/evidence.md +0 -77
  454. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/plan.md +0 -198
  455. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/tasks.md +0 -14
  456. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/evidence.md +0 -99
  457. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/plan.md +0 -236
  458. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/tasks.md +0 -21
  459. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/evidence.md +0 -97
  460. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/plan.md +0 -333
  461. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/tasks.md +0 -29
  462. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/evidence.md +0 -97
  463. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/plan.md +0 -184
  464. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/tasks.md +0 -27
  465. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/evidence.md +0 -239
  466. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/plan.md +0 -279
  467. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/tasks.md +0 -22
  468. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/decision-review.md +0 -64
  469. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/evidence.md +0 -106
  470. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/plan.md +0 -141
  471. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/tasks.md +0 -22
  472. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/10-let-workspaces-open-initiatives/plan.md +0 -430
  473. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/10-let-workspaces-open-initiatives/tasks.md +0 -43
  474. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/notes.md +0 -289
  475. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/plan.md +0 -39
  476. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/tasks.md +0 -8
  477. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/evidence.md +0 -45
  478. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/plan.md +0 -150
  479. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/tasks.md +0 -23
  480. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/evidence.md +0 -25
  481. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/plan.md +0 -98
  482. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/tasks.md +0 -25
  483. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/14-workspaces-beta-guide-split/plan.md +0 -37
  484. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/14-workspaces-beta-guide-split/tasks.md +0 -9
  485. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/evidence.md +0 -140
  486. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/plan.md +0 -344
  487. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/tasks.md +0 -39
  488. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/16-add-escalation-ux/plan.md +0 -26
  489. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/16-add-escalation-ux/tasks.md +0 -7
  490. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/17-harden-team-shared-coordination/plan.md +0 -25
  491. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/17-harden-team-shared-coordination/tasks.md +0 -7
  492. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/evidence.md +0 -397
  493. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/plan.md +0 -180
  494. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/tasks.md +0 -28
  495. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/19-review-workspace-beta-compatibility-before-public-release/plan.md +0 -62
  496. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/19-review-workspace-beta-compatibility-before-public-release/tasks.md +0 -16
  497. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/evidence.md +0 -47
  498. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/plan.md +0 -90
  499. package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/tasks.md +0 -18
  500. package/OpenSpec-main/openspec/specs/ai-tool-paths/spec.md +0 -63
  501. package/OpenSpec-main/openspec/specs/artifact-graph/spec.md +0 -165
  502. package/OpenSpec-main/openspec/specs/change-creation/spec.md +0 -108
  503. package/OpenSpec-main/openspec/specs/ci-nix-validation/spec.md +0 -107
  504. package/OpenSpec-main/openspec/specs/cli-archive/spec.md +0 -210
  505. package/OpenSpec-main/openspec/specs/cli-artifact-workflow/spec.md +0 -398
  506. package/OpenSpec-main/openspec/specs/cli-change/spec.md +0 -92
  507. package/OpenSpec-main/openspec/specs/cli-completion/spec.md +0 -432
  508. package/OpenSpec-main/openspec/specs/cli-config/spec.md +0 -318
  509. package/OpenSpec-main/openspec/specs/cli-feedback/spec.md +0 -193
  510. package/OpenSpec-main/openspec/specs/cli-init/spec.md +0 -269
  511. package/OpenSpec-main/openspec/specs/cli-list/spec.md +0 -103
  512. package/OpenSpec-main/openspec/specs/cli-show/spec.md +0 -86
  513. package/OpenSpec-main/openspec/specs/cli-spec/spec.md +0 -88
  514. package/OpenSpec-main/openspec/specs/cli-update/spec.md +0 -229
  515. package/OpenSpec-main/openspec/specs/cli-validate/spec.md +0 -219
  516. package/OpenSpec-main/openspec/specs/cli-view/spec.md +0 -129
  517. package/OpenSpec-main/openspec/specs/command-generation/spec.md +0 -97
  518. package/OpenSpec-main/openspec/specs/config-loading/spec.md +0 -122
  519. package/OpenSpec-main/openspec/specs/context-injection/spec.md +0 -53
  520. package/OpenSpec-main/openspec/specs/docs-agent-instructions/spec.md +0 -62
  521. package/OpenSpec-main/openspec/specs/global-config/spec.md +0 -101
  522. package/OpenSpec-main/openspec/specs/instruction-loader/spec.md +0 -70
  523. package/OpenSpec-main/openspec/specs/legacy-cleanup/spec.md +0 -163
  524. package/OpenSpec-main/openspec/specs/openspec-conventions/spec.md +0 -556
  525. package/OpenSpec-main/openspec/specs/opsx-archive-skill/spec.md +0 -128
  526. package/OpenSpec-main/openspec/specs/opsx-onboard-skill/spec.md +0 -167
  527. package/OpenSpec-main/openspec/specs/opsx-verify-skill/spec.md +0 -189
  528. package/OpenSpec-main/openspec/specs/rules-injection/spec.md +0 -102
  529. package/OpenSpec-main/openspec/specs/schema-fork-command/spec.md +0 -71
  530. package/OpenSpec-main/openspec/specs/schema-init-command/spec.md +0 -76
  531. package/OpenSpec-main/openspec/specs/schema-resolution/spec.md +0 -201
  532. package/OpenSpec-main/openspec/specs/schema-validate-command/spec.md +0 -91
  533. package/OpenSpec-main/openspec/specs/schema-which-command/spec.md +0 -70
  534. package/OpenSpec-main/openspec/specs/specs-sync-skill/spec.md +0 -72
  535. package/OpenSpec-main/openspec/specs/telemetry/spec.md +0 -122
  536. package/OpenSpec-main/openspec/specs/workspace-change-planning/spec.md +0 -71
  537. package/OpenSpec-main/openspec/specs/workspace-foundation/spec.md +0 -279
  538. package/OpenSpec-main/openspec/specs/workspace-links/spec.md +0 -529
  539. package/OpenSpec-main/openspec/specs/workspace-open/spec.md +0 -205
  540. package/OpenSpec-main/openspec-parallel-merge-plan.md +0 -98
  541. package/OpenSpec-main/package-lock.json +0 -4978
  542. package/OpenSpec-main/package.json +0 -84
  543. package/OpenSpec-main/pnpm-lock.yaml +0 -3187
  544. package/OpenSpec-main/schemas/spec-driven/schema.yaml +0 -153
  545. package/OpenSpec-main/schemas/spec-driven/templates/design.md +0 -19
  546. package/OpenSpec-main/schemas/spec-driven/templates/proposal.md +0 -23
  547. package/OpenSpec-main/schemas/spec-driven/templates/spec.md +0 -8
  548. package/OpenSpec-main/schemas/spec-driven/templates/tasks.md +0 -9
  549. package/OpenSpec-main/schemas/workspace-planning/schema.yaml +0 -72
  550. package/OpenSpec-main/schemas/workspace-planning/templates/design.md +0 -33
  551. package/OpenSpec-main/schemas/workspace-planning/templates/proposal.md +0 -28
  552. package/OpenSpec-main/schemas/workspace-planning/templates/spec.md +0 -9
  553. package/OpenSpec-main/schemas/workspace-planning/templates/tasks.md +0 -15
  554. package/OpenSpec-main/scripts/README.md +0 -37
  555. package/OpenSpec-main/scripts/pack-version-check.mjs +0 -111
  556. package/OpenSpec-main/scripts/postinstall.js +0 -83
  557. package/OpenSpec-main/scripts/test-postinstall.sh +0 -57
  558. package/OpenSpec-main/scripts/update-flake.sh +0 -128
  559. package/OpenSpec-main/test/cli-e2e/basic.test.ts +0 -205
  560. package/OpenSpec-main/test/commands/artifact-workflow.test.ts +0 -1063
  561. package/OpenSpec-main/test/commands/change-initiative-link.test.ts +0 -532
  562. package/OpenSpec-main/test/commands/change.interactive-show.test.ts +0 -45
  563. package/OpenSpec-main/test/commands/change.interactive-validate.test.ts +0 -48
  564. package/OpenSpec-main/test/commands/completion.test.ts +0 -278
  565. package/OpenSpec-main/test/commands/config-profile.test.ts +0 -532
  566. package/OpenSpec-main/test/commands/config.test.ts +0 -285
  567. package/OpenSpec-main/test/commands/context-store.test.ts +0 -692
  568. package/OpenSpec-main/test/commands/feedback.test.ts +0 -429
  569. package/OpenSpec-main/test/commands/initiative.test.ts +0 -907
  570. package/OpenSpec-main/test/commands/schema.test.ts +0 -467
  571. package/OpenSpec-main/test/commands/show.test.ts +0 -123
  572. package/OpenSpec-main/test/commands/spec.interactive-show.test.ts +0 -44
  573. package/OpenSpec-main/test/commands/spec.interactive-validate.test.ts +0 -44
  574. package/OpenSpec-main/test/commands/spec.test.ts +0 -324
  575. package/OpenSpec-main/test/commands/validate.enriched-output.test.ts +0 -49
  576. package/OpenSpec-main/test/commands/validate.test.ts +0 -147
  577. package/OpenSpec-main/test/commands/workspace-initiative-open.test.ts +0 -638
  578. package/OpenSpec-main/test/commands/workspace-open.test.ts +0 -123
  579. package/OpenSpec-main/test/commands/workspace.interactive.test.ts +0 -696
  580. package/OpenSpec-main/test/commands/workspace.test.ts +0 -1812
  581. package/OpenSpec-main/test/core/archive.test.ts +0 -869
  582. package/OpenSpec-main/test/core/artifact-graph/graph.test.ts +0 -268
  583. package/OpenSpec-main/test/core/artifact-graph/instruction-loader.test.ts +0 -609
  584. package/OpenSpec-main/test/core/artifact-graph/outputs.test.ts +0 -175
  585. package/OpenSpec-main/test/core/artifact-graph/resolver.test.ts +0 -651
  586. package/OpenSpec-main/test/core/artifact-graph/schema.test.ts +0 -207
  587. package/OpenSpec-main/test/core/artifact-graph/state.test.ts +0 -174
  588. package/OpenSpec-main/test/core/artifact-graph/workflow.integration.test.ts +0 -182
  589. package/OpenSpec-main/test/core/available-tools.test.ts +0 -167
  590. package/OpenSpec-main/test/core/collections/initiatives/operations.test.ts +0 -342
  591. package/OpenSpec-main/test/core/collections/initiatives/resolution.test.ts +0 -21
  592. package/OpenSpec-main/test/core/collections/initiatives/schema.test.ts +0 -201
  593. package/OpenSpec-main/test/core/collections/initiatives/templates.test.ts +0 -74
  594. package/OpenSpec-main/test/core/collections/runtime.test.ts +0 -214
  595. package/OpenSpec-main/test/core/command-generation/adapters.test.ts +0 -710
  596. package/OpenSpec-main/test/core/command-generation/generator.test.ts +0 -110
  597. package/OpenSpec-main/test/core/command-generation/registry.test.ts +0 -108
  598. package/OpenSpec-main/test/core/command-generation/types.test.ts +0 -79
  599. package/OpenSpec-main/test/core/commands/change-command.list.test.ts +0 -76
  600. package/OpenSpec-main/test/core/commands/change-command.show-validate.test.ts +0 -111
  601. package/OpenSpec-main/test/core/completions/command-registry.test.ts +0 -201
  602. package/OpenSpec-main/test/core/completions/completion-provider.test.ts +0 -288
  603. package/OpenSpec-main/test/core/completions/generators/bash-generator.test.ts +0 -586
  604. package/OpenSpec-main/test/core/completions/generators/fish-generator.test.ts +0 -549
  605. package/OpenSpec-main/test/core/completions/generators/powershell-generator.test.ts +0 -621
  606. package/OpenSpec-main/test/core/completions/generators/zsh-generator.test.ts +0 -425
  607. package/OpenSpec-main/test/core/completions/installers/bash-installer.test.ts +0 -484
  608. package/OpenSpec-main/test/core/completions/installers/fish-installer.test.ts +0 -321
  609. package/OpenSpec-main/test/core/completions/installers/powershell-installer.test.ts +0 -824
  610. package/OpenSpec-main/test/core/completions/installers/zsh-installer.test.ts +0 -750
  611. package/OpenSpec-main/test/core/config-schema.test.ts +0 -340
  612. package/OpenSpec-main/test/core/context-store/foundation.test.ts +0 -364
  613. package/OpenSpec-main/test/core/context-store/registry.test.ts +0 -599
  614. package/OpenSpec-main/test/core/converters/json-converter.test.ts +0 -184
  615. package/OpenSpec-main/test/core/global-config.test.ts +0 -371
  616. package/OpenSpec-main/test/core/init.test.ts +0 -786
  617. package/OpenSpec-main/test/core/legacy-cleanup.test.ts +0 -1162
  618. package/OpenSpec-main/test/core/list.test.ts +0 -165
  619. package/OpenSpec-main/test/core/migration.test.ts +0 -150
  620. package/OpenSpec-main/test/core/parsers/change-parser.test.ts +0 -52
  621. package/OpenSpec-main/test/core/parsers/markdown-parser.test.ts +0 -355
  622. package/OpenSpec-main/test/core/parsers/requirement-blocks.test.ts +0 -46
  623. package/OpenSpec-main/test/core/planning-home.test.ts +0 -120
  624. package/OpenSpec-main/test/core/profile-sync-drift.test.ts +0 -92
  625. package/OpenSpec-main/test/core/profiles.test.ts +0 -63
  626. package/OpenSpec-main/test/core/project-config.test.ts +0 -610
  627. package/OpenSpec-main/test/core/shared/skill-generation.test.ts +0 -301
  628. package/OpenSpec-main/test/core/shared/tool-detection.test.ts +0 -333
  629. package/OpenSpec-main/test/core/templates/skill-templates-parity.test.ts +0 -172
  630. package/OpenSpec-main/test/core/update.test.ts +0 -1810
  631. package/OpenSpec-main/test/core/validation.enriched-messages.test.ts +0 -74
  632. package/OpenSpec-main/test/core/validation.test.ts +0 -680
  633. package/OpenSpec-main/test/core/view.test.ts +0 -129
  634. package/OpenSpec-main/test/core/workspace/foundation.test.ts +0 -694
  635. package/OpenSpec-main/test/core/workspace/legacy-state.test.ts +0 -221
  636. package/OpenSpec-main/test/core/workspace/skills.test.ts +0 -69
  637. package/OpenSpec-main/test/fixtures/tmp-init/openspec/changes/c1/proposal.md +0 -7
  638. package/OpenSpec-main/test/fixtures/tmp-init/openspec/changes/c1/specs/alpha/spec.md +0 -8
  639. package/OpenSpec-main/test/fixtures/tmp-init/openspec/specs/alpha/spec.md +0 -12
  640. package/OpenSpec-main/test/helpers/path-env.ts +0 -26
  641. package/OpenSpec-main/test/helpers/run-cli.ts +0 -150
  642. package/OpenSpec-main/test/prompts/searchable-multi-select.test.ts +0 -220
  643. package/OpenSpec-main/test/specs/source-specs-normalization.test.ts +0 -63
  644. package/OpenSpec-main/test/telemetry/config.test.ts +0 -298
  645. package/OpenSpec-main/test/telemetry/index.test.ts +0 -219
  646. package/OpenSpec-main/test/utils/change-metadata.test.ts +0 -368
  647. package/OpenSpec-main/test/utils/change-utils.test.ts +0 -201
  648. package/OpenSpec-main/test/utils/command-references.test.ts +0 -83
  649. package/OpenSpec-main/test/utils/file-system.test.ts +0 -322
  650. package/OpenSpec-main/test/utils/interactive.test.ts +0 -125
  651. package/OpenSpec-main/test/utils/marker-updates.test.ts +0 -448
  652. package/OpenSpec-main/test/utils/shell-detection.test.ts +0 -185
  653. package/OpenSpec-main/vitest.config.ts +0 -47
  654. package/OpenSpec-main/vitest.setup.ts +0 -15
  655. package/Scanner CLI Inteligente para Projetos.md +0 -433
@@ -1,2259 +0,0 @@
1
- # Workspace User Journeys
2
-
3
- ## Purpose
4
-
5
- This document describes the exact user experience for OpenSpec across:
6
-
7
- 1. Single-repo projects
8
- 2. Monorepos
9
- 3. Large monorepos that behave like many repos
10
- 4. True multi-repo initiatives
11
-
12
- It is intentionally UX-first. The goal is to define:
13
-
14
- - Where the user starts
15
- - What commands they run
16
- - What the agent sees
17
- - Where artifacts are stored
18
- - How OpenSpec decides which specs to read
19
- - How OpenSpec behaves when roots are missing, ambiguous, or partially available
20
-
21
- This is a proposed UX model, not an implementation spec.
22
-
23
- ---
24
-
25
- ## The Core Mental Model
26
-
27
- Users should not need one mental model for repos and a separate mental model for monorepos.
28
-
29
- OpenSpec should operate on **scopes**.
30
-
31
- A scope is an owned planning and implementation boundary. Depending on the codebase, a scope may be:
32
-
33
- - an entire repo
34
- - a package or app inside a monorepo
35
- - a service inside a monorepo
36
- - a shared contracts area
37
- - another explicitly owned domain
38
-
39
- The user experience should be:
40
-
41
- - Pick the thing you want to change
42
- - Confirm which scopes are involved
43
- - OpenSpec reads only the relevant specs
44
- - OpenSpec stores each artifact in the owning place
45
- - If the work spans multiple owning places, OpenSpec creates a neutral coordination workspace
46
-
47
- ### Durable Objects
48
-
49
- There are three different durable objects:
50
-
51
- 1. **Spec**
52
- A canonical behavior contract. Always stored in the owning scope.
53
-
54
- 2. **Change**
55
- A repo-local or scope-local planning artifact. Stored with the owner of the implementation/spec delta.
56
-
57
- 3. **Initiative**
58
- A cross-scope coordination artifact. Only needed when work spans multiple owning roots. Stored in a neutral coordination workspace.
59
-
60
- The key rule is:
61
-
62
- > Canonical specs never move into the coordination workspace.
63
-
64
- The workspace coordinates. Owner roots remain canonical.
65
-
66
- ### Cross-Boundary Specs
67
-
68
- Some behaviors are true across multiple scopes, apps, or repos:
69
-
70
- - checkout behavior shared by web, iOS, Android, and backend
71
- - auth/session rules shared by app clients and API services
72
- - billing rules shared by invoices, payments, and reporting
73
- - privacy or audit guarantees shared across many systems
74
-
75
- These are not just "references between local specs." They are first-class shared contracts.
76
-
77
- OpenSpec should model them explicitly as:
78
-
79
- 1. **Canonical shared contract**
80
- A spec that defines what must be true across boundaries.
81
-
82
- 2. **Local implementation specs**
83
- Per-scope specs describing how each owner satisfies that contract locally.
84
-
85
- 3. **Initiative**
86
- A change or project to update the contract and its implementations together.
87
-
88
- The first-principles rule is:
89
-
90
- > A cross-boundary spec may have many consumers, but it must still have one canonical owner.
91
-
92
- If there is no owner yet, the shared behavior can live temporarily as an initiative note during exploration, but OpenSpec should not promote it into a canonical spec until ownership is explicit.
93
-
94
- ---
95
-
96
- ## UX Principles
97
-
98
- ### 1. Same top-level workflow everywhere
99
-
100
- Users should still recognize the existing OpenSpec workflow:
101
-
102
- - `openspec init`
103
- - `openspec update`
104
- - `/opsx:explore`
105
- - `/opsx:propose`
106
- - `/opsx:apply`
107
- - `/opsx:archive`
108
-
109
- The new behavior is that OpenSpec may ask:
110
-
111
- - "Which scope does this affect?"
112
- - "Does this span multiple owning roots?"
113
- - "Should I create a coordination workspace?"
114
-
115
- ### 2. No required upfront workspace registration
116
-
117
- Users should not have to pre-register all repos or modules just in case.
118
-
119
- OpenSpec should support:
120
-
121
- - ad hoc discovery
122
- - one-time local linking
123
- - optional saved workspaces later
124
-
125
- ### 3. Cross-root planning must have a neutral home
126
-
127
- If a change spans multiple repos, the planning artifact should not be forced into one repo.
128
-
129
- Instead, OpenSpec should create a neutral coordination workspace for the initiative.
130
-
131
- ### 4. Canonical storage follows ownership
132
-
133
- - Shared contract spec lives in the contract-owning scope
134
- - Web-specific spec lives in the web-owning scope
135
- - iOS-specific spec lives in the iOS-owning scope
136
- - Repo-local code tasks live in the repo-local change
137
-
138
- ### 5. References are informational
139
-
140
- Cross-scope or cross-repo `references` should initially be documentation-only.
141
-
142
- OpenSpec may surface them to users and agents, but should not require them to resolve or validate across roots in the first version.
143
-
144
- ### 6. Shared contracts need explicit ownership
145
-
146
- When the user describes behavior that spans multiple boundaries, OpenSpec should help them decide whether they are creating:
147
-
148
- - a local spec
149
- - a shared contract
150
- - an initiative note that is not yet canonical
151
-
152
- If the work is a real long-lived contract, OpenSpec should prompt for a canonical owner rather than burying it in whichever repo the user happened to be standing in.
153
-
154
- ### 7. Do not force "shared ownership" as implicit co-ownership
155
-
156
- OpenSpec should help teams create **shared contract ownership**, not ambiguous co-ownership.
157
-
158
- That means:
159
-
160
- - one scope or repo owns the canonical shared contract
161
- - other scopes consume and reference it
162
- - coordination workspace can summarize it
163
- - ownership and review routes stay legible
164
-
165
- ### 8. Use the current repo only as a starting point, not as truth
166
-
167
- When a user starts in `web-client` and describes a checkout behavior spanning web, iOS, Android, and backend, OpenSpec should treat the current cwd as a clue about likely consumers, not as proof that `web-client` should own the shared contract.
168
-
169
- ---
170
-
171
- ## Terms
172
-
173
- ### Project
174
-
175
- A single OpenSpec root where canonical specs and changes can live.
176
-
177
- In practice a project may be:
178
-
179
- - a repo root with `openspec/`
180
- - a monorepo root with one `openspec/`
181
- - a nested owned scope if OpenSpec later supports nested roots
182
-
183
- ### Scope
184
-
185
- A logical boundary inside or across projects. Scopes are what users pick during planning.
186
-
187
- Examples:
188
-
189
- - `repo`
190
- - `contracts/checkout`
191
- - `apps/web`
192
- - `services/billing`
193
- - `mobile/ios`
194
-
195
- ### Coordination Workspace
196
-
197
- A neutral directory used only for cross-root coordination. It stores initiative-level planning data and agent workspace instructions.
198
-
199
- Example:
200
-
201
- ```text
202
- ~/work/openspec-workspaces/add-3ds/
203
- .openspec-workspace/
204
- workspace.yaml
205
- initiative.md
206
- links.yaml
207
- agents/
208
- claude.md
209
- codex.md
210
- ```
211
-
212
- This coordination workspace may exist in two modes:
213
-
214
- 1. **Personal coordination workspace**
215
- A local directory used by one person for ad hoc or exploratory cross-root planning.
216
-
217
- 2. **Shared coordination workspace**
218
- A committed coordination repo or shared workspace used by a team or multiple teams.
219
-
220
- The UX should support both without changing the core mental model.
221
-
222
- ### Owning Root
223
-
224
- The repo or scope that canonically owns a spec, codebase area, or repo-local change.
225
-
226
- ### Shared Contract Owner
227
-
228
- The scope or repo that canonically owns a cross-boundary spec.
229
-
230
- This may be:
231
-
232
- - an existing shared contracts area inside a monorepo
233
- - an existing backend/API contract owner
234
- - a dedicated contracts repo
235
- - a new shared scope created as part of the planning flow
236
-
237
- This should not be an accidental consequence of where the user started the agent.
238
-
239
- ---
240
-
241
- ## Recommended File Shapes
242
-
243
- ### Single repo
244
-
245
- ```text
246
- repo/
247
- openspec/
248
- specs/
249
- changes/
250
- config.yaml
251
- ```
252
-
253
- ### Monorepo
254
-
255
- ```text
256
- monorepo/
257
- openspec/
258
- specs/
259
- changes/
260
- config.yaml
261
- apps/
262
- web/
263
- admin/
264
- services/
265
- billing/
266
- packages/
267
- contracts/
268
- ```
269
-
270
- Optional scope markers:
271
-
272
- ```text
273
- monorepo/
274
- apps/web/openspec.scope.yaml
275
- services/billing/openspec.scope.yaml
276
- packages/contracts/openspec.scope.yaml
277
- ```
278
-
279
- ### Multi-repo with coordination workspace
280
-
281
- ```text
282
- ~/work/
283
- contracts/
284
- openspec/
285
- web-client/
286
- openspec/
287
- ios-client/
288
- openspec/
289
- openspec-workspaces/
290
- add-3ds/
291
- .openspec-workspace/
292
- workspace.yaml
293
- initiative.md
294
- links.yaml
295
- agents/
296
- claude.md
297
- codex.md
298
- ```
299
-
300
- ---
301
-
302
- ## Discovery Model
303
-
304
- OpenSpec needs to answer two separate questions:
305
-
306
- 1. What scopes are involved?
307
- 2. Where are they on disk right now?
308
-
309
- These are not the same problem.
310
-
311
- ### Scope discovery
312
-
313
- OpenSpec discovers candidate scopes from:
314
-
315
- - the current repo root
316
- - `openspec/specs/**`
317
- - optional scope marker files
318
- - previous initiative metadata
319
- - explicit user selection
320
-
321
- ### Root resolution
322
-
323
- For multi-repo work, durable identifiers should not be raw paths.
324
-
325
- Stable project identifiers should look like:
326
-
327
- - `github.com/Fission-AI/web-client`
328
- - `github.com/Fission-AI/contracts`
329
-
330
- User shorthand may be accepted:
331
-
332
- - `Fission-AI/web-client`
333
- - `fission/web-client`
334
-
335
- OpenSpec resolves these to local paths using this order:
336
-
337
- 1. explicit path passed for this run
338
- 2. saved local OpenSpec registry
339
- 3. local git remote scanning
340
- 4. user prompt
341
-
342
- Relative paths like `../web-client` may be used as temporary hints for a single run, but should not be the durable identifier.
343
-
344
- ### Shared manifest vs local overlay
345
-
346
- For team use, OpenSpec should separate:
347
-
348
- 1. **Shared coordination state**
349
- Stable information that can be committed and shared with teammates.
350
-
351
- 2. **Local resolution state**
352
- Machine-specific path mappings and local availability.
353
-
354
- #### Shared coordination state should include
355
-
356
- - initiative ID and summary
357
- - stable project identifiers
358
- - selected scopes
359
- - linked repo-local change IDs
360
- - ownership metadata
361
- - rollout or sequencing notes
362
- - unresolved-but-known participating projects
363
-
364
- #### Local resolution state should include
365
-
366
- - local filesystem paths for project identifiers
367
- - local repo availability
368
- - local preferred clone among multiple matches
369
- - machine-specific agent attachment hints
370
-
371
- This separation is critical for a cohesive team story.
372
-
373
- Without it, coordination workspaces become either:
374
-
375
- - too local to share, or
376
- - polluted with machine-specific paths that break for teammates
377
-
378
- ---
379
-
380
- ## Team Collaboration Model
381
-
382
- This section describes how the same UX should scale from one person to a large org.
383
-
384
- ### Smallest unit: one user, one machine
385
-
386
- The user may create a local coordination workspace and keep everything local.
387
-
388
- This is fine for:
389
-
390
- - one-off cross-repo exploration
391
- - private planning before sharing
392
- - trying out a multi-repo idea
393
-
394
- ### Team unit: shared initiative
395
-
396
- Once cross-repo work becomes collaborative, the coordination workspace should be shareable and committed.
397
-
398
- That means:
399
-
400
- - initiative metadata is committed
401
- - ownership decisions are committed
402
- - linked changes are committed
403
- - local paths are not committed
404
-
405
- ### Cross-team unit: sponsored initiative
406
-
407
- When work spans teams, the initiative needs a clear coordination owner even if specs and code remain distributed.
408
-
409
- This is not the same as canonical spec ownership.
410
-
411
- There are now two distinct responsibilities:
412
-
413
- 1. **Shared contract owner**
414
- Owns the canonical cross-boundary spec.
415
-
416
- 2. **Initiative sponsor/driver**
417
- Owns the coordination process for the current change.
418
-
419
- These may be the same team, but they do not have to be.
420
-
421
- Examples:
422
-
423
- - Platform team sponsors rollout, auth team owns canonical auth contract
424
- - Payments team sponsors initiative, contracts repo owns canonical checkout contract
425
- - Mobile platform team sponsors app-wide migration, backend team owns API contract
426
-
427
- ### What we should tell teams
428
-
429
- OpenSpec should communicate this clearly:
430
-
431
- > If the work is collaborative, treat the coordination workspace as a lightweight shared planning repo or committed workspace. Commit stable initiative metadata there, and keep machine-specific repo path mappings local.
432
-
433
- This gives a clean answer to:
434
-
435
- - how do we share the cross-repo plan?
436
- - how do teammates open the same initiative?
437
- - how do people with different local clone layouts work on the same initiative?
438
-
439
- ---
440
-
441
- ## Ownership Decision Model
442
-
443
- This section answers a key product question:
444
-
445
- > How should a team or agent decide where a shared cross-boundary spec belongs?
446
-
447
- ### First-principles heuristic
448
-
449
- OpenSpec should help teams choose the owner that can most credibly do all of the following:
450
-
451
- 1. define the guarantee
452
- 2. review and approve changes to that guarantee
453
- 3. communicate the guarantee to consumers
454
- 4. absorb the coordination cost when the guarantee changes
455
-
456
- The owner is not necessarily:
457
-
458
- - the team that started the change
459
- - the frontend team
460
- - the backend team
461
- - the repo with the most code
462
-
463
- The owner is the boundary where the contract is most stable and most authoritative.
464
-
465
- ### Ownership decision questions
466
-
467
- When OpenSpec detects a likely shared contract, it should ask or infer from these questions:
468
-
469
- 1. Is this behavior meant to be true across multiple scopes for the long term?
470
- 2. Is it an external contract, an internal product rule, or an implementation detail?
471
- 3. Which team or scope can approve changes to this contract?
472
- 4. Which owner would consumers naturally look to as the source of truth?
473
- 5. Does a shared contract area already exist?
474
- 6. Will this contract likely outlive the current initiative?
475
-
476
- ### Recommended outcomes
477
-
478
- #### Outcome A: Existing owner already exists
479
-
480
- Example:
481
-
482
- - `packages/contracts/checkout` already exists in a monorepo
483
- - `contracts` repo already exists in multi-repo environment
484
-
485
- OpenSpec should default to that existing owner.
486
-
487
- #### Outcome B: Shared contract belongs in an existing domain owner
488
-
489
- Example:
490
-
491
- - an API request/response contract belongs with the API/backend owner
492
- - a shared auth token contract belongs with the auth platform owner
493
-
494
- OpenSpec should suggest that existing domain owner if there is no dedicated shared area.
495
-
496
- #### Outcome C: A new shared contract scope should be created
497
-
498
- Example:
499
-
500
- - checkout behavior is shared across several clients and services
501
- - no existing shared owner exists
502
- - this will likely recur and needs long-term governance
503
-
504
- OpenSpec should help create a new shared contract scope.
505
-
506
- #### Outcome D: Keep it as initiative-only for now
507
-
508
- Example:
509
-
510
- - the team is still exploring
511
- - the boundary is unclear
512
- - no one can yet answer who should own the canonical guarantee
513
-
514
- OpenSpec should allow the behavior to remain in initiative notes temporarily and explicitly mark it as non-canonical until ownership is chosen.
515
-
516
- ### What OpenSpec should suggest by default
517
-
518
- #### For monorepos
519
-
520
- Default suggestion order:
521
-
522
- 1. existing shared contract scope inside the monorepo
523
- 2. existing domain/platform owner
524
- 3. create a new shared scope inside the monorepo
525
- 4. keep as initiative-only until clarified
526
-
527
- #### For multi-repo environments
528
-
529
- Default suggestion order:
530
-
531
- 1. existing contracts/shared-specs repo
532
- 2. existing domain/platform repo that already owns the stable contract
533
- 3. create a dedicated shared contracts repo or scope
534
- 4. keep as initiative-only until clarified
535
-
536
- ### What OpenSpec should not do
537
-
538
- OpenSpec should not:
539
-
540
- - silently assign ownership to the repo where the user started
541
- - duplicate the canonical shared spec across all consumers
542
- - call something canonical when no owner was chosen
543
- - force teams into a central admin setup before they can plan
544
-
545
- ---
546
-
547
- ## Shared Contract Creation UX
548
-
549
- When the user describes a likely cross-boundary behavior, OpenSpec should treat this as a first-class planning moment.
550
-
551
- ### Detection cues
552
-
553
- Signals that a shared contract may be needed:
554
-
555
- - request mentions multiple platforms or repos
556
- - request mentions "shared", "common", "contract", "same behavior", "consistent across"
557
- - selected scopes include clients plus backend
558
- - no existing spec cleanly owns the described behavior
559
-
560
- ### Prompt shape
561
-
562
- During `/opsx:propose` or `/opsx:explore`, OpenSpec should ask something like:
563
-
564
- ```text
565
- This looks like behavior shared across multiple scopes:
566
- - web
567
- - iOS
568
- - Android
569
- - backend
570
-
571
- What kind of artifact is this?
572
- - A local change within one scope
573
- - A shared contract that multiple scopes must follow
574
- - An initiative note for now; ownership is not clear yet
575
- ```
576
-
577
- If the user chooses shared contract:
578
-
579
- ```text
580
- Where should the canonical shared contract live?
581
- - Existing shared contracts scope
582
- - Existing domain owner
583
- - Create a new shared contract scope
584
- - Decide later and keep this initiative-only for now
585
- ```
586
-
587
- ### Creating a new shared contract scope
588
-
589
- If the user chooses "create a new shared contract scope," OpenSpec should guide them.
590
-
591
- #### Monorepo
592
-
593
- Prompt feel:
594
-
595
- ```text
596
- Suggested new shared scopes:
597
- - openspec/specs/contracts/checkout
598
- - openspec/specs/shared/checkout
599
- - packages/contracts/checkout
600
-
601
- Who should own review for this contract?
602
- ```
603
-
604
- OpenSpec then:
605
-
606
- 1. creates the canonical shared spec in the chosen shared scope
607
- 2. records selected consumers
608
- 3. generates local references in consumer changes/specs if appropriate
609
-
610
- #### Multi-repo
611
-
612
- Prompt feel:
613
-
614
- ```text
615
- No shared contract owner exists yet.
616
-
617
- Choose where the canonical contract should live:
618
- - Create it in an existing contracts repo
619
- - Create a new shared contracts repo later; keep initiative-only for now
620
- - Assign it to an existing domain owner repo
621
- ```
622
-
623
- OpenSpec should avoid auto-creating a brand-new repo. It can scaffold the plan and record the decision, but repo creation may be organizationally sensitive and usually belongs outside the CLI.
624
-
625
- ### Temporary initiative-only mode
626
-
627
- If ownership is unclear, OpenSpec should support:
628
-
629
- - storing the shared behavior in the initiative workspace as a draft note
630
- - marking it explicitly as non-canonical
631
- - reminding users to promote it into a canonical shared contract before long-term adoption
632
-
633
- This is important because many teams discover the need for a shared contract while exploring, before they know how to govern it.
634
-
635
- ---
636
-
637
- ## Cohesive UX Across Team Size
638
-
639
- The product should feel like one system, not three separate features.
640
-
641
- ### The invariant workflow
642
-
643
- No matter the setting, the user experience should always reduce to this:
644
-
645
- 1. Start where you are
646
- 2. Describe the work
647
- 3. Confirm the affected scopes
648
- 4. Let OpenSpec determine whether this is:
649
- - local only
650
- - multi-scope in one root
651
- - cross-root coordination
652
- 5. OpenSpec creates artifacts in the right places
653
- 6. OpenSpec tells the user where to continue planning and where to implement
654
-
655
- ### What changes by scale
656
-
657
- #### Solo / single repo
658
-
659
- - entry point: repo root
660
- - shareability: not relevant
661
- - local-only storage is fine
662
-
663
- #### Solo / ad hoc multi-repo
664
-
665
- - entry point: local coordination workspace
666
- - shareability: optional
667
- - local path mappings are sufficient
668
-
669
- #### Team / collaborative multi-repo
670
-
671
- - entry point: shared coordination repo/workspace
672
- - shareability: required
673
- - stable manifest committed, local paths private
674
-
675
- #### Large org / cross-team initiative
676
-
677
- - entry point: shared coordination repo/workspace
678
- - sponsor/driver is explicit
679
- - shared contract ownership is explicit
680
- - some participating teams may only resolve a subset of roots locally
681
-
682
- ### What should remain consistent
683
-
684
- These things should not change with org size:
685
-
686
- - canonical specs live with owners
687
- - local code changes live with owners
688
- - shared contracts need one canonical owner
689
- - coordination data is not the canonical spec source
690
- - local machine paths are never the durable identifier
691
- - implementation may still happen root-by-root even if planning is coordinated
692
-
693
- If these invariants hold, the UX remains coherent across solo, team, and org-wide usage.
694
-
695
- ---
696
-
697
- ## Agent Access Model
698
-
699
- Cross-root UX only works if the agent can actually see the relevant roots.
700
-
701
- OpenSpec should support three agent capability levels.
702
-
703
- ### Level 1: Strong multi-root support
704
-
705
- The tool can explicitly attach multiple directories to one session.
706
-
707
- Desired UX:
708
-
709
- - User opens the coordination workspace
710
- - OpenSpec tells the user exactly which roots to attach
711
- - Agent reads from all attached roots
712
-
713
- ### Level 2: Single cwd but filesystem access to linked roots
714
-
715
- The tool runs from one working directory but can still read sibling absolute paths if the environment permits it.
716
-
717
- Desired UX:
718
-
719
- - User opens the coordination workspace
720
- - OpenSpec writes agent-readable absolute paths into the workspace instructions
721
- - Agent can read those roots directly
722
-
723
- ### Level 3: Practically single-root
724
-
725
- The tool can only reliably operate within one repo at a time.
726
-
727
- Desired UX:
728
-
729
- - Coordination workspace is used for planning only
730
- - OpenSpec guides the user into repo-local implementation sessions afterward
731
- - `/opsx:apply` runs in each repo separately
732
-
733
- This must be treated as a first-class case, not a fallback afterthought.
734
-
735
- ---
736
-
737
- ## Current OpenSpec Flow To Preserve
738
-
739
- Today the flow is:
740
-
741
- 1. User enters a repo
742
- 2. User runs `openspec init`
743
- 3. User opens an agent in that repo
744
- 4. User runs `/opsx:explore` or `/opsx:propose`
745
- 5. OpenSpec stores changes in `openspec/changes/<change>/`
746
- 6. `/opsx:apply` implements within that repo
747
-
748
- That should remain the exact feel for single-repo work.
749
-
750
- The only extension is:
751
-
752
- - if OpenSpec detects a cross-root initiative, it explicitly upgrades the workflow into a coordination workspace flow
753
-
754
- ---
755
-
756
- ## Journey 1: Single Repo, Standard OpenSpec Project
757
-
758
- ### Starting state
759
-
760
- The user has one repo:
761
-
762
- ```text
763
- ~/work/acme-app/
764
- ```
765
-
766
- They enter the repo:
767
-
768
- ```bash
769
- cd ~/work/acme-app
770
- ```
771
-
772
- They initialize OpenSpec:
773
-
774
- ```bash
775
- openspec init
776
- ```
777
-
778
- OpenSpec creates:
779
-
780
- ```text
781
- openspec/
782
- specs/
783
- changes/
784
- config.yaml
785
- ```
786
-
787
- They open Claude, Codex, Cursor, or another agent inside this repo.
788
-
789
- ### Planning
790
-
791
- The user types:
792
-
793
- ```text
794
- /opsx:propose add-dark-mode
795
- ```
796
-
797
- OpenSpec should:
798
-
799
- 1. detect a single local project
800
- 2. detect a single default scope: the repo
801
- 3. create one repo-local change
802
- 4. read only local project config and local specs
803
- 5. generate local planning artifacts
804
-
805
- Output feel:
806
-
807
- ```text
808
- Created openspec/changes/add-dark-mode/
809
- Using scope: repo
810
-
811
- Generated:
812
- - proposal.md
813
- - specs/ui/spec.md
814
- - design.md
815
- - tasks.md
816
-
817
- Ready for implementation with /opsx:apply
818
- ```
819
-
820
- ### Implementation
821
-
822
- The user types:
823
-
824
- ```text
825
- /opsx:apply
826
- ```
827
-
828
- OpenSpec reads:
829
-
830
- - proposal
831
- - specs
832
- - design
833
- - tasks
834
-
835
- Only from this repo.
836
-
837
- ### Archival
838
-
839
- The user types:
840
-
841
- ```text
842
- /opsx:archive
843
- ```
844
-
845
- OpenSpec archives the change in this repo, as today.
846
-
847
- ### Storage outcome
848
-
849
- - Spec deltas stored in this repo
850
- - Canonical specs stored in this repo
851
- - Tasks and design stored in this repo
852
- - No workspace concept surfaced
853
-
854
- ### Edge cases
855
-
856
- - Multiple active changes in repo: prompt user to select one
857
- - Missing spec directories: proceed if allowed by current schema behavior
858
- - User runs from subdirectory: OpenSpec should either walk up or clearly tell them to run from repo root
859
-
860
- ---
861
-
862
- ## Journey 2: Monorepo, Small Team, One Obvious Scope
863
-
864
- ### Starting state
865
-
866
- The user has:
867
-
868
- ```text
869
- ~/work/platform/
870
- ```
871
-
872
- Inside:
873
-
874
- ```text
875
- platform/
876
- openspec/
877
- apps/web/
878
- services/api/
879
- packages/ui/
880
- ```
881
-
882
- The user enters the monorepo root and runs their agent there.
883
-
884
- ### Planning
885
-
886
- The user types:
887
-
888
- ```text
889
- /opsx:propose add-invoice-filtering
890
- ```
891
-
892
- OpenSpec detects this is still one project root, but there are multiple candidate scopes.
893
-
894
- If the user’s request clearly mentions one area, OpenSpec may infer:
895
-
896
- - `apps/web`
897
-
898
- Otherwise it asks:
899
-
900
- ```text
901
- Which scope does this change affect?
902
- - apps/web
903
- - services/api
904
- - packages/ui
905
- - shared/contracts
906
- ```
907
-
908
- The user picks `apps/web`.
909
-
910
- ### Expected behavior
911
-
912
- OpenSpec should:
913
-
914
- 1. create a single monorepo-local change under `openspec/changes/add-invoice-filtering/`
915
- 2. tag that change with `apps/web`
916
- 3. read specs relevant to `apps/web`
917
- 4. avoid pulling unrelated monorepo areas into context
918
-
919
- ### Storage outcome
920
-
921
- - One change in monorepo root
922
- - Scope selection recorded in change metadata
923
- - Delta specs only generated for the selected area
924
-
925
- ### Why this matters
926
-
927
- The user should not feel like they are using a different product because they happen to be in a monorepo.
928
-
929
- ---
930
-
931
- ## Journey 3: Monorepo, Cross-Scope Change
932
-
933
- ### Starting state
934
-
935
- Same monorepo:
936
-
937
- ```text
938
- platform/
939
- openspec/
940
- apps/web/
941
- services/api/
942
- packages/contracts/
943
- ```
944
-
945
- ### Planning
946
-
947
- The user types:
948
-
949
- ```text
950
- /opsx:propose add-3ds-checkout
951
- ```
952
-
953
- OpenSpec detects likely affected scopes:
954
-
955
- - `packages/contracts`
956
- - `services/api`
957
- - `apps/web`
958
-
959
- It asks:
960
-
961
- ```text
962
- This appears to affect multiple scopes.
963
- Which scopes should be included?
964
- [x] packages/contracts
965
- [x] services/api
966
- [x] apps/web
967
- [ ] apps/admin
968
- [ ] packages/ui
969
- ```
970
-
971
- ### Expected behavior
972
-
973
- OpenSpec creates:
974
-
975
- ```text
976
- platform/openspec/changes/add-3ds-checkout/
977
- ```
978
-
979
- The change includes scope metadata listing all three selected scopes.
980
-
981
- OpenSpec reads:
982
-
983
- - shared contract specs
984
- - API specs for billing/checkout
985
- - web checkout specs
986
-
987
- OpenSpec ignores unrelated specs by default.
988
-
989
- ### Implementation
990
-
991
- The user runs:
992
-
993
- ```text
994
- /opsx:apply
995
- ```
996
-
997
- OpenSpec should:
998
-
999
- 1. show that multiple scopes are affected
1000
- 2. sequence tasks accordingly
1001
- 3. update one shared task artifact if the monorepo is still treated as one owning root
1002
-
1003
- ### Storage outcome
1004
-
1005
- - One change at monorepo root
1006
- - Delta specs for multiple scope paths
1007
- - All canonical specs remain inside the monorepo
1008
-
1009
- ### Important note
1010
-
1011
- This is still not a coordination workspace case, because there is still one owning project root.
1012
-
1013
- ---
1014
-
1015
- ## Journey 4: Large Monorepo That Behaves Like Many Repos
1016
-
1017
- ### Why this journey exists
1018
-
1019
- Some monorepos are operationally equivalent to multi-repo systems:
1020
-
1021
- - different teams own different areas
1022
- - different release cadences
1023
- - many developers should not edit each other’s planning setup
1024
- - cross-team work is exceptional
1025
-
1026
- This means OpenSpec cannot assume:
1027
-
1028
- - one monorepo root automatically equals one planning unit
1029
-
1030
- ### Starting state
1031
-
1032
- ```text
1033
- platform/
1034
- openspec/
1035
- apps/web/
1036
- apps/mobile/
1037
- services/billing/
1038
- services/orders/
1039
- packages/contracts/
1040
- ```
1041
-
1042
- Optional scope markers exist:
1043
-
1044
- ```text
1045
- apps/web/openspec.scope.yaml
1046
- apps/mobile/openspec.scope.yaml
1047
- services/billing/openspec.scope.yaml
1048
- packages/contracts/openspec.scope.yaml
1049
- ```
1050
-
1051
- ### Planning a local team change
1052
-
1053
- The web team enters the monorepo root, or a repo-aware subtool enters the web area.
1054
-
1055
- The user types:
1056
-
1057
- ```text
1058
- /opsx:propose add-checkout-loading-state
1059
- ```
1060
-
1061
- OpenSpec detects this is limited to `apps/web`.
1062
-
1063
- The user should experience this exactly like a single-scope change.
1064
-
1065
- ### Planning a cross-team monorepo initiative
1066
-
1067
- The user types:
1068
-
1069
- ```text
1070
- /opsx:propose add-3ds
1071
- ```
1072
-
1073
- OpenSpec detects:
1074
-
1075
- - `packages/contracts`
1076
- - `services/billing`
1077
- - `apps/web`
1078
- - possibly `apps/mobile`
1079
-
1080
- At this point OpenSpec must make a product decision.
1081
-
1082
- #### Recommended behavior
1083
-
1084
- If all affected scopes live under one owning root and the user is comfortable with one monorepo-local change, keep using one root-level change.
1085
-
1086
- If the monorepo is configured or inferred to behave like many owned sub-projects, offer to upgrade to a **coordination-style monorepo initiative**.
1087
-
1088
- Prompt feel:
1089
-
1090
- ```text
1091
- This monorepo has multiple independently owned scopes.
1092
-
1093
- How would you like to plan this work?
1094
- - One monorepo change
1095
- - Coordination initiative with linked scope changes
1096
- ```
1097
-
1098
- ### Coordination-style monorepo initiative
1099
-
1100
- If the user chooses the coordination flow, OpenSpec creates:
1101
-
1102
- 1. a neutral initiative workspace
1103
- 2. linked scope-local changes inside the monorepo root or scope-owned folders
1104
-
1105
- This is the same conceptual flow as multi-repo, but all roots happen to be inside one VCS root.
1106
-
1107
- ### Why this matters
1108
-
1109
- This prevents the UX from hardcoding "monorepo is always simpler."
1110
-
1111
- That assumption fails for exactly the enterprise-style teams this feature is for.
1112
-
1113
- ---
1114
-
1115
- ## Journey 5: Multi-Repo Work Started From Inside One Repo
1116
-
1117
- ### Starting state
1118
-
1119
- The user is in:
1120
-
1121
- ```text
1122
- ~/work/web-client
1123
- ```
1124
-
1125
- They already use OpenSpec there.
1126
-
1127
- They open Claude in `web-client` and type:
1128
-
1129
- ```text
1130
- /opsx:propose add-3ds
1131
- ```
1132
-
1133
- During exploration or proposal generation, it becomes clear that the work also affects:
1134
-
1135
- - `contracts`
1136
- - `billing-service`
1137
- - `ios-client`
1138
-
1139
- ### Critical UX requirement
1140
-
1141
- At this point OpenSpec should not silently create one cross-repo change inside `web-client`.
1142
-
1143
- That would be misleading, because:
1144
-
1145
- - the initiative is not owned by `web-client`
1146
- - the agent does not yet have the other roots
1147
- - canonical specs belong in other repos
1148
-
1149
- ### Expected OpenSpec behavior
1150
-
1151
- OpenSpec interrupts the default single-repo flow and says:
1152
-
1153
- ```text
1154
- This work spans multiple owning roots:
1155
- - github.com/Fission-AI/contracts
1156
- - github.com/Fission-AI/billing-service
1157
- - github.com/Fission-AI/web-client
1158
- - github.com/Fission-AI/ios-client
1159
-
1160
- For cross-repo work, OpenSpec recommends creating a coordination workspace.
1161
-
1162
- Suggested location:
1163
- ~/work/openspec-workspaces/add-3ds
1164
-
1165
- Create it now?
1166
- ```
1167
-
1168
- If the user agrees, OpenSpec creates the workspace.
1169
-
1170
- If the user wants another location, they can choose it.
1171
-
1172
- ### Coordination workspace creation
1173
-
1174
- Proposed CLI feel:
1175
-
1176
- ```bash
1177
- openspec workspace create add-3ds --at ~/work/openspec-workspaces/add-3ds
1178
- ```
1179
-
1180
- OpenSpec writes:
1181
-
1182
- ```text
1183
- ~/work/openspec-workspaces/add-3ds/
1184
- .openspec-workspace/
1185
- workspace.yaml
1186
- initiative.md
1187
- links.yaml
1188
- agents/
1189
- claude.md
1190
- codex.md
1191
- ```
1192
-
1193
- ### Repo resolution
1194
-
1195
- OpenSpec now resolves local paths for:
1196
-
1197
- - `github.com/Fission-AI/contracts`
1198
- - `github.com/Fission-AI/billing-service`
1199
- - `github.com/Fission-AI/web-client`
1200
- - `github.com/Fission-AI/ios-client`
1201
-
1202
- Using:
1203
-
1204
- 1. known local registry
1205
- 2. git remote scanning
1206
- 3. user confirmation if needed
1207
-
1208
- ### Agent handoff
1209
-
1210
- OpenSpec then tells the user:
1211
-
1212
- ```text
1213
- Next step:
1214
- 1. Open your coding agent in ~/work/openspec-workspaces/add-3ds
1215
- 2. Attach these roots if your tool supports multi-root:
1216
- - /Users/me/work/contracts
1217
- - /Users/me/work/billing-service
1218
- - /Users/me/work/web-client
1219
- - /Users/me/work/ios-client
1220
-
1221
- OpenSpec has generated workspace instructions at:
1222
- .openspec-workspace/agents/claude.md
1223
- ```
1224
-
1225
- ### Planning from the workspace
1226
-
1227
- The user now starts the agent in the coordination workspace and runs:
1228
-
1229
- ```text
1230
- /opsx:propose add-3ds
1231
- ```
1232
-
1233
- Or OpenSpec may have already scaffolded the initiative and tell the agent to continue it.
1234
-
1235
- ### Storage outcome
1236
-
1237
- The coordination workspace stores the **initiative-level planning object**:
1238
-
1239
- - proposal.md
1240
- - design.md
1241
- - initiative summary
1242
- - cross-repo scope map
1243
- - ownership, milestones, risks, and dependencies
1244
- - links to repo-local changes
1245
- - agent workspace instructions
1246
-
1247
- Each repo stores its own execution change:
1248
-
1249
- - `contracts/openspec/changes/add-3ds-contract/`
1250
- - `billing-service/openspec/changes/add-3ds-billing/`
1251
- - `web-client/openspec/changes/add-3ds-web/`
1252
- - `ios-client/openspec/changes/add-3ds-ios/`
1253
-
1254
- Those repo-local changes are where repo-specific tasks, delta specs, and local implementation state live.
1255
-
1256
- ### Why this matters
1257
-
1258
- This gives the user a truthful answer to:
1259
-
1260
- - Where should I stand?
1261
- - Where does the change live?
1262
- - How does the agent see the other repos?
1263
-
1264
- The answer is:
1265
-
1266
- - stand in the coordination workspace for cross-repo planning
1267
- - keep canonical changes/specs in their owners
1268
-
1269
- ---
1270
-
1271
- ## Journey 6: Multi-Repo Work Started From a Neutral Place
1272
-
1273
- ### Starting state
1274
-
1275
- The user already knows the work is cross-repo.
1276
-
1277
- They start in a neutral directory:
1278
-
1279
- ```bash
1280
- cd ~/work
1281
- ```
1282
-
1283
- They run:
1284
-
1285
- ```bash
1286
- openspec workspace create add-3ds --at ~/work/openspec-workspaces/add-3ds
1287
- ```
1288
-
1289
- Or a future higher-level shortcut:
1290
-
1291
- ```bash
1292
- openspec initiative new add-3ds
1293
- ```
1294
-
1295
- ### OpenSpec prompts
1296
-
1297
- OpenSpec asks:
1298
-
1299
- ```text
1300
- Which repos or scopes are involved?
1301
- ```
1302
-
1303
- The user enters:
1304
-
1305
- - `github.com/Fission-AI/contracts`
1306
- - `github.com/Fission-AI/billing-service`
1307
- - `github.com/Fission-AI/web-client`
1308
- - `github.com/Fission-AI/ios-client`
1309
-
1310
- OpenSpec resolves local clones and writes the workspace files.
1311
-
1312
- ### Agent setup
1313
-
1314
- The user opens the coordination workspace in their agent.
1315
-
1316
- OpenSpec-generated agent instructions contain:
1317
-
1318
- - initiative summary
1319
- - available roots
1320
- - ownership map
1321
- - guidance that canonical spec edits must be written back to owning roots
1322
-
1323
- ### Planning behavior
1324
-
1325
- When the user runs:
1326
-
1327
- ```text
1328
- /opsx:explore
1329
- ```
1330
-
1331
- or
1332
-
1333
- ```text
1334
- /opsx:propose add-3ds
1335
- ```
1336
-
1337
- the agent reads:
1338
-
1339
- - workspace initiative metadata
1340
- - relevant specs from attached roots
1341
- - only for selected repos/scopes
1342
-
1343
- ### Storage outcome
1344
-
1345
- Same as Journey 5, but the user never had to start from one repo first.
1346
-
1347
- ### Why this journey matters
1348
-
1349
- Some users will intentionally want the initiative to live outside any single repo from the start.
1350
-
1351
- OpenSpec should support that directly.
1352
-
1353
- ---
1354
-
1355
- ## Journey 6A: Team-Shared Multi-Repo Initiative
1356
-
1357
- ### Starting state
1358
-
1359
- A team knows the work spans multiple repos and will involve multiple people over several days or weeks.
1360
-
1361
- They create or choose a shared coordination repo, for example:
1362
-
1363
- ```text
1364
- ~/work/openspec-initiatives/
1365
- ```
1366
-
1367
- Or a team-owned repo such as:
1368
-
1369
- ```text
1370
- github.com/Fission-AI/initiatives
1371
- ```
1372
-
1373
- Inside it, OpenSpec creates:
1374
-
1375
- ```text
1376
- initiatives/
1377
- add-3ds/
1378
- .openspec-workspace/
1379
- workspace.yaml
1380
- initiative.md
1381
- links.yaml
1382
- agents/
1383
- claude.md
1384
- codex.md
1385
- ```
1386
-
1387
- ### What gets committed
1388
-
1389
- The team commits:
1390
-
1391
- - initiative summary
1392
- - stable project IDs
1393
- - selected scopes
1394
- - ownership decisions
1395
- - linked repo-local change IDs
1396
- - rollout and status notes
1397
-
1398
- ### What stays local
1399
-
1400
- Each teammate keeps local path mappings outside the shared repo, for example in OpenSpec local config/data:
1401
-
1402
- - `github.com/Fission-AI/contracts` -> `/Users/alice/src/contracts`
1403
- - `github.com/Fission-AI/contracts` -> `/home/bob/work/contracts`
1404
-
1405
- ### Teammate workflow
1406
-
1407
- Each teammate:
1408
-
1409
- 1. clones or pulls the shared coordination repo
1410
- 2. runs something like `openspec workspace doctor` or `openspec workspace sync`
1411
- 3. resolves any missing project IDs to local clones
1412
- 4. opens their agent from the shared coordination workspace
1413
-
1414
- ### Agent startup behavior
1415
-
1416
- OpenSpec generates agent instructions using:
1417
-
1418
- - committed shared manifest
1419
- - local path overlay
1420
-
1421
- This means every teammate sees the same initiative structure, but with their own valid filesystem paths.
1422
-
1423
- ### Why this matters
1424
-
1425
- This is the team-scale version of "enter the coordination workspace."
1426
-
1427
- Without this distinction, the phrase sounds cohesive for one person but falls apart for shared planning.
1428
-
1429
- ---
1430
-
1431
- ## Journey 6B: Cross-Team Initiative With Explicit Sponsor
1432
-
1433
- ### Starting state
1434
-
1435
- The work spans:
1436
-
1437
- - platform/shared contracts
1438
- - backend services
1439
- - multiple clients
1440
- - multiple teams
1441
-
1442
- ### Expected setup
1443
-
1444
- OpenSpec should support the initiative being created in a shared coordination repo owned by the sponsoring or driving team.
1445
-
1446
- That sponsor is responsible for:
1447
-
1448
- - opening the initiative
1449
- - linking participating projects
1450
- - tracking initiative status
1451
- - keeping ownership decisions visible
1452
-
1453
- But the sponsor does not automatically own:
1454
-
1455
- - all specs
1456
- - all implementation changes
1457
- - the canonical shared contract
1458
-
1459
- ### Example
1460
-
1461
- - Payments team sponsors `add-3ds`
1462
- - Contracts repo owns canonical checkout contract
1463
- - Web team owns web implementation change
1464
- - iOS team owns iOS implementation change
1465
- - Billing team owns backend implementation change
1466
-
1467
- ### User experience
1468
-
1469
- When another team member opens the shared coordination workspace, OpenSpec should make this explicit:
1470
-
1471
- ```text
1472
- Initiative sponsor:
1473
- - payments-platform
1474
-
1475
- Canonical shared contract owner:
1476
- - contracts
1477
-
1478
- Participating owners:
1479
- - billing-service
1480
- - web-client
1481
- - ios-client
1482
- ```
1483
-
1484
- ### Why this matters
1485
-
1486
- Without this, "shared ownership" becomes ambiguous and teams do not know whether they are reading:
1487
-
1488
- - a sponsor-owned plan
1489
- - a canonical contract
1490
- - or just another team’s local interpretation
1491
-
1492
- ---
1493
-
1494
- ## Journey 7: Multi-Repo Planning When Only Some Repos Are Cloned
1495
-
1496
- ### Starting state
1497
-
1498
- The user wants to plan work affecting:
1499
-
1500
- - contracts
1501
- - billing-service
1502
- - web-client
1503
- - ios-client
1504
-
1505
- But only has these locally:
1506
-
1507
- - contracts
1508
- - web-client
1509
-
1510
- ### Expected behavior
1511
-
1512
- OpenSpec should still allow planning.
1513
-
1514
- It creates the coordination workspace and records:
1515
-
1516
- - resolved roots for `contracts` and `web-client`
1517
- - unresolved status for `billing-service` and `ios-client`
1518
-
1519
- Prompt feel:
1520
-
1521
- ```text
1522
- Resolved locally:
1523
- - contracts
1524
- - web-client
1525
-
1526
- Not currently available locally:
1527
- - billing-service
1528
- - ios-client
1529
-
1530
- Planning can continue with partial context.
1531
- Implementation in unresolved roots will remain pending until linked.
1532
- ```
1533
-
1534
- ### Agent behavior
1535
-
1536
- The agent should:
1537
-
1538
- - use resolved repos for concrete planning
1539
- - mention unresolved repos explicitly
1540
- - avoid pretending it read their specs
1541
- - generate pending placeholders in initiative tracking if needed
1542
-
1543
- ### Storage outcome
1544
-
1545
- The coordination workspace may contain unresolved links such as:
1546
-
1547
- ```yaml
1548
- projects:
1549
- - id: github.com/Fission-AI/contracts
1550
- path: /Users/me/work/contracts
1551
- status: resolved
1552
- - id: github.com/Fission-AI/billing-service
1553
- status: unresolved
1554
- - id: github.com/Fission-AI/web-client
1555
- path: /Users/me/work/web-client
1556
- status: resolved
1557
- - id: github.com/Fission-AI/ios-client
1558
- status: unresolved
1559
- ```
1560
-
1561
- ### Why this matters
1562
-
1563
- This keeps planning useful even when the environment is incomplete.
1564
-
1565
- Blocking planning here would make the feature brittle.
1566
-
1567
- This also matters for large teams, because not every teammate will have every participating repo cloned or accessible.
1568
-
1569
- ---
1570
-
1571
- ## Journey 8: How Specs Are Read During Planning
1572
-
1573
- This is one of the most important behavioral rules.
1574
-
1575
- OpenSpec should never blindly read all specs from all roots.
1576
-
1577
- ### Single repo
1578
-
1579
- Read:
1580
-
1581
- - local project config
1582
- - local specs relevant to the selected scope
1583
- - local change history only if helpful
1584
-
1585
- Do not read:
1586
-
1587
- - unrelated local specs by default
1588
-
1589
- ### Monorepo
1590
-
1591
- Read:
1592
-
1593
- - root project config
1594
- - specs for the selected scopes
1595
- - shared contract specs if selected or referenced
1596
-
1597
- Do not read:
1598
-
1599
- - unrelated apps/services/packages
1600
-
1601
- ### Multi-repo
1602
-
1603
- Read:
1604
-
1605
- - initiative metadata from coordination workspace
1606
- - specs in resolved attached roots
1607
- - only the selected scopes within those roots
1608
- - informational references if the user or agent explicitly chooses to open them
1609
-
1610
- Do not read:
1611
-
1612
- - specs from unresolved roots
1613
- - every spec in every repo
1614
- - referenced specs automatically if that would explode context
1615
-
1616
- ### Informational references
1617
-
1618
- References should appear like:
1619
-
1620
- ```text
1621
- Related references:
1622
- - github.com/Fission-AI/contracts: openspec/specs/checkout/spec.md
1623
- - github.com/Fission-AI/web-client: openspec/specs/checkout/web/spec.md
1624
- ```
1625
-
1626
- The agent can use them as navigation hints.
1627
-
1628
- They are not validation blockers.
1629
-
1630
- ### Shared contract read order
1631
-
1632
- When a selected change involves a shared contract, OpenSpec should prefer this read order:
1633
-
1634
- 1. initiative metadata, if present
1635
- 2. canonical shared contract
1636
- 3. selected consumer/local specs
1637
- 4. repo-local change artifacts
1638
-
1639
- This matters because the shared contract defines the boundary-level truths, while local specs describe how each consumer satisfies them.
1640
-
1641
- ---
1642
-
1643
- ## Journey 9: How Artifacts Are Stored
1644
-
1645
- This must stay simple and deterministic.
1646
-
1647
- ### Rule 1: Canonical specs live with owners
1648
-
1649
- Examples:
1650
-
1651
- - Checkout contract spec lives in `contracts`
1652
- - Web checkout behavior lives in `web-client`
1653
- - iOS behavior lives in `ios-client`
1654
-
1655
- ### Rule 2: Repo-local changes live with repo owners
1656
-
1657
- Examples:
1658
-
1659
- - `contracts/openspec/changes/add-3ds-contract/`
1660
- - `web-client/openspec/changes/add-3ds-web/`
1661
-
1662
- These changes are the execution artifacts for each owning repo. They should carry repo-specific tasks, delta specs, and local implementation state.
1663
-
1664
- ### Rule 3: Initiative-level planning lives in the coordination workspace
1665
-
1666
- Examples:
1667
-
1668
- - proposal.md
1669
- - design.md
1670
- - initiative summary
1671
- - rollout sequencing
1672
- - cross-repo assumptions
1673
- - ownership, milestones, risks, and dependencies
1674
- - links between repo-local changes
1675
-
1676
- ### Rule 4: Workspace never becomes canonical spec storage
1677
-
1678
- The coordination workspace may reference specs and summarize them.
1679
-
1680
- It should not become a second spec source of truth.
1681
-
1682
- ### Rule 5: Shared contracts are canonical only after ownership is explicit
1683
-
1684
- If a cross-boundary behavior has not yet been assigned a canonical owner, OpenSpec should store it as initiative-level draft material rather than pretending it is already a canonical spec.
1685
-
1686
- ### Rule 6: Shared coordination workspaces store stable collaboration data, not local machine state
1687
-
1688
- If a coordination workspace is committed for team use, it should contain:
1689
-
1690
- - stable project IDs
1691
- - linked changes
1692
- - ownership and initiative metadata
1693
-
1694
- It should not contain:
1695
-
1696
- - `/Users/...` paths
1697
- - `C:\\...` paths
1698
- - machine-specific attached-root state
1699
-
1700
- That information belongs in local overlay data.
1701
-
1702
- ---
1703
-
1704
- ## Journey 10: `/opsx:apply` In Cross-Root Work
1705
-
1706
- Implementation UX must remain honest about tool limits.
1707
-
1708
- ### Case A: Agent can work across roots
1709
-
1710
- The user is in the coordination workspace.
1711
-
1712
- They run:
1713
-
1714
- ```text
1715
- /opsx:apply
1716
- ```
1717
-
1718
- OpenSpec responds:
1719
-
1720
- ```text
1721
- This initiative has linked changes in:
1722
- - contracts
1723
- - billing-service
1724
- - web-client
1725
- - ios-client
1726
-
1727
- Choose apply mode:
1728
- - Apply one linked change
1729
- - Apply in suggested sequence
1730
- ```
1731
-
1732
- Recommended default:
1733
-
1734
- - apply one linked change at a time
1735
-
1736
- This keeps task state and implementation context manageable.
1737
-
1738
- ### Case B: Agent is practically single-root
1739
-
1740
- The user is in the coordination workspace and runs:
1741
-
1742
- ```text
1743
- /opsx:apply
1744
- ```
1745
-
1746
- OpenSpec should say:
1747
-
1748
- ```text
1749
- This initiative spans multiple repos.
1750
- Implementation must be run per repo in your current tool.
1751
-
1752
- Next suggested step:
1753
- - open /Users/me/work/contracts and run /opsx:apply add-3ds-contract
1754
- ```
1755
-
1756
- ### Why this matters
1757
-
1758
- Cross-repo planning and cross-repo implementation are not the same capability.
1759
-
1760
- The UX must not assume all agents can do both well.
1761
-
1762
- ---
1763
-
1764
- ## Journey 10A: Creating A Shared Contract In A Monorepo
1765
-
1766
- ### Starting state
1767
-
1768
- The user is in a monorepo with:
1769
-
1770
- ```text
1771
- platform/
1772
- openspec/
1773
- apps/web/
1774
- apps/ios/
1775
- apps/android/
1776
- services/billing/
1777
- ```
1778
-
1779
- There is no existing canonical `checkout` shared contract.
1780
-
1781
- ### User request
1782
-
1783
- The user types:
1784
-
1785
- ```text
1786
- /opsx:propose add-3ds-checkout
1787
- ```
1788
-
1789
- The agent discovers the request spans:
1790
-
1791
- - web
1792
- - iOS
1793
- - Android
1794
- - billing backend
1795
-
1796
- ### Expected prompt
1797
-
1798
- ```text
1799
- This looks like a cross-boundary behavior shared by multiple scopes.
1800
-
1801
- Should OpenSpec treat this as:
1802
- - A shared contract
1803
- - Independent local changes only
1804
- - An initiative note for now
1805
- ```
1806
-
1807
- The user chooses shared contract.
1808
-
1809
- OpenSpec then asks:
1810
-
1811
- ```text
1812
- Where should the canonical shared contract live?
1813
- - openspec/specs/contracts/checkout
1814
- - openspec/specs/shared/checkout
1815
- - keep it initiative-only for now
1816
- ```
1817
-
1818
- ### Expected storage result
1819
-
1820
- OpenSpec creates:
1821
-
1822
- - canonical shared contract in chosen shared scope
1823
- - repo-local change under monorepo root
1824
- - local delta specs for selected consumer scopes as needed
1825
-
1826
- ### Why this matters
1827
-
1828
- This keeps one source of truth for the cross-boundary behavior, instead of smearing the same logic across web, iOS, Android, and backend specs.
1829
-
1830
- ---
1831
-
1832
- ## Journey 10B: Creating A Shared Contract In A Multi-Repo Environment
1833
-
1834
- ### Starting state
1835
-
1836
- The user is planning a checkout initiative involving:
1837
-
1838
- - `contracts`
1839
- - `web-client`
1840
- - `ios-client`
1841
- - `android-client`
1842
- - `billing-service`
1843
-
1844
- There is no existing shared checkout contract.
1845
-
1846
- ### Planning flow
1847
-
1848
- The user creates or enters a coordination workspace.
1849
-
1850
- They run:
1851
-
1852
- ```text
1853
- /opsx:propose add-3ds
1854
- ```
1855
-
1856
- OpenSpec detects this likely requires a shared contract.
1857
-
1858
- ### Expected prompt
1859
-
1860
- ```text
1861
- No canonical shared contract owner was found for this behavior.
1862
-
1863
- Choose how to proceed:
1864
- - Create the canonical contract in an existing contracts repo
1865
- - Assign the contract to an existing domain owner repo
1866
- - Keep it as initiative-only for now
1867
- ```
1868
-
1869
- If the user selects an existing contracts repo, OpenSpec:
1870
-
1871
- 1. creates a repo-local change in that repo for the shared contract
1872
- 2. links consumer repo changes to it
1873
- 3. records references from consumers to the canonical contract
1874
-
1875
- If the user keeps it initiative-only, OpenSpec:
1876
-
1877
- 1. stores the draft cross-boundary behavior in initiative notes
1878
- 2. marks it as non-canonical
1879
- 3. warns that long-term consumer behavior should not depend on this until promoted into an owned shared contract
1880
-
1881
- ### Why this matters
1882
-
1883
- This avoids a bad default where whichever app team starts the change accidentally becomes the long-term owner of a cross-org contract.
1884
-
1885
- ---
1886
-
1887
- ## Journey 11: Archiving Cross-Root Work
1888
-
1889
- ### Single repo or simple monorepo
1890
-
1891
- Same as today:
1892
-
1893
- ```text
1894
- /opsx:archive
1895
- ```
1896
-
1897
- ### Multi-repo initiative
1898
-
1899
- The user in the coordination workspace runs:
1900
-
1901
- ```text
1902
- /opsx:archive
1903
- ```
1904
-
1905
- OpenSpec checks linked repo changes:
1906
-
1907
- - archived
1908
- - ready to archive
1909
- - still active
1910
- - unresolved
1911
-
1912
- Prompt feel:
1913
-
1914
- ```text
1915
- Initiative: add-3ds
1916
-
1917
- Linked change status:
1918
- - contracts/add-3ds-contract: complete
1919
- - billing-service/add-3ds-billing: complete
1920
- - web-client/add-3ds-web: active
1921
- - ios-client/add-3ds-ios: unresolved
1922
-
1923
- Archive options:
1924
- - Archive completed linked changes only
1925
- - Mark initiative partially complete
1926
- - Wait until all linked changes are done
1927
- ```
1928
-
1929
- ### Recommended behavior
1930
-
1931
- Allow partial completion states.
1932
-
1933
- Cross-repo work often lands asynchronously.
1934
-
1935
- ---
1936
-
1937
- ## Setup Journeys
1938
-
1939
- The setup path needs to feel lightweight.
1940
-
1941
- ## Journey 12: Day-Zero Setup For A Single Repo User
1942
-
1943
- ### Steps
1944
-
1945
- 1. `cd repo`
1946
- 2. `openspec init`
1947
- 3. open agent in repo
1948
- 4. run `/opsx:propose`
1949
-
1950
- No workspace concepts shown.
1951
-
1952
- ---
1953
-
1954
- ## Journey 13: Day-Zero Setup For A Monorepo Team
1955
-
1956
- ### Steps
1957
-
1958
- 1. `cd monorepo`
1959
- 2. `openspec init`
1960
- 3. optionally add scope markers for major owned areas
1961
- 4. run `openspec update`
1962
- 5. open agent in monorepo root
1963
-
1964
- During planning, OpenSpec asks for scope selection when needed.
1965
-
1966
- No separate workspace admin step is required.
1967
-
1968
- ---
1969
-
1970
- ## Journey 14: Day-Zero Setup For A Multi-Repo Team
1971
-
1972
- ### Steps
1973
-
1974
- 1. each repo independently runs `openspec init`
1975
- 2. user creates a coordination workspace only when cross-repo work arises
1976
- 3. user links repo IDs to local clones as needed
1977
- 4. user opens the agent in the coordination workspace for planning
1978
-
1979
- This is important:
1980
-
1981
- The system should not require a platform team to pre-register every repo before any real work can begin.
1982
-
1983
- ---
1984
-
1985
- ## Agent Instruction Requirements
1986
-
1987
- When OpenSpec creates a coordination workspace, it should generate agent-facing files.
1988
-
1989
- Minimum contents:
1990
-
1991
- 1. initiative summary
1992
- 2. selected scopes
1993
- 3. owning roots and resolved paths
1994
- 4. unresolved roots
1995
- 5. storage rules
1996
- 6. implementation limitations for the current tool if known
1997
-
1998
- ### Example `claude.md`
1999
-
2000
- ```md
2001
- You are working on initiative `add-3ds`.
2002
-
2003
- Resolved roots:
2004
- - /Users/me/work/contracts
2005
- - /Users/me/work/web-client
2006
-
2007
- Unresolved roots:
2008
- - github.com/Fission-AI/billing-service
2009
- - github.com/Fission-AI/ios-client
2010
-
2011
- Ownership:
2012
- - contracts owns shared checkout contract
2013
- - web-client owns web checkout behavior
2014
-
2015
- Rules:
2016
- - Canonical specs must be edited in owning roots
2017
- - Initiative-level notes live in this coordination workspace
2018
- - Cross-repo references are informational only
2019
- ```
2020
-
2021
- This file should be generated for any supported agent integration that benefits from deterministic startup context.
2022
-
2023
- ---
2024
-
2025
- ## Scenarios Summary
2026
-
2027
- ### Happy paths
2028
-
2029
- 1. Single repo, one change
2030
- 2. Monorepo, one scope
2031
- 3. Monorepo, multiple scopes
2032
- 4. Large monorepo, coordination-style initiative
2033
- 5. Multi-repo, all roots locally available
2034
- 6. Multi-repo, partial local availability
2035
-
2036
- ### Important transitions
2037
-
2038
- 1. Single repo request escalates into multi-repo
2039
- 2. Monorepo request escalates into coordination-style planning
2040
- 3. Planning workspace hands off to repo-local implementation
2041
- 4. Partial cross-repo completion at archive time
2042
- 5. Initiative-only shared behavior gets promoted into a canonical shared contract
2043
-
2044
- ---
2045
-
2046
- ## Edge Cases
2047
-
2048
- ### 1. User starts in the "wrong" repo
2049
-
2050
- Example:
2051
-
2052
- - User starts in `web-client`
2053
- - Work actually spans `contracts`, `web-client`, `ios-client`
2054
-
2055
- Expected behavior:
2056
-
2057
- - OpenSpec recommends creating a coordination workspace
2058
- - It does not bury the whole initiative inside `web-client`
2059
-
2060
- ### 2. User wants the initiative stored elsewhere
2061
-
2062
- Expected behavior:
2063
-
2064
- - allow explicit path selection
2065
- - remember recent workspace locations if useful
2066
-
2067
- ### 3. Two local clones match the same repo identifier
2068
-
2069
- Expected behavior:
2070
-
2071
- - prompt user to choose one
2072
- - optionally save preferred mapping locally
2073
-
2074
- ### 4. Repo identifier cannot be resolved
2075
-
2076
- Expected behavior:
2077
-
2078
- - store as unresolved
2079
- - allow planning to continue
2080
- - block implementation for that root only
2081
-
2082
- ### 5. Monorepo has no explicit scope metadata
2083
-
2084
- Expected behavior:
2085
-
2086
- - infer likely scopes from structure and specs
2087
- - let the user confirm
2088
- - offer to save the selection model later
2089
-
2090
- ### 6. Scope selection is too broad
2091
-
2092
- Expected behavior:
2093
-
2094
- - warn user that many scopes will be pulled into planning
2095
- - suggest narrowing
2096
-
2097
- ### 7. Shared contract ownership is ambiguous
2098
-
2099
- Expected behavior:
2100
-
2101
- - require one canonical owner
2102
- - other scopes/repos can reference it, not co-own it implicitly
2103
-
2104
- ### 7A. No existing shared owner makes sense
2105
-
2106
- Expected behavior:
2107
-
2108
- - let the team keep the behavior as initiative-only temporarily
2109
- - explicitly mark it as draft and non-canonical
2110
- - prompt for promotion later if it starts behaving like a long-lived contract
2111
-
2112
- ### 8. Agent cannot truly work across roots
2113
-
2114
- Expected behavior:
2115
-
2116
- - use coordination workspace for planning only
2117
- - guide user into per-root apply flows
2118
-
2119
- ### 9. Workspace goes stale
2120
-
2121
- Examples:
2122
-
2123
- - repo moved on disk
2124
- - repo renamed
2125
- - remote URL changed
2126
-
2127
- Expected behavior:
2128
-
2129
- - `openspec workspace doctor` or equivalent relinks roots
2130
- - initiative metadata remains stable because identifiers are durable, paths are not
2131
-
2132
- ### 10. One repo is archived or intentionally deferred
2133
-
2134
- Expected behavior:
2135
-
2136
- - initiative can remain partially complete
2137
- - not every linked root must land simultaneously
2138
-
2139
- ### 11. Users do not want admin-managed setup in giant monorepos
2140
-
2141
- Expected behavior:
2142
-
2143
- - scope discovery should be local and incremental
2144
- - setup should not require one central team to define everything first
2145
-
2146
- ### 12. Users want ad hoc multi-repo work only once
2147
-
2148
- Expected behavior:
2149
-
2150
- - allow a one-off coordination workspace
2151
- - do not force long-lived workspace management
2152
-
2153
- ### 13. Teams want to share a coordination workspace
2154
-
2155
- Expected behavior:
2156
-
2157
- - support a committed shared coordination repo or workspace
2158
- - keep machine-specific resolution data local
2159
- - let each teammate resolve project IDs independently
2160
-
2161
- ### 14. Cross-team initiatives need different ownership roles
2162
-
2163
- Expected behavior:
2164
-
2165
- - distinguish initiative sponsor from canonical shared contract owner
2166
- - make both visible in workspace metadata and agent instructions
2167
-
2168
- ---
2169
-
2170
- ## Product Decisions This UX Implies
2171
-
2172
- If OpenSpec adopts these journeys, several design conclusions follow.
2173
-
2174
- ### 1. Multi-repo planning needs a first-class coordination workspace
2175
-
2176
- Without this, OpenSpec has no honest answer to where the user should stand or where the cross-repo initiative should live.
2177
-
2178
- ### 2. Repo-local changes and canonical specs should stay in owners
2179
-
2180
- Without this, OpenSpec creates duplicate or misleading sources of truth.
2181
-
2182
- ### 3. Large monorepos cannot be treated as always-simple single roots
2183
-
2184
- OpenSpec must support both:
2185
-
2186
- - one-root monorepo changes
2187
- - coordination-style monorepo initiatives
2188
-
2189
- ### 4. Discovery and resolution are different systems
2190
-
2191
- OpenSpec must separately handle:
2192
-
2193
- - identifying scopes
2194
- - resolving local paths for durable project identifiers
2195
-
2196
- ### 5. Agent startup context needs explicit generation
2197
-
2198
- Cross-root planning only works reliably if OpenSpec writes deterministic workspace context for the agent.
2199
-
2200
- ### 6. References should stay informational in v1
2201
-
2202
- If OpenSpec validates cross-root references by default, it has effectively shipped a dependency graph system.
2203
-
2204
- That should be a later, optional capability.
2205
-
2206
- ### 7. Shared contract creation needs a guided ownership flow
2207
-
2208
- Without this, teams will either:
2209
-
2210
- - duplicate shared behavior across repos
2211
- - assign ownership accidentally
2212
- - or avoid creating cross-boundary specs altogether
2213
-
2214
- OpenSpec should help users choose among:
2215
-
2216
- - existing shared owner
2217
- - existing domain owner
2218
- - new shared contract scope
2219
- - initiative-only draft mode
2220
-
2221
- ### 8. Shared coordination needs a two-layer storage model
2222
-
2223
- To support teams and orgs cleanly, OpenSpec should distinguish:
2224
-
2225
- - committed shared initiative metadata
2226
- - local machine-specific path resolution
2227
-
2228
- Without that split, the UX will either:
2229
-
2230
- - fail to scale beyond one user, or
2231
- - leak machine-specific state into shared artifacts
2232
-
2233
- ---
2234
-
2235
- ## Open Questions
2236
-
2237
- These journeys intentionally leave some implementation choices open.
2238
-
2239
- 1. Should a coordination workspace always be user-visible on disk, or may it optionally live in global OpenSpec data directories?
2240
- 2. Should monorepo coordination-style initiatives reuse the same workspace concept as multi-repo, or use a lighter in-repo variant?
2241
- 3. Should OpenSpec support nested `openspec/` roots, or keep one root and model scopes separately?
2242
- 4. What is the minimum metadata required to represent selected scopes and linked changes?
2243
- 5. What is the exact format split between committed shared workspace state and local overlay state?
2244
- 6. Which agents should receive generated workspace instructions, and in what format?
2245
- 7. What exact CLI surface should create and manage coordination workspaces?
2246
-
2247
- ---
2248
-
2249
- ## Recommended Next Step
2250
-
2251
- Convert these journeys into a concrete design proposal covering:
2252
-
2253
- 1. coordination workspace file format
2254
- 2. scope metadata shape
2255
- 3. repo identifier and local resolution model
2256
- 4. linked change model
2257
- 5. shared manifest vs local overlay model
2258
- 6. CLI commands for create, attach, doctor, sync, and archive flows
2259
- 7. agent instruction generation for supported tools