@codewalla_india/openspec 1.3.1 → 1.3.3
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/LICENSE +22 -22
- package/README.md +214 -133
- package/bin/openspec.js +5 -5
- package/dist/cli/index.js +99 -62
- package/dist/commands/change.d.ts +0 -2
- package/dist/commands/change.js +107 -86
- package/dist/commands/config.js +14 -16
- package/dist/commands/doctor.js +9 -4
- package/dist/commands/feedback.js +79 -30
- package/dist/commands/modify.d.ts +26 -0
- package/dist/commands/modify.js +147 -0
- package/dist/commands/schema.js +170 -91
- package/dist/commands/show.js +5 -2
- package/dist/commands/spec.js +49 -29
- package/dist/commands/store.js +15 -21
- package/dist/commands/validate.d.ts +8 -0
- package/dist/commands/validate.js +43 -20
- package/dist/commands/workflow/index.d.ts +2 -2
- package/dist/commands/workflow/index.js +1 -1
- package/dist/commands/workflow/instructions.d.ts +6 -26
- package/dist/commands/workflow/instructions.js +183 -376
- package/dist/commands/workflow/new-change.d.ts +0 -4
- package/dist/commands/workflow/new-change.js +10 -28
- package/dist/commands/workflow/shared.d.ts +34 -19
- package/dist/commands/workflow/shared.js +34 -4
- package/dist/commands/workflow/status.js +10 -32
- package/dist/commands/workflow/templates.js +15 -5
- package/dist/commands/workset.d.ts +2 -2
- package/dist/commands/workset.js +19 -22
- package/dist/comprehension-quiz/fingerprint.d.ts +39 -0
- package/dist/comprehension-quiz/fingerprint.js +84 -0
- package/dist/comprehension-quiz/index.d.ts +42 -0
- package/dist/comprehension-quiz/index.js +47 -0
- package/dist/comprehension-quiz/pass-record.d.ts +44 -0
- package/dist/comprehension-quiz/pass-record.js +98 -0
- package/dist/comprehension-quiz/providers/anthropic.d.ts +35 -0
- package/dist/comprehension-quiz/providers/anthropic.js +69 -0
- package/dist/comprehension-quiz/providers/factory.d.ts +44 -0
- package/dist/comprehension-quiz/providers/factory.js +174 -0
- package/dist/comprehension-quiz/providers/interface.d.ts +98 -0
- package/dist/comprehension-quiz/providers/interface.js +150 -0
- package/dist/comprehension-quiz/providers/local.d.ts +35 -0
- package/dist/comprehension-quiz/providers/local.js +69 -0
- package/dist/comprehension-quiz/providers/ollama.d.ts +35 -0
- package/dist/comprehension-quiz/providers/ollama.js +69 -0
- package/dist/comprehension-quiz/providers/openai.d.ts +35 -0
- package/dist/comprehension-quiz/providers/openai.js +72 -0
- package/dist/comprehension-quiz/question-generator.d.ts +117 -0
- package/dist/comprehension-quiz/question-generator.js +203 -0
- package/dist/comprehension-quiz/quiz-executor.d.ts +75 -0
- package/dist/comprehension-quiz/quiz-executor.js +181 -0
- package/dist/comprehension-quiz/types.d.ts +137 -0
- package/dist/comprehension-quiz/types.js +11 -0
- package/dist/core/archive.d.ts +14 -1
- package/dist/core/archive.js +1350 -190
- package/dist/core/artifact-graph/graph.d.ts +28 -9
- package/dist/core/artifact-graph/graph.js +94 -43
- package/dist/core/artifact-graph/index.d.ts +1 -1
- package/dist/core/artifact-graph/index.js +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts +30 -3
- package/dist/core/artifact-graph/instruction-loader.js +70 -12
- package/dist/core/artifact-graph/outputs.d.ts +1 -0
- package/dist/core/artifact-graph/outputs.js +67 -5
- package/dist/core/artifact-graph/resolver.d.ts +14 -0
- package/dist/core/artifact-graph/resolver.js +69 -15
- package/dist/core/artifact-graph/types.js +21 -3
- package/dist/core/available-tools.d.ts +2 -2
- package/dist/core/available-tools.js +14 -3
- package/dist/core/change-metadata/schema.d.ts +2 -0
- package/dist/core/change-metadata/schema.js +13 -0
- package/dist/core/change-status-policy.d.ts +10 -1
- package/dist/core/change-status-policy.js +30 -2
- package/dist/core/command-generation/adapters/amazon-q.d.ts +4 -0
- package/dist/core/command-generation/adapters/amazon-q.js +11 -5
- package/dist/core/command-generation/adapters/antigravity.js +6 -5
- package/dist/core/command-generation/adapters/auggie.js +7 -6
- package/dist/core/command-generation/adapters/bob.d.ts +5 -1
- package/dist/core/command-generation/adapters/bob.js +11 -10
- package/dist/core/command-generation/adapters/claude.d.ts +1 -1
- package/dist/core/command-generation/adapters/claude.js +12 -17
- package/dist/core/command-generation/adapters/cline.js +5 -5
- package/dist/core/command-generation/adapters/codebuddy.js +8 -7
- package/dist/core/command-generation/adapters/continue.js +8 -7
- package/dist/core/command-generation/adapters/costrict.js +7 -6
- package/dist/core/command-generation/adapters/crush.js +9 -9
- package/dist/core/command-generation/adapters/cursor.js +8 -8
- package/dist/core/command-generation/adapters/devin.d.ts +19 -0
- package/dist/core/command-generation/adapters/devin.js +36 -0
- package/dist/core/command-generation/adapters/factory.js +7 -6
- package/dist/core/command-generation/adapters/gemini.js +40 -5
- package/dist/core/command-generation/adapters/github-copilot.js +6 -5
- package/dist/core/command-generation/adapters/iflow.js +9 -8
- package/dist/core/command-generation/adapters/index.d.ts +4 -2
- package/dist/core/command-generation/adapters/index.js +4 -2
- package/dist/core/command-generation/adapters/junie.js +6 -5
- package/dist/core/command-generation/adapters/kilocode.js +1 -1
- package/dist/core/command-generation/adapters/kiro.js +6 -5
- package/dist/core/command-generation/adapters/lingma.js +9 -9
- package/dist/core/command-generation/adapters/oh-my-pi.d.ts +21 -0
- package/dist/core/command-generation/adapters/oh-my-pi.js +42 -0
- package/dist/core/command-generation/adapters/opencode.js +6 -8
- package/dist/core/command-generation/adapters/pi.d.ts +2 -2
- package/dist/core/command-generation/adapters/pi.js +7 -10
- package/dist/core/command-generation/adapters/qoder.js +9 -9
- package/dist/core/command-generation/adapters/qwen.d.ts +7 -3
- package/dist/core/command-generation/adapters/qwen.js +14 -9
- package/dist/core/command-generation/adapters/roocode.d.ts +4 -4
- package/dist/core/command-generation/adapters/roocode.js +9 -9
- package/dist/core/command-generation/adapters/trae.d.ts +13 -0
- package/dist/core/command-generation/adapters/trae.js +28 -0
- package/dist/core/command-generation/adapters/zcode.d.ts +16 -0
- package/dist/core/command-generation/adapters/zcode.js +33 -0
- package/dist/core/command-generation/generator.d.ts +8 -0
- package/dist/core/command-generation/generator.js +15 -1
- package/dist/core/command-generation/index.d.ts +1 -1
- package/dist/core/command-generation/index.js +1 -1
- package/dist/core/command-generation/invocation.d.ts +73 -0
- package/dist/core/command-generation/invocation.js +77 -0
- package/dist/core/command-generation/registry.js +8 -4
- package/dist/core/command-generation/types.d.ts +9 -2
- package/dist/core/command-generation/yaml.d.ts +20 -6
- package/dist/core/command-generation/yaml.js +31 -21
- package/dist/core/command-surface.d.ts +15 -0
- package/dist/core/command-surface.js +33 -0
- package/dist/core/completions/command-registry.js +16 -61
- package/dist/core/completions/generators/bash-generator.js +41 -41
- package/dist/core/completions/generators/fish-generator.js +7 -7
- package/dist/core/completions/generators/powershell-generator.js +44 -37
- package/dist/core/completions/generators/zsh-generator.js +33 -33
- package/dist/core/completions/installers/zsh-installer.d.ts +9 -0
- package/dist/core/completions/installers/zsh-installer.js +20 -4
- package/dist/core/completions/templates/bash-templates.js +24 -24
- package/dist/core/completions/templates/fish-templates.js +38 -38
- package/dist/core/completions/templates/powershell-templates.js +28 -28
- package/dist/core/completions/templates/zsh-templates.js +39 -39
- package/dist/core/config-prompts.d.ts +1 -1
- package/dist/core/config-prompts.js +14 -1
- package/dist/core/config-schema.d.ts +10 -1
- package/dist/core/config-schema.js +67 -1
- package/dist/core/config.d.ts +15 -0
- package/dist/core/config.js +46 -5
- package/dist/core/file-state.js +56 -24
- package/dist/core/github-copilot/cloud-agent.d.ts +95 -0
- package/dist/core/github-copilot/cloud-agent.js +497 -0
- package/dist/core/global-config.d.ts +16 -0
- package/dist/core/init.d.ts +58 -0
- package/dist/core/init.js +474 -73
- package/dist/core/legacy-cleanup.d.ts +59 -0
- package/dist/core/legacy-cleanup.js +253 -24
- package/dist/core/list.js +23 -16
- package/dist/core/migration.d.ts +73 -1
- package/dist/core/migration.js +360 -11
- package/dist/core/modify/conflict-detector.d.ts +26 -0
- package/dist/core/modify/conflict-detector.js +62 -0
- package/dist/core/modify/dependency-propagator.d.ts +38 -0
- package/dist/core/modify/dependency-propagator.js +103 -0
- package/dist/core/modify/history-tracker.d.ts +34 -0
- package/dist/core/modify/history-tracker.js +114 -0
- package/dist/core/modify/index.d.ts +7 -0
- package/dist/core/modify/index.js +7 -0
- package/dist/core/onboarding-commands.d.ts +30 -0
- package/dist/core/onboarding-commands.js +38 -0
- package/dist/core/openspec-root.js +18 -15
- package/dist/core/parsers/change-parser.d.ts +17 -2
- package/dist/core/parsers/change-parser.js +35 -21
- package/dist/core/parsers/code-fence.d.ts +15 -0
- package/dist/core/parsers/code-fence.js +49 -0
- package/dist/core/parsers/markdown-parser.d.ts +0 -3
- package/dist/core/parsers/markdown-parser.js +7 -60
- package/dist/core/parsers/requirement-blocks.d.ts +29 -0
- package/dist/core/parsers/requirement-blocks.js +150 -31
- package/dist/core/parsers/requirement-text.d.ts +48 -0
- package/dist/core/parsers/requirement-text.js +98 -0
- package/dist/core/parsers/spec-structure.d.ts +1 -1
- package/dist/core/parsers/spec-structure.js +20 -30
- package/dist/core/profile-sync-drift.d.ts +0 -8
- package/dist/core/profile-sync-drift.js +49 -50
- package/dist/core/profiles.d.ts +2 -2
- package/dist/core/profiles.js +2 -2
- package/dist/core/project-config.d.ts +27 -18
- package/dist/core/project-config.js +101 -34
- package/dist/core/references.js +42 -4
- package/dist/core/relationship-health.d.ts +8 -0
- package/dist/core/relationship-health.js +13 -0
- package/dist/core/root-selection.d.ts +9 -6
- package/dist/core/root-selection.js +42 -5
- package/dist/core/schemas/base.schema.js +7 -2
- package/dist/core/shared/allowed-tools.d.ts +12 -0
- package/dist/core/shared/allowed-tools.js +12 -0
- package/dist/core/shared/index.d.ts +1 -0
- package/dist/core/shared/index.js +1 -0
- package/dist/core/shared/skill-content-equivalence.d.ts +7 -0
- package/dist/core/shared/skill-content-equivalence.js +41 -0
- package/dist/core/shared/skill-generation.js +17 -13
- package/dist/core/shared/skill-paths.d.ts +13 -0
- package/dist/core/shared/skill-paths.js +23 -0
- package/dist/core/shared/tool-detection.d.ts +27 -7
- package/dist/core/shared/tool-detection.js +167 -37
- package/dist/core/shared-skill-target.d.ts +16 -0
- package/dist/core/shared-skill-target.js +156 -0
- package/dist/core/specs-apply.d.ts +80 -33
- package/dist/core/specs-apply.js +667 -145
- package/dist/core/store/git.d.ts +13 -0
- package/dist/core/store/git.js +24 -0
- package/dist/core/store/operations.js +20 -0
- package/dist/core/templates/skill-templates.d.ts +3 -2
- package/dist/core/templates/skill-templates.js +3 -2
- package/dist/core/templates/workflows/apply-change.d.ts +10 -0
- package/dist/core/templates/workflows/apply-change.js +186 -224
- package/dist/core/templates/workflows/archive-change.js +387 -260
- package/dist/core/templates/workflows/bulk-archive-change.js +655 -475
- package/dist/core/templates/workflows/continue-change.js +210 -219
- package/dist/core/templates/workflows/explore.js +479 -443
- package/dist/core/templates/workflows/feedback.js +97 -97
- package/dist/core/templates/workflows/ff-change.js +200 -191
- package/dist/core/templates/workflows/modify-change.d.ts +4 -1
- package/dist/core/templates/workflows/modify-change.js +193 -71
- package/dist/core/templates/workflows/new-change.js +127 -134
- package/dist/core/templates/workflows/onboard.js +548 -542
- package/dist/core/templates/workflows/propose.js +273 -217
- package/dist/core/templates/workflows/store-selection.d.ts +1 -1
- package/dist/core/templates/workflows/store-selection.js +1 -1
- package/dist/core/templates/workflows/sync-specs.js +500 -273
- package/dist/core/templates/workflows/update-change.d.ts +10 -0
- package/dist/core/templates/workflows/update-change.js +177 -0
- package/dist/core/templates/workflows/verify-change.js +324 -326
- package/dist/core/update.d.ts +40 -5
- package/dist/core/update.js +411 -96
- package/dist/core/validation/constants.d.ts +4 -1
- package/dist/core/validation/constants.js +4 -1
- package/dist/core/validation/plan-validator.d.ts +8 -0
- package/dist/core/validation/plan-validator.js +45 -0
- package/dist/core/validation/task-numbering.d.ts +16 -0
- package/dist/core/validation/task-numbering.js +57 -0
- package/dist/core/validation/validator.d.ts +27 -3
- package/dist/core/validation/validator.js +337 -48
- package/dist/core/version-check.d.ts +152 -0
- package/dist/core/version-check.js +731 -0
- package/dist/core/view.js +13 -18
- package/dist/prompts/searchable-multi-select.js +1 -1
- package/dist/telemetry/caller-detection.d.ts +27 -0
- package/dist/telemetry/caller-detection.js +85 -0
- package/dist/telemetry/caller-detection.test.d.ts +5 -0
- package/dist/telemetry/config.d.ts +48 -2
- package/dist/telemetry/config.js +113 -11
- package/dist/telemetry/config.test.d.ts +5 -0
- package/dist/telemetry/deduplication.d.ts +35 -0
- package/dist/telemetry/deduplication.js +82 -0
- package/dist/telemetry/deduplication.test.d.ts +5 -0
- package/dist/telemetry/identity.d.ts +62 -22
- package/dist/telemetry/identity.js +147 -102
- package/dist/telemetry/index.d.ts +126 -15
- package/dist/telemetry/index.js +569 -37
- package/dist/telemetry/sanitization.d.ts +40 -0
- package/dist/telemetry/sanitization.js +114 -0
- package/dist/telemetry/sanitization.test.d.ts +5 -0
- package/dist/telemetry/throttling.d.ts +20 -0
- package/dist/telemetry/throttling.js +70 -0
- package/dist/ui/welcome-screen.d.ts +9 -1
- package/dist/ui/welcome-screen.js +91 -38
- package/dist/utils/change-metadata.d.ts +43 -0
- package/dist/utils/change-metadata.js +123 -7
- package/dist/utils/change-utils.d.ts +10 -4
- package/dist/utils/change-utils.js +20 -13
- package/dist/utils/ci.d.ts +12 -0
- package/dist/utils/ci.js +16 -0
- package/dist/utils/command-references.d.ts +92 -6
- package/dist/utils/command-references.js +180 -7
- package/dist/utils/date.d.ts +8 -0
- package/dist/utils/date.js +13 -0
- package/dist/utils/file-system.d.ts +10 -0
- package/dist/utils/file-system.js +70 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/interactive.d.ts +23 -0
- package/dist/utils/interactive.js +32 -0
- package/dist/utils/item-discovery.d.ts +19 -0
- package/dist/utils/item-discovery.js +30 -48
- package/dist/utils/shell-detection.d.ts +1 -1
- package/dist/utils/shell-detection.js +64 -11
- package/dist/utils/spec-discovery.d.ts +40 -0
- package/dist/utils/spec-discovery.js +115 -0
- package/dist/utils/task-progress.d.ts +29 -1
- package/dist/utils/task-progress.js +109 -15
- package/package.json +96 -84
- package/schemas/spec-driven/schema.yaml +252 -184
- package/schemas/spec-driven/templates/design.md +19 -19
- package/schemas/spec-driven/templates/plan-template.md +91 -0
- package/schemas/spec-driven/templates/proposal.md +29 -24
- package/schemas/spec-driven/templates/spec.md +11 -8
- package/schemas/spec-driven/templates/tasks.md +9 -9
- package/scripts/postinstall.js +83 -83
- package/dist/core/command-generation/adapters/codex.d.ts +0 -16
- package/dist/core/command-generation/adapters/codex.js +0 -39
- package/dist/core/command-generation/adapters/windsurf.d.ts +0 -14
- package/dist/core/command-generation/adapters/windsurf.js +0 -38
- package/dist/core/comprehension/config.d.ts +0 -20
- package/dist/core/comprehension/config.js +0 -23
- package/dist/core/comprehension/fingerprint.d.ts +0 -14
- package/dist/core/comprehension/fingerprint.js +0 -33
- package/dist/core/comprehension/index.d.ts +0 -57
- package/dist/core/comprehension/index.js +0 -87
- package/dist/core/comprehension/pass-record.d.ts +0 -29
- package/dist/core/comprehension/pass-record.js +0 -64
- package/dist/core/comprehension/stats.d.ts +0 -35
- package/dist/core/comprehension/stats.js +0 -133
- package/dist/core/templates/workflows/comprehension-guidance.d.ts +0 -9
- package/dist/core/templates/workflows/comprehension-guidance.js +0 -73
- package/dist/core/templates/workflows/mcp-guidance.d.ts +0 -13
- package/dist/core/templates/workflows/mcp-guidance.js +0 -131
- package/dist/core/templates/workflows/user-prompt-guidance.d.ts +0 -16
- package/dist/core/templates/workflows/user-prompt-guidance.js +0 -48
- package/dist/telemetry/caller.d.ts +0 -5
- package/dist/telemetry/caller.js +0 -29
- package/dist/telemetry/client.d.ts +0 -27
- package/dist/telemetry/client.js +0 -127
- package/dist/telemetry/command-context.d.ts +0 -13
- package/dist/telemetry/command-context.js +0 -59
- package/dist/telemetry/comprehension.d.ts +0 -44
- package/dist/telemetry/comprehension.js +0 -105
- package/dist/telemetry/content.d.ts +0 -10
- package/dist/telemetry/content.js +0 -56
- package/dist/telemetry/git-stats.d.ts +0 -12
- package/dist/telemetry/git-stats.js +0 -69
- package/dist/telemetry/identify-cache.d.ts +0 -7
- package/dist/telemetry/identify-cache.js +0 -47
- package/dist/telemetry/input.d.ts +0 -17
- package/dist/telemetry/input.js +0 -68
- package/dist/telemetry/marker.d.ts +0 -37
- package/dist/telemetry/marker.js +0 -67
- package/dist/telemetry/workflow.d.ts +0 -85
- package/dist/telemetry/workflow.js +0 -318
- package/schemas/spec-driven/templates/plan.md +0 -19
package/LICENSE
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 OpenSpec Contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
22
|
-
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 OpenSpec Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
package/README.md
CHANGED
|
@@ -1,191 +1,272 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://github.com/codewalla-engineering/
|
|
2
|
+
<a href="https://github.com/codewalla-engineering/openspec-upstream-sync">
|
|
3
3
|
<picture>
|
|
4
|
-
<source srcset="assets/
|
|
5
|
-
<
|
|
4
|
+
<source srcset="assets/openspec_pixel_dark.svg" media="(prefers-color-scheme: dark)">
|
|
5
|
+
<source srcset="assets/openspec_pixel_light.svg" media="(prefers-color-scheme: light)">
|
|
6
|
+
<img src="assets/openspec_pixel_light.svg" alt="OpenSpec logo" height="64">
|
|
6
7
|
</picture>
|
|
7
8
|
</a>
|
|
8
|
-
</p>
|
|
9
|
-
|
|
10
|
-
<p align="center"><strong>Codewalla OpenSpec — spec-driven development for AI coding assistants</strong></p>
|
|
11
9
|
|
|
10
|
+
</p>
|
|
11
|
+
<p align="center">Spec-driven development for AI coding assistants.</p>
|
|
12
12
|
<p align="center">
|
|
13
|
-
<a href="https://github.com/codewalla-engineering/
|
|
13
|
+
<a href="https://github.com/codewalla-engineering/openspec-upstream-sync/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/codewalla-engineering/openspec-upstream-sync/actions/workflows/ci.yml/badge.svg" /></a>
|
|
14
14
|
<a href="https://www.npmjs.com/package/@codewalla_india/openspec"><img alt="npm version" src="https://img.shields.io/npm/v/@codewalla_india/openspec?style=flat-square" /></a>
|
|
15
|
+
<a href="https://nodejs.org/"><img alt="node version" src="https://img.shields.io/node/v/@codewalla_india/openspec?style=flat-square" /></a>
|
|
15
16
|
<a href="./LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square" /></a>
|
|
17
|
+
<a href="https://conventionalcommits.org"><img alt="Conventional Commits" src="https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=flat-square" /></a>
|
|
18
|
+
<a href="https://discord.gg/YctCnvvshC"><img alt="Discord" src="https://img.shields.io/badge/Discord-Join%20the%20community-5865F2?logo=discord&logoColor=white&style=flat-square" /></a>
|
|
16
19
|
</p>
|
|
17
20
|
|
|
18
|
-
>
|
|
19
|
-
|
|
20
|
-
>
|
|
21
|
-
|
|
22
|
-
>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
## See it in action
|
|
27
|
-
|
|
28
|
-
```text
|
|
29
|
-
You: /opsx:explore
|
|
30
|
-
AI: What would you like to explore?
|
|
31
|
-
You: I want dark mode but I'm not sure how to do it cleanly.
|
|
32
|
-
AI: Let me look at your styling setup...
|
|
33
|
-
Cleanest path here: CSS variables + a small theme context,
|
|
34
|
-
with system-preference detection. No new dependencies. Scope it?
|
|
35
|
-
You: Yes, let's do it.
|
|
36
|
-
|
|
37
|
-
You: /opsx:propose CW-1234 add-dark-mode
|
|
38
|
-
AI: Found CW-1234: 'Add dark mode'. Creating change from Jira ticket...
|
|
39
|
-
✓ proposal.md (Impact: Jira: CW-1234)
|
|
40
|
-
✓ specs/ui/ (requirements from Jira ACs)
|
|
41
|
-
✓ design.md — technical approach
|
|
42
|
-
✓ plan.md — file-level code map
|
|
43
|
-
✓ tasks.md — implementation checklist
|
|
44
|
-
Ready for implementation!
|
|
45
|
-
|
|
46
|
-
You: /opsx:modify add-dark-mode design use CSS variables instead of hardcoded colors
|
|
47
|
-
AI: Updated design.md → propagated to plan.md and tasks.md
|
|
48
|
-
Run /opsx:apply when ready.
|
|
49
|
-
|
|
50
|
-
You: /opsx:apply
|
|
51
|
-
AI: Jira context: CW-1234 — all ACs covered ✓
|
|
52
|
-
Comprehension check — 7 questions on proposal, design, specs, plan, and tasks...
|
|
53
|
-
✓ 86% — ready to implement.
|
|
54
|
-
Implementing tasks...
|
|
55
|
-
✓ 1.1 Add theme context provider
|
|
56
|
-
✓ 1.2 Create toggle component
|
|
57
|
-
✓ 2.1 Add CSS variables
|
|
58
|
-
✓ 2.2 Wire up localStorage
|
|
59
|
-
All tasks complete!
|
|
60
|
-
|
|
61
|
-
You: /opsx:archive
|
|
62
|
-
AI: Archived to openspec/changes/archive/2025-01-23-add-dark-mode/
|
|
63
|
-
Specs updated. Ready for the next feature.
|
|
64
|
-
```
|
|
21
|
+
<p align="center">
|
|
22
|
+
<img src="assets/codewalla_bg.png" alt="OpenSpec dashboard preview" width="90%">
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
<p align="center">
|
|
26
|
+
Follow <a href="https://x.com/0xTab">@0xTab on X</a> for updates · Join the <a href="https://discord.gg/YctCnvvshC">OpenSpec Discord</a> for help and questions.
|
|
27
|
+
</p>
|
|
65
28
|
|
|
66
|
-
|
|
29
|
+
<p align="center">
|
|
30
|
+
<sub>🚀 <strong>New:</strong> <a href="docs/opsx.md">OPSX Workflow</a> — schema-driven, hackable, fluid. Iterate on workflows without code changes.</sub>
|
|
31
|
+
</p>
|
|
67
32
|
|
|
68
|
-
|
|
33
|
+
# OpenSpec
|
|
69
34
|
|
|
70
|
-
|
|
35
|
+
OpenSpec aligns humans and AI coding assistants with spec-driven development so you agree on what to build before any code is written. **No API keys required.**
|
|
71
36
|
|
|
72
|
-
|
|
73
|
-
npm install -g @codewalla_india/openspec@latest
|
|
74
|
-
```
|
|
37
|
+
## 🎯 Why OpenSpec?
|
|
75
38
|
|
|
76
|
-
|
|
39
|
+
AI coding assistants are powerful but unpredictable when requirements live in chat history. OpenSpec adds a lightweight specification workflow that locks intent before implementation, giving you deterministic, reviewable outputs.
|
|
40
|
+
|
|
41
|
+
Key outcomes:
|
|
42
|
+
- Human and AI stakeholders agree on specs before work begins
|
|
43
|
+
- Structured change folders (proposals, tasks, and spec updates) keep scope explicit and auditable
|
|
44
|
+
- Shared visibility into what's proposed, active, or archived
|
|
45
|
+
- Works with the AI tools you already use: custom slash commands where supported, context rules everywhere else
|
|
46
|
+
|
|
47
|
+
## 🌟 What's New in v1.8.0
|
|
48
|
+
|
|
49
|
+
### 🚀 OPSX Workflow - The New Standard
|
|
50
|
+
|
|
51
|
+
**OPSX is now the default workflow for OpenSpec.** It's a fluid, iterative approach that replaces rigid phases with flexible actions you can take anytime.
|
|
52
|
+
|
|
53
|
+
**Key improvements:**
|
|
54
|
+
- **Schema-driven**: Edit `schema.yaml` and `templates/*.md` to customize workflows without code changes
|
|
55
|
+
- **Fluid actions**: Create, implement, update, archive — do any of them anytime
|
|
56
|
+
- **Hackable**: Experiment with instructions, test granularly, customize workflows
|
|
57
|
+
- **Team-ready**: Create workflows that match how your team actually works
|
|
77
58
|
|
|
78
59
|
```bash
|
|
79
|
-
|
|
60
|
+
# Quick start with OPSX
|
|
80
61
|
openspec init
|
|
62
|
+
# Then in your AI chat:
|
|
63
|
+
/opsx:explore # Think through ideas
|
|
64
|
+
/opsx:propose # Create change with planning artifacts
|
|
65
|
+
/opsx:apply # Implement tasks
|
|
66
|
+
/opsx:archive # Archive when done
|
|
81
67
|
```
|
|
82
68
|
|
|
83
|
-
|
|
84
|
-
> **Codewalla identity:** `openspec init` prompts for your Codewalla email or username. All commands require telemetry identity. CI runners should pre-provision `~/.config/openspec/telemetry-identity.json` or set `OPENSPEC_TELEMETRY_USER`.
|
|
69
|
+
### 🆕 New AI Tool Integrations
|
|
85
70
|
|
|
86
|
-
|
|
71
|
+
- **Atlassian Rovo Dev CLI** support (`--tools rovodev`)
|
|
72
|
+
- **MiniMax Code** as a global skills-only tool target
|
|
73
|
+
- **Enhanced GitHub Copilot** integration with opt-in cloud coding agent files
|
|
74
|
+
- **Improved Codex skills** now use the shared `.agents` directory
|
|
87
75
|
|
|
88
|
-
|
|
89
|
-
- **Already know what you want?** Go straight to `/opsx:propose <what-you-want-to-build>` or `/opsx:propose CW-1234 <summary>` to import from Jira.
|
|
90
|
-
- **Need to revise the plan before coding?** Run `/opsx:modify` — pre-apply only; propagates changes to downstream artifacts. ([Editing a change](docs/editing-changes.md))
|
|
91
|
-
- **Ready to implement?** Run `/opsx:apply` — a short comprehension quiz checks you understand the proposal, design, specs, plan, and tasks before any code is written.
|
|
76
|
+
### � New Plan Artifact
|
|
92
77
|
|
|
93
|
-
|
|
78
|
+
- **Mandatory planning artifact** with implementation guidance
|
|
79
|
+
- **Code maps** showing files to create, modify, and delete
|
|
80
|
+
- **Implementation order** with sequenced steps
|
|
81
|
+
- **Test plans** covering unit, integration, and manual testing
|
|
82
|
+
- **Risk assessment** with mitigation strategies
|
|
83
|
+
- **Dependency chain**: specs → design → plan → tasks
|
|
94
84
|
|
|
95
|
-
|
|
96
|
-
> Not sure if your tool is supported? [View the full list](docs/supported-tools.md) – we support 25+ tools and growing.
|
|
97
|
-
>
|
|
98
|
-
> Also works with pnpm, yarn, bun, and nix. [See installation options](docs/installation.md).
|
|
85
|
+
### 🔧 Enhanced Features
|
|
99
86
|
|
|
100
|
-
|
|
87
|
+
- **OPSX Modify Command** (experimental): `/opsx:modify` for revising planning artifacts before implementation
|
|
88
|
+
- **Dependency propagation**: Automatic updates to dependent artifacts when modifying
|
|
89
|
+
- **Conflict detection**: Identifies conflicts with manual edits before modification
|
|
90
|
+
- **Modification history**: Tracks all artifact changes with timestamps
|
|
101
91
|
|
|
102
|
-
|
|
92
|
+
### �🔧 Enhanced Features
|
|
103
93
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
| **Browser** | `/opsx:verify` (expanded profile) | Screenshots, a11y snapshot, console errors; not run during apply |
|
|
94
|
+
- **Capability retirement**: Automatically retire capabilities when changes remove their last requirements
|
|
95
|
+
- **Multi-language validation**: `openspec validate` now treats English `SHALL`/`MUST` as guidance in normal mode
|
|
96
|
+
- **Better task progress**: Counts indented sub-tasks and provides more accurate progress tracking
|
|
97
|
+
- **Improved archive guidance**: Better error messages and flag suggestions for non-interactive environments
|
|
109
98
|
|
|
110
|
-
|
|
111
|
-
→ **[Jira integration](docs/workflows.md#jira-integration)** — naming conventions and ticket flows
|
|
99
|
+
## 📚 How It Works
|
|
112
100
|
|
|
113
|
-
|
|
101
|
+
```
|
|
102
|
+
┌────────────────────┐
|
|
103
|
+
│ Draft Change │
|
|
104
|
+
│ Proposal │
|
|
105
|
+
└────────┬───────────┘
|
|
106
|
+
│ share intent with your AI
|
|
107
|
+
▼
|
|
108
|
+
┌────────────────────┐
|
|
109
|
+
│ Review & Align │
|
|
110
|
+
│ (edit specs/tasks) │◀──── feedback loop ──────┐
|
|
111
|
+
└────────┬───────────┘ │
|
|
112
|
+
│ approved plan │
|
|
113
|
+
▼ │
|
|
114
|
+
┌────────────────────┐ │
|
|
115
|
+
│ Implement Tasks │──────────────────────────┘
|
|
116
|
+
│ (AI writes code) │
|
|
117
|
+
└────────┬───────────┘
|
|
118
|
+
│ ship the change
|
|
119
|
+
▼
|
|
120
|
+
┌────────────────────┐
|
|
121
|
+
│ Archive & Update │
|
|
122
|
+
│ Specs (source) │
|
|
123
|
+
└────────────────────┘
|
|
124
|
+
|
|
125
|
+
1. Draft a change proposal that captures the spec updates you want
|
|
126
|
+
2. Review the proposal with your AI assistant until everyone agrees
|
|
127
|
+
3. Implement tasks that reference the agreed specs
|
|
128
|
+
4. Archive the change to merge the approved updates back into the source-of-truth specs
|
|
129
|
+
```
|
|
114
130
|
|
|
115
|
-
|
|
131
|
+
## 🚀 Getting Started
|
|
116
132
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
→ **[How Commands Work](docs/how-commands-work.md)**: where slash commands run vs the CLI<br>
|
|
120
|
-
→ **[Core Concepts at a Glance](docs/overview.md)**: the whole mental model, one page<br>
|
|
121
|
-
→ **[Examples & Recipes](docs/examples.md)**: real changes, start to finish<br>
|
|
122
|
-
→ **[Workflows](docs/workflows.md)**: combos and patterns<br>
|
|
123
|
-
→ **[MCP Setup](docs/mcp-setup.md)**: Atlassian, Context7, and browser MCPs<br>
|
|
124
|
-
→ **[Existing Projects](docs/existing-projects.md)**: adopt OpenSpec on a brownfield codebase<br>
|
|
125
|
-
→ **[Editing a Change](docs/editing-changes.md)**: update artifacts, go back, reconcile manual edits<br>
|
|
126
|
-
→ **[Commands](docs/commands.md)**: slash commands & skills<br>
|
|
127
|
-
→ **[CLI](docs/cli.md)**: terminal reference<br>
|
|
128
|
-
→ **[Stores](docs/stores-beta/user-guide.md)**: plan in a separate repo, shared across your team (beta)<br>
|
|
129
|
-
→ **[Supported Tools](docs/supported-tools.md)**: tool integrations & install paths<br>
|
|
130
|
-
→ **[Concepts](docs/concepts.md)**: how it all fits<br>
|
|
131
|
-
→ **[Multi-Language](docs/multi-language.md)**: multi-language support<br>
|
|
132
|
-
→ **[Customization](docs/customization.md)**: make it yours<br>
|
|
133
|
-
→ **[FAQ](docs/faq.md)** · **[Troubleshooting](docs/troubleshooting.md)** · **[Glossary](docs/glossary.md)**: quick help
|
|
133
|
+
### Prerequisites
|
|
134
|
+
- **Node.js >= 20.19.0** - Check your version with `node --version`
|
|
134
135
|
|
|
136
|
+
### Step 1: Install the CLI globally
|
|
135
137
|
|
|
136
|
-
|
|
138
|
+
**Option A: Using npm**
|
|
139
|
+
```bash
|
|
140
|
+
npm install -g @codewalla_india/openspec@latest
|
|
141
|
+
```
|
|
137
142
|
|
|
138
|
-
|
|
143
|
+
Verify installation:
|
|
144
|
+
```bash
|
|
145
|
+
openspec --version
|
|
146
|
+
```
|
|
139
147
|
|
|
140
|
-
|
|
148
|
+
**Option B: Using Nix (NixOS and Nix package manager)**
|
|
149
|
+
```bash
|
|
150
|
+
nix run github:codewalla-engineering/openspec-upstream-sync -- init
|
|
151
|
+
```
|
|
141
152
|
|
|
153
|
+
Or install to your profile:
|
|
154
|
+
```bash
|
|
155
|
+
nix profile install github:codewalla-engineering/openspec-upstream-sync
|
|
156
|
+
```
|
|
142
157
|
|
|
143
|
-
|
|
158
|
+
### Step 2: Initialize OpenSpec in your project
|
|
144
159
|
|
|
145
|
-
|
|
160
|
+
```bash
|
|
161
|
+
cd your-project
|
|
162
|
+
openspec init
|
|
163
|
+
```
|
|
146
164
|
|
|
147
|
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
-
|
|
151
|
-
- **MCP-powered** — Atlassian, Context7, and browser MCPs built into generated skills
|
|
152
|
-
- **Use your tools** — works with 20+ AI assistants via slash commands
|
|
165
|
+
This creates:
|
|
166
|
+
- `openspec/` directory for your specs and changes
|
|
167
|
+
- AI tool integration files (slash commands or skills)
|
|
168
|
+
- Optional project configuration (`openspec/config.yaml`)
|
|
153
169
|
|
|
154
|
-
|
|
170
|
+
### Step 3: Start using OpenSpec
|
|
155
171
|
|
|
156
|
-
**
|
|
172
|
+
**In your AI assistant's chat:**
|
|
157
173
|
|
|
158
174
|
```bash
|
|
159
|
-
|
|
160
|
-
|
|
175
|
+
# Explore an idea (recommended first step)
|
|
176
|
+
/opsx:explore
|
|
161
177
|
|
|
162
|
-
|
|
178
|
+
# Create a new change
|
|
179
|
+
/opsx:propose add-dark-mode
|
|
163
180
|
|
|
164
|
-
|
|
181
|
+
# Implement the tasks
|
|
182
|
+
/opsx:apply
|
|
165
183
|
|
|
166
|
-
|
|
167
|
-
|
|
184
|
+
# Archive when complete
|
|
185
|
+
/opsx:archive
|
|
168
186
|
```
|
|
169
187
|
|
|
170
|
-
##
|
|
188
|
+
## 🛠️ Supported AI Tools
|
|
189
|
+
|
|
190
|
+
OpenSpec integrates with 30+ AI coding assistants. Here are the most popular:
|
|
191
|
+
|
|
192
|
+
### Native Slash Commands
|
|
193
|
+
These tools have built-in OpenSpec commands:
|
|
194
|
+
|
|
195
|
+
| Tool | Commands |
|
|
196
|
+
|------|----------|
|
|
197
|
+
| **Claude Code** | `/openspec:proposal`, `/openspec:apply`, `/openspec:archive` |
|
|
198
|
+
| **Cursor** | `/openspec-proposal`, `/openspec-apply`, `/openspec:archive` |
|
|
199
|
+
| **GitHub Copilot** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` |
|
|
200
|
+
| **Windsurf** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` |
|
|
201
|
+
| **Continue** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` |
|
|
202
|
+
| **Cline** | Workflows in `.clinerules/workflows/` directory |
|
|
203
|
+
| **Codex** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` (auto-installed) |
|
|
204
|
+
|
|
205
|
+
### AGENTS.md Compatible
|
|
206
|
+
These tools automatically read workflow instructions from `openspec/AGENTS.md`:
|
|
207
|
+
|
|
208
|
+
| Tools |
|
|
209
|
+
|-------|
|
|
210
|
+
| Amp • Jules • Others |
|
|
211
|
+
|
|
212
|
+
For the complete list of supported tools, see [Supported Tools](docs/supported-tools.md).
|
|
213
|
+
|
|
214
|
+
## 📖 Documentation
|
|
215
|
+
|
|
216
|
+
### Start Here
|
|
217
|
+
- [Getting Started](docs/getting-started.md) - Install, initialize, and run your first change
|
|
218
|
+
- [OPSX Workflow](docs/opsx.md) - The new fluid, schema-driven workflow
|
|
219
|
+
- [How Commands Work](docs/how-commands-work.md) - Where to type slash commands vs terminal commands
|
|
220
|
+
|
|
221
|
+
### Core Concepts
|
|
222
|
+
- [Core Concepts at a Glance](docs/overview.md) - The mental model on one page
|
|
223
|
+
- [Concepts](docs/concepts.md) - In-depth explanation of specs, changes, artifacts
|
|
224
|
+
- [Glossary](docs/glossary.md) - Every term defined in one place
|
|
225
|
+
|
|
226
|
+
### Day-to-Day Usage
|
|
227
|
+
- [Workflows](docs/workflows.md) - Common patterns and when to reach for each command
|
|
228
|
+
- [Examples & Recipes](docs/examples.md) - Full walkthroughs of real changes
|
|
229
|
+
- [Writing Good Specs](docs/writing-specs.md) - What strong requirements look like
|
|
230
|
+
- [Reviewing Changes](docs/reviewing-changes.md) - The two-minute review pass
|
|
231
|
+
- [Commands Reference](docs/commands.md) - Complete reference for all OPSX commands including `/opsx:modify`
|
|
232
|
+
|
|
233
|
+
### Advanced
|
|
234
|
+
- [Customization](docs/customization.md) - Project config, custom schemas, shared context
|
|
235
|
+
- [Multi-Language](docs/multi-language.md) - Generate artifacts in other languages
|
|
236
|
+
- [Stores (beta)](docs/stores-beta/user-guide.md) - Plan across repos and teams
|
|
237
|
+
|
|
238
|
+
### Help
|
|
239
|
+
- [FAQ](docs/faq.md) - Quick answers to common questions
|
|
240
|
+
- [Troubleshooting](docs/troubleshooting.md) - Concrete fixes for concrete failures
|
|
241
|
+
- [Migration Guide](docs/migration-guide.md) - Moving from legacy workflow to OPSX
|
|
242
|
+
|
|
243
|
+
## 🔄 Migration from Legacy Workflow
|
|
244
|
+
|
|
245
|
+
If you're using the old OpenSpec workflow, the [Migration Guide](docs/migration-guide.md) explains what changed and how to transition. Your existing work is safe — the migration is non-destructive.
|
|
246
|
+
|
|
247
|
+
## 🤝 Contributing
|
|
171
248
|
|
|
172
|
-
|
|
249
|
+
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. The most valuable contributions are:
|
|
173
250
|
|
|
174
|
-
|
|
251
|
+
- Documentation improvements
|
|
252
|
+
- Bug fixes
|
|
253
|
+
- New AI tool integrations
|
|
254
|
+
- Workflow enhancements
|
|
175
255
|
|
|
176
|
-
|
|
256
|
+
## 📄 License
|
|
177
257
|
|
|
178
|
-
|
|
258
|
+
MIT License - see [LICENSE](LICENSE) file for details
|
|
179
259
|
|
|
180
|
-
|
|
181
|
-
<summary><strong>Telemetry</strong></summary>
|
|
260
|
+
## 🆘 Support
|
|
182
261
|
|
|
183
|
-
|
|
262
|
+
- **Discord:** [discord.gg/YctCnvvshC](https://discord.gg/YctCnvvshC) for questions, ideas, and help
|
|
263
|
+
- **GitHub Issues:** [github.com/codewalla-engineering/openspec-upstream-sync/issues](https://github.com/codewalla-engineering/openspec-upstream-sync/issues) for bugs and feature requests
|
|
264
|
+
- **Feedback:** Run `openspec feedback "your message"` to send feedback directly from your terminal
|
|
184
265
|
|
|
185
|
-
|
|
266
|
+
## 🌟 Acknowledgments
|
|
186
267
|
|
|
187
|
-
|
|
268
|
+
Built with ❤️ for the AI-assisted development community. Special thanks to all contributors who make OpenSpec better every day.
|
|
188
269
|
|
|
189
|
-
|
|
270
|
+
---
|
|
190
271
|
|
|
191
|
-
|
|
272
|
+
**⚡ Powered by OPSX Workflow — the future of spec-driven development**
|
package/bin/openspec.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { runCli } from '../dist/cli/index.js';
|
|
4
|
-
|
|
5
|
-
runCli();
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { runCli } from '../dist/cli/index.js';
|
|
4
|
+
|
|
5
|
+
runCli();
|