sauron-cli 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/index.js +8 -8
- package/package.json +1 -1
- package/templates/.agents/rules/memory.md +68 -68
- package/templates/.agents/skills/wiki/SKILL.md +14 -14
- package/55ea973d-e255-4f08-a313-a5d68243bd2d.png +0 -0
- package/OpenSpec-main/.actrc +0 -1
- package/OpenSpec-main/.changeset/README.md +0 -97
- package/OpenSpec-main/.changeset/config.json +0 -15
- package/OpenSpec-main/.coderabbit.yaml +0 -11
- package/OpenSpec-main/.devcontainer/README.md +0 -92
- package/OpenSpec-main/.devcontainer/devcontainer.json +0 -68
- package/OpenSpec-main/.github/CODEOWNERS +0 -2
- package/OpenSpec-main/.github/workflows/README.md +0 -20
- package/OpenSpec-main/.github/workflows/ci.yml +0 -346
- package/OpenSpec-main/.github/workflows/release-prepare.yml +0 -60
- package/OpenSpec-main/CHANGELOG.md +0 -594
- package/OpenSpec-main/LICENSE +0 -22
- package/OpenSpec-main/MAINTAINERS.md +0 -17
- package/OpenSpec-main/README.md +0 -206
- package/OpenSpec-main/README_OLD.md +0 -475
- package/OpenSpec-main/assets/openspec_bg.png +0 -0
- package/OpenSpec-main/assets/openspec_dashboard.png +0 -0
- package/OpenSpec-main/assets/openspec_pixel_dark.svg +0 -89
- package/OpenSpec-main/assets/openspec_pixel_light.svg +0 -89
- package/OpenSpec-main/bin/openspec.js +0 -5
- package/OpenSpec-main/build.js +0 -31
- package/OpenSpec-main/eslint.config.js +0 -42
- package/OpenSpec-main/flake.lock +0 -27
- package/OpenSpec-main/flake.nix +0 -114
- package/OpenSpec-main/openspec/changes/IMPLEMENTATION_ORDER.md +0 -68
- package/OpenSpec-main/openspec/changes/add-artifact-regeneration-support/proposal.md +0 -136
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/proposal.md +0 -93
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/change-creation/spec.md +0 -15
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/change-stacking-workflow/spec.md +0 -65
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/cli-change/spec.md +0 -27
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/openspec-conventions/spec.md +0 -29
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/tasks.md +0 -39
- package/OpenSpec-main/openspec/changes/add-global-install-scope/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/add-global-install-scope/design.md +0 -161
- package/OpenSpec-main/openspec/changes/add-global-install-scope/proposal.md +0 -101
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/ai-tool-paths/spec.md +0 -35
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-config/spec.md +0 -21
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-init/spec.md +0 -28
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-update/spec.md +0 -34
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/command-generation/spec.md +0 -22
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/global-config/spec.md +0 -24
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/installation-scope/spec.md +0 -71
- package/OpenSpec-main/openspec/changes/add-global-install-scope/tasks.md +0 -61
- package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/proposal.md +0 -45
- package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/specs/developer-qa-workflow/spec.md +0 -49
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/proposal.md +0 -111
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/specs/cli-init/spec.md +0 -121
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/specs/cli-update/spec.md +0 -48
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/tasks.md +0 -53
- package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/design.md +0 -86
- package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/proposal.md +0 -29
- package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/specs/cli-update/spec.md +0 -59
- package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/tasks.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/proposal.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/specs/cli-list/spec.md +0 -69
- package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/tasks.md +0 -26
- package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/design.md +0 -64
- package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/proposal.md +0 -18
- package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/tasks.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/design.md +0 -104
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/proposal.md +0 -30
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/specs/cli-init/spec.md +0 -148
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/tasks.md +0 -38
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/proposal.md +0 -24
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/specs/openspec-conventions/spec.md +0 -120
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/tasks.md +0 -38
- package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/proposal.md +0 -13
- package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/specs/openspec-docs/README.md +0 -472
- package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/tasks.md +0 -9
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/proposal.md +0 -15
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/specs/cli-archive/spec.md +0 -111
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/tasks.md +0 -44
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/proposal.md +0 -19
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/specs/cli-diff/spec.md +0 -77
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/tasks.md +0 -23
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/design.md +0 -56
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/proposal.md +0 -17
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-change/spec.md +0 -48
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-list/spec.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/tasks.md +0 -34
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/proposal.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-change/spec.md +0 -23
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-show/spec.md +0 -83
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-spec/spec.md +0 -23
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/tasks.md +0 -142
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/proposal.md +0 -13
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/specs/cli-archive/spec.md +0 -191
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/tasks.md +0 -57
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/design.md +0 -45
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/proposal.md +0 -19
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/specs/cli-spec/spec.md +0 -43
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/tasks.md +0 -22
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/design.md +0 -104
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/proposal.md +0 -22
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-archive/spec.md +0 -18
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-diff/spec.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/tasks.md +0 -59
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/proposal.md +0 -93
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-archive/spec.md +0 -48
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-diff/spec.md +0 -45
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/openspec-conventions/spec.md +0 -101
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/tasks.md +0 -55
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/design.md +0 -19
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/proposal.md +0 -67
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/cli-list/spec.md +0 -57
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/openspec-conventions/spec.md +0 -23
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/tasks.md +0 -27
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/proposal.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-change/spec.md +0 -22
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-spec/spec.md +0 -23
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-validate/spec.md +0 -149
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/tasks.md +0 -81
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/proposal.md +0 -40
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/specs/cli-update/spec.md +0 -23
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/tasks.md +0 -21
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/proposal.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/specs/cli-validate/spec.md +0 -55
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/tasks.md +0 -21
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/proposal.md +0 -36
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/specs/openspec-conventions/spec.md +0 -192
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/tasks.md +0 -19
- package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/proposal.md +0 -38
- package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/specs/cli-view/spec.md +0 -109
- package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/tasks.md +0 -47
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/proposal.md +0 -28
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-init/spec.md +0 -71
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-update/spec.md +0 -41
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/tasks.md +0 -17
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/proposal.md +0 -35
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/specs/cli-init/spec.md +0 -45
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/tasks.md +0 -16
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/proposal.md +0 -119
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-init/spec.md +0 -21
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-update/spec.md +0 -22
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/tasks.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/proposal.md +0 -19
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/tasks.md +0 -9
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-deterministic-tests/proposal.md +0 -78
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-deterministic-tests/tasks.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/proposal.md +0 -13
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/specs/cli-init/spec.md +0 -92
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/tasks.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-remove-diff-command/proposal.md +0 -81
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-remove-diff-command/tasks.md +0 -37
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/proposal.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/specs/cli-view/spec.md +0 -9
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/tasks.md +0 -8
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/proposal.md +0 -29
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-init/spec.md +0 -40
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-update/spec.md +0 -22
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/openspec-conventions/spec.md +0 -27
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/tasks.md +0 -22
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/design.md +0 -130
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/proposal.md +0 -117
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/tasks.md +0 -69
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/proposal.md +0 -19
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/specs/cli-validate/spec.md +0 -9
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/tasks.md +0 -11
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/proposal.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-init/spec.md +0 -56
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-update/spec.md +0 -41
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/tasks.md +0 -19
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/proposal.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-init/spec.md +0 -48
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-update/spec.md +0 -48
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/tasks.md +0 -30
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/proposal.md +0 -17
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-init/spec.md +0 -43
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-update/spec.md +0 -27
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/tasks.md +0 -15
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/proposal.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/specs/cli-init/spec.md +0 -39
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/tasks.md +0 -17
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/proposal.md +0 -17
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-init/spec.md +0 -42
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-update/spec.md +0 -27
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/tasks.md +0 -17
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/proposal.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/specs/cli-validate/spec.md +0 -39
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/tasks.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/proposal.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/specs/docs-agent-instructions/spec.md +0 -33
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/tasks.md +0 -11
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-slim-root-agents-file/proposal.md +0 -13
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-slim-root-agents-file/tasks.md +0 -15
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/proposal.md +0 -14
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/specs/cli-init/spec.md +0 -10
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/tasks.md +0 -8
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/proposal.md +0 -15
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-init/spec.md +0 -32
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-update/spec.md +0 -10
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/tasks.md +0 -11
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md +0 -49
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-release-automation/tasks.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/proposal.md +0 -17
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md +0 -32
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md +0 -15
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/proposal.md +0 -15
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md +0 -97
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/tasks.md +0 -19
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/proposal.md +0 -13
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md +0 -67
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/tasks.md +0 -7
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/proposal.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-init/spec.md +0 -54
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-update/spec.md +0 -54
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/tasks.md +0 -11
- package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/design.md +0 -525
- package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/proposal.md +0 -29
- package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/specs/cli-completion/spec.md +0 -300
- package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/tasks.md +0 -81
- package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/design.md +0 -105
- package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/proposal.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/specs/global-config/spec.md +0 -76
- package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/tasks.md +0 -26
- package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/design.md +0 -89
- package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/proposal.md +0 -60
- package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/specs/cli-config/spec.md +0 -213
- package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/tasks.md +0 -28
- package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/proposal.md +0 -15
- package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/specs/cli-completion/spec.md +0 -328
- package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/tasks.md +0 -49
- package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/design.md +0 -197
- package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/proposal.md +0 -18
- package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/specs/artifact-graph/spec.md +0 -103
- package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/tasks.md +0 -61
- package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/design.md +0 -74
- package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/proposal.md +0 -45
- package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/specs/change-creation/spec.md +0 -63
- package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/tasks.md +0 -30
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/design.md +0 -112
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/proposal.md +0 -33
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/specs/cli-artifact-workflow/spec.md +0 -153
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/tasks.md +0 -48
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/design.md +0 -149
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/proposal.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/specs/instruction-loader/spec.md +0 -70
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/tasks.md +0 -13
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/design.md +0 -129
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/proposal.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/specs/artifact-graph/spec.md +0 -49
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/tasks.md +0 -32
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/design.md +0 -151
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/proposal.md +0 -101
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/specs/cli-artifact-workflow/spec.md +0 -109
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/specs/cli-view/spec.md +0 -60
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/tasks.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/proposal.md +0 -11
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/specs/cli-init/spec.md +0 -105
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/specs/cli-update/spec.md +0 -92
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/tasks.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/proposal.md +0 -13
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/specs/cli-init/spec.md +0 -105
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/specs/cli-update/spec.md +0 -92
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/tasks.md +0 -13
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-agent-schema-selection/proposal.md +0 -26
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-agent-schema-selection/tasks.md +0 -32
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/design.md +0 -147
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/proposal.md +0 -29
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/specs/cli-artifact-workflow/spec.md +0 -98
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/tasks.md +0 -29
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/design.md +0 -77
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/proposal.md +0 -32
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/specs/specs-sync-skill/spec.md +0 -67
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/tasks.md +0 -40
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/proposal.md +0 -138
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/specs/cli-artifact-workflow/spec.md +0 -60
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/tasks.md +0 -35
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/design.md +0 -84
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/proposal.md +0 -28
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/specs/opsx-archive-skill/spec.md +0 -122
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/tasks.md +0 -23
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/design.md +0 -94
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/proposal.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/specs/nix-flake-support/spec.md +0 -79
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/tasks.md +0 -65
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/design.md +0 -117
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/proposal.md +0 -23
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/specs/flake-update-script/spec.md +0 -93
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/tasks.md +0 -55
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/design.md +0 -175
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/proposal.md +0 -37
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/specs/global-config/spec.md +0 -21
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/specs/telemetry/spec.md +0 -116
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/tasks.md +0 -47
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/proposal.md +0 -16
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/specs/cli-init/spec.md +0 -75
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/specs/cli-update/spec.md +0 -56
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/tasks.md +0 -6
- package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/design.md +0 -206
- package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/proposal.md +0 -21
- package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/specs/ci-nix-validation/spec.md +0 -104
- package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/tasks.md +0 -49
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/README.md +0 -3
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/design.md +0 -70
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/proposal.md +0 -32
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/specs/no-changes.md +0 -9
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/tasks.md +0 -22
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/proposal.md +0 -20
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/specs/cli-feedback/spec.md +0 -188
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/tasks.md +0 -30
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/design.md +0 -115
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/proposal.md +0 -27
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/specs/opsx-onboard-skill/spec.md +0 -162
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/tasks.md +0 -21
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/design.md +0 -96
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/proposal.md +0 -48
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/specs/opsx-verify-skill/spec.md +0 -190
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/tasks.md +0 -15
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/design.md +0 -193
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/proposal.md +0 -32
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/specs/cli-init/spec.md +0 -176
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/specs/legacy-cleanup/spec.md +0 -158
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/tasks.md +0 -67
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/design.md +0 -144
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/proposal.md +0 -36
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/ai-tool-paths/spec.md +0 -63
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/cli-artifact-workflow/spec.md +0 -60
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/command-generation/spec.md +0 -98
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/tasks.md +0 -55
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/design.md +0 -665
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/proposal.md +0 -774
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/config-loading/spec.md +0 -119
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/context-injection/spec.md +0 -51
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/rules-injection/spec.md +0 -99
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/schema-resolution/spec.md +0 -83
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/tasks.md +0 -72
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/design.md +0 -117
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/proposal.md +0 -167
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/specs/schema-resolution/spec.md +0 -88
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/tasks.md +0 -28
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/design.md +0 -113
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/proposal.md +0 -55
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-fork-command/spec.md +0 -66
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-init-command/spec.md +0 -71
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-validate-command/spec.md +0 -86
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-which-command/spec.md +0 -65
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/tasks.md +0 -67
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md +0 -3
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md +0 -85
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md +0 -38
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md +0 -12
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md +0 -37
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md +0 -22
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/design.md +0 -208
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/proposal.md +0 -142
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/specs/openspec-conventions/spec.md +0 -29
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/specs/workspace-foundation/spec.md +0 -199
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/tasks.md +0 -56
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/design.md +0 -356
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/proposal.md +0 -128
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/cli-artifact-workflow/spec.md +0 -24
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/workspace-foundation/spec.md +0 -35
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/workspace-links/spec.md +0 -356
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/tasks.md +0 -121
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/design.md +0 -266
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/proposal.md +0 -65
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/specs/workspace-foundation/spec.md +0 -76
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/specs/workspace-open/spec.md +0 -199
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/tasks.md +0 -89
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/design.md +0 -242
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/proposal.md +0 -78
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/artifact-graph/spec.md +0 -36
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/change-creation/spec.md +0 -42
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-artifact-workflow/spec.md +0 -100
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-config/spec.md +0 -55
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-update/spec.md +0 -21
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/openspec-conventions/spec.md +0 -32
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/schema-resolution/spec.md +0 -25
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/workspace-change-planning/spec.md +0 -67
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/workspace-links/spec.md +0 -163
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/tasks.md +0 -133
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/design.md +0 -48
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/proposal.md +0 -26
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/specs/command-generation/spec.md +0 -63
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/tasks.md +0 -19
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/design.md +0 -38
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/proposal.md +0 -25
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/specs/graceful-status-empty/spec.md +0 -27
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/tasks.md +0 -16
- package/OpenSpec-main/openspec/changes/schema-alias-support/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/schema-alias-support/proposal.md +0 -28
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/design.md +0 -288
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/proposal.md +0 -202
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/cli-init/spec.md +0 -199
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/cli-update/spec.md +0 -177
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/profiles/spec.md +0 -142
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/propose-workflow/spec.md +0 -42
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/tasks.md +0 -132
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/design.md +0 -149
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/proposal.md +0 -47
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/specs/template-artifact-pipeline/spec.md +0 -89
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/tasks.md +0 -41
- package/OpenSpec-main/openspec/changes/workspace-agent-guidance/.openspec.yaml +0 -2
- package/OpenSpec-main/openspec/changes/workspace-agent-guidance/proposal.md +0 -100
- package/OpenSpec-main/openspec/changes/workspace-apply-repo-slice/proposal.md +0 -58
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/HISTORICAL_DIRECTION.md +0 -511
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/POC_REFERENCE_GUIDE.md +0 -266
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/README.md +0 -107
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/START_HERE.md +0 -105
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/proposal.md +0 -62
- package/OpenSpec-main/openspec/changes/workspace-verify-and-archive/proposal.md +0 -57
- package/OpenSpec-main/openspec/config.yaml +0 -36
- package/OpenSpec-main/openspec/explorations/explore-workflow-ux.md +0 -116
- package/OpenSpec-main/openspec/explorations/workspace-architecture.md +0 -857
- package/OpenSpec-main/openspec/explorations/workspace-roadmap.md +0 -367
- package/OpenSpec-main/openspec/explorations/workspace-user-journeys.md +0 -2259
- package/OpenSpec-main/openspec/explorations/workspace-ux-simplification.md +0 -491
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/.initiative.yaml +0 -27
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/README.md +0 -33
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/decisions.md +0 -204
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/direction.md +0 -447
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/questions.md +0 -23
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/roadmap.md +0 -759
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/tasks.md +0 -308
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/evidence.md +0 -154
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/plan.md +0 -90
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/tasks.md +0 -44
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/evidence.md +0 -68
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/plan.md +0 -80
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/tasks.md +0 -23
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/evidence.md +0 -43
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/plan.md +0 -85
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/tasks.md +0 -17
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/evidence.md +0 -77
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/plan.md +0 -198
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/tasks.md +0 -14
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/evidence.md +0 -99
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/plan.md +0 -236
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/tasks.md +0 -21
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/evidence.md +0 -97
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/plan.md +0 -333
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/tasks.md +0 -29
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/evidence.md +0 -97
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/plan.md +0 -184
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/tasks.md +0 -27
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/evidence.md +0 -239
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/plan.md +0 -279
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/tasks.md +0 -22
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/decision-review.md +0 -64
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/evidence.md +0 -106
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/plan.md +0 -141
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/tasks.md +0 -22
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/10-let-workspaces-open-initiatives/plan.md +0 -430
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/10-let-workspaces-open-initiatives/tasks.md +0 -43
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/notes.md +0 -289
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/plan.md +0 -39
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/tasks.md +0 -8
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/evidence.md +0 -45
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/plan.md +0 -150
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/tasks.md +0 -23
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/evidence.md +0 -25
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/plan.md +0 -98
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/tasks.md +0 -25
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/14-workspaces-beta-guide-split/plan.md +0 -37
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/14-workspaces-beta-guide-split/tasks.md +0 -9
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/evidence.md +0 -140
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/plan.md +0 -344
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/tasks.md +0 -39
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/16-add-escalation-ux/plan.md +0 -26
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/16-add-escalation-ux/tasks.md +0 -7
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/17-harden-team-shared-coordination/plan.md +0 -25
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/17-harden-team-shared-coordination/tasks.md +0 -7
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/evidence.md +0 -397
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/plan.md +0 -180
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/tasks.md +0 -28
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/19-review-workspace-beta-compatibility-before-public-release/plan.md +0 -62
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/19-review-workspace-beta-compatibility-before-public-release/tasks.md +0 -16
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/evidence.md +0 -47
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/plan.md +0 -90
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/tasks.md +0 -18
- package/OpenSpec-main/openspec/specs/ai-tool-paths/spec.md +0 -63
- package/OpenSpec-main/openspec/specs/artifact-graph/spec.md +0 -165
- package/OpenSpec-main/openspec/specs/change-creation/spec.md +0 -108
- package/OpenSpec-main/openspec/specs/ci-nix-validation/spec.md +0 -107
- package/OpenSpec-main/openspec/specs/cli-archive/spec.md +0 -210
- package/OpenSpec-main/openspec/specs/cli-artifact-workflow/spec.md +0 -398
- package/OpenSpec-main/openspec/specs/cli-change/spec.md +0 -92
- package/OpenSpec-main/openspec/specs/cli-completion/spec.md +0 -432
- package/OpenSpec-main/openspec/specs/cli-config/spec.md +0 -318
- package/OpenSpec-main/openspec/specs/cli-feedback/spec.md +0 -193
- package/OpenSpec-main/openspec/specs/cli-init/spec.md +0 -269
- package/OpenSpec-main/openspec/specs/cli-list/spec.md +0 -103
- package/OpenSpec-main/openspec/specs/cli-show/spec.md +0 -86
- package/OpenSpec-main/openspec/specs/cli-spec/spec.md +0 -88
- package/OpenSpec-main/openspec/specs/cli-update/spec.md +0 -229
- package/OpenSpec-main/openspec/specs/cli-validate/spec.md +0 -219
- package/OpenSpec-main/openspec/specs/cli-view/spec.md +0 -129
- package/OpenSpec-main/openspec/specs/command-generation/spec.md +0 -97
- package/OpenSpec-main/openspec/specs/config-loading/spec.md +0 -122
- package/OpenSpec-main/openspec/specs/context-injection/spec.md +0 -53
- package/OpenSpec-main/openspec/specs/docs-agent-instructions/spec.md +0 -62
- package/OpenSpec-main/openspec/specs/global-config/spec.md +0 -101
- package/OpenSpec-main/openspec/specs/instruction-loader/spec.md +0 -70
- package/OpenSpec-main/openspec/specs/legacy-cleanup/spec.md +0 -163
- package/OpenSpec-main/openspec/specs/openspec-conventions/spec.md +0 -556
- package/OpenSpec-main/openspec/specs/opsx-archive-skill/spec.md +0 -128
- package/OpenSpec-main/openspec/specs/opsx-onboard-skill/spec.md +0 -167
- package/OpenSpec-main/openspec/specs/opsx-verify-skill/spec.md +0 -189
- package/OpenSpec-main/openspec/specs/rules-injection/spec.md +0 -102
- package/OpenSpec-main/openspec/specs/schema-fork-command/spec.md +0 -71
- package/OpenSpec-main/openspec/specs/schema-init-command/spec.md +0 -76
- package/OpenSpec-main/openspec/specs/schema-resolution/spec.md +0 -201
- package/OpenSpec-main/openspec/specs/schema-validate-command/spec.md +0 -91
- package/OpenSpec-main/openspec/specs/schema-which-command/spec.md +0 -70
- package/OpenSpec-main/openspec/specs/specs-sync-skill/spec.md +0 -72
- package/OpenSpec-main/openspec/specs/telemetry/spec.md +0 -122
- package/OpenSpec-main/openspec/specs/workspace-change-planning/spec.md +0 -71
- package/OpenSpec-main/openspec/specs/workspace-foundation/spec.md +0 -279
- package/OpenSpec-main/openspec/specs/workspace-links/spec.md +0 -529
- package/OpenSpec-main/openspec/specs/workspace-open/spec.md +0 -205
- package/OpenSpec-main/openspec-parallel-merge-plan.md +0 -98
- package/OpenSpec-main/package-lock.json +0 -4978
- package/OpenSpec-main/package.json +0 -84
- package/OpenSpec-main/pnpm-lock.yaml +0 -3187
- package/OpenSpec-main/schemas/spec-driven/schema.yaml +0 -153
- package/OpenSpec-main/schemas/spec-driven/templates/design.md +0 -19
- package/OpenSpec-main/schemas/spec-driven/templates/proposal.md +0 -23
- package/OpenSpec-main/schemas/spec-driven/templates/spec.md +0 -8
- package/OpenSpec-main/schemas/spec-driven/templates/tasks.md +0 -9
- package/OpenSpec-main/schemas/workspace-planning/schema.yaml +0 -72
- package/OpenSpec-main/schemas/workspace-planning/templates/design.md +0 -33
- package/OpenSpec-main/schemas/workspace-planning/templates/proposal.md +0 -28
- package/OpenSpec-main/schemas/workspace-planning/templates/spec.md +0 -9
- package/OpenSpec-main/schemas/workspace-planning/templates/tasks.md +0 -15
- package/OpenSpec-main/scripts/README.md +0 -37
- package/OpenSpec-main/scripts/pack-version-check.mjs +0 -111
- package/OpenSpec-main/scripts/postinstall.js +0 -83
- package/OpenSpec-main/scripts/test-postinstall.sh +0 -57
- package/OpenSpec-main/scripts/update-flake.sh +0 -128
- package/OpenSpec-main/test/cli-e2e/basic.test.ts +0 -205
- package/OpenSpec-main/test/commands/artifact-workflow.test.ts +0 -1063
- package/OpenSpec-main/test/commands/change-initiative-link.test.ts +0 -532
- package/OpenSpec-main/test/commands/change.interactive-show.test.ts +0 -45
- package/OpenSpec-main/test/commands/change.interactive-validate.test.ts +0 -48
- package/OpenSpec-main/test/commands/completion.test.ts +0 -278
- package/OpenSpec-main/test/commands/config-profile.test.ts +0 -532
- package/OpenSpec-main/test/commands/config.test.ts +0 -285
- package/OpenSpec-main/test/commands/context-store.test.ts +0 -692
- package/OpenSpec-main/test/commands/feedback.test.ts +0 -429
- package/OpenSpec-main/test/commands/initiative.test.ts +0 -907
- package/OpenSpec-main/test/commands/schema.test.ts +0 -467
- package/OpenSpec-main/test/commands/show.test.ts +0 -123
- package/OpenSpec-main/test/commands/spec.interactive-show.test.ts +0 -44
- package/OpenSpec-main/test/commands/spec.interactive-validate.test.ts +0 -44
- package/OpenSpec-main/test/commands/spec.test.ts +0 -324
- package/OpenSpec-main/test/commands/validate.enriched-output.test.ts +0 -49
- package/OpenSpec-main/test/commands/validate.test.ts +0 -147
- package/OpenSpec-main/test/commands/workspace-initiative-open.test.ts +0 -638
- package/OpenSpec-main/test/commands/workspace-open.test.ts +0 -123
- package/OpenSpec-main/test/commands/workspace.interactive.test.ts +0 -696
- package/OpenSpec-main/test/commands/workspace.test.ts +0 -1812
- package/OpenSpec-main/test/core/archive.test.ts +0 -869
- package/OpenSpec-main/test/core/artifact-graph/graph.test.ts +0 -268
- package/OpenSpec-main/test/core/artifact-graph/instruction-loader.test.ts +0 -609
- package/OpenSpec-main/test/core/artifact-graph/outputs.test.ts +0 -175
- package/OpenSpec-main/test/core/artifact-graph/resolver.test.ts +0 -651
- package/OpenSpec-main/test/core/artifact-graph/schema.test.ts +0 -207
- package/OpenSpec-main/test/core/artifact-graph/state.test.ts +0 -174
- package/OpenSpec-main/test/core/artifact-graph/workflow.integration.test.ts +0 -182
- package/OpenSpec-main/test/core/available-tools.test.ts +0 -167
- package/OpenSpec-main/test/core/collections/initiatives/operations.test.ts +0 -342
- package/OpenSpec-main/test/core/collections/initiatives/resolution.test.ts +0 -21
- package/OpenSpec-main/test/core/collections/initiatives/schema.test.ts +0 -201
- package/OpenSpec-main/test/core/collections/initiatives/templates.test.ts +0 -74
- package/OpenSpec-main/test/core/collections/runtime.test.ts +0 -214
- package/OpenSpec-main/test/core/command-generation/adapters.test.ts +0 -710
- package/OpenSpec-main/test/core/command-generation/generator.test.ts +0 -110
- package/OpenSpec-main/test/core/command-generation/registry.test.ts +0 -108
- package/OpenSpec-main/test/core/command-generation/types.test.ts +0 -79
- package/OpenSpec-main/test/core/commands/change-command.list.test.ts +0 -76
- package/OpenSpec-main/test/core/commands/change-command.show-validate.test.ts +0 -111
- package/OpenSpec-main/test/core/completions/command-registry.test.ts +0 -201
- package/OpenSpec-main/test/core/completions/completion-provider.test.ts +0 -288
- package/OpenSpec-main/test/core/completions/generators/bash-generator.test.ts +0 -586
- package/OpenSpec-main/test/core/completions/generators/fish-generator.test.ts +0 -549
- package/OpenSpec-main/test/core/completions/generators/powershell-generator.test.ts +0 -621
- package/OpenSpec-main/test/core/completions/generators/zsh-generator.test.ts +0 -425
- package/OpenSpec-main/test/core/completions/installers/bash-installer.test.ts +0 -484
- package/OpenSpec-main/test/core/completions/installers/fish-installer.test.ts +0 -321
- package/OpenSpec-main/test/core/completions/installers/powershell-installer.test.ts +0 -824
- package/OpenSpec-main/test/core/completions/installers/zsh-installer.test.ts +0 -750
- package/OpenSpec-main/test/core/config-schema.test.ts +0 -340
- package/OpenSpec-main/test/core/context-store/foundation.test.ts +0 -364
- package/OpenSpec-main/test/core/context-store/registry.test.ts +0 -599
- package/OpenSpec-main/test/core/converters/json-converter.test.ts +0 -184
- package/OpenSpec-main/test/core/global-config.test.ts +0 -371
- package/OpenSpec-main/test/core/init.test.ts +0 -786
- package/OpenSpec-main/test/core/legacy-cleanup.test.ts +0 -1162
- package/OpenSpec-main/test/core/list.test.ts +0 -165
- package/OpenSpec-main/test/core/migration.test.ts +0 -150
- package/OpenSpec-main/test/core/parsers/change-parser.test.ts +0 -52
- package/OpenSpec-main/test/core/parsers/markdown-parser.test.ts +0 -355
- package/OpenSpec-main/test/core/parsers/requirement-blocks.test.ts +0 -46
- package/OpenSpec-main/test/core/planning-home.test.ts +0 -120
- package/OpenSpec-main/test/core/profile-sync-drift.test.ts +0 -92
- package/OpenSpec-main/test/core/profiles.test.ts +0 -63
- package/OpenSpec-main/test/core/project-config.test.ts +0 -610
- package/OpenSpec-main/test/core/shared/skill-generation.test.ts +0 -301
- package/OpenSpec-main/test/core/shared/tool-detection.test.ts +0 -333
- package/OpenSpec-main/test/core/templates/skill-templates-parity.test.ts +0 -172
- package/OpenSpec-main/test/core/update.test.ts +0 -1810
- package/OpenSpec-main/test/core/validation.enriched-messages.test.ts +0 -74
- package/OpenSpec-main/test/core/validation.test.ts +0 -680
- package/OpenSpec-main/test/core/view.test.ts +0 -129
- package/OpenSpec-main/test/core/workspace/foundation.test.ts +0 -694
- package/OpenSpec-main/test/core/workspace/legacy-state.test.ts +0 -221
- package/OpenSpec-main/test/core/workspace/skills.test.ts +0 -69
- package/OpenSpec-main/test/fixtures/tmp-init/openspec/changes/c1/proposal.md +0 -7
- package/OpenSpec-main/test/fixtures/tmp-init/openspec/changes/c1/specs/alpha/spec.md +0 -8
- package/OpenSpec-main/test/fixtures/tmp-init/openspec/specs/alpha/spec.md +0 -12
- package/OpenSpec-main/test/helpers/path-env.ts +0 -26
- package/OpenSpec-main/test/helpers/run-cli.ts +0 -150
- package/OpenSpec-main/test/prompts/searchable-multi-select.test.ts +0 -220
- package/OpenSpec-main/test/specs/source-specs-normalization.test.ts +0 -63
- package/OpenSpec-main/test/telemetry/config.test.ts +0 -298
- package/OpenSpec-main/test/telemetry/index.test.ts +0 -219
- package/OpenSpec-main/test/utils/change-metadata.test.ts +0 -368
- package/OpenSpec-main/test/utils/change-utils.test.ts +0 -201
- package/OpenSpec-main/test/utils/command-references.test.ts +0 -83
- package/OpenSpec-main/test/utils/file-system.test.ts +0 -322
- package/OpenSpec-main/test/utils/interactive.test.ts +0 -125
- package/OpenSpec-main/test/utils/marker-updates.test.ts +0 -448
- package/OpenSpec-main/test/utils/shell-detection.test.ts +0 -185
- package/OpenSpec-main/vitest.config.ts +0 -47
- package/OpenSpec-main/vitest.setup.ts +0 -15
- package/Scanner CLI Inteligente para Projetos.md +0 -433
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
## MODIFIED Requirements
|
|
2
|
-
|
|
3
|
-
### Requirement: ToolCommandAdapter interface
|
|
4
|
-
|
|
5
|
-
The system SHALL define a `ToolCommandAdapter` interface for per-tool formatting.
|
|
6
|
-
|
|
7
|
-
#### Scenario: Adapter interface structure
|
|
8
|
-
|
|
9
|
-
- **WHEN** implementing a tool adapter
|
|
10
|
-
- **THEN** `ToolCommandAdapter` SHALL require:
|
|
11
|
-
- `toolId`: string identifier matching `AIToolOption.value`
|
|
12
|
-
- `getFilePath(commandId: string)`: returns file path for command (relative from project root, or absolute for global-scoped tools like Codex)
|
|
13
|
-
- `formatFile(content: CommandContent)`: returns complete file content with frontmatter
|
|
14
|
-
|
|
15
|
-
#### Scenario: Claude adapter formatting
|
|
16
|
-
|
|
17
|
-
- **WHEN** formatting a command for Claude Code
|
|
18
|
-
- **THEN** the adapter SHALL output YAML frontmatter with `name`, `description`, `category`, `tags` fields
|
|
19
|
-
- **AND** file path SHALL follow pattern `.claude/commands/opsx/<id>.md`
|
|
20
|
-
|
|
21
|
-
#### Scenario: Cursor adapter formatting
|
|
22
|
-
|
|
23
|
-
- **WHEN** formatting a command for Cursor
|
|
24
|
-
- **THEN** the adapter SHALL output YAML frontmatter with `name` as `/opsx-<id>`, `id`, `category`, `description` fields
|
|
25
|
-
- **AND** file path SHALL follow pattern `.cursor/commands/opsx-<id>.md`
|
|
26
|
-
|
|
27
|
-
#### Scenario: Windsurf adapter formatting
|
|
28
|
-
|
|
29
|
-
- **WHEN** formatting a command for Windsurf
|
|
30
|
-
- **THEN** the adapter SHALL output YAML frontmatter with `name`, `description`, `category`, `tags` fields
|
|
31
|
-
- **AND** file path SHALL follow pattern `.windsurf/workflows/opsx-<id>.md`
|
|
32
|
-
|
|
33
|
-
#### Scenario: OpenCode adapter formatting
|
|
34
|
-
|
|
35
|
-
- **WHEN** formatting a command for OpenCode
|
|
36
|
-
- **THEN** the adapter SHALL output YAML frontmatter with `description` field
|
|
37
|
-
- **AND** file path SHALL follow pattern `.opencode/commands/opsx-<id>.md` using `path.join('.opencode', 'commands', ...)` for cross-platform compatibility
|
|
38
|
-
- **AND** the adapter SHALL transform colon-based command references (`/opsx:name`) to hyphen-based (`/opsx-name`) in the body
|
|
39
|
-
|
|
40
|
-
## ADDED Requirements
|
|
41
|
-
|
|
42
|
-
### Requirement: Legacy cleanup for renamed OpenCode command directory
|
|
43
|
-
|
|
44
|
-
The legacy cleanup module SHALL detect and remove old OpenCode command files from the previous singular `.opencode/command/` directory path.
|
|
45
|
-
|
|
46
|
-
#### Scenario: Detect old singular-path OpenCode command files
|
|
47
|
-
|
|
48
|
-
- **WHEN** running legacy artifact detection on a project with files matching `.opencode/command/opsx-*.md` or `.opencode/command/openspec-*.md`
|
|
49
|
-
- **THEN** the system SHALL include those files in the legacy slash command files list via `LEGACY_SLASH_COMMAND_PATHS`
|
|
50
|
-
- **AND** `LegacySlashCommandPattern.pattern` SHALL accept `string | string[]` to support multiple glob patterns per tool
|
|
51
|
-
|
|
52
|
-
#### Scenario: Clean up old OpenCode command files on init
|
|
53
|
-
|
|
54
|
-
- **WHEN** a user runs `openspec init` in a project with old `.opencode/command/` artifacts
|
|
55
|
-
- **THEN** the system SHALL remove the old files
|
|
56
|
-
- **AND** generate new command files at `.opencode/commands/`
|
|
57
|
-
|
|
58
|
-
#### Scenario: Auto-cleanup legacy artifacts in non-interactive mode
|
|
59
|
-
|
|
60
|
-
- **WHEN** a user runs `openspec init` in non-interactive mode (e.g., CI) and legacy artifacts are detected
|
|
61
|
-
- **THEN** the system SHALL auto-cleanup legacy artifacts without requiring `--force`
|
|
62
|
-
- **AND** legacy slash command files (100% OpenSpec-managed) SHALL be removed
|
|
63
|
-
- **AND** config file cleanup SHALL only remove OpenSpec markers (never delete user files)
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
## 1. Adapter Fix
|
|
2
|
-
|
|
3
|
-
- [x] 1.1 Update `src/core/command-generation/adapters/opencode.ts`: change `path.join('.opencode', 'command', ...)` to `path.join('.opencode', 'commands', ...)` and update the JSDoc comment
|
|
4
|
-
|
|
5
|
-
## 2. Legacy Cleanup
|
|
6
|
-
|
|
7
|
-
- [x] 2.1 Update `src/core/legacy-cleanup.ts`: update the `'opencode'` entry in `LEGACY_SLASH_COMMAND_PATHS` to detect both `opsx-*.md` and `openspec-*.md` patterns at `.opencode/command/` for backward compatibility
|
|
8
|
-
|
|
9
|
-
## 3. Documentation
|
|
10
|
-
|
|
11
|
-
- [x] 3.1 Update `docs/supported-tools.md`: change OpenCode command path from `.opencode/command/opsx-<id>.md` to `.opencode/commands/opsx-<id>.md`
|
|
12
|
-
|
|
13
|
-
## 4. Tests
|
|
14
|
-
|
|
15
|
-
- [x] 4.1 Update `test/core/command-generation/adapters.test.ts`: change the OpenCode file path assertion from `path.join('.opencode', 'command', 'opsx-explore.md')` to `path.join('.opencode', 'commands', 'opsx-explore.md')`
|
|
16
|
-
|
|
17
|
-
## 5. Changeset
|
|
18
|
-
|
|
19
|
-
- [x] 5.1 Create a changeset file (`.changeset/fix-opencode-commands-directory.md`) with a patch bump describing the path fix
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
## Context
|
|
2
|
-
|
|
3
|
-
`statusCommand` in `src/commands/workflow/status.ts` calls `validateChangeExists()` from `shared.ts` as its first operation. When no `--change` option is provided and no change directories exist, `validateChangeExists` throws: `No changes found. Create one with: openspec new change <name>`. This error propagates up as a fatal CLI error (non-zero exit code).
|
|
4
|
-
|
|
5
|
-
This is correct behavior for commands like `apply` and `show` that require a change to operate on. However, `status` is an informational command — it should report the current state, even when that state is "no changes exist."
|
|
6
|
-
|
|
7
|
-
The error surfaces during onboarding (issue #714) when AI agents call `openspec status` before any change has been created.
|
|
8
|
-
|
|
9
|
-
## Goals / Non-Goals
|
|
10
|
-
|
|
11
|
-
**Goals:**
|
|
12
|
-
- Make `openspec status` exit with code 0 and a friendly message when no changes exist
|
|
13
|
-
- Support both text and JSON output modes for the no-changes case
|
|
14
|
-
- Keep all other commands' validation behavior unchanged
|
|
15
|
-
|
|
16
|
-
**Non-Goals:**
|
|
17
|
-
- Changing the behavior of `validateChangeExists` (keep it strict for all consumers; only extract its internal helper)
|
|
18
|
-
- Changing the onboard template or skill instructions
|
|
19
|
-
- Handling the case where `--change` is provided but the specific change doesn't exist (this should remain an error)
|
|
20
|
-
|
|
21
|
-
## Decisions
|
|
22
|
-
|
|
23
|
-
### Extract `getAvailableChanges` and check before validation
|
|
24
|
-
|
|
25
|
-
**Rationale**: Extract the private `getAvailableChanges` closure from `validateChangeExists` into a public exported function in `shared.ts`. Then, in `statusCommand`, call `getAvailableChanges` *before* `validateChangeExists` to detect the no-changes case early and handle it gracefully. This avoids using try/catch for control flow and eliminates any coupling to error message strings.
|
|
26
|
-
|
|
27
|
-
**Alternative considered**: Catching the error from `validateChangeExists` by matching `error.message.startsWith('No changes found')`. Rejected because string coupling is fragile — if the error message changes, the catch silently stops working.
|
|
28
|
-
|
|
29
|
-
**Alternative considered**: Adding a `throwOnEmpty` parameter to `validateChangeExists`. Rejected because it adds complexity to a shared function for a single consumer's needs and mixes UX concerns into a validation utility.
|
|
30
|
-
|
|
31
|
-
### Keep `validateChangeExists` strict
|
|
32
|
-
|
|
33
|
-
**Rationale**: `validateChangeExists` remains unchanged in behavior — it still throws for all error cases. The graceful handling lives entirely in `statusCommand`, which is the appropriate layer for UX decisions. Other commands (`apply`, `show`, `instructions`) are unaffected.
|
|
34
|
-
|
|
35
|
-
## Risks / Trade-offs
|
|
36
|
-
|
|
37
|
-
- [Risk] Extra filesystem read when no `--change` is provided and changes *do* exist (`getAvailableChanges` is called first, then `validateChangeExists` performs its own read) → Mitigation: `statusCommand` returns early before reaching `validateChangeExists` when no changes exist, so the double-read only occurs when changes are present — minimal overhead.
|
|
38
|
-
- [Risk] Other commands may also benefit from graceful no-changes handling in the future → Mitigation: `getAvailableChanges` is now public and reusable, making it easy to apply the same pattern elsewhere.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
## Why
|
|
2
|
-
|
|
3
|
-
When `openspec status` is called without `--change` and no changes exist (e.g., during onboarding on a freshly initialized project), the CLI throws a fatal error: `No changes found. Create one with: openspec new change <name>`. This breaks the onboarding flow because AI agents may call `openspec status` before any change has been created, causing the agent to halt or report failure. Fixes [#714](https://github.com/Fission-AI/OpenSpec/issues/714).
|
|
4
|
-
|
|
5
|
-
## What Changes
|
|
6
|
-
|
|
7
|
-
- `openspec status` will exit gracefully (code 0) with a friendly message when no changes exist, instead of throwing a fatal error
|
|
8
|
-
- `openspec status --json` will return a valid JSON object with an empty changes array when no changes exist
|
|
9
|
-
- Other commands (`apply`, `show`, etc.) retain their current strict validation behavior
|
|
10
|
-
|
|
11
|
-
## Capabilities
|
|
12
|
-
|
|
13
|
-
### New Capabilities
|
|
14
|
-
|
|
15
|
-
- `graceful-status-empty`: Graceful handling of `openspec status` when no changes exist, covering both text and JSON output modes
|
|
16
|
-
|
|
17
|
-
### Modified Capabilities
|
|
18
|
-
|
|
19
|
-
_None — `validateChangeExists` was internally refactored to delegate to the newly exported `getAvailableChanges`, but its behavior and public contract are unchanged. Other consumers are unaffected._
|
|
20
|
-
|
|
21
|
-
## Impact
|
|
22
|
-
|
|
23
|
-
- `src/commands/workflow/shared.ts` — extract `getAvailableChanges` as a public function (validation behavior unchanged)
|
|
24
|
-
- `src/commands/workflow/status.ts` — check for available changes before validation, handle empty case gracefully
|
|
25
|
-
- Tests for the status command need to cover the new graceful behavior
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
## ADDED Requirements
|
|
2
|
-
|
|
3
|
-
### Requirement: Status command exits gracefully when no changes exist
|
|
4
|
-
The `statusCommand` function SHALL check for available changes via `getAvailableChanges` before calling `validateChangeExists`. When no `--change` option is provided and no change directories exist, it SHALL print a friendly informational message and exit with code 0, instead of reaching `validateChangeExists` and propagating a fatal error.
|
|
5
|
-
|
|
6
|
-
#### Scenario: No changes exist, text mode
|
|
7
|
-
- **WHEN** user runs `openspec status` without `--change` and no change directories exist under `openspec/changes/`
|
|
8
|
-
- **THEN** the CLI prints `No active changes. Create one with: openspec new change <name>` to stdout and exits with code 0
|
|
9
|
-
|
|
10
|
-
#### Scenario: No changes exist, JSON mode
|
|
11
|
-
- **WHEN** user runs `openspec status --json` without `--change` and no change directories exist
|
|
12
|
-
- **THEN** the CLI outputs `{"changes":[],"message":"No active changes."}` as valid JSON to stdout and exits with code 0
|
|
13
|
-
|
|
14
|
-
### Requirement: Existing status validation behavior is preserved
|
|
15
|
-
Other error paths in `validateChangeExists` that apply to the status command SHALL continue to throw errors as before. Commands other than `status` that use `validateChangeExists` SHALL NOT be affected.
|
|
16
|
-
|
|
17
|
-
#### Scenario: Changes exist but --change not specified
|
|
18
|
-
- **WHEN** user runs `openspec status` without `--change` and one or more change directories exist
|
|
19
|
-
- **THEN** the CLI throws an error listing available changes with the message `Missing required option --change. Available changes: ...`
|
|
20
|
-
|
|
21
|
-
#### Scenario: Specified change does not exist
|
|
22
|
-
- **WHEN** user runs `openspec status --change non-existent`
|
|
23
|
-
- **THEN** the CLI throws an error with message `Change 'non-existent' not found`
|
|
24
|
-
|
|
25
|
-
#### Scenario: Other commands unaffected
|
|
26
|
-
- **WHEN** user runs `openspec show` or `openspec instructions` without `--change` and no changes exist
|
|
27
|
-
- **THEN** the CLI throws the original `No changes found` error (no behavior change)
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
## 1. Implementation
|
|
2
|
-
|
|
3
|
-
- [x] 1.1 Extract `getAvailableChanges` in `shared.ts` and use it in `statusCommand` to check for changes before calling `validateChangeExists`
|
|
4
|
-
- [x] 1.2 In text mode: print `No active changes. Create one with: openspec new change <name>` and return (exit 0)
|
|
5
|
-
- [x] 1.3 In JSON mode: output `{"changes":[],"message":"No active changes."}` and return (exit 0)
|
|
6
|
-
|
|
7
|
-
## 2. Tests
|
|
8
|
-
|
|
9
|
-
- [x] 2.1 Add test: `openspec status` with no changes exits gracefully with friendly message (text mode)
|
|
10
|
-
- [x] 2.2 Add test: `openspec status --json` with no changes returns valid JSON with empty changes array
|
|
11
|
-
- [x] 2.3 Verify existing behavior: `openspec status` without `--change` when changes exist still throws missing option error
|
|
12
|
-
- [x] 2.4 Verify cross-platform: tests use `path.join()` for any path assertions
|
|
13
|
-
|
|
14
|
-
## 3. Release
|
|
15
|
-
|
|
16
|
-
- [x] 3.1 Add changeset describing the fix
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
## Why
|
|
2
|
-
|
|
3
|
-
We want to rename `spec-driven` to `openspec-default` to better reflect that it's the standard/default workflow. However, renaming directly would break existing projects that have `schema: spec-driven` in their `openspec/config.yaml`. Adding alias support allows both names to work interchangeably, enabling a smooth transition with no breaking changes.
|
|
4
|
-
|
|
5
|
-
## What Changes
|
|
6
|
-
|
|
7
|
-
- Add schema alias resolution in the schema resolver
|
|
8
|
-
- `openspec-default` and `spec-driven` will both resolve to the same schema
|
|
9
|
-
- The physical directory remains `schemas/spec-driven/` (or could be renamed to `schemas/openspec-default/` with `spec-driven` as the alias)
|
|
10
|
-
- All CLI commands and config files accept either name
|
|
11
|
-
- No changes required to existing user configs
|
|
12
|
-
|
|
13
|
-
## Capabilities
|
|
14
|
-
|
|
15
|
-
### New Capabilities
|
|
16
|
-
|
|
17
|
-
- `schema-aliases`: Support for schema name aliases so multiple names can resolve to the same schema directory
|
|
18
|
-
|
|
19
|
-
### Modified Capabilities
|
|
20
|
-
|
|
21
|
-
<!-- No existing spec-level behavior is changing - this is purely additive -->
|
|
22
|
-
|
|
23
|
-
## Impact
|
|
24
|
-
|
|
25
|
-
- `src/core/artifact-graph/resolver.ts` - Add alias resolution logic
|
|
26
|
-
- `schemas/` directory - Potentially rename `spec-driven` to `openspec-default`
|
|
27
|
-
- Documentation - Update to prefer `openspec-default` while noting `spec-driven` still works
|
|
28
|
-
- Default schema constants - Update `DEFAULT_SCHEMA` to `openspec-default`
|
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
## Context
|
|
2
|
-
|
|
3
|
-
OpenSpec currently installs 10 workflows (skills + commands) for every user, overwhelming new users. The init flow asks multiple questions (profile, delivery, tools) creating friction before users can experience value.
|
|
4
|
-
|
|
5
|
-
Current architecture:
|
|
6
|
-
- `src/core/init.ts` - Handles tool selection and skill/command generation
|
|
7
|
-
- `src/core/config.ts` - Defines `AI_TOOLS` with `skillsDir` mappings
|
|
8
|
-
- `src/core/shared/skill-generation.ts` - Generates skill files from templates
|
|
9
|
-
- `src/core/templates/workflows/*.ts` - Individual workflow templates
|
|
10
|
-
- `src/prompts/searchable-multi-select.ts` - Tool selection UI
|
|
11
|
-
|
|
12
|
-
Global config exists at `~/.config/openspec/config.json` for telemetry/feature flags. Profile/delivery settings will extend this existing config.
|
|
13
|
-
|
|
14
|
-
## Goals / Non-Goals
|
|
15
|
-
|
|
16
|
-
**Goals:**
|
|
17
|
-
- Get new users to "aha moment" in under 1 minute
|
|
18
|
-
- Smart defaults init with auto-detection and confirmation (core profile, both delivery)
|
|
19
|
-
- Auto-detect installed tools from existing directories
|
|
20
|
-
- Introduce profile system (core/custom) for workflow selection
|
|
21
|
-
- Introduce delivery config (skills/commands/both) as power-user setting
|
|
22
|
-
- Create new `propose` workflow combining `new` + `ff`
|
|
23
|
-
- Fix tool selection UX (space to select, enter to confirm)
|
|
24
|
-
- Maintain backwards compatibility for existing users
|
|
25
|
-
|
|
26
|
-
**Non-Goals:**
|
|
27
|
-
- Removing any existing workflows (all remain available via custom profile)
|
|
28
|
-
- Per-project profile/delivery settings (user-level only)
|
|
29
|
-
- Changing the artifact structure or schema system
|
|
30
|
-
- Modifying how skills/commands are formatted or written
|
|
31
|
-
|
|
32
|
-
## Decisions
|
|
33
|
-
|
|
34
|
-
### 1. Extend Existing Global Config
|
|
35
|
-
|
|
36
|
-
Add profile/delivery settings to existing `~/.config/openspec/config.json` (via `src/core/global-config.ts`).
|
|
37
|
-
|
|
38
|
-
**Rationale:** Global config already exists with XDG/APPDATA cross-platform path handling, schema evolution, and merge-with-defaults behavior. Reusing it avoids a second config file and leverages existing infrastructure.
|
|
39
|
-
|
|
40
|
-
**Schema extension:**
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"telemetry": { ... }, // existing
|
|
44
|
-
"featureFlags": { ... }, // existing
|
|
45
|
-
"profile": "core", // NEW
|
|
46
|
-
"delivery": "both", // NEW
|
|
47
|
-
"workflows": [...] // NEW (only for custom profile)
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
**Alternatives considered:**
|
|
52
|
-
- New `~/.openspec/config.yaml`: Creates second config file, different format, path confusion
|
|
53
|
-
- Project config: Would require syncing mechanism, users edit it directly
|
|
54
|
-
- Environment variables: Less discoverable, harder to persist
|
|
55
|
-
|
|
56
|
-
### 2. Profile System with Two Tiers
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
core (default): propose, explore, apply, archive (4)
|
|
60
|
-
custom: user-defined subset of workflows
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Rationale:** Core covers the essential loop (propose → explore → apply → archive). Custom allows users to pick exactly what they need via an interactive picker.
|
|
64
|
-
|
|
65
|
-
**Configuration UX:**
|
|
66
|
-
```
|
|
67
|
-
$ openspec config profile
|
|
68
|
-
|
|
69
|
-
Delivery: [skills] [commands] [both]
|
|
70
|
-
^^^^^^
|
|
71
|
-
|
|
72
|
-
Workflows: (space to toggle, enter to save)
|
|
73
|
-
[x] propose
|
|
74
|
-
[x] explore
|
|
75
|
-
[x] apply
|
|
76
|
-
[x] archive
|
|
77
|
-
[ ] new
|
|
78
|
-
[ ] ff
|
|
79
|
-
...
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
**Alternatives considered:**
|
|
83
|
-
- Three tiers (core/extended/custom): Extended is redundant - users who want all workflows can select them in custom
|
|
84
|
-
- Separate commands for profile and delivery: Combining into one picker reduces cognitive load
|
|
85
|
-
|
|
86
|
-
### 3. Propose Workflow = New + FF Combined
|
|
87
|
-
|
|
88
|
-
Single workflow that creates a change and generates all artifacts in one step.
|
|
89
|
-
|
|
90
|
-
**Rationale:** Most users want to go from idea to implementation-ready. Separating `new` (creates folder) and `ff` (generates artifacts) adds unnecessary steps. Power users who want control can use `new` + `continue` via custom profile.
|
|
91
|
-
|
|
92
|
-
**Implementation:** New template in `src/core/templates/workflows/propose.ts` that:
|
|
93
|
-
1. Creates change directory via `openspec new change`
|
|
94
|
-
2. Runs artifact generation loop (like ff does)
|
|
95
|
-
3. Includes onboarding-style explanations in output
|
|
96
|
-
|
|
97
|
-
### 4. Auto-Detection with Confirmation
|
|
98
|
-
|
|
99
|
-
Scan for existing tool directories, pre-select detected tools, ask for confirmation.
|
|
100
|
-
|
|
101
|
-
**Rationale:** Reduces questions while still giving user control. Better than full auto (no confirmation) which might install unwanted tools, or no detection (always ask) which adds friction.
|
|
102
|
-
|
|
103
|
-
**Detection logic:**
|
|
104
|
-
```typescript
|
|
105
|
-
// Use existing AI_TOOLS config to get directory mappings
|
|
106
|
-
// Each tool in AI_TOOLS has a skillsDir property (e.g., '.claude', '.cursor', '.windsurf')
|
|
107
|
-
// Scan cwd for existing directories matching skillsDir values, pre-select matches
|
|
108
|
-
const detectedTools = AI_TOOLS.filter(tool =>
|
|
109
|
-
fs.existsSync(path.join(cwd, tool.skillsDir))
|
|
110
|
-
);
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### 5. Delivery as Part of Profile Config
|
|
114
|
-
|
|
115
|
-
Delivery preference (skills/commands/both) stored in global config, defaulting to "both".
|
|
116
|
-
|
|
117
|
-
**Rationale:** Most users don't know or care about this distinction. Power users who have a preference can set it via `openspec config profile` interactive picker. Not worth asking during init.
|
|
118
|
-
|
|
119
|
-
### 6. Filesystem as Truth for Installed Workflows
|
|
120
|
-
|
|
121
|
-
What's installed in `.claude/skills/` (etc.) is the source of truth, not config.
|
|
122
|
-
|
|
123
|
-
**Rationale:**
|
|
124
|
-
- Backwards compatible with existing installs
|
|
125
|
-
- User can manually add/remove skill directories
|
|
126
|
-
- Config profile is a "template" for what to install, not a constraint
|
|
127
|
-
|
|
128
|
-
**Behavior:**
|
|
129
|
-
- `openspec init` sets up new projects OR re-initializes existing projects (selects tools, generates workflows)
|
|
130
|
-
- `openspec update` refreshes an existing project to match current config (no tool selection)
|
|
131
|
-
- `openspec config profile` updates global config only, offers to run update if in a project
|
|
132
|
-
- Extra workflows (not in profile) are preserved
|
|
133
|
-
- Delivery changes are applied: switching to `skills` removes commands, switching to `commands` removes skills
|
|
134
|
-
|
|
135
|
-
**Why not a separate tool manifest?**
|
|
136
|
-
|
|
137
|
-
Tool selection (which assistants a project uses) is per-user AND per-project, but the two config locations are per-user-only (global config) or per-project-shared (checked-in project config). A separate manifest was explored and rejected:
|
|
138
|
-
|
|
139
|
-
- *Path-keyed global config* (`projects: { "/path": { tools: [...] } }`): Fragile on directory move/rename/delete, symlink ambiguity, and project behavior depends on invisible external state.
|
|
140
|
-
- *Gitignored local file* (`.openspec.local`): Lost on fresh clone, adds file management overhead.
|
|
141
|
-
- *Checked-in project config* (`openspec/config.yaml` with `tools` field): Forces tool choices on the whole team — Alice uses Claude Code, Bob uses Cursor, neither wants the other's tools mandated.
|
|
142
|
-
|
|
143
|
-
The filesystem approach avoids all three problems. For teams, it's actually beneficial: checked-in skill files mean `openspec update` from any team member refreshes skills for all tools the project supports. The generated files serve as both the deliverable and the implicit tool manifest.
|
|
144
|
-
|
|
145
|
-
Known gap: a tool that stores config outside the project tree (no local directory to scan) would need tool-specific handling, since there's nothing in the project to scan. Address if/when such a tool is supported.
|
|
146
|
-
|
|
147
|
-
**When to use init vs update:**
|
|
148
|
-
- `init`: First time setup, or when you want to change which tools are configured
|
|
149
|
-
- `update`: After changing config, or to refresh templates to latest version
|
|
150
|
-
|
|
151
|
-
### 8. Existing User Migration
|
|
152
|
-
|
|
153
|
-
When `openspec init` or `openspec update` encounters a project with existing workflows but no `profile` field in global config, it performs a one-time migration to preserve the user's current setup.
|
|
154
|
-
|
|
155
|
-
**Rationale:** Without migration, existing users would default to `core` profile, causing `propose` to be added on top of their 10 workflows — making things worse, not better. Migration ensures existing users keep exactly what they have.
|
|
156
|
-
|
|
157
|
-
**Triggered by:** Both `init` (re-init on existing project) and `update`. The migration check is a shared function called early in both commands, before profile resolution.
|
|
158
|
-
|
|
159
|
-
**Detection logic:**
|
|
160
|
-
```typescript
|
|
161
|
-
// Shared migration check, called by both init and update:
|
|
162
|
-
function migrateIfNeeded(projectPath: string, tools: AiTool[]): void {
|
|
163
|
-
const globalConfig = readGlobalConfig();
|
|
164
|
-
if (globalConfig.profile) return; // already migrated or explicitly set
|
|
165
|
-
|
|
166
|
-
const installedWorkflows = scanInstalledWorkflows(projectPath, tools);
|
|
167
|
-
if (installedWorkflows.length === 0) return; // new user, use core defaults
|
|
168
|
-
|
|
169
|
-
// Existing user — migrate to custom profile
|
|
170
|
-
writeGlobalConfig({
|
|
171
|
-
...globalConfig,
|
|
172
|
-
profile: 'custom',
|
|
173
|
-
delivery: 'both',
|
|
174
|
-
workflows: installedWorkflows,
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**Scanning logic:**
|
|
180
|
-
- Scan all tool directories (`.claude/skills/`, `.cursor/skills/`, etc.) for workflow directories/files
|
|
181
|
-
- Match only against `ALL_WORKFLOWS` constant — ignore user-created custom skills/commands
|
|
182
|
-
- Map directory names back to workflow IDs (e.g., `openspec-explore/` → `explore`, `opsx-explore.md` → `explore`)
|
|
183
|
-
- Take the union of detected workflow names across all tools
|
|
184
|
-
|
|
185
|
-
**Edge cases:**
|
|
186
|
-
- **User manually deleted some workflows:** Migration scans what's actually installed, respecting their choices
|
|
187
|
-
- **Multiple projects with different workflow sets:** First project to trigger migration sets global config; subsequent projects use it
|
|
188
|
-
- **User has custom (non-OpenSpec) skills in the directory:** Ignored — scanner only matches known workflow IDs from `ALL_WORKFLOWS`
|
|
189
|
-
- **Migration is idempotent:** If `profile` is already set in config, no re-migration occurs
|
|
190
|
-
- **Non-interactive (CI):** Same migration logic, no confirmation needed — it's preserving existing state
|
|
191
|
-
|
|
192
|
-
**Alternatives considered:**
|
|
193
|
-
- Migrate during `init` instead of `update`: Init already has its own flow (tool selection, etc.). Mixing migration with init creates confusing UX
|
|
194
|
-
- Don't migrate, just default to core: Breaks existing users by adding `propose` and showing "extra workflows" warnings
|
|
195
|
-
- Migrate at global config read time: Too implicit, hard to show feedback to user
|
|
196
|
-
|
|
197
|
-
### 9. Generic Next-Step Guidance in Templates
|
|
198
|
-
|
|
199
|
-
Workflow templates use generic, concept-based next-step guidance rather than referencing specific workflow commands. For example, instead of "run `/opsx:propose`", templates say "create a change proposal".
|
|
200
|
-
|
|
201
|
-
**Rationale:** Conditional cross-referencing (where each template checks which other workflows are installed and renders different command names) adds significant complexity to template generation, testing, and maintenance. Generic guidance avoids this entirely while still being useful — users already know their installed workflows.
|
|
202
|
-
|
|
203
|
-
**Note:** If we find that users consistently struggle to map concepts to commands, we can revisit this with conditional cross-references. For now, simplicity wins.
|
|
204
|
-
|
|
205
|
-
### 7. Fix Multi-Select Keybindings
|
|
206
|
-
|
|
207
|
-
Change from tab-to-confirm to industry-standard space/enter.
|
|
208
|
-
|
|
209
|
-
**Rationale:** Tab to confirm is non-standard and confuses users. Most CLI tools use space to toggle, enter to confirm.
|
|
210
|
-
|
|
211
|
-
**Implementation:** Modify `src/prompts/searchable-multi-select.ts` keybinding configuration.
|
|
212
|
-
|
|
213
|
-
### 10. Update Sync Must Consider Config Drift, Not Just Version Drift
|
|
214
|
-
|
|
215
|
-
`openspec update` cannot rely only on `generatedBy` version checks for deciding whether work is needed.
|
|
216
|
-
|
|
217
|
-
**Rationale:** profile and delivery changes can require file add/remove operations even when existing skill templates are current. If we only check template versions, update may incorrectly return "up to date" and skip required sync.
|
|
218
|
-
|
|
219
|
-
**Implementation:**
|
|
220
|
-
- Keep version checks for template refresh decisions
|
|
221
|
-
- Add file-state drift checks for profile/delivery (missing expected files or stale files from removed delivery mode)
|
|
222
|
-
- Treat either version drift OR config drift as update-required
|
|
223
|
-
|
|
224
|
-
### 11. Tool Configuration Detection Includes Commands-Only Installs
|
|
225
|
-
|
|
226
|
-
Configured-tool detection for update must include command files, not only skill files.
|
|
227
|
-
|
|
228
|
-
**Rationale:** with `delivery: commands`, a project can be fully configured without skill files. Skill-only detection incorrectly reports "No configured tools found."
|
|
229
|
-
|
|
230
|
-
**Implementation:**
|
|
231
|
-
- For update flows, treat a tool as configured if it has either generated skills or generated commands
|
|
232
|
-
- Keep migration workflow scanning behavior unchanged (skills remain the migration source of truth)
|
|
233
|
-
|
|
234
|
-
### 12. Init Profile Override Is Strictly Validated
|
|
235
|
-
|
|
236
|
-
`openspec init --profile` must validate allowed values before proceeding.
|
|
237
|
-
|
|
238
|
-
**Rationale:** silently accepting unknown profile values hides user errors and produces implicit fallback behavior.
|
|
239
|
-
|
|
240
|
-
**Implementation:** accept only `core` and `custom`; throw a clear CLI error for invalid values.
|
|
241
|
-
|
|
242
|
-
## Risks / Trade-offs
|
|
243
|
-
|
|
244
|
-
**Risk: Breaking existing user workflows**
|
|
245
|
-
→ Mitigation: Filesystem is truth, existing installs untouched. All workflows available via custom profile.
|
|
246
|
-
|
|
247
|
-
**Risk: Propose workflow duplicates ff logic**
|
|
248
|
-
→ Mitigation: Extract shared artifact generation into reusable function, both `propose` and `ff` call it.
|
|
249
|
-
|
|
250
|
-
**Risk: Global config file management**
|
|
251
|
-
→ Mitigation: Create directory/file on first use. Handle missing file gracefully (use defaults).
|
|
252
|
-
|
|
253
|
-
**Risk: Auto-detection false positives**
|
|
254
|
-
→ Mitigation: Show detected tools and ask for confirmation, don't auto-install silently.
|
|
255
|
-
|
|
256
|
-
**Trade-off: Core profile has only 4 workflows**
|
|
257
|
-
→ Acceptable: These cover the main loop. Users who need more can use `openspec config profile` to select additional workflows.
|
|
258
|
-
|
|
259
|
-
## Migration Plan
|
|
260
|
-
|
|
261
|
-
1. **Phase 1: Add infrastructure**
|
|
262
|
-
- Extend global-config.ts with profile/delivery/workflows fields
|
|
263
|
-
- Profile definitions and resolution
|
|
264
|
-
- Tool auto-detection
|
|
265
|
-
|
|
266
|
-
2. **Phase 2: Create propose workflow**
|
|
267
|
-
- New template combining new + ff
|
|
268
|
-
- Enhanced UX with explanatory output
|
|
269
|
-
|
|
270
|
-
3. **Phase 3: Update init flow**
|
|
271
|
-
- Smart defaults with tool confirmation
|
|
272
|
-
- Auto-detect and confirm tools
|
|
273
|
-
- Respect profile/delivery settings
|
|
274
|
-
|
|
275
|
-
4. **Phase 4: Add config profile command**
|
|
276
|
-
- `openspec config profile` interactive picker
|
|
277
|
-
- `openspec config profile core` preset shortcut
|
|
278
|
-
|
|
279
|
-
5. **Phase 5: Update the update command**
|
|
280
|
-
- Read global config for profile/delivery
|
|
281
|
-
- Add missing workflows from profile
|
|
282
|
-
- Delete files when delivery changes (e.g., commands removed if `skills`)
|
|
283
|
-
- Display summary of changes
|
|
284
|
-
|
|
285
|
-
6. **Phase 6: Fix multi-select UX**
|
|
286
|
-
- Update keybindings in searchable-multi-select
|
|
287
|
-
|
|
288
|
-
**Rollback:** All changes are additive. Existing behavior preserved via custom profile with all workflows selected.
|