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,201 @@
|
|
|
1
|
+
# schema-resolution Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Define project-local schema resolution behavior, including precedence order (project-local, then user override, then package built-in) and backward-compatible fallback when `projectRoot` is not provided.
|
|
5
|
+
## Requirements
|
|
6
|
+
### Requirement: Project-local schema resolution
|
|
7
|
+
|
|
8
|
+
The system SHALL resolve schemas from the project-local directory (`./openspec/schemas/<name>/`) with highest priority when a `projectRoot` is provided.
|
|
9
|
+
|
|
10
|
+
#### Scenario: Project-local schema takes precedence over user override
|
|
11
|
+
- **WHEN** a schema named "my-workflow" exists at `./openspec/schemas/my-workflow/schema.yaml`
|
|
12
|
+
- **AND** a schema named "my-workflow" exists at `~/.local/share/openspec/schemas/my-workflow/schema.yaml`
|
|
13
|
+
- **AND** `getSchemaDir("my-workflow", projectRoot)` is called
|
|
14
|
+
- **THEN** the system SHALL return the project-local path
|
|
15
|
+
|
|
16
|
+
#### Scenario: Project-local schema takes precedence over package built-in
|
|
17
|
+
- **WHEN** a schema named "spec-driven" exists at `./openspec/schemas/spec-driven/schema.yaml`
|
|
18
|
+
- **AND** "spec-driven" is a package built-in schema
|
|
19
|
+
- **AND** `getSchemaDir("spec-driven", projectRoot)` is called
|
|
20
|
+
- **THEN** the system SHALL return the project-local path
|
|
21
|
+
|
|
22
|
+
#### Scenario: Falls back to user override when no project-local schema
|
|
23
|
+
- **WHEN** no schema named "my-workflow" exists at `./openspec/schemas/my-workflow/`
|
|
24
|
+
- **AND** a schema named "my-workflow" exists at `~/.local/share/openspec/schemas/my-workflow/schema.yaml`
|
|
25
|
+
- **AND** `getSchemaDir("my-workflow", projectRoot)` is called
|
|
26
|
+
- **THEN** the system SHALL return the user override path
|
|
27
|
+
|
|
28
|
+
#### Scenario: Falls back to package built-in when no project-local or user schema
|
|
29
|
+
- **WHEN** no schema named "spec-driven" exists at `./openspec/schemas/spec-driven/`
|
|
30
|
+
- **AND** no schema named "spec-driven" exists at `~/.local/share/openspec/schemas/spec-driven/`
|
|
31
|
+
- **AND** "spec-driven" is a package built-in schema
|
|
32
|
+
- **AND** `getSchemaDir("spec-driven", projectRoot)` is called
|
|
33
|
+
- **THEN** the system SHALL return the package built-in path
|
|
34
|
+
|
|
35
|
+
#### Scenario: Backward compatibility when projectRoot not provided
|
|
36
|
+
- **WHEN** `getSchemaDir("my-workflow")` is called without a `projectRoot` parameter
|
|
37
|
+
- **THEN** the system SHALL only check user override and package built-in locations
|
|
38
|
+
- **AND** the system SHALL NOT check project-local location
|
|
39
|
+
|
|
40
|
+
### Requirement: Project schemas directory helper
|
|
41
|
+
|
|
42
|
+
The system SHALL provide a `getProjectSchemasDir(projectRoot)` function that returns the project-local schemas directory path.
|
|
43
|
+
|
|
44
|
+
#### Scenario: Returns correct path
|
|
45
|
+
- **WHEN** `getProjectSchemasDir("/path/to/project")` is called
|
|
46
|
+
- **THEN** the system SHALL return `/path/to/project/openspec/schemas`
|
|
47
|
+
|
|
48
|
+
### Requirement: List schemas includes project-local
|
|
49
|
+
|
|
50
|
+
The system SHALL include project-local schemas when listing available schemas if `projectRoot` is provided.
|
|
51
|
+
|
|
52
|
+
#### Scenario: Project-local schemas appear in list
|
|
53
|
+
- **WHEN** a schema named "team-flow" exists at `./openspec/schemas/team-flow/schema.yaml`
|
|
54
|
+
- **AND** `listSchemas(projectRoot)` is called
|
|
55
|
+
- **THEN** the returned list SHALL include "team-flow"
|
|
56
|
+
|
|
57
|
+
#### Scenario: Project-local schema shadows same-named user schema in list
|
|
58
|
+
- **WHEN** a schema named "custom" exists at both project-local and user override locations
|
|
59
|
+
- **AND** `listSchemas(projectRoot)` is called
|
|
60
|
+
- **THEN** the returned list SHALL include "custom" exactly once
|
|
61
|
+
|
|
62
|
+
#### Scenario: Backward compatibility for listSchemas
|
|
63
|
+
- **WHEN** `listSchemas()` is called without a `projectRoot` parameter
|
|
64
|
+
- **THEN** the system SHALL only include user override and package built-in schemas
|
|
65
|
+
|
|
66
|
+
### Requirement: Schema info includes project source
|
|
67
|
+
|
|
68
|
+
The system SHALL indicate `source: 'project'` for project-local schemas in `listSchemasWithInfo()` results.
|
|
69
|
+
|
|
70
|
+
#### Scenario: Project-local schema shows project source
|
|
71
|
+
- **WHEN** a schema named "team-flow" exists at `./openspec/schemas/team-flow/schema.yaml`
|
|
72
|
+
- **AND** `listSchemasWithInfo(projectRoot)` is called
|
|
73
|
+
- **THEN** the schema info for "team-flow" SHALL have `source: 'project'`
|
|
74
|
+
|
|
75
|
+
#### Scenario: User override schema shows user source
|
|
76
|
+
- **WHEN** a schema named "my-custom" exists only at `~/.local/share/openspec/schemas/my-custom/`
|
|
77
|
+
- **AND** `listSchemasWithInfo(projectRoot)` is called
|
|
78
|
+
- **THEN** the schema info for "my-custom" SHALL have `source: 'user'`
|
|
79
|
+
|
|
80
|
+
#### Scenario: Package built-in schema shows package source
|
|
81
|
+
- **WHEN** "spec-driven" exists only as a package built-in
|
|
82
|
+
- **AND** `listSchemasWithInfo(projectRoot)` is called
|
|
83
|
+
- **THEN** the schema info for "spec-driven" SHALL have `source: 'package'`
|
|
84
|
+
|
|
85
|
+
### Requirement: Schemas command shows source
|
|
86
|
+
|
|
87
|
+
The `openspec schemas` command SHALL display the source of each schema.
|
|
88
|
+
|
|
89
|
+
#### Scenario: Display format includes source
|
|
90
|
+
- **WHEN** user runs `openspec schemas`
|
|
91
|
+
- **THEN** the output SHALL show each schema with its source label (project, user, or package)
|
|
92
|
+
|
|
93
|
+
### Requirement: Use config schema as default for new changes
|
|
94
|
+
|
|
95
|
+
The system SHALL use the schema field from `openspec/config.yaml` as the default when creating new changes without explicit `--schema` flag and no planning-home default applies.
|
|
96
|
+
|
|
97
|
+
#### Scenario: Create change without --schema flag and config exists
|
|
98
|
+
- **WHEN** user runs `openspec new change foo`, no planning-home default applies, and config contains `schema: "tdd"`
|
|
99
|
+
- **THEN** system creates change with schema "tdd"
|
|
100
|
+
|
|
101
|
+
#### Scenario: Create change without --schema flag and no config
|
|
102
|
+
- **WHEN** user runs `openspec new change foo`, no planning-home default applies, and no config file exists
|
|
103
|
+
- **THEN** system creates change with default schema "spec-driven"
|
|
104
|
+
|
|
105
|
+
#### Scenario: Create change with explicit --schema flag
|
|
106
|
+
- **WHEN** user runs `openspec new change foo --schema custom` and config contains `schema: "tdd"`
|
|
107
|
+
- **THEN** system creates change with schema "custom" (CLI flag overrides config)
|
|
108
|
+
|
|
109
|
+
### Requirement: Resolve schema with updated precedence order
|
|
110
|
+
|
|
111
|
+
The system SHALL resolve the schema for a change using the following precedence order: CLI flag, change metadata, planning-home default, project config, hardcoded default.
|
|
112
|
+
|
|
113
|
+
#### Scenario: CLI flag is provided
|
|
114
|
+
- **WHEN** user runs command with `--schema custom`
|
|
115
|
+
- **THEN** system uses "custom" regardless of change metadata or config
|
|
116
|
+
|
|
117
|
+
#### Scenario: Change metadata specifies schema
|
|
118
|
+
- **WHEN** change has `.openspec.yaml` with `schema: bound` and config has `schema: tdd`
|
|
119
|
+
- **THEN** system uses "bound" from change metadata
|
|
120
|
+
|
|
121
|
+
#### Scenario: Planning home default overrides project config
|
|
122
|
+
- **WHEN** no CLI flag or change metadata, the planning home provides default schema `workspace-planning`, and config has `schema: tdd`
|
|
123
|
+
- **THEN** system uses "workspace-planning" from the planning home default
|
|
124
|
+
|
|
125
|
+
#### Scenario: Only project config specifies schema
|
|
126
|
+
- **WHEN** no CLI flag, change metadata, or planning-home default exists, but config has `schema: tdd`
|
|
127
|
+
- **THEN** system uses "tdd" from project config
|
|
128
|
+
|
|
129
|
+
#### Scenario: No schema specified anywhere
|
|
130
|
+
- **WHEN** no CLI flag, change metadata, planning-home default, or project config
|
|
131
|
+
- **THEN** system uses hardcoded default "spec-driven"
|
|
132
|
+
|
|
133
|
+
### Requirement: Support project-local schema names in config
|
|
134
|
+
|
|
135
|
+
The system SHALL allow the config schema field to reference project-local schemas defined in `openspec/schemas/`.
|
|
136
|
+
|
|
137
|
+
#### Scenario: Config references project-local schema
|
|
138
|
+
- **WHEN** config contains `schema: "my-workflow"` and `openspec/schemas/my-workflow/` exists
|
|
139
|
+
- **THEN** system resolves to the project-local schema
|
|
140
|
+
|
|
141
|
+
#### Scenario: Config references non-existent schema
|
|
142
|
+
- **WHEN** config contains `schema: "nonexistent"` and that schema does not exist
|
|
143
|
+
- **THEN** system shows error when attempting to load the schema with fuzzy match suggestions and list of all valid schemas
|
|
144
|
+
|
|
145
|
+
### Requirement: Provide helpful error message for invalid schema
|
|
146
|
+
|
|
147
|
+
The system SHALL display schema error with fuzzy match suggestions, list of available schemas, and fix instructions.
|
|
148
|
+
|
|
149
|
+
#### Scenario: Schema name with typo (close match)
|
|
150
|
+
- **WHEN** config contains `schema: "spce-driven"` (typo)
|
|
151
|
+
- **THEN** error message includes "Did you mean: spec-driven (built-in)" as suggestion
|
|
152
|
+
|
|
153
|
+
#### Scenario: Schema name with no close matches
|
|
154
|
+
- **WHEN** config contains `schema: "completely-wrong"`
|
|
155
|
+
- **THEN** error message shows list of all available built-in and project-local schemas
|
|
156
|
+
|
|
157
|
+
#### Scenario: Error message includes fix instructions
|
|
158
|
+
- **WHEN** config references invalid schema
|
|
159
|
+
- **THEN** error message includes "Fix: Edit openspec/config.yaml and change 'schema: X' to a valid schema name"
|
|
160
|
+
|
|
161
|
+
#### Scenario: Error distinguishes built-in vs project-local schemas
|
|
162
|
+
- **WHEN** error lists available schemas
|
|
163
|
+
- **THEN** output clearly labels each as "built-in" or "project-local"
|
|
164
|
+
|
|
165
|
+
### Requirement: Maintain backwards compatibility for existing changes
|
|
166
|
+
|
|
167
|
+
The system SHALL continue to work with existing changes that do not have project config.
|
|
168
|
+
|
|
169
|
+
#### Scenario: Existing change without config
|
|
170
|
+
- **WHEN** change was created before config feature and no config file exists
|
|
171
|
+
- **THEN** system resolves schema using existing logic (change metadata or hardcoded default)
|
|
172
|
+
|
|
173
|
+
#### Scenario: Existing change with config added later
|
|
174
|
+
- **WHEN** config file is added to project with existing changes
|
|
175
|
+
- **THEN** existing changes continue to use their bound schema from `.openspec.yaml`
|
|
176
|
+
|
|
177
|
+
### Requirement: Workspace planning schema resolution
|
|
178
|
+
Schema resolution SHALL support the built-in workspace planning schema.
|
|
179
|
+
|
|
180
|
+
#### Scenario: Listing workspace planning schema
|
|
181
|
+
- **WHEN** a user runs `openspec schemas`
|
|
182
|
+
- **THEN** the output SHALL include `workspace-planning`
|
|
183
|
+
- **AND** it SHALL identify it as a package-provided schema unless overridden by a higher-precedence schema
|
|
184
|
+
|
|
185
|
+
#### Scenario: Resolving workspace planning schema by name
|
|
186
|
+
- **WHEN** a workflow command requests schema `workspace-planning`
|
|
187
|
+
- **THEN** schema resolution SHALL resolve it using the normal project, user, then package precedence order
|
|
188
|
+
|
|
189
|
+
#### Scenario: Workspace default schema for new changes
|
|
190
|
+
- **GIVEN** the command creates a change in a workspace planning home
|
|
191
|
+
- **AND** the user did not pass an explicit `--schema`
|
|
192
|
+
- **AND** no change metadata schema applies to the new change
|
|
193
|
+
- **WHEN** OpenSpec resolves the schema for the new change
|
|
194
|
+
- **THEN** it SHALL use the planning-home default schema `workspace-planning`
|
|
195
|
+
- **AND** it SHALL use that planning-home default before any project or global config schema value
|
|
196
|
+
|
|
197
|
+
#### Scenario: Explicit schema override for workspace change
|
|
198
|
+
- **GIVEN** the command creates a change in a workspace planning home
|
|
199
|
+
- **WHEN** the user passes an explicit `--schema <name>`
|
|
200
|
+
- **THEN** OpenSpec SHALL use the explicitly requested schema
|
|
201
|
+
- **AND** it SHALL validate that schema using normal schema resolution
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# schema-validate-command Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Define `openspec schema validate` behavior for validating schema syntax, structure, templates, and dependency graphs.
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
### Requirement: Schema validate checks schema structure
|
|
8
|
+
The CLI SHALL provide an `openspec schema validate [name]` command that validates schema configuration and reports errors.
|
|
9
|
+
|
|
10
|
+
#### Scenario: Validate specific schema
|
|
11
|
+
- **WHEN** user runs `openspec schema validate my-workflow`
|
|
12
|
+
- **THEN** system locates schema using resolution order
|
|
13
|
+
- **AND** validates `schema.yaml` against the schema Zod type
|
|
14
|
+
- **AND** displays validation result (valid or list of errors)
|
|
15
|
+
|
|
16
|
+
#### Scenario: Validate all project schemas
|
|
17
|
+
- **WHEN** user runs `openspec schema validate` without a name
|
|
18
|
+
- **THEN** system validates all schemas in `openspec/schemas/`
|
|
19
|
+
- **AND** displays results for each schema
|
|
20
|
+
- **AND** exits with non-zero code if any schema is invalid
|
|
21
|
+
|
|
22
|
+
#### Scenario: Schema not found
|
|
23
|
+
- **WHEN** user runs `openspec schema validate nonexistent`
|
|
24
|
+
- **THEN** system displays error that schema was not found
|
|
25
|
+
- **AND** exits with non-zero code
|
|
26
|
+
|
|
27
|
+
### Requirement: Schema validate checks YAML syntax
|
|
28
|
+
The CLI SHALL report YAML parsing errors with line numbers when possible.
|
|
29
|
+
|
|
30
|
+
#### Scenario: Invalid YAML syntax
|
|
31
|
+
- **WHEN** user runs `openspec schema validate my-workflow` and `schema.yaml` has syntax errors
|
|
32
|
+
- **THEN** system displays YAML parse error with line number
|
|
33
|
+
- **AND** exits with non-zero code
|
|
34
|
+
|
|
35
|
+
#### Scenario: Valid YAML but missing required fields
|
|
36
|
+
- **WHEN** `schema.yaml` is valid YAML but missing `name` field
|
|
37
|
+
- **THEN** system displays Zod validation error for missing required field
|
|
38
|
+
- **AND** identifies the specific missing field
|
|
39
|
+
|
|
40
|
+
### Requirement: Schema validate checks template existence
|
|
41
|
+
The CLI SHALL verify that all template files referenced by artifacts exist.
|
|
42
|
+
|
|
43
|
+
#### Scenario: Missing template file
|
|
44
|
+
- **WHEN** artifact references `template: proposal.md` but file doesn't exist in schema directory
|
|
45
|
+
- **THEN** system reports error: "Template file 'proposal.md' not found for artifact 'proposal'"
|
|
46
|
+
- **AND** exits with non-zero code
|
|
47
|
+
|
|
48
|
+
#### Scenario: All templates exist
|
|
49
|
+
- **WHEN** all artifact templates exist
|
|
50
|
+
- **THEN** system reports that templates are valid
|
|
51
|
+
- **AND** template existence is included in validation summary
|
|
52
|
+
|
|
53
|
+
### Requirement: Schema validate checks dependency graph
|
|
54
|
+
The CLI SHALL verify that artifact dependencies form a valid directed acyclic graph.
|
|
55
|
+
|
|
56
|
+
#### Scenario: Valid dependency graph
|
|
57
|
+
- **WHEN** artifact dependencies form a valid DAG (e.g., tasks → specs → proposal)
|
|
58
|
+
- **THEN** system reports dependency graph is valid
|
|
59
|
+
|
|
60
|
+
#### Scenario: Circular dependency detected
|
|
61
|
+
- **WHEN** artifact A requires B and artifact B requires A
|
|
62
|
+
- **THEN** system reports circular dependency error
|
|
63
|
+
- **AND** identifies the artifacts involved in the cycle
|
|
64
|
+
- **AND** exits with non-zero code
|
|
65
|
+
|
|
66
|
+
#### Scenario: Unknown dependency reference
|
|
67
|
+
- **WHEN** artifact requires `nonexistent-artifact`
|
|
68
|
+
- **THEN** system reports error: "Artifact 'x' requires unknown artifact 'nonexistent-artifact'"
|
|
69
|
+
- **AND** exits with non-zero code
|
|
70
|
+
|
|
71
|
+
### Requirement: Schema validate outputs JSON format
|
|
72
|
+
The CLI SHALL support `--json` flag for machine-readable validation results.
|
|
73
|
+
|
|
74
|
+
#### Scenario: JSON output for valid schema
|
|
75
|
+
- **WHEN** user runs `openspec schema validate my-workflow --json` and schema is valid
|
|
76
|
+
- **THEN** system outputs JSON with `valid: true`, `name`, and `path` fields
|
|
77
|
+
|
|
78
|
+
#### Scenario: JSON output for invalid schema
|
|
79
|
+
- **WHEN** user runs `openspec schema validate my-workflow --json` and schema has errors
|
|
80
|
+
- **THEN** system outputs JSON with `valid: false` and `issues` array
|
|
81
|
+
- **AND** each issue includes `level`, `path`, and `message` fields
|
|
82
|
+
- **AND** format matches existing `openspec validate` output structure
|
|
83
|
+
|
|
84
|
+
### Requirement: Schema validate supports verbose mode
|
|
85
|
+
The CLI SHALL support `--verbose` flag for detailed validation information.
|
|
86
|
+
|
|
87
|
+
#### Scenario: Verbose output shows all checks
|
|
88
|
+
- **WHEN** user runs `openspec schema validate my-workflow --verbose`
|
|
89
|
+
- **THEN** system displays each validation check as it runs
|
|
90
|
+
- **AND** shows pass/fail status for: YAML parsing, Zod validation, template existence, dependency graph
|
|
91
|
+
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# schema-which-command Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Define `openspec schema which` behavior for reporting resolved schema source, location, and fallback details.
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
### Requirement: Schema which shows resolution result
|
|
8
|
+
The CLI SHALL provide an `openspec schema which <name>` command that displays where a schema resolves from.
|
|
9
|
+
|
|
10
|
+
#### Scenario: Schema resolves from project
|
|
11
|
+
- **WHEN** user runs `openspec schema which my-workflow` and schema exists in `openspec/schemas/my-workflow/`
|
|
12
|
+
- **THEN** system displays source as "project"
|
|
13
|
+
- **AND** displays full path to schema directory
|
|
14
|
+
|
|
15
|
+
#### Scenario: Schema resolves from user directory
|
|
16
|
+
- **WHEN** user runs `openspec schema which my-workflow` and schema exists only in user data directory
|
|
17
|
+
- **THEN** system displays source as "user"
|
|
18
|
+
- **AND** displays full path including XDG data directory
|
|
19
|
+
|
|
20
|
+
#### Scenario: Schema resolves from package
|
|
21
|
+
- **WHEN** user runs `openspec schema which spec-driven` and no override exists
|
|
22
|
+
- **THEN** system displays source as "package"
|
|
23
|
+
- **AND** displays full path to package's schemas directory
|
|
24
|
+
|
|
25
|
+
#### Scenario: Schema not found
|
|
26
|
+
- **WHEN** user runs `openspec schema which nonexistent`
|
|
27
|
+
- **THEN** system displays error that schema was not found
|
|
28
|
+
- **AND** lists available schemas
|
|
29
|
+
- **AND** exits with non-zero code
|
|
30
|
+
|
|
31
|
+
### Requirement: Schema which shows shadowing information
|
|
32
|
+
The CLI SHALL indicate when a schema shadows another schema at a lower priority level.
|
|
33
|
+
|
|
34
|
+
#### Scenario: Project schema shadows package
|
|
35
|
+
- **WHEN** user runs `openspec schema which spec-driven` and both project and package have `spec-driven`
|
|
36
|
+
- **THEN** system displays that project schema is active
|
|
37
|
+
- **AND** indicates it shadows the package version
|
|
38
|
+
- **AND** shows path to shadowed package schema
|
|
39
|
+
|
|
40
|
+
#### Scenario: No shadowing
|
|
41
|
+
- **WHEN** schema exists only in one location
|
|
42
|
+
- **THEN** system does not display shadowing information
|
|
43
|
+
|
|
44
|
+
#### Scenario: Multiple shadows
|
|
45
|
+
- **WHEN** project schema shadows both user and package schemas
|
|
46
|
+
- **THEN** system lists all shadowed locations in priority order
|
|
47
|
+
|
|
48
|
+
### Requirement: Schema which outputs JSON format
|
|
49
|
+
The CLI SHALL support `--json` flag for machine-readable output.
|
|
50
|
+
|
|
51
|
+
#### Scenario: JSON output basic
|
|
52
|
+
- **WHEN** user runs `openspec schema which spec-driven --json`
|
|
53
|
+
- **THEN** system outputs JSON with `name`, `source`, and `path` fields
|
|
54
|
+
|
|
55
|
+
#### Scenario: JSON output with shadows
|
|
56
|
+
- **WHEN** user runs `openspec schema which spec-driven --json` and schema has shadows
|
|
57
|
+
- **THEN** JSON includes `shadows` array with `source` and `path` for each shadowed schema
|
|
58
|
+
|
|
59
|
+
### Requirement: Schema which supports list mode
|
|
60
|
+
The CLI SHALL support listing all schemas with their resolution sources.
|
|
61
|
+
|
|
62
|
+
#### Scenario: List all schemas
|
|
63
|
+
- **WHEN** user runs `openspec schema which --all`
|
|
64
|
+
- **THEN** system displays all available schemas grouped by source
|
|
65
|
+
- **AND** indicates which schemas shadow others
|
|
66
|
+
|
|
67
|
+
#### Scenario: List in JSON format
|
|
68
|
+
- **WHEN** user runs `openspec schema which --all --json`
|
|
69
|
+
- **THEN** system outputs JSON array with resolution info for each schema
|
|
70
|
+
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# specs-sync-skill Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Defines the agent skill for syncing delta specs from changes to main specs.
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
|
|
8
|
+
### Requirement: Specs Sync Skill
|
|
9
|
+
The system SHALL provide an `/opsx:sync` skill that syncs delta specs from a change to the main specs.
|
|
10
|
+
|
|
11
|
+
#### Scenario: Sync delta specs to main specs
|
|
12
|
+
- **WHEN** agent executes `/opsx:sync` with a change name
|
|
13
|
+
- **THEN** the agent reads delta specs from `openspec/changes/<name>/specs/`
|
|
14
|
+
- **AND** reads corresponding main specs from `openspec/specs/`
|
|
15
|
+
- **AND** reconciles main specs to match what the deltas describe
|
|
16
|
+
|
|
17
|
+
#### Scenario: Idempotent operation
|
|
18
|
+
- **WHEN** agent executes `/opsx:sync` multiple times on the same change
|
|
19
|
+
- **THEN** the result is the same as running it once
|
|
20
|
+
- **AND** no duplicate requirements are created
|
|
21
|
+
|
|
22
|
+
#### Scenario: Change selection prompt
|
|
23
|
+
- **WHEN** agent executes `/opsx:sync` without specifying a change
|
|
24
|
+
- **THEN** the agent prompts user to select from available changes
|
|
25
|
+
- **AND** shows changes that have delta specs
|
|
26
|
+
|
|
27
|
+
### Requirement: Delta Reconciliation Logic
|
|
28
|
+
The agent SHALL reconcile main specs with delta specs using the delta operation headers.
|
|
29
|
+
|
|
30
|
+
#### Scenario: ADDED requirements
|
|
31
|
+
- **WHEN** delta contains `## ADDED Requirements` with a requirement
|
|
32
|
+
- **AND** the requirement does not exist in main spec
|
|
33
|
+
- **THEN** add the requirement to main spec
|
|
34
|
+
|
|
35
|
+
#### Scenario: ADDED requirement already exists
|
|
36
|
+
- **WHEN** delta contains `## ADDED Requirements` with a requirement
|
|
37
|
+
- **AND** a requirement with the same name already exists in main spec
|
|
38
|
+
- **THEN** update the existing requirement to match the delta version
|
|
39
|
+
|
|
40
|
+
#### Scenario: MODIFIED requirements
|
|
41
|
+
- **WHEN** delta contains `## MODIFIED Requirements` with a requirement
|
|
42
|
+
- **AND** the requirement exists in main spec
|
|
43
|
+
- **THEN** replace the requirement in main spec with the delta version
|
|
44
|
+
|
|
45
|
+
#### Scenario: REMOVED requirements
|
|
46
|
+
- **WHEN** delta contains `## REMOVED Requirements` with a requirement name
|
|
47
|
+
- **AND** the requirement exists in main spec
|
|
48
|
+
- **THEN** remove the requirement from main spec
|
|
49
|
+
|
|
50
|
+
#### Scenario: RENAMED requirements
|
|
51
|
+
- **WHEN** delta contains `## RENAMED Requirements` with FROM:/TO: format
|
|
52
|
+
- **AND** the FROM requirement exists in main spec
|
|
53
|
+
- **THEN** rename the requirement to the TO name
|
|
54
|
+
|
|
55
|
+
#### Scenario: New capability spec
|
|
56
|
+
- **WHEN** delta spec exists for a capability not in main specs
|
|
57
|
+
- **THEN** create new main spec file at `openspec/specs/<capability>/spec.md`
|
|
58
|
+
|
|
59
|
+
### Requirement: Skill Output
|
|
60
|
+
The skill SHALL provide clear feedback on what was applied.
|
|
61
|
+
|
|
62
|
+
#### Scenario: Show applied changes
|
|
63
|
+
- **WHEN** reconciliation completes successfully
|
|
64
|
+
- **THEN** display summary of changes per capability:
|
|
65
|
+
- Number of requirements added
|
|
66
|
+
- Number of requirements modified
|
|
67
|
+
- Number of requirements removed
|
|
68
|
+
- Number of requirements renamed
|
|
69
|
+
|
|
70
|
+
#### Scenario: No changes needed
|
|
71
|
+
- **WHEN** main specs already match delta specs
|
|
72
|
+
- **THEN** display "Specs already in sync - no changes needed"
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# telemetry Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
This spec defines how OpenSpec collects anonymous usage telemetry to help improve the tool. It governs the `src/telemetry/` module, which handles PostHog integration, privacy-preserving event design, user opt-out mechanisms, and first-run notice display. The spec ensures telemetry is minimal, transparent, and respects user privacy.
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
### Requirement: Command execution tracking
|
|
10
|
+
The system SHALL send a `command_executed` event to PostHog when any CLI command executes, including only the command name and OpenSpec version as properties.
|
|
11
|
+
|
|
12
|
+
#### Scenario: Standard command execution
|
|
13
|
+
- **WHEN** a user runs any openspec command
|
|
14
|
+
- **THEN** the system sends a `command_executed` event with `command` and `version` properties
|
|
15
|
+
|
|
16
|
+
#### Scenario: Subcommand execution
|
|
17
|
+
- **WHEN** a user runs a nested command like `openspec change apply`
|
|
18
|
+
- **THEN** the system sends a `command_executed` event with the full command path (e.g., `change:apply`)
|
|
19
|
+
|
|
20
|
+
### Requirement: Privacy-preserving event design
|
|
21
|
+
The system SHALL NOT include command arguments, file paths, project names, spec content, error messages, or IP addresses in telemetry events.
|
|
22
|
+
|
|
23
|
+
#### Scenario: Command with arguments
|
|
24
|
+
- **WHEN** a user runs `openspec init my-project --force`
|
|
25
|
+
- **THEN** the telemetry event contains only `command: "init"` and `version: "<version>"` without arguments
|
|
26
|
+
|
|
27
|
+
#### Scenario: IP address exclusion
|
|
28
|
+
- **WHEN** the system sends a telemetry event
|
|
29
|
+
- **THEN** the event explicitly sets `$ip: null` to prevent IP tracking
|
|
30
|
+
|
|
31
|
+
### Requirement: Environment variable opt-out
|
|
32
|
+
The system SHALL disable telemetry when `OPENSPEC_TELEMETRY=0` or `DO_NOT_TRACK=1` environment variables are set.
|
|
33
|
+
|
|
34
|
+
#### Scenario: OPENSPEC_TELEMETRY opt-out
|
|
35
|
+
- **WHEN** `OPENSPEC_TELEMETRY=0` is set in the environment
|
|
36
|
+
- **THEN** the system sends no telemetry events
|
|
37
|
+
|
|
38
|
+
#### Scenario: DO_NOT_TRACK opt-out
|
|
39
|
+
- **WHEN** `DO_NOT_TRACK=1` is set in the environment
|
|
40
|
+
- **THEN** the system sends no telemetry events
|
|
41
|
+
|
|
42
|
+
#### Scenario: Environment variable takes precedence
|
|
43
|
+
- **WHEN** the user has previously used the CLI (config exists)
|
|
44
|
+
- **AND** the user sets `OPENSPEC_TELEMETRY=0`
|
|
45
|
+
- **THEN** telemetry is disabled regardless of config state
|
|
46
|
+
|
|
47
|
+
### Requirement: CI environment auto-disable
|
|
48
|
+
The system SHALL automatically disable telemetry when `CI=true` environment variable is detected.
|
|
49
|
+
|
|
50
|
+
#### Scenario: CI environment detection
|
|
51
|
+
- **WHEN** `CI=true` is set in the environment
|
|
52
|
+
- **THEN** the system sends no telemetry events
|
|
53
|
+
|
|
54
|
+
#### Scenario: CI with explicit enable
|
|
55
|
+
- **WHEN** `CI=true` is set
|
|
56
|
+
- **AND** `OPENSPEC_TELEMETRY=1` is explicitly set
|
|
57
|
+
- **THEN** telemetry remains disabled (CI takes precedence for privacy)
|
|
58
|
+
|
|
59
|
+
### Requirement: First-run telemetry notice
|
|
60
|
+
The system SHALL display a one-line telemetry disclosure notice on the first command execution, before any telemetry is sent.
|
|
61
|
+
|
|
62
|
+
#### Scenario: First command execution
|
|
63
|
+
- **WHEN** a user runs their first openspec command
|
|
64
|
+
- **AND** telemetry is enabled
|
|
65
|
+
- **THEN** the system displays: "Note: OpenSpec collects anonymous usage stats. Opt out: OPENSPEC_TELEMETRY=0"
|
|
66
|
+
|
|
67
|
+
#### Scenario: Subsequent command execution
|
|
68
|
+
- **WHEN** a user has already seen the notice (noticeSeen: true in config)
|
|
69
|
+
- **THEN** the system does not display the notice
|
|
70
|
+
|
|
71
|
+
#### Scenario: Notice before telemetry
|
|
72
|
+
- **WHEN** displaying the first-run notice
|
|
73
|
+
- **THEN** the notice appears before any telemetry event is sent
|
|
74
|
+
|
|
75
|
+
### Requirement: Anonymous user identification
|
|
76
|
+
The system SHALL generate a random UUID as an anonymous identifier on first telemetry send, stored in global config.
|
|
77
|
+
|
|
78
|
+
#### Scenario: First telemetry event
|
|
79
|
+
- **WHEN** the first telemetry event is sent
|
|
80
|
+
- **AND** no anonymousId exists in config
|
|
81
|
+
- **THEN** the system generates a random UUID v4 and stores it in config
|
|
82
|
+
|
|
83
|
+
#### Scenario: Persistent identity
|
|
84
|
+
- **WHEN** a user runs multiple commands across sessions
|
|
85
|
+
- **THEN** the same anonymousId is used for all events
|
|
86
|
+
|
|
87
|
+
#### Scenario: Lazy generation with opt-out
|
|
88
|
+
- **WHEN** a user opts out before running any command
|
|
89
|
+
- **THEN** no anonymousId is ever generated or stored
|
|
90
|
+
|
|
91
|
+
### Requirement: Immediate event sending
|
|
92
|
+
The system SHALL send telemetry events immediately without batching, using `flushAt: 1` and `flushInterval: 0` configuration.
|
|
93
|
+
|
|
94
|
+
#### Scenario: Event transmission timing
|
|
95
|
+
- **WHEN** a command executes
|
|
96
|
+
- **THEN** the telemetry event is sent immediately, not queued for batch transmission
|
|
97
|
+
|
|
98
|
+
### Requirement: Graceful shutdown
|
|
99
|
+
The system SHALL call `posthog.shutdown()` before CLI exit to ensure pending events are flushed.
|
|
100
|
+
|
|
101
|
+
#### Scenario: Normal exit
|
|
102
|
+
- **WHEN** a command completes successfully
|
|
103
|
+
- **THEN** the system awaits `shutdown()` before exiting
|
|
104
|
+
|
|
105
|
+
#### Scenario: Error exit
|
|
106
|
+
- **WHEN** a command fails with an error
|
|
107
|
+
- **THEN** the system still awaits `shutdown()` before exiting
|
|
108
|
+
|
|
109
|
+
### Requirement: Silent failure handling
|
|
110
|
+
The system SHALL silently ignore telemetry failures without affecting CLI functionality.
|
|
111
|
+
|
|
112
|
+
#### Scenario: Network failure
|
|
113
|
+
- **WHEN** the telemetry request fails due to network error
|
|
114
|
+
- **THEN** the CLI command completes normally without error message
|
|
115
|
+
|
|
116
|
+
#### Scenario: PostHog outage
|
|
117
|
+
- **WHEN** PostHog service is unavailable
|
|
118
|
+
- **THEN** the CLI command completes normally without error message
|
|
119
|
+
|
|
120
|
+
#### Scenario: Shutdown failure
|
|
121
|
+
- **WHEN** `shutdown()` fails or times out
|
|
122
|
+
- **THEN** the CLI exits normally without error message
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# workspace-change-planning Specification
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Define how OpenSpec creates, tracks, and guides workspace-level changes whose planning artifacts coordinate multiple linked repos or folders before implementation ownership is finalized.
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
### Requirement: Workspace change planning home
|
|
8
|
+
OpenSpec SHALL support workspace-level changes whose shared plan lives in the workspace planning home.
|
|
9
|
+
|
|
10
|
+
#### Scenario: Creating a workspace change
|
|
11
|
+
- **GIVEN** the command runs from an OpenSpec workspace
|
|
12
|
+
- **WHEN** the user creates a change for workspace planning
|
|
13
|
+
- **THEN** OpenSpec SHALL create the change under the workspace planning path
|
|
14
|
+
- **AND** it SHALL treat the workspace as the planning home for that change
|
|
15
|
+
- **AND** it SHALL use the workspace planning schema when no explicit schema is provided
|
|
16
|
+
|
|
17
|
+
#### Scenario: Workspace planning artifact structure
|
|
18
|
+
- **GIVEN** a workspace change uses the workspace planning schema
|
|
19
|
+
- **WHEN** OpenSpec reports or creates planning artifacts for that change
|
|
20
|
+
- **THEN** it SHALL use workspace-level artifacts for proposal, specs, cross-area design, and coordination tasks
|
|
21
|
+
- **AND** those artifacts SHALL live under the workspace change root
|
|
22
|
+
- **AND** it SHALL not require an additional area manifest outside those normal planning artifacts
|
|
23
|
+
|
|
24
|
+
#### Scenario: Capturing the shared goal once
|
|
25
|
+
- **WHEN** a workspace change is proposed
|
|
26
|
+
- **THEN** OpenSpec SHALL capture the product goal at the workspace change level
|
|
27
|
+
- **AND** it SHALL avoid requiring separate repo-local proposals before the affected areas are understood
|
|
28
|
+
|
|
29
|
+
#### Scenario: Preserving linked repos during change creation
|
|
30
|
+
- **WHEN** OpenSpec creates a workspace-level change
|
|
31
|
+
- **THEN** it SHALL not create repo-local OpenSpec change directories inside linked repos or folders
|
|
32
|
+
- **AND** it SHALL not edit implementation files in linked repos or folders
|
|
33
|
+
|
|
34
|
+
### Requirement: Workspace affected areas
|
|
35
|
+
OpenSpec SHALL represent ownership or implementation boundaries in a workspace change as affected areas.
|
|
36
|
+
|
|
37
|
+
#### Scenario: Using registered workspace links as areas
|
|
38
|
+
- **GIVEN** a workspace has linked repos or folders
|
|
39
|
+
- **WHEN** a workspace change identifies affected areas by registered link name
|
|
40
|
+
- **THEN** OpenSpec SHALL validate those area names against the workspace links
|
|
41
|
+
- **AND** it SHALL report invalid area names clearly
|
|
42
|
+
|
|
43
|
+
#### Scenario: Planning before all areas are known
|
|
44
|
+
- **WHEN** a user is still exploring a workspace change
|
|
45
|
+
- **THEN** OpenSpec SHALL allow the shared plan to exist before all affected areas are finalized
|
|
46
|
+
- **AND** it SHALL keep unresolved affected area questions visible in the normal planning artifacts and status output
|
|
47
|
+
|
|
48
|
+
#### Scenario: Organizing requirements by area
|
|
49
|
+
- **GIVEN** a workspace change has requirements owned by one or more affected areas
|
|
50
|
+
- **WHEN** OpenSpec reports or creates workspace-scoped specs
|
|
51
|
+
- **THEN** it SHALL allow area-specific requirements to be organized under `specs/<area-or-repo>/<capability>/spec.md`
|
|
52
|
+
- **AND** it SHALL not require separate area folders outside the normal `specs/` artifact tree
|
|
53
|
+
- **AND** it SHALL preserve the area-or-repo path segment as workspace planning context rather than flattening it into a repo-local capability name
|
|
54
|
+
|
|
55
|
+
#### Scenario: Separating areas from delivery slices
|
|
56
|
+
- **WHEN** a workspace change reports affected areas
|
|
57
|
+
- **THEN** OpenSpec SHALL distinguish affected areas from delivery slices or phases
|
|
58
|
+
- **AND** it SHALL not require users to define delivery slices for a small cross-area change
|
|
59
|
+
|
|
60
|
+
### Requirement: Workspace planning source of truth
|
|
61
|
+
OpenSpec SHALL keep the workspace change plan as the source of truth until implementation begins for a selected affected area.
|
|
62
|
+
|
|
63
|
+
#### Scenario: Exploring before implementation
|
|
64
|
+
- **WHEN** an agent explores a workspace change
|
|
65
|
+
- **THEN** it SHALL use workspace-level planning artifacts as the shared planning source
|
|
66
|
+
- **AND** it SHALL treat linked repos and folders as available context rather than committed implementation targets
|
|
67
|
+
|
|
68
|
+
#### Scenario: Deferring repo-local implementation
|
|
69
|
+
- **WHEN** repo-local implementation work is needed for a workspace change
|
|
70
|
+
- **THEN** OpenSpec SHALL require an explicit implementation workflow with a selected affected area
|
|
71
|
+
- **AND** it SHALL expose the allowed edit root for that selected area before implementation edits begin
|