sauron-cli 1.1.3 → 1.3.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/.agents/rules/memory.md +156 -0
- package/.agents/skills/wiki/SKILL.md +172 -0
- package/.aider.instructions.md +152 -0
- package/.cursor/rules/sauron-memory.mdc +157 -0
- package/.genesis/prompts/prompt-onboarding-inteligente.md +45 -0
- package/.genesis/prompts/prompt-sauron-vs-openspec-arquitetura.md +106 -0
- package/.github/workflows/ci.yml +27 -0
- package/.sauron/.manifest.json +2 -1
- package/.sauron/wiki/history/implementacao-scanner-inteligente.md +29 -0
- package/.sauron/wiki/history/reestruturacao-arquitetural-core.md +29 -0
- package/.sauron/wiki/history/resiliencia-caminho-templates.md +29 -0
- package/.sauron/wiki/standards/typescript.rules.md +21 -0
- package/.sauron/wiki/summary.json +81 -0
- package/.windsurfrules +160 -0
- package/55ea973d-e255-4f08-a313-a5d68243bd2d.png +0 -0
- package/Evolu/303/247/303/243o Arquitetural do Sauron CLI.md" +97 -0
- package/OpenSpec-main/.actrc +1 -0
- package/OpenSpec-main/.changeset/README.md +97 -0
- package/OpenSpec-main/.changeset/config.json +15 -0
- package/OpenSpec-main/.coderabbit.yaml +11 -0
- package/OpenSpec-main/.devcontainer/README.md +92 -0
- package/OpenSpec-main/.devcontainer/devcontainer.json +68 -0
- package/OpenSpec-main/.github/CODEOWNERS +2 -0
- package/OpenSpec-main/.github/workflows/README.md +20 -0
- package/OpenSpec-main/.github/workflows/ci.yml +346 -0
- package/OpenSpec-main/.github/workflows/release-prepare.yml +60 -0
- package/OpenSpec-main/CHANGELOG.md +594 -0
- package/OpenSpec-main/LICENSE +22 -0
- package/OpenSpec-main/MAINTAINERS.md +17 -0
- package/OpenSpec-main/README.md +206 -0
- package/OpenSpec-main/README_OLD.md +475 -0
- 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 +89 -0
- package/OpenSpec-main/assets/openspec_pixel_light.svg +89 -0
- package/OpenSpec-main/bin/openspec.js +5 -0
- package/OpenSpec-main/build.js +31 -0
- package/OpenSpec-main/eslint.config.js +42 -0
- package/OpenSpec-main/flake.lock +27 -0
- package/OpenSpec-main/flake.nix +114 -0
- package/OpenSpec-main/openspec/changes/IMPLEMENTATION_ORDER.md +68 -0
- package/OpenSpec-main/openspec/changes/add-artifact-regeneration-support/proposal.md +136 -0
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/proposal.md +93 -0
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/change-creation/spec.md +15 -0
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/change-stacking-workflow/spec.md +65 -0
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/cli-change/spec.md +27 -0
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/specs/openspec-conventions/spec.md +29 -0
- package/OpenSpec-main/openspec/changes/add-change-stacking-awareness/tasks.md +39 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/design.md +161 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/proposal.md +101 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/ai-tool-paths/spec.md +35 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-config/spec.md +21 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-init/spec.md +28 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/cli-update/spec.md +34 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/command-generation/spec.md +22 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/global-config/spec.md +24 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/specs/installation-scope/spec.md +71 -0
- package/OpenSpec-main/openspec/changes/add-global-install-scope/tasks.md +61 -0
- package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/proposal.md +45 -0
- package/OpenSpec-main/openspec/changes/add-qa-smoke-harness/specs/developer-qa-workflow/spec.md +49 -0
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/proposal.md +111 -0
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/specs/cli-init/spec.md +121 -0
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/specs/cli-update/spec.md +48 -0
- package/OpenSpec-main/openspec/changes/add-tool-command-surface-capabilities/tasks.md +53 -0
- package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/design.md +86 -0
- package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/proposal.md +29 -0
- package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/specs/cli-update/spec.md +59 -0
- package/OpenSpec-main/openspec/changes/archive/2025-01-11-add-update-command/tasks.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/proposal.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/specs/cli-list/spec.md +69 -0
- package/OpenSpec-main/openspec/changes/archive/2025-01-13-add-list-command/tasks.md +26 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/design.md +64 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/proposal.md +18 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-05-initialize-typescript-project/tasks.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/design.md +104 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/proposal.md +30 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/specs/cli-init/spec.md +148 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-add-init-command/tasks.md +38 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/proposal.md +24 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/specs/openspec-conventions/spec.md +120 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-06-adopt-future-state-storage/tasks.md +38 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/proposal.md +13 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/specs/openspec-docs/README.md +472 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-11-add-complexity-guidelines/tasks.md +9 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/proposal.md +15 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/specs/cli-archive/spec.md +111 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-archive-command/tasks.md +44 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/proposal.md +19 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/specs/cli-diff/spec.md +77 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-13-add-diff-command/tasks.md +23 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/design.md +56 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/proposal.md +17 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-change/spec.md +48 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/specs/cli-list/spec.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-change-commands/tasks.md +34 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/proposal.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-change/spec.md +23 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-show/spec.md +83 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/specs/cli-spec/spec.md +23 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-interactive-show-command/tasks.md +142 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/proposal.md +13 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/specs/cli-archive/spec.md +191 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-skip-specs-archive-option/tasks.md +57 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/design.md +45 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/proposal.md +19 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/specs/cli-spec/spec.md +43 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-spec-commands/tasks.md +22 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/design.md +104 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/proposal.md +22 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-archive/spec.md +18 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/specs/cli-diff/spec.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-add-zod-validation/tasks.md +59 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/proposal.md +93 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-archive/spec.md +48 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/cli-diff/spec.md +45 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/specs/openspec-conventions/spec.md +101 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-delta-based-changes/tasks.md +55 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/design.md +19 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/proposal.md +67 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/cli-list/spec.md +57 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/specs/openspec-conventions/spec.md +23 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-adopt-verb-noun-cli-structure/tasks.md +27 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/proposal.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-change/spec.md +22 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-spec/spec.md +23 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/specs/cli-validate/spec.md +149 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-bulk-validation-interactive-selection/tasks.md +81 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/proposal.md +40 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/specs/cli-update/spec.md +23 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-fix-update-tool-selection/tasks.md +21 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/proposal.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/specs/cli-validate/spec.md +55 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-improve-validate-error-messages/tasks.md +21 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/proposal.md +36 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/specs/openspec-conventions/spec.md +192 -0
- package/OpenSpec-main/openspec/changes/archive/2025-08-19-structured-spec-format/tasks.md +19 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/proposal.md +38 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/specs/cli-view/spec.md +109 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-12-add-view-dashboard-command/tasks.md +47 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/proposal.md +28 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-init/spec.md +71 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/specs/cli-update/spec.md +41 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-agents-md-config/tasks.md +17 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/proposal.md +35 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/specs/cli-init/spec.md +45 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-multi-agent-init/tasks.md +16 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/proposal.md +119 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-init/spec.md +21 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/specs/cli-update/spec.md +22 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-add-slash-command-support/tasks.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/proposal.md +19 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-cli-e2e-plan/tasks.md +9 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-deterministic-tests/proposal.md +78 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-deterministic-tests/tasks.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/proposal.md +13 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/specs/cli-init/spec.md +92 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-improve-init-onboarding/tasks.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-remove-diff-command/proposal.md +81 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-remove-diff-command/tasks.md +37 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/proposal.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/specs/cli-view/spec.md +9 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-sort-active-changes-by-progress/tasks.md +8 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/proposal.md +29 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-init/spec.md +40 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/cli-update/spec.md +22 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/specs/openspec-conventions/spec.md +27 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-file-name/tasks.md +22 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/design.md +130 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/proposal.md +117 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-agent-instructions/tasks.md +69 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/proposal.md +19 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/specs/cli-validate/spec.md +9 -0
- package/OpenSpec-main/openspec/changes/archive/2025-09-29-update-markdown-parser-crlf/tasks.md +11 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/proposal.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-init/spec.md +56 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/specs/cli-update/spec.md +41 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-codex-slash-command-support/tasks.md +19 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/proposal.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-init/spec.md +48 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/specs/cli-update/spec.md +48 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-github-copilot-prompts/tasks.md +30 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/proposal.md +17 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-init/spec.md +43 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/specs/cli-update/spec.md +27 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-kilocode-workflows/tasks.md +15 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/proposal.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/specs/cli-init/spec.md +39 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-non-interactive-init-options/tasks.md +17 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/proposal.md +17 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-init/spec.md +42 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/specs/cli-update/spec.md +27 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-add-windsurf-workflows/tasks.md +17 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/proposal.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/specs/cli-validate/spec.md +39 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-enhance-validation-error-messages/tasks.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/proposal.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/specs/docs-agent-instructions/spec.md +33 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-improve-agent-instruction-usability/tasks.md +11 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-slim-root-agents-file/proposal.md +13 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-slim-root-agents-file/tasks.md +15 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/proposal.md +14 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/specs/cli-init/spec.md +10 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-enter-selection/tasks.md +8 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/proposal.md +15 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-init/spec.md +32 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/specs/cli-update/spec.md +10 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-cli-init-root-agents/tasks.md +11 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-release-automation/proposal.md +49 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-14-update-release-automation/tasks.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/proposal.md +17 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md +32 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md +15 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/proposal.md +15 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/specs/cli-init/spec.md +97 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-cline-support/tasks.md +19 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/proposal.md +13 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/specs/cli-init/spec.md +67 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-crush-support/tasks.md +7 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/proposal.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-init/spec.md +54 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/specs/cli-update/spec.md +54 -0
- package/OpenSpec-main/openspec/changes/archive/2025-10-22-add-factory-slash-commands/tasks.md +11 -0
- package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/design.md +525 -0
- package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/proposal.md +29 -0
- package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/specs/cli-completion/spec.md +300 -0
- package/OpenSpec-main/openspec/changes/archive/2025-11-06-add-shell-completions/tasks.md +81 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/design.md +105 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/proposal.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/specs/global-config/spec.md +76 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-20-add-global-config-dir/tasks.md +26 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/design.md +89 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/proposal.md +60 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/specs/cli-config/spec.md +213 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-21-add-config-command/tasks.md +28 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/proposal.md +15 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/specs/cli-completion/spec.md +328 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-23-extend-shell-completions/tasks.md +49 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/design.md +197 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/proposal.md +18 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/specs/artifact-graph/spec.md +103 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-24-add-artifact-graph-core/tasks.md +61 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/design.md +74 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/proposal.md +45 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/specs/change-creation/spec.md +63 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-25-add-change-manager/tasks.md +30 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/design.md +112 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/proposal.md +33 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/specs/cli-artifact-workflow/spec.md +153 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-artifact-workflow-cli/tasks.md +48 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/design.md +149 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/proposal.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/specs/instruction-loader/spec.md +70 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-add-instruction-loader/tasks.md +13 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/design.md +129 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/proposal.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/specs/artifact-graph/spec.md +49 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-28-restructure-schema-directories/tasks.md +32 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/design.md +151 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/proposal.md +101 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/specs/cli-artifact-workflow/spec.md +109 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/specs/cli-view/spec.md +60 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-29-unify-change-state-model/tasks.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/proposal.md +11 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/specs/cli-init/spec.md +105 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/specs/cli-update/spec.md +92 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-add-antigravity-support/tasks.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/proposal.md +13 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/specs/cli-init/spec.md +105 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/specs/cli-update/spec.md +92 -0
- package/OpenSpec-main/openspec/changes/archive/2025-12-30-fix-cline-workflows-implementation/tasks.md +13 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-agent-schema-selection/proposal.md +26 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-agent-schema-selection/tasks.md +32 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/design.md +147 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/proposal.md +29 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/specs/cli-artifact-workflow/spec.md +98 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-per-change-schema-metadata/tasks.md +29 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/design.md +77 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/proposal.md +32 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/specs/specs-sync-skill/spec.md +67 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-add-specs-apply-command/tasks.md +40 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/proposal.md +138 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/specs/cli-artifact-workflow/spec.md +60 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-make-apply-instructions-schema-aware/tasks.md +35 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/design.md +84 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/proposal.md +28 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/specs/opsx-archive-skill/spec.md +122 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-06-opsx-archive-command/tasks.md +23 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/design.md +94 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/proposal.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/specs/nix-flake-support/spec.md +79 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-07-add-nix-flake-support/tasks.md +65 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/design.md +117 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/proposal.md +23 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/specs/flake-update-script/spec.md +93 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-flake-update-script/tasks.md +55 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/design.md +175 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/proposal.md +37 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/specs/global-config/spec.md +21 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/specs/telemetry/spec.md +116 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-add-posthog-analytics/tasks.md +47 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/proposal.md +16 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/specs/cli-init/spec.md +75 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/specs/cli-update/spec.md +56 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-09-fix-codebuddy-frontmatter-fields/tasks.md +6 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/design.md +206 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/proposal.md +21 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/specs/ci-nix-validation/spec.md +104 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-15-add-nix-ci-validation/tasks.md +49 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/README.md +3 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/design.md +70 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/proposal.md +32 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/specs/no-changes.md +9 -0
- package/OpenSpec-main/openspec/changes/archive/2026-01-30-opencode-command-references/tasks.md +22 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/proposal.md +20 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/specs/cli-feedback/spec.md +188 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-feedback-command/tasks.md +30 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/design.md +115 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/proposal.md +27 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/specs/opsx-onboard-skill/spec.md +162 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-opsx-onboard-skill/tasks.md +21 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/design.md +96 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/proposal.md +48 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/specs/opsx-verify-skill/spec.md +190 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-add-verify-skill/tasks.md +15 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/design.md +193 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/proposal.md +32 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/specs/cli-init/spec.md +176 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/specs/legacy-cleanup/spec.md +158 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-merge-init-experimental/tasks.md +67 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/design.md +144 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/proposal.md +36 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/ai-tool-paths/spec.md +63 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/cli-artifact-workflow/spec.md +60 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/specs/command-generation/spec.md +98 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-multi-provider-skill-generation/tasks.md +55 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/design.md +665 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/proposal.md +774 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/config-loading/spec.md +119 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/context-injection/spec.md +51 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/rules-injection/spec.md +99 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/specs/schema-resolution/spec.md +83 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-config/tasks.md +72 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/design.md +117 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/proposal.md +167 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/specs/schema-resolution/spec.md +88 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-project-local-schemas/tasks.md +28 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/design.md +113 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/proposal.md +55 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-fork-command/spec.md +66 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-init-command/spec.md +71 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-validate-command/spec.md +86 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/specs/schema-which-command/spec.md +65 -0
- package/OpenSpec-main/openspec/changes/archive/2026-02-17-schema-management-cli/tasks.md +67 -0
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/README.md +3 -0
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/design.md +85 -0
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/proposal.md +38 -0
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/ai-tool-paths/spec.md +12 -0
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/specs/cli-init/spec.md +37 -0
- package/OpenSpec-main/openspec/changes/archive/2026-04-23-add-kimi-cli-skills-only-support/tasks.md +22 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/design.md +208 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/proposal.md +142 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/specs/openspec-conventions/spec.md +29 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/specs/workspace-foundation/spec.md +199 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-04-workspace-foundation/tasks.md +56 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/design.md +356 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/proposal.md +128 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/cli-artifact-workflow/spec.md +24 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/workspace-foundation/spec.md +35 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/specs/workspace-links/spec.md +356 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-create-and-register-repos/tasks.md +121 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/design.md +266 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/proposal.md +65 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/specs/workspace-foundation/spec.md +76 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/specs/workspace-open/spec.md +199 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-06-workspace-open-agent-context/tasks.md +89 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/design.md +242 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/proposal.md +78 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/artifact-graph/spec.md +36 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/change-creation/spec.md +42 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-artifact-workflow/spec.md +100 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-config/spec.md +55 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/cli-update/spec.md +21 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/openspec-conventions/spec.md +32 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/schema-resolution/spec.md +25 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/workspace-change-planning/spec.md +67 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/specs/workspace-links/spec.md +163 -0
- package/OpenSpec-main/openspec/changes/archive/2026-05-14-workspace-change-planning/tasks.md +133 -0
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/design.md +48 -0
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/proposal.md +26 -0
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/specs/command-generation/spec.md +63 -0
- package/OpenSpec-main/openspec/changes/fix-opencode-commands-directory/tasks.md +19 -0
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/design.md +38 -0
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/proposal.md +25 -0
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/specs/graceful-status-empty/spec.md +27 -0
- package/OpenSpec-main/openspec/changes/graceful-status-no-changes/tasks.md +16 -0
- package/OpenSpec-main/openspec/changes/schema-alias-support/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/schema-alias-support/proposal.md +28 -0
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/design.md +288 -0
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/proposal.md +202 -0
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/cli-init/spec.md +199 -0
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/cli-update/spec.md +177 -0
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/profiles/spec.md +142 -0
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/propose-workflow/spec.md +42 -0
- package/OpenSpec-main/openspec/changes/simplify-skill-installation/tasks.md +132 -0
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/design.md +149 -0
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/proposal.md +47 -0
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/specs/template-artifact-pipeline/spec.md +89 -0
- package/OpenSpec-main/openspec/changes/unify-template-generation-pipeline/tasks.md +41 -0
- package/OpenSpec-main/openspec/changes/workspace-agent-guidance/.openspec.yaml +2 -0
- package/OpenSpec-main/openspec/changes/workspace-agent-guidance/proposal.md +100 -0
- package/OpenSpec-main/openspec/changes/workspace-apply-repo-slice/proposal.md +58 -0
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/HISTORICAL_DIRECTION.md +511 -0
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/POC_REFERENCE_GUIDE.md +266 -0
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/README.md +107 -0
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/START_HERE.md +105 -0
- package/OpenSpec-main/openspec/changes/workspace-reimplementation-roadmap/proposal.md +62 -0
- package/OpenSpec-main/openspec/changes/workspace-verify-and-archive/proposal.md +57 -0
- package/OpenSpec-main/openspec/config.yaml +36 -0
- package/OpenSpec-main/openspec/explorations/explore-workflow-ux.md +116 -0
- package/OpenSpec-main/openspec/explorations/workspace-architecture.md +857 -0
- package/OpenSpec-main/openspec/explorations/workspace-roadmap.md +367 -0
- package/OpenSpec-main/openspec/explorations/workspace-user-journeys.md +2259 -0
- package/OpenSpec-main/openspec/explorations/workspace-ux-simplification.md +491 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/.initiative.yaml +27 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/README.md +33 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/decisions.md +204 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/direction.md +447 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/questions.md +23 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/roadmap.md +759 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/tasks.md +308 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/evidence.md +154 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/plan.md +90 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/01-lock-the-direction/tasks.md +44 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/evidence.md +68 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/plan.md +80 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/02-stabilize-workspace-as-local-view/tasks.md +23 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/evidence.md +43 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/plan.md +85 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/03-add-context-store-foundation/tasks.md +17 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/evidence.md +77 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/plan.md +198 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/04-add-collection-foundation/tasks.md +14 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/evidence.md +99 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/plan.md +236 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/05-ship-initiative-mvp/tasks.md +21 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/evidence.md +97 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/plan.md +333 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/06-add-minimal-context-store-ux/tasks.md +29 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/evidence.md +97 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/plan.md +184 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/07-add-agent-first-initiative-discovery/tasks.md +27 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/evidence.md +239 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/plan.md +279 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/08-connect-repo-local-changes-to-initiatives/tasks.md +22 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/decision-review.md +64 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/evidence.md +106 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/plan.md +141 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/09-add-initiative-resolve/tasks.md +22 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/10-let-workspaces-open-initiatives/plan.md +430 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/10-let-workspaces-open-initiatives/tasks.md +43 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/notes.md +289 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/plan.md +39 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/11-manual-beta-reality-pass/tasks.md +8 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/evidence.md +45 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/plan.md +150 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/12-context-store-first-run-and-cleanup-ux/tasks.md +23 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/evidence.md +25 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/plan.md +98 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/13-agent-handoff-output-and-delivery-polish/tasks.md +25 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/14-workspaces-beta-guide-split/plan.md +37 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/14-workspaces-beta-guide-split/tasks.md +9 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/evidence.md +140 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/plan.md +344 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/15-context-store-project-roots-and-schema-led-initiatives/tasks.md +39 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/16-add-escalation-ux/plan.md +26 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/16-add-escalation-ux/tasks.md +7 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/17-harden-team-shared-coordination/plan.md +25 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/17-harden-team-shared-coordination/tasks.md +7 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/evidence.md +397 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/plan.md +180 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/18-explore-initiative-hosted-target-bound-change-artifacts/tasks.md +28 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/19-review-workspace-beta-compatibility-before-public-release/plan.md +62 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/19-review-workspace-beta-compatibility-before-public-release/tasks.md +16 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/evidence.md +47 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/plan.md +90 -0
- package/OpenSpec-main/openspec/initiatives/context-store-and-initiatives/work-items/proposed-initiative-next-agent-handoff-ux/tasks.md +18 -0
- package/OpenSpec-main/openspec/specs/ai-tool-paths/spec.md +63 -0
- package/OpenSpec-main/openspec/specs/artifact-graph/spec.md +165 -0
- package/OpenSpec-main/openspec/specs/change-creation/spec.md +108 -0
- package/OpenSpec-main/openspec/specs/ci-nix-validation/spec.md +107 -0
- package/OpenSpec-main/openspec/specs/cli-archive/spec.md +210 -0
- package/OpenSpec-main/openspec/specs/cli-artifact-workflow/spec.md +398 -0
- package/OpenSpec-main/openspec/specs/cli-change/spec.md +92 -0
- package/OpenSpec-main/openspec/specs/cli-completion/spec.md +432 -0
- package/OpenSpec-main/openspec/specs/cli-config/spec.md +318 -0
- package/OpenSpec-main/openspec/specs/cli-feedback/spec.md +193 -0
- package/OpenSpec-main/openspec/specs/cli-init/spec.md +269 -0
- package/OpenSpec-main/openspec/specs/cli-list/spec.md +103 -0
- package/OpenSpec-main/openspec/specs/cli-show/spec.md +86 -0
- package/OpenSpec-main/openspec/specs/cli-spec/spec.md +88 -0
- package/OpenSpec-main/openspec/specs/cli-update/spec.md +229 -0
- package/OpenSpec-main/openspec/specs/cli-validate/spec.md +219 -0
- package/OpenSpec-main/openspec/specs/cli-view/spec.md +129 -0
- package/OpenSpec-main/openspec/specs/command-generation/spec.md +97 -0
- package/OpenSpec-main/openspec/specs/config-loading/spec.md +122 -0
- package/OpenSpec-main/openspec/specs/context-injection/spec.md +53 -0
- package/OpenSpec-main/openspec/specs/docs-agent-instructions/spec.md +62 -0
- package/OpenSpec-main/openspec/specs/global-config/spec.md +101 -0
- package/OpenSpec-main/openspec/specs/instruction-loader/spec.md +70 -0
- package/OpenSpec-main/openspec/specs/legacy-cleanup/spec.md +163 -0
- package/OpenSpec-main/openspec/specs/openspec-conventions/spec.md +556 -0
- package/OpenSpec-main/openspec/specs/opsx-archive-skill/spec.md +128 -0
- package/OpenSpec-main/openspec/specs/opsx-onboard-skill/spec.md +167 -0
- package/OpenSpec-main/openspec/specs/opsx-verify-skill/spec.md +189 -0
- package/OpenSpec-main/openspec/specs/rules-injection/spec.md +102 -0
- package/OpenSpec-main/openspec/specs/schema-fork-command/spec.md +71 -0
- package/OpenSpec-main/openspec/specs/schema-init-command/spec.md +76 -0
- package/OpenSpec-main/openspec/specs/schema-resolution/spec.md +201 -0
- package/OpenSpec-main/openspec/specs/schema-validate-command/spec.md +91 -0
- package/OpenSpec-main/openspec/specs/schema-which-command/spec.md +70 -0
- package/OpenSpec-main/openspec/specs/specs-sync-skill/spec.md +72 -0
- package/OpenSpec-main/openspec/specs/telemetry/spec.md +122 -0
- package/OpenSpec-main/openspec/specs/workspace-change-planning/spec.md +71 -0
- package/OpenSpec-main/openspec/specs/workspace-foundation/spec.md +279 -0
- package/OpenSpec-main/openspec/specs/workspace-links/spec.md +529 -0
- package/OpenSpec-main/openspec/specs/workspace-open/spec.md +205 -0
- package/OpenSpec-main/openspec-parallel-merge-plan.md +98 -0
- package/OpenSpec-main/package-lock.json +4978 -0
- package/OpenSpec-main/package.json +84 -0
- package/OpenSpec-main/pnpm-lock.yaml +3187 -0
- package/OpenSpec-main/schemas/spec-driven/schema.yaml +153 -0
- package/OpenSpec-main/schemas/spec-driven/templates/design.md +19 -0
- package/OpenSpec-main/schemas/spec-driven/templates/proposal.md +23 -0
- package/OpenSpec-main/schemas/spec-driven/templates/spec.md +8 -0
- package/OpenSpec-main/schemas/spec-driven/templates/tasks.md +9 -0
- package/OpenSpec-main/schemas/workspace-planning/schema.yaml +72 -0
- package/OpenSpec-main/schemas/workspace-planning/templates/design.md +33 -0
- package/OpenSpec-main/schemas/workspace-planning/templates/proposal.md +28 -0
- package/OpenSpec-main/schemas/workspace-planning/templates/spec.md +9 -0
- package/OpenSpec-main/schemas/workspace-planning/templates/tasks.md +15 -0
- package/OpenSpec-main/scripts/README.md +37 -0
- package/OpenSpec-main/scripts/pack-version-check.mjs +111 -0
- package/OpenSpec-main/scripts/postinstall.js +83 -0
- package/OpenSpec-main/scripts/test-postinstall.sh +57 -0
- package/OpenSpec-main/scripts/update-flake.sh +128 -0
- package/OpenSpec-main/test/cli-e2e/basic.test.ts +205 -0
- package/OpenSpec-main/test/commands/artifact-workflow.test.ts +1063 -0
- package/OpenSpec-main/test/commands/change-initiative-link.test.ts +532 -0
- package/OpenSpec-main/test/commands/change.interactive-show.test.ts +45 -0
- package/OpenSpec-main/test/commands/change.interactive-validate.test.ts +48 -0
- package/OpenSpec-main/test/commands/completion.test.ts +278 -0
- package/OpenSpec-main/test/commands/config-profile.test.ts +532 -0
- package/OpenSpec-main/test/commands/config.test.ts +285 -0
- package/OpenSpec-main/test/commands/context-store.test.ts +692 -0
- package/OpenSpec-main/test/commands/feedback.test.ts +429 -0
- package/OpenSpec-main/test/commands/initiative.test.ts +907 -0
- package/OpenSpec-main/test/commands/schema.test.ts +467 -0
- package/OpenSpec-main/test/commands/show.test.ts +123 -0
- package/OpenSpec-main/test/commands/spec.interactive-show.test.ts +44 -0
- package/OpenSpec-main/test/commands/spec.interactive-validate.test.ts +44 -0
- package/OpenSpec-main/test/commands/spec.test.ts +324 -0
- package/OpenSpec-main/test/commands/validate.enriched-output.test.ts +49 -0
- package/OpenSpec-main/test/commands/validate.test.ts +147 -0
- package/OpenSpec-main/test/commands/workspace-initiative-open.test.ts +638 -0
- package/OpenSpec-main/test/commands/workspace-open.test.ts +123 -0
- package/OpenSpec-main/test/commands/workspace.interactive.test.ts +696 -0
- package/OpenSpec-main/test/commands/workspace.test.ts +1812 -0
- package/OpenSpec-main/test/core/archive.test.ts +869 -0
- package/OpenSpec-main/test/core/artifact-graph/graph.test.ts +268 -0
- package/OpenSpec-main/test/core/artifact-graph/instruction-loader.test.ts +609 -0
- package/OpenSpec-main/test/core/artifact-graph/outputs.test.ts +175 -0
- package/OpenSpec-main/test/core/artifact-graph/resolver.test.ts +651 -0
- package/OpenSpec-main/test/core/artifact-graph/schema.test.ts +207 -0
- package/OpenSpec-main/test/core/artifact-graph/state.test.ts +174 -0
- package/OpenSpec-main/test/core/artifact-graph/workflow.integration.test.ts +182 -0
- package/OpenSpec-main/test/core/available-tools.test.ts +167 -0
- package/OpenSpec-main/test/core/collections/initiatives/operations.test.ts +342 -0
- package/OpenSpec-main/test/core/collections/initiatives/resolution.test.ts +21 -0
- package/OpenSpec-main/test/core/collections/initiatives/schema.test.ts +201 -0
- package/OpenSpec-main/test/core/collections/initiatives/templates.test.ts +74 -0
- package/OpenSpec-main/test/core/collections/runtime.test.ts +214 -0
- package/OpenSpec-main/test/core/command-generation/adapters.test.ts +710 -0
- package/OpenSpec-main/test/core/command-generation/generator.test.ts +110 -0
- package/OpenSpec-main/test/core/command-generation/registry.test.ts +108 -0
- package/OpenSpec-main/test/core/command-generation/types.test.ts +79 -0
- package/OpenSpec-main/test/core/commands/change-command.list.test.ts +76 -0
- package/OpenSpec-main/test/core/commands/change-command.show-validate.test.ts +111 -0
- package/OpenSpec-main/test/core/completions/command-registry.test.ts +201 -0
- package/OpenSpec-main/test/core/completions/completion-provider.test.ts +288 -0
- package/OpenSpec-main/test/core/completions/generators/bash-generator.test.ts +586 -0
- package/OpenSpec-main/test/core/completions/generators/fish-generator.test.ts +549 -0
- package/OpenSpec-main/test/core/completions/generators/powershell-generator.test.ts +621 -0
- package/OpenSpec-main/test/core/completions/generators/zsh-generator.test.ts +425 -0
- package/OpenSpec-main/test/core/completions/installers/bash-installer.test.ts +484 -0
- package/OpenSpec-main/test/core/completions/installers/fish-installer.test.ts +321 -0
- package/OpenSpec-main/test/core/completions/installers/powershell-installer.test.ts +824 -0
- package/OpenSpec-main/test/core/completions/installers/zsh-installer.test.ts +750 -0
- package/OpenSpec-main/test/core/config-schema.test.ts +340 -0
- package/OpenSpec-main/test/core/context-store/foundation.test.ts +364 -0
- package/OpenSpec-main/test/core/context-store/registry.test.ts +599 -0
- package/OpenSpec-main/test/core/converters/json-converter.test.ts +184 -0
- package/OpenSpec-main/test/core/global-config.test.ts +371 -0
- package/OpenSpec-main/test/core/init.test.ts +786 -0
- package/OpenSpec-main/test/core/legacy-cleanup.test.ts +1162 -0
- package/OpenSpec-main/test/core/list.test.ts +165 -0
- package/OpenSpec-main/test/core/migration.test.ts +150 -0
- package/OpenSpec-main/test/core/parsers/change-parser.test.ts +52 -0
- package/OpenSpec-main/test/core/parsers/markdown-parser.test.ts +355 -0
- package/OpenSpec-main/test/core/parsers/requirement-blocks.test.ts +46 -0
- package/OpenSpec-main/test/core/planning-home.test.ts +120 -0
- package/OpenSpec-main/test/core/profile-sync-drift.test.ts +92 -0
- package/OpenSpec-main/test/core/profiles.test.ts +63 -0
- package/OpenSpec-main/test/core/project-config.test.ts +610 -0
- package/OpenSpec-main/test/core/shared/skill-generation.test.ts +301 -0
- package/OpenSpec-main/test/core/shared/tool-detection.test.ts +333 -0
- package/OpenSpec-main/test/core/templates/skill-templates-parity.test.ts +172 -0
- package/OpenSpec-main/test/core/update.test.ts +1810 -0
- package/OpenSpec-main/test/core/validation.enriched-messages.test.ts +74 -0
- package/OpenSpec-main/test/core/validation.test.ts +680 -0
- package/OpenSpec-main/test/core/view.test.ts +129 -0
- package/OpenSpec-main/test/core/workspace/foundation.test.ts +694 -0
- package/OpenSpec-main/test/core/workspace/legacy-state.test.ts +221 -0
- package/OpenSpec-main/test/core/workspace/skills.test.ts +69 -0
- package/OpenSpec-main/test/fixtures/tmp-init/openspec/changes/c1/proposal.md +7 -0
- package/OpenSpec-main/test/fixtures/tmp-init/openspec/changes/c1/specs/alpha/spec.md +8 -0
- package/OpenSpec-main/test/fixtures/tmp-init/openspec/specs/alpha/spec.md +12 -0
- package/OpenSpec-main/test/helpers/path-env.ts +26 -0
- package/OpenSpec-main/test/helpers/run-cli.ts +150 -0
- package/OpenSpec-main/test/prompts/searchable-multi-select.test.ts +220 -0
- package/OpenSpec-main/test/specs/source-specs-normalization.test.ts +63 -0
- package/OpenSpec-main/test/telemetry/config.test.ts +298 -0
- package/OpenSpec-main/test/telemetry/index.test.ts +219 -0
- package/OpenSpec-main/test/utils/change-metadata.test.ts +368 -0
- package/OpenSpec-main/test/utils/change-utils.test.ts +201 -0
- package/OpenSpec-main/test/utils/command-references.test.ts +83 -0
- package/OpenSpec-main/test/utils/file-system.test.ts +322 -0
- package/OpenSpec-main/test/utils/interactive.test.ts +125 -0
- package/OpenSpec-main/test/utils/marker-updates.test.ts +448 -0
- package/OpenSpec-main/test/utils/shell-detection.test.ts +185 -0
- package/OpenSpec-main/vitest.config.ts +47 -0
- package/OpenSpec-main/vitest.setup.ts +15 -0
- package/README.md +37 -4
- package/Scanner CLI Inteligente para Projetos.md +433 -0
- package/dist/index.js +1248 -161
- package/package.json +1 -1
- package/templates/wiki-recipes/nextjs.rules.md +21 -0
- package/templates/wiki-recipes/postgresql.rules.md +20 -0
- package/templates/wiki-recipes/react.rules.md +18 -0
- package/templates/wiki-recipes/tailwindcss.rules.md +18 -0
- package/templates/wiki-recipes/typescript.rules.md +21 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
## Purpose
|
|
2
|
+
|
|
3
|
+
Profiles SHALL define which workflows to install, enabling a streamlined core experience for new users while allowing power users to customize their workflow selection.
|
|
4
|
+
|
|
5
|
+
## ADDED Requirements
|
|
6
|
+
|
|
7
|
+
### Requirement: Profile definitions
|
|
8
|
+
The system SHALL support two workflow profiles: `core` and `custom`.
|
|
9
|
+
|
|
10
|
+
#### Scenario: Core profile contents
|
|
11
|
+
- **WHEN** profile is set to `core`
|
|
12
|
+
- **THEN** the profile SHALL include workflows: `propose`, `explore`, `apply`, `archive`
|
|
13
|
+
|
|
14
|
+
#### Scenario: Custom profile contents
|
|
15
|
+
- **WHEN** profile is set to `custom`
|
|
16
|
+
- **THEN** the profile SHALL include only the workflows specified in global config `workflows` array
|
|
17
|
+
|
|
18
|
+
### Requirement: Delivery is independent of profile
|
|
19
|
+
The delivery setting SHALL control HOW workflows are installed (skills, commands, or both), separate from WHICH workflows are installed.
|
|
20
|
+
|
|
21
|
+
#### Scenario: Delivery options
|
|
22
|
+
- **WHEN** configuring delivery
|
|
23
|
+
- **THEN** the system SHALL support three options: `both` (skills and commands), `skills` (skill files only), `commands` (command files only)
|
|
24
|
+
|
|
25
|
+
#### Scenario: Both delivery
|
|
26
|
+
- **WHEN** delivery is set to `both`
|
|
27
|
+
- **THEN** the system SHALL install both skill files and command files for each workflow
|
|
28
|
+
|
|
29
|
+
#### Scenario: Skills-only delivery
|
|
30
|
+
- **WHEN** delivery is set to `skills`
|
|
31
|
+
- **THEN** the system SHALL install only skill files for each workflow
|
|
32
|
+
- **THEN** the system SHALL NOT install command files
|
|
33
|
+
|
|
34
|
+
#### Scenario: Commands-only delivery
|
|
35
|
+
- **WHEN** delivery is set to `commands`
|
|
36
|
+
- **THEN** the system SHALL install only command files for each workflow
|
|
37
|
+
- **THEN** the system SHALL NOT install skill files
|
|
38
|
+
|
|
39
|
+
#### Scenario: Core profile with custom delivery
|
|
40
|
+
- **WHEN** profile is set to `core`
|
|
41
|
+
- **AND** delivery is set to `skills`
|
|
42
|
+
- **THEN** the system SHALL install core workflows as skills only (no commands)
|
|
43
|
+
|
|
44
|
+
#### Scenario: Delivery defaults
|
|
45
|
+
- **WHEN** delivery is not set in global config
|
|
46
|
+
- **THEN** the system SHALL default to `both`
|
|
47
|
+
|
|
48
|
+
### Requirement: Profile configuration via interactive picker
|
|
49
|
+
The system SHALL provide an interactive picker for configuring profiles.
|
|
50
|
+
|
|
51
|
+
#### Scenario: Interactive profile configuration
|
|
52
|
+
- **WHEN** user runs `openspec config profile`
|
|
53
|
+
- **THEN** the system SHALL display an interactive picker with:
|
|
54
|
+
- Delivery selection: `skills`, `commands`, `both`
|
|
55
|
+
- Workflow toggles for all available workflows
|
|
56
|
+
- **THEN** the system SHALL pre-select current config values
|
|
57
|
+
- **THEN** on confirmation, the system SHALL update global config
|
|
58
|
+
- **THEN** the system SHALL set profile to `custom` if selected workflows differ from core defaults
|
|
59
|
+
- **THEN** the system SHALL set profile to `core` if selected workflows match core defaults exactly (propose, explore, apply, archive), regardless of delivery setting
|
|
60
|
+
- **THEN** the system SHALL NOT modify any project files
|
|
61
|
+
- **THEN** the system SHALL display: "Config updated. Run `openspec update` in your projects to apply."
|
|
62
|
+
|
|
63
|
+
#### Scenario: Core preset shortcut
|
|
64
|
+
- **WHEN** user runs `openspec config profile core`
|
|
65
|
+
- **THEN** the system SHALL set profile to `core`
|
|
66
|
+
- **THEN** the system SHALL set workflows to `['propose', 'explore', 'apply', 'archive']`
|
|
67
|
+
- **THEN** the system SHALL NOT change the delivery setting (preserves user preference)
|
|
68
|
+
- **THEN** the system SHALL NOT modify any project files
|
|
69
|
+
- **THEN** the system SHALL display: "Config updated. Run `openspec update` in your projects to apply."
|
|
70
|
+
- **THEN** the new profile takes effect on the next `openspec init` or `openspec update` run
|
|
71
|
+
|
|
72
|
+
#### Scenario: Config profile run inside a project
|
|
73
|
+
- **WHEN** user runs `openspec config profile` inside an OpenSpec project directory
|
|
74
|
+
- **THEN** after updating global config, the system SHALL prompt: "Apply to this project now? (y/n)"
|
|
75
|
+
- **WHEN** user confirms
|
|
76
|
+
- **THEN** the system SHALL run `openspec update` automatically
|
|
77
|
+
- **THEN** the system SHALL still display: "Run `openspec update` in your other projects to apply."
|
|
78
|
+
|
|
79
|
+
#### Scenario: Config profile - user declines apply
|
|
80
|
+
- **WHEN** user runs `openspec config profile` inside an OpenSpec project directory
|
|
81
|
+
- **AND** user declines the "Apply to this project now?" prompt
|
|
82
|
+
- **THEN** the system SHALL display: "Config updated. Run `openspec update` in your projects to apply."
|
|
83
|
+
- **THEN** the system SHALL exit successfully without modifying project files
|
|
84
|
+
|
|
85
|
+
#### Scenario: Config profile non-interactive
|
|
86
|
+
- **WHEN** user runs `openspec config profile` non-interactively (e.g., in CI, no TTY)
|
|
87
|
+
- **THEN** the system SHALL display an error: "Interactive mode required. Use `openspec config profile core` or set config via environment/flags."
|
|
88
|
+
- **THEN** the system SHALL exit with code 1
|
|
89
|
+
|
|
90
|
+
### Requirement: Profile settings stored in global config
|
|
91
|
+
Profile and delivery settings SHALL be stored in the existing global config file (`~/.config/openspec/config.json`) alongside telemetry and feature flags.
|
|
92
|
+
|
|
93
|
+
#### Scenario: Config schema
|
|
94
|
+
- **WHEN** reading profile configuration
|
|
95
|
+
- **THEN** the config SHALL contain `profile` (core|custom), `delivery` (both|skills|commands), and optionally `workflows` (array of workflow names)
|
|
96
|
+
|
|
97
|
+
#### Scenario: Schema evolution
|
|
98
|
+
- **WHEN** loading config without profile/delivery fields
|
|
99
|
+
- **THEN** the system SHALL use defaults (profile=core, delivery=both)
|
|
100
|
+
- **AND** existing config fields (telemetry, featureFlags) SHALL be preserved
|
|
101
|
+
|
|
102
|
+
#### Scenario: Config list displays profile settings
|
|
103
|
+
- **WHEN** user runs `openspec config list`
|
|
104
|
+
- **THEN** the system SHALL display profile, delivery, and workflows settings
|
|
105
|
+
- **AND** SHALL indicate which values are defaults vs explicitly set
|
|
106
|
+
|
|
107
|
+
### Requirement: Config is global, projects are explicit
|
|
108
|
+
Config changes SHALL NOT automatically propagate to projects.
|
|
109
|
+
|
|
110
|
+
#### Scenario: Config update does not modify projects
|
|
111
|
+
- **WHEN** user updates config via `openspec config profile`
|
|
112
|
+
- **THEN** the system SHALL only update global config (`~/.config/openspec/config.json`)
|
|
113
|
+
- **THEN** the system SHALL NOT modify any project skill/command files
|
|
114
|
+
- **THEN** existing projects retain their current workflow files until user runs `openspec update`
|
|
115
|
+
|
|
116
|
+
### Requirement: Config changes applied via update command
|
|
117
|
+
The existing `openspec update` command SHALL apply the current global config to a project. See `specs/cli-update/spec.md` for detailed update behavior.
|
|
118
|
+
|
|
119
|
+
#### Scenario: Config changes require explicit project sync
|
|
120
|
+
- **WHEN** user updates profile or delivery via `openspec config profile`
|
|
121
|
+
- **THEN** the global config SHALL be updated immediately
|
|
122
|
+
- **AND** project files SHALL remain unchanged until `openspec update` is run for that project
|
|
123
|
+
|
|
124
|
+
### Requirement: Profile defaults
|
|
125
|
+
The system SHALL use `core` as the default profile for new users, while preserving existing users' workflows via migration.
|
|
126
|
+
|
|
127
|
+
#### Scenario: No global config exists (new user)
|
|
128
|
+
- **WHEN** global config file does not exist
|
|
129
|
+
- **AND** no existing workflows are installed in the project
|
|
130
|
+
- **THEN** the system SHALL behave as if profile is `core`
|
|
131
|
+
|
|
132
|
+
#### Scenario: Global config exists but profile field absent (new user)
|
|
133
|
+
- **WHEN** global config file exists but does not contain a `profile` field
|
|
134
|
+
- **AND** no existing workflows are installed in the project
|
|
135
|
+
- **THEN** the system SHALL behave as if profile is `core`
|
|
136
|
+
|
|
137
|
+
#### Scenario: Profile field absent with existing workflows (existing user migration)
|
|
138
|
+
- **WHEN** global config does not contain a `profile` field
|
|
139
|
+
- **AND** the `update` command detects existing workflow files in the project
|
|
140
|
+
- **THEN** the system SHALL perform one-time migration (see `specs/cli-update/spec.md` for details)
|
|
141
|
+
- **THEN** the system SHALL set profile to `custom` with the detected workflows
|
|
142
|
+
- **THEN** the system SHALL NOT add or remove any workflow files during migration
|
package/OpenSpec-main/openspec/changes/simplify-skill-installation/specs/propose-workflow/spec.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
## Purpose
|
|
2
|
+
|
|
3
|
+
The propose workflow SHALL combine change creation and artifact generation into a single command, reducing friction for new users while teaching them the OpenSpec workflow through embedded guidance.
|
|
4
|
+
|
|
5
|
+
## ADDED Requirements
|
|
6
|
+
|
|
7
|
+
### Requirement: Propose workflow creation
|
|
8
|
+
The system SHALL provide a `propose` workflow that creates a change and generates all artifacts in one step.
|
|
9
|
+
|
|
10
|
+
#### Scenario: Basic propose invocation
|
|
11
|
+
- **WHEN** user invokes `/opsx:propose "add user authentication"`
|
|
12
|
+
- **THEN** the system SHALL create a change directory with kebab-case name
|
|
13
|
+
- **THEN** the system SHALL create `.openspec.yaml` in the change directory (via `openspec new change`)
|
|
14
|
+
- **THEN** the system SHALL generate all artifacts needed for implementation: proposal.md, design.md, specs/, tasks.md
|
|
15
|
+
|
|
16
|
+
#### Scenario: Propose with existing change name
|
|
17
|
+
- **WHEN** user invokes `/opsx:propose` with a name that already exists
|
|
18
|
+
- **THEN** the system SHALL ask if user wants to continue existing change or create new
|
|
19
|
+
- **THEN** if "continue": the system SHALL resume artifact generation from last completed state
|
|
20
|
+
- **THEN** if "create new": the system SHALL prompt for a new name
|
|
21
|
+
- **THEN** in non-interactive mode: the system SHALL fail with error suggesting to use a different name
|
|
22
|
+
|
|
23
|
+
### Requirement: Propose workflow onboarding UX
|
|
24
|
+
The `propose` workflow SHALL include explanatory output to help new users understand the process.
|
|
25
|
+
|
|
26
|
+
#### Scenario: First-time user guidance
|
|
27
|
+
- **WHEN** user invokes `/opsx:propose`
|
|
28
|
+
- **THEN** the system SHALL explain what artifacts will be created (proposal.md, design.md, specs/, tasks.md)
|
|
29
|
+
- **THEN** the system SHALL indicate next step (`/opsx:apply` to implement)
|
|
30
|
+
|
|
31
|
+
#### Scenario: Artifact creation progress
|
|
32
|
+
- **WHEN** the system creates each artifact
|
|
33
|
+
- **THEN** the system SHALL show progress (e.g., "✓ Created proposal.md")
|
|
34
|
+
|
|
35
|
+
### Requirement: Propose workflow combines new and ff
|
|
36
|
+
The `propose` workflow SHALL perform the same operations as running `new` followed by `ff`.
|
|
37
|
+
|
|
38
|
+
#### Scenario: Equivalent to new + ff
|
|
39
|
+
- **WHEN** user invokes `/opsx:propose "feature name"`
|
|
40
|
+
- **THEN** the result SHALL be functionally equivalent to invoking `/opsx:new "feature-name"` followed by `/opsx:ff feature-name`
|
|
41
|
+
- **THEN** the same directory structure and artifacts SHALL be created
|
|
42
|
+
- **THEN** console output MAY differ (propose includes onboarding explanations)
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
## 1. Global Config Extension
|
|
2
|
+
|
|
3
|
+
- [x] 1.1 Extend `src/core/global-config.ts` schema with `profile`, `delivery`, and `workflows` fields
|
|
4
|
+
- [x] 1.2 Add TypeScript types for profile (`core` | `custom`), delivery (`both` | `skills` | `commands`), and workflows (string array)
|
|
5
|
+
- [x] 1.3 Update `GlobalConfig` interface and defaults (profile=`core`, delivery=`both`)
|
|
6
|
+
- [x] 1.4 Update existing `readGlobalConfig()` to handle missing new fields with defaults
|
|
7
|
+
- [x] 1.5 Add tests for schema evolution (existing config without new fields)
|
|
8
|
+
|
|
9
|
+
## 2. Profile System
|
|
10
|
+
|
|
11
|
+
- [x] 2.1 Create `src/core/profiles.ts` with profile definitions (core, custom)
|
|
12
|
+
- [x] 2.2 Define `CORE_WORKFLOWS` constant: `['propose', 'explore', 'apply', 'archive']`
|
|
13
|
+
- [x] 2.3 Define `ALL_WORKFLOWS` constant with all 11 workflows
|
|
14
|
+
- [x] 2.4 Add `COMMAND_IDS` constant to `src/core/shared/tool-detection.ts` (parallel to existing SKILL_NAMES)
|
|
15
|
+
- [x] 2.5 Implement `getProfileWorkflows(profile, customWorkflows?)` resolver function
|
|
16
|
+
- [x] 2.6 Add tests for profile resolution
|
|
17
|
+
|
|
18
|
+
## 3. Config Profile Command (Interactive Picker)
|
|
19
|
+
|
|
20
|
+
- [x] 3.1 Add `config profile` subcommand to `src/commands/config.ts`
|
|
21
|
+
- [x] 3.2 Implement interactive picker UI with delivery selection (skills/commands/both)
|
|
22
|
+
- [x] 3.3 Implement interactive picker UI with workflow toggles
|
|
23
|
+
- [x] 3.4 Pre-select current config values in picker
|
|
24
|
+
- [x] 3.5 Update global config on confirmation (config-only, no file regeneration)
|
|
25
|
+
- [x] 3.6 Display post-update message: "Config updated. Run `openspec update` in your projects to apply."
|
|
26
|
+
- [x] 3.7 Detect if running inside an OpenSpec project and offer to run update automatically
|
|
27
|
+
- [x] 3.8 Implement `config profile core` preset shortcut (preserves delivery setting)
|
|
28
|
+
- [x] 3.9 Handle non-interactive mode: error with helpful message
|
|
29
|
+
- [x] 3.10 Update `openspec config list` to display profile, delivery, and workflows settings (indicate defaults vs explicit)
|
|
30
|
+
- [x] 3.11 Add tests for config profile command and config list output
|
|
31
|
+
|
|
32
|
+
## 4. Available Tools Detection
|
|
33
|
+
|
|
34
|
+
- [x] 4.1 Create `src/core/available-tools.ts` (separate from existing `tool-detection.ts`)
|
|
35
|
+
- [x] 4.2 Implement `getAvailableTools(projectPath)` that scans for AI tool directories (`.claude/`, `.cursor/`, etc.)
|
|
36
|
+
- [x] 4.3 Use `AI_TOOLS` config to map directory names to tool IDs
|
|
37
|
+
- [x] 4.4 Add tests for available tools detection including cross-platform paths
|
|
38
|
+
|
|
39
|
+
## 5. Propose Workflow Template
|
|
40
|
+
|
|
41
|
+
- [x] 5.1 Create `src/core/templates/workflows/propose.ts`
|
|
42
|
+
- [x] 5.2 Implement skill template that combines new + ff behavior
|
|
43
|
+
- [x] 5.3 Ensure propose creates `.openspec.yaml` via `openspec new change` before generating artifacts
|
|
44
|
+
- [x] 5.4 Add onboarding-style explanatory output to template
|
|
45
|
+
- [x] 5.5 Implement command template for propose
|
|
46
|
+
- [x] 5.6 Export templates from `src/core/templates/skill-templates.ts`
|
|
47
|
+
- [x] 5.7 Add `openspec-propose` to `SKILL_NAMES` in `src/core/shared/tool-detection.ts`
|
|
48
|
+
- [x] 5.8 Add `propose` to command templates in `src/core/shared/skill-generation.ts`
|
|
49
|
+
- [x] 5.9 Add `propose` to `COMMAND_IDS` in `src/core/shared/tool-detection.ts`
|
|
50
|
+
- [x] 5.10 Add tests for propose template (creates change, generates artifacts, equivalent to new + ff)
|
|
51
|
+
|
|
52
|
+
## 6. Conditional Skill/Command Generation
|
|
53
|
+
|
|
54
|
+
- [x] 6.1 Update `getSkillTemplates()` to accept profile filter parameter
|
|
55
|
+
- [x] 6.2 Update `getCommandTemplates()` to accept profile filter parameter
|
|
56
|
+
- [x] 6.3 Update `generateSkillsAndCommands()` in init.ts to respect delivery setting
|
|
57
|
+
- [x] 6.4 Add logic to skip skill generation when delivery is 'commands'
|
|
58
|
+
- [x] 6.5 Add logic to skip command generation when delivery is 'skills'
|
|
59
|
+
- [x] 6.6 Add tests for conditional generation
|
|
60
|
+
|
|
61
|
+
## 7. Init Flow Updates
|
|
62
|
+
|
|
63
|
+
- [x] 7.1 Update init to call `getAvailableTools()` first
|
|
64
|
+
- [x] 7.2 Update init to read global config for profile/delivery defaults
|
|
65
|
+
- [x] 7.3 Add migration check to init: call shared `migrateIfNeeded()` before profile resolution
|
|
66
|
+
- [x] 7.4 Change tool selection to show pre-selected detected tools
|
|
67
|
+
- [x] 7.5 Apply configured profile directly in init (no profile confirmation prompt)
|
|
68
|
+
- [x] 7.6 Update success message to show `/opsx:propose` prompt (only if propose is in the active profile)
|
|
69
|
+
- [x] 7.7 Add `--profile` flag to override global config
|
|
70
|
+
- [x] 7.8 Update non-interactive mode to use defaults without prompting
|
|
71
|
+
- [x] 7.9 Add tests for init flow with various scenarios (including migration on re-init and custom profile behavior)
|
|
72
|
+
|
|
73
|
+
## 8. Update Command (Profile Support + Migration)
|
|
74
|
+
|
|
75
|
+
- [x] 8.1 Modify existing `src/commands/update.ts` to read global config for profile/delivery/workflows
|
|
76
|
+
- [x] 8.2 Implement shared `scanInstalledWorkflows(projectPath, tools)` — scan tool directories, match only against `ALL_WORKFLOWS` constant, return union across tools
|
|
77
|
+
- [x] 8.3 Implement shared `migrateIfNeeded(projectPath, tools)` — one-time migration logic used by both `init` and `update`
|
|
78
|
+
- [x] 8.4 Display migration message: "Migrated: custom profile with N workflows" + "New in this version: /opsx:propose. Try 'openspec config profile core' for the streamlined experience."
|
|
79
|
+
- [x] 8.5 Add project check: exit with error if no `openspec/` directory exists
|
|
80
|
+
- [x] 8.6 Add logic to detect which workflows are in config but not installed (to add)
|
|
81
|
+
- [x] 8.7 Add logic to detect which workflows are installed and need refresh (to update)
|
|
82
|
+
- [x] 8.8 Respect delivery setting: generate only skills if `skills`, only commands if `commands`
|
|
83
|
+
- [x] 8.9 Delete files when delivery changes: remove commands if `skills`, remove skills if `commands`
|
|
84
|
+
- [x] 8.10 Generate new workflow files for missing workflows in profile
|
|
85
|
+
- [x] 8.11 Display summary: "Added: X, Y" / "Updated: Z" / "Removed: N files" / "Already up to date."
|
|
86
|
+
- [x] 8.12 List affected tools in output: "Tools: Claude Code, Cursor"
|
|
87
|
+
- [x] 8.13 Detect new tool directories not currently configured and display hint to re-init
|
|
88
|
+
- [x] 8.14 Add tests for migration scenarios (existing user, partial workflows, multiple tools, idempotent, custom skills ignored)
|
|
89
|
+
- [x] 8.15 Add tests for update command with profile scenarios (including delivery changes, outside-project error, new tool detection)
|
|
90
|
+
|
|
91
|
+
## 9. Tool Selection UX Fix
|
|
92
|
+
|
|
93
|
+
- [x] 9.1 Update `src/prompts/searchable-multi-select.ts` keybindings
|
|
94
|
+
- [x] 9.2 Change Space to toggle selection
|
|
95
|
+
- [x] 9.3 Change Enter to confirm selection
|
|
96
|
+
- [x] 9.4 Remove Tab-to-confirm behavior
|
|
97
|
+
- [x] 9.5 Add hint text "Space to toggle, Enter to confirm"
|
|
98
|
+
- [x] 9.6 Add tests for keybinding behavior
|
|
99
|
+
|
|
100
|
+
## 10. Scaffolding Verification
|
|
101
|
+
|
|
102
|
+
- [x] 10.1 Verify `openspec new change` creates `.openspec.yaml` with schema and created fields
|
|
103
|
+
|
|
104
|
+
<!-- Note: 10.2 and 10.3 below are potential follow-up work, not core to this change -->
|
|
105
|
+
<!-- - [ ] 10.2 Update ff skill to verify `.openspec.yaml` exists after `openspec new change` -->
|
|
106
|
+
<!-- - [ ] 10.3 Add guardrail to skills: "Never manually create files in openspec/changes/ - use openspec new change" -->
|
|
107
|
+
|
|
108
|
+
## 11. Template Next-Step Guidance
|
|
109
|
+
|
|
110
|
+
- [x] 11.1 Audit all templates for hardcoded cross-workflow command references (e.g., `/opsx:propose`)
|
|
111
|
+
- [x] 11.2 Replace any specific command references with generic concept-based guidance (e.g., "create a change proposal")
|
|
112
|
+
- [x] 11.3 Review explore → propose transition UX (see `openspec/explorations/explore-workflow-ux.md` for open questions)
|
|
113
|
+
|
|
114
|
+
## 12. Integration & Manual Testing
|
|
115
|
+
|
|
116
|
+
- [x] 12.1 Run full test suite and fix any failures
|
|
117
|
+
- [x] 12.2 Test on Windows (or verify CI passes on Windows)
|
|
118
|
+
- [x] 12.3 Test end-to-end flow: init → propose → apply → archive
|
|
119
|
+
- [x] 12.4 Update CLI help text for new commands
|
|
120
|
+
- [x] 12.5 Manual: interactive init — verify detected tools are pre-selected, confirm prompt works, success message is correct
|
|
121
|
+
- [x] 12.6 Manual: `openspec config profile` picker — verify delivery toggle, workflow toggles, pre-selection of current values, core preset shortcut
|
|
122
|
+
- [x] 12.7 Manual: init with custom profile — verify init proceeds without profile confirmation prompt
|
|
123
|
+
- [x] 12.8 Manual: delivery change via update — verify correct files are deleted/created when switching between skills/commands/both
|
|
124
|
+
- [x] 12.9 Manual: migration flow — run update on a pre-existing project with no profile in config, verify migration message and resulting config
|
|
125
|
+
|
|
126
|
+
## 13. Post-Implementation Hardening (Review Follow-up)
|
|
127
|
+
|
|
128
|
+
- [x] 13.1 Ensure `update` treats profile/delivery drift as update-required even when templates are current
|
|
129
|
+
- [x] 13.2 Ensure `update` recognizes command-only installations as configured tools
|
|
130
|
+
- [x] 13.3 Ensure `init` validates `--profile` values and errors on invalid overrides
|
|
131
|
+
- [x] 13.4 Ensure re-running `init` applies delivery cleanup (removes files not matching current delivery mode)
|
|
132
|
+
- [x] 13.5 Add/adjust regression tests for config drift sync, command-only detection, invalid profile override, and re-init delivery cleanup
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
## Context
|
|
2
|
+
|
|
3
|
+
OpenSpec currently has strong building blocks (workflow templates, command adapters, generation helpers), but orchestration concerns are distributed:
|
|
4
|
+
|
|
5
|
+
- Workflow definitions and projection lists are maintained separately
|
|
6
|
+
- Tool support is represented in multiple places with partial overlap
|
|
7
|
+
- Transforms can happen at template rendering time and inside individual adapters
|
|
8
|
+
- `init`/`update`/legacy-upgrade each run similar write pipelines with slight differences
|
|
9
|
+
|
|
10
|
+
The design goal is to preserve current behavior while making extension points explicit and deterministic.
|
|
11
|
+
|
|
12
|
+
## Goals / Non-Goals
|
|
13
|
+
|
|
14
|
+
**Goals:**
|
|
15
|
+
- Define one canonical source for workflow content and metadata
|
|
16
|
+
- Make tool/agent-specific behavior explicit and centrally discoverable
|
|
17
|
+
- Keep command adapters as the formatting boundary for tool syntax differences
|
|
18
|
+
- Consolidate artifact generation/write orchestration into one reusable engine
|
|
19
|
+
- Improve correctness with enforceable validation and parity tests
|
|
20
|
+
|
|
21
|
+
**Non-Goals:**
|
|
22
|
+
- Redesigning command semantics or workflow instruction content
|
|
23
|
+
- Changing user-facing CLI command names/flags in this proposal
|
|
24
|
+
- Merging unrelated legacy cleanup behavior beyond artifact generation reuse
|
|
25
|
+
|
|
26
|
+
## Decisions
|
|
27
|
+
|
|
28
|
+
### 1. Canonical `WorkflowManifest`
|
|
29
|
+
|
|
30
|
+
**Decision**: Represent each workflow once in a manifest entry containing canonical skill and command definitions plus metadata defaults.
|
|
31
|
+
|
|
32
|
+
Suggested shape:
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
interface WorkflowManifestEntry {
|
|
36
|
+
workflowId: string; // e.g. 'explore', 'ff', 'onboard'
|
|
37
|
+
skillDirName: string; // e.g. 'openspec-explore'
|
|
38
|
+
skill: SkillTemplate;
|
|
39
|
+
command?: CommandTemplate;
|
|
40
|
+
commandId?: string;
|
|
41
|
+
tags: string[];
|
|
42
|
+
compatibility: string;
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Rationale**:
|
|
47
|
+
- Eliminates drift between multiple hand-maintained arrays
|
|
48
|
+
- Makes workflow completeness testable in one place
|
|
49
|
+
- Keeps split workflow modules while centralizing registration
|
|
50
|
+
|
|
51
|
+
### 2. `ToolProfileRegistry` for capability wiring
|
|
52
|
+
|
|
53
|
+
**Decision**: Add a tool profile layer that maps tool IDs to generation capabilities and behavior.
|
|
54
|
+
|
|
55
|
+
Suggested shape:
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
interface ToolProfile {
|
|
59
|
+
toolId: string;
|
|
60
|
+
skillsDir?: string;
|
|
61
|
+
commandAdapterId?: string;
|
|
62
|
+
transforms: string[];
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Rationale**:
|
|
67
|
+
- Prevents capability drift between `AI_TOOLS`, adapter registry, and detection logic
|
|
68
|
+
- Allows intentional "skills-only" tools without implicit special casing
|
|
69
|
+
- Provides one place to answer "what does this tool support?"
|
|
70
|
+
|
|
71
|
+
### 3. First-class transform pipeline
|
|
72
|
+
|
|
73
|
+
**Decision**: Model transforms as ordered plugins with scope + phase + applicability.
|
|
74
|
+
|
|
75
|
+
Suggested shape:
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
interface ArtifactTransform {
|
|
79
|
+
id: string;
|
|
80
|
+
scope: 'skill' | 'command' | 'both';
|
|
81
|
+
phase: 'preAdapter' | 'postAdapter';
|
|
82
|
+
priority: number;
|
|
83
|
+
applies(ctx: GenerationContext): boolean;
|
|
84
|
+
transform(content: string, ctx: GenerationContext): string;
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Execution order:
|
|
89
|
+
1. Render canonical content from manifest
|
|
90
|
+
2. Apply matching `preAdapter` transforms
|
|
91
|
+
3. For commands, run adapter formatting
|
|
92
|
+
4. Apply matching `postAdapter` transforms
|
|
93
|
+
5. Validate and write
|
|
94
|
+
|
|
95
|
+
**Rationale**:
|
|
96
|
+
- Keeps adapters focused on tool formatting, not scattered behavioral rewrites
|
|
97
|
+
- Makes agent-specific modifications explicit and testable
|
|
98
|
+
- Replaces ad-hoc transform calls in `init`/`update`
|
|
99
|
+
|
|
100
|
+
### 4. Shared `ArtifactSyncEngine`
|
|
101
|
+
|
|
102
|
+
**Decision**: Introduce a single orchestration engine used by all generation entry points.
|
|
103
|
+
|
|
104
|
+
Responsibilities:
|
|
105
|
+
- Build generation plan from `(workflows × selected tools × artifact kinds)`
|
|
106
|
+
- Run render/transform/adapter pipeline
|
|
107
|
+
- Validate outputs
|
|
108
|
+
- Write files and return result summary
|
|
109
|
+
|
|
110
|
+
**Rationale**:
|
|
111
|
+
- Removes duplicated loops and divergent behavior across init/update paths
|
|
112
|
+
- Enables dry-run and future preview features without re-implementing logic
|
|
113
|
+
- Improves reliability of updates and legacy migrations
|
|
114
|
+
|
|
115
|
+
### 5. Validation + parity guardrails
|
|
116
|
+
|
|
117
|
+
**Decision**: Add strict checks in tests (and optional runtime assertions in dev builds) for:
|
|
118
|
+
|
|
119
|
+
- Required skill metadata fields (`license`, `compatibility`, `metadata`) present for all manifest entries
|
|
120
|
+
- Projection consistency (skills, commands, detection names derived from manifest)
|
|
121
|
+
- Tool profile consistency (adapter existence, expected capabilities)
|
|
122
|
+
- Golden/parity output for key workflows/tools
|
|
123
|
+
|
|
124
|
+
**Rationale**:
|
|
125
|
+
- Converts prior review issues into enforced invariants
|
|
126
|
+
- Preserves output fidelity while enabling internal refactors
|
|
127
|
+
- Makes regressions obvious during CI
|
|
128
|
+
|
|
129
|
+
## Risks / Trade-offs
|
|
130
|
+
|
|
131
|
+
**Risk: Migration complexity**
|
|
132
|
+
A broad refactor can destabilize generation paths.
|
|
133
|
+
→ Mitigation: introduce in phases with parity tests before cutover.
|
|
134
|
+
|
|
135
|
+
**Risk: Over-abstraction**
|
|
136
|
+
Too many layers can obscure simple flows.
|
|
137
|
+
→ Mitigation: keep interfaces minimal and colocate registries with generation code.
|
|
138
|
+
|
|
139
|
+
**Trade-off: More upfront structure**
|
|
140
|
+
Adding manifest/profile/transform registries increases conceptual surface area.
|
|
141
|
+
→ Accepted: this cost is offset by reduced drift and easier extension.
|
|
142
|
+
|
|
143
|
+
## Implementation Approach
|
|
144
|
+
|
|
145
|
+
1. Build manifest + profile + transform types and registries behind current public API
|
|
146
|
+
2. Rewire `getSkillTemplates`/`getCommandContents` to derive from manifest
|
|
147
|
+
3. Introduce `ArtifactSyncEngine` and switch `init` to use it with parity checks
|
|
148
|
+
4. Switch `update` and legacy upgrade flows to same engine
|
|
149
|
+
5. Remove duplicate/hardcoded lists after parity is green
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
## Why
|
|
2
|
+
|
|
3
|
+
The recent split of `skill-templates.ts` into workflow modules improved readability, but the generation pipeline is still fragmented across multiple layers:
|
|
4
|
+
|
|
5
|
+
- Workflow definitions are split from projection logic (`getSkillTemplates`, `getCommandTemplates`, `getCommandContents`)
|
|
6
|
+
- Tool capability and compatibility are spread across `AI_TOOLS`, `CommandAdapterRegistry`, and hardcoded lists like `SKILL_NAMES`
|
|
7
|
+
- Agent/tool-specific transformations (for example OpenCode command reference rewrites) are applied in different places (`init`, `update`, and adapter code)
|
|
8
|
+
- Artifact writing logic is duplicated across `init`, `update`, and legacy-upgrade flow
|
|
9
|
+
|
|
10
|
+
This fragmentation creates drift risk (missing exports, missing metadata parity, mismatched counts/support) and makes future workflow/tool additions slower and less predictable.
|
|
11
|
+
|
|
12
|
+
## What Changes
|
|
13
|
+
|
|
14
|
+
- Introduce a canonical `WorkflowManifest` as the single source of truth for all workflow artifacts
|
|
15
|
+
- Introduce a `ToolProfileRegistry` to centralize tool capabilities (skills path, command adapter, transforms)
|
|
16
|
+
- Introduce a first-class transform pipeline with explicit phases (`preAdapter`, `postAdapter`) and scopes (`skill`, `command`, `both`)
|
|
17
|
+
- Introduce a shared `ArtifactSyncEngine` used by `init`, `update`, and legacy upgrade paths
|
|
18
|
+
- Add strict validation and test guardrails to preserve fidelity during migration and future changes
|
|
19
|
+
|
|
20
|
+
## Capabilities
|
|
21
|
+
|
|
22
|
+
### New Capabilities
|
|
23
|
+
|
|
24
|
+
- `template-artifact-pipeline`: Unified workflow manifest, tool profile registry, transform pipeline, and sync engine for skill/command generation
|
|
25
|
+
|
|
26
|
+
### Modified Capabilities
|
|
27
|
+
|
|
28
|
+
- `command-generation`: Extended to support ordered transform phases around adapter rendering
|
|
29
|
+
- `cli-init`: Uses shared artifact sync orchestration instead of bespoke loops
|
|
30
|
+
- `cli-update`: Uses shared artifact sync orchestration instead of bespoke loops
|
|
31
|
+
|
|
32
|
+
## Impact
|
|
33
|
+
|
|
34
|
+
- **Primary refactor area**:
|
|
35
|
+
- `src/core/templates/*`
|
|
36
|
+
- `src/core/shared/skill-generation.ts`
|
|
37
|
+
- `src/core/command-generation/*`
|
|
38
|
+
- `src/core/init.ts`
|
|
39
|
+
- `src/core/update.ts`
|
|
40
|
+
- `src/core/shared/tool-detection.ts`
|
|
41
|
+
- **Testing additions**:
|
|
42
|
+
- Manifest completeness tests (workflows, required metadata, projection parity)
|
|
43
|
+
- Transform ordering and applicability tests
|
|
44
|
+
- End-to-end parity tests for generated skill/command outputs across tools
|
|
45
|
+
- **User-facing behavior**:
|
|
46
|
+
- No new CLI surface area required
|
|
47
|
+
- Existing generated artifacts remain behaviorally equivalent unless explicitly changed in future deltas
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# template-artifact-pipeline Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Define a unified architecture for workflow template generation that centralizes workflow definitions, tool capability wiring, transform execution, and artifact synchronization while preserving output fidelity.
|
|
6
|
+
|
|
7
|
+
## ADDED Requirements
|
|
8
|
+
|
|
9
|
+
### Requirement: Canonical Workflow Manifest
|
|
10
|
+
|
|
11
|
+
The system SHALL define a canonical workflow manifest as the single source of truth for generated skill and command artifacts.
|
|
12
|
+
|
|
13
|
+
#### Scenario: Register workflow once
|
|
14
|
+
|
|
15
|
+
- **WHEN** a workflow (for example `explore`, `ff`, or `onboard`) is added or modified
|
|
16
|
+
- **THEN** its canonical definition SHALL be registered once in the workflow manifest
|
|
17
|
+
- **AND** skill/command projections SHALL be derived from that manifest
|
|
18
|
+
- **AND** duplicate hand-maintained lists SHALL NOT be required
|
|
19
|
+
|
|
20
|
+
#### Scenario: Required skill metadata
|
|
21
|
+
|
|
22
|
+
- **WHEN** defining a workflow skill entry in the manifest
|
|
23
|
+
- **THEN** it SHALL include required metadata fields (`license`, `compatibility`, and `metadata`)
|
|
24
|
+
- **AND** generation SHALL use those values or explicit defaults in a consistent way for all workflows
|
|
25
|
+
|
|
26
|
+
### Requirement: Tool Profile Registry
|
|
27
|
+
|
|
28
|
+
The system SHALL define a tool profile registry that captures generation capabilities per tool.
|
|
29
|
+
|
|
30
|
+
#### Scenario: Resolve tool capabilities
|
|
31
|
+
|
|
32
|
+
- **WHEN** generating artifacts for a selected tool
|
|
33
|
+
- **THEN** the system SHALL resolve a tool profile that declares skill path capability, command adapter linkage, and transform set
|
|
34
|
+
- **AND** tools with skills support but no command adapter SHALL be handled explicitly without implicit fallback behavior
|
|
35
|
+
|
|
36
|
+
#### Scenario: Capability consistency validation
|
|
37
|
+
|
|
38
|
+
- **WHEN** running validation checks
|
|
39
|
+
- **THEN** the system SHALL detect mismatches between configured tools, profile definitions, and registered adapters
|
|
40
|
+
- **AND** fail with actionable errors in development/CI
|
|
41
|
+
|
|
42
|
+
### Requirement: Ordered Transform Pipeline
|
|
43
|
+
|
|
44
|
+
The system SHALL support ordered artifact transforms with explicit scope and phase semantics.
|
|
45
|
+
|
|
46
|
+
#### Scenario: Execute pre-adapter and post-adapter transforms
|
|
47
|
+
|
|
48
|
+
- **WHEN** generating an artifact
|
|
49
|
+
- **THEN** matching transforms SHALL execute in deterministic order based on phase and priority
|
|
50
|
+
- **AND** `preAdapter` transforms SHALL run before command adapter formatting
|
|
51
|
+
- **AND** `postAdapter` transforms SHALL run after adapter formatting
|
|
52
|
+
|
|
53
|
+
#### Scenario: Apply tool-specific rewrites declaratively
|
|
54
|
+
|
|
55
|
+
- **WHEN** a tool requires instruction rewrites (for example command reference syntax changes)
|
|
56
|
+
- **THEN** those rewrites SHALL be implemented as registered transforms with explicit applicability predicates
|
|
57
|
+
- **AND** generation entry points SHALL NOT implement ad-hoc rewrite logic
|
|
58
|
+
|
|
59
|
+
### Requirement: Shared Artifact Sync Engine
|
|
60
|
+
|
|
61
|
+
The system SHALL provide a shared artifact sync engine used by all generation entry points.
|
|
62
|
+
|
|
63
|
+
#### Scenario: Init and update use same engine
|
|
64
|
+
|
|
65
|
+
- **WHEN** `openspec init` or `openspec update` writes skills/commands
|
|
66
|
+
- **THEN** both flows SHALL use the same orchestration engine for planning, rendering, validating, and writing artifacts
|
|
67
|
+
- **AND** behavior differences SHALL be configuration-driven rather than separate duplicated loops
|
|
68
|
+
|
|
69
|
+
#### Scenario: Legacy upgrade path reuses engine
|
|
70
|
+
|
|
71
|
+
- **WHEN** legacy cleanup triggers artifact regeneration
|
|
72
|
+
- **THEN** the regeneration path SHALL use the same shared engine
|
|
73
|
+
- **AND** generated outputs SHALL follow the same transform and validation rules
|
|
74
|
+
|
|
75
|
+
### Requirement: Fidelity Guardrails
|
|
76
|
+
|
|
77
|
+
The system SHALL enforce guardrails that prevent output drift during refactors.
|
|
78
|
+
|
|
79
|
+
#### Scenario: Projection parity checks
|
|
80
|
+
|
|
81
|
+
- **WHEN** CI runs template generation tests
|
|
82
|
+
- **THEN** it SHALL verify manifest-derived projections remain consistent (workflows, command IDs, skill directories)
|
|
83
|
+
- **AND** detect missing exports or missing workflow registration
|
|
84
|
+
|
|
85
|
+
#### Scenario: Output parity checks
|
|
86
|
+
|
|
87
|
+
- **WHEN** running parity tests for representative workflow/tool combinations
|
|
88
|
+
- **THEN** generated artifacts SHALL remain behaviorally equivalent to approved baselines unless intentionally changed
|
|
89
|
+
- **AND** intentional changes SHALL be captured in explicit spec/proposal updates
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
## 1. Manifest Foundation
|
|
2
|
+
|
|
3
|
+
- [ ] 1.1 Create canonical workflow manifest registry under `src/core/templates/`
|
|
4
|
+
- [ ] 1.2 Define shared manifest types for workflow IDs, skill metadata, and optional command descriptors
|
|
5
|
+
- [ ] 1.3 Migrate existing workflow registration (`getSkillTemplates`, `getCommandTemplates`, `getCommandContents`) to derive from the manifest
|
|
6
|
+
- [ ] 1.4 Preserve existing external exports/API compatibility for `src/core/templates/skill-templates.ts`
|
|
7
|
+
|
|
8
|
+
## 2. Tool Profile Layer
|
|
9
|
+
|
|
10
|
+
- [ ] 2.1 Add `ToolProfile` types and `ToolProfileRegistry`
|
|
11
|
+
- [ ] 2.2 Map all currently supported tools to explicit profile entries
|
|
12
|
+
- [ ] 2.3 Wire profile lookups to command adapter resolution and skills path resolution
|
|
13
|
+
- [ ] 2.4 Replace hardcoded detection arrays (for example `SKILL_NAMES`) with manifest-derived values
|
|
14
|
+
|
|
15
|
+
## 3. Transform Pipeline
|
|
16
|
+
|
|
17
|
+
- [ ] 3.1 Introduce transform interfaces (`scope`, `phase`, `priority`, `applies`, `transform`)
|
|
18
|
+
- [ ] 3.2 Implement transform runner with deterministic ordering
|
|
19
|
+
- [ ] 3.3 Migrate OpenCode command reference rewrite to transform pipeline
|
|
20
|
+
- [ ] 3.4 Remove ad-hoc transform invocation from `init` and `update`
|
|
21
|
+
|
|
22
|
+
## 4. Artifact Sync Engine
|
|
23
|
+
|
|
24
|
+
- [ ] 4.1 Create shared artifact sync engine for generation planning + rendering + writing
|
|
25
|
+
- [ ] 4.2 Integrate engine into `init` flow
|
|
26
|
+
- [ ] 4.3 Integrate engine into `update` flow
|
|
27
|
+
- [ ] 4.4 Integrate engine into legacy-upgrade artifact generation path
|
|
28
|
+
|
|
29
|
+
## 5. Validation and Tests
|
|
30
|
+
|
|
31
|
+
- [ ] 5.1 Add manifest completeness tests (metadata required fields, command IDs, dir names)
|
|
32
|
+
- [ ] 5.2 Add tool-profile consistency tests (skillsDir support and adapter/profile alignment)
|
|
33
|
+
- [ ] 5.3 Add transform applicability/order tests
|
|
34
|
+
- [ ] 5.4 Expand parity tests for representative workflow/tool matrix
|
|
35
|
+
- [ ] 5.5 Run full test suite and verify generated artifacts remain stable
|
|
36
|
+
|
|
37
|
+
## 6. Cleanup and Documentation
|
|
38
|
+
|
|
39
|
+
- [ ] 6.1 Remove superseded helper code and duplicate write loops after cutover
|
|
40
|
+
- [ ] 6.2 Update internal developer docs for template generation architecture
|
|
41
|
+
- [ ] 6.3 Document migration guardrails for future workflow/tool additions
|