specweave 0.16.7 → 0.16.11
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/.claude-plugin/marketplace.json +22 -0
- package/CLAUDE.md +45 -26
- package/dist/cli/commands/sync-spec-commits.d.ts +9 -0
- package/dist/cli/commands/sync-spec-commits.d.ts.map +1 -0
- package/dist/cli/commands/sync-spec-commits.js +186 -0
- package/dist/cli/commands/sync-spec-commits.js.map +1 -0
- package/dist/core/agent-model-manager.d.ts +52 -0
- package/dist/core/agent-model-manager.d.ts.map +1 -0
- package/dist/core/agent-model-manager.js +120 -0
- package/dist/core/agent-model-manager.js.map +1 -0
- package/dist/core/comment-builder.d.ts +57 -0
- package/dist/core/comment-builder.d.ts.map +1 -0
- package/dist/core/comment-builder.js +239 -0
- package/dist/core/comment-builder.js.map +1 -0
- package/dist/core/model-selector.d.ts +57 -0
- package/dist/core/model-selector.d.ts.map +1 -0
- package/dist/core/model-selector.js +115 -0
- package/dist/core/model-selector.js.map +1 -0
- package/dist/core/phase-detector.d.ts +62 -0
- package/dist/core/phase-detector.d.ts.map +1 -0
- package/dist/core/phase-detector.js +229 -0
- package/dist/core/phase-detector.js.map +1 -0
- package/dist/core/spec-task-mapper.d.ts +71 -0
- package/dist/core/spec-task-mapper.d.ts.map +1 -0
- package/dist/core/spec-task-mapper.js +208 -0
- package/dist/core/spec-task-mapper.js.map +1 -0
- package/dist/hooks/lib/git-diff-analyzer.d.ts +89 -0
- package/dist/hooks/lib/git-diff-analyzer.d.ts.map +1 -0
- package/dist/hooks/lib/git-diff-analyzer.js +226 -0
- package/dist/hooks/lib/git-diff-analyzer.js.map +1 -0
- package/dist/hooks/lib/invoke-translator-skill.d.ts +60 -0
- package/dist/hooks/lib/invoke-translator-skill.d.ts.map +1 -0
- package/dist/hooks/lib/invoke-translator-skill.js +201 -0
- package/dist/hooks/lib/invoke-translator-skill.js.map +1 -0
- package/dist/hooks/lib/prepare-reflection-context.d.ts +42 -0
- package/dist/hooks/lib/prepare-reflection-context.d.ts.map +1 -0
- package/dist/hooks/lib/prepare-reflection-context.js +123 -0
- package/dist/hooks/lib/prepare-reflection-context.js.map +1 -0
- package/dist/hooks/lib/reflection-config-loader.d.ts +45 -0
- package/dist/hooks/lib/reflection-config-loader.d.ts.map +1 -0
- package/dist/hooks/lib/reflection-config-loader.js +132 -0
- package/dist/hooks/lib/reflection-config-loader.js.map +1 -0
- package/dist/hooks/lib/reflection-parser.d.ts +33 -0
- package/dist/hooks/lib/reflection-parser.d.ts.map +1 -0
- package/dist/hooks/lib/reflection-parser.js +419 -0
- package/dist/hooks/lib/reflection-parser.js.map +1 -0
- package/dist/hooks/lib/reflection-prompt-builder.d.ts +56 -0
- package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +1 -0
- package/dist/hooks/lib/reflection-prompt-builder.js +239 -0
- package/dist/hooks/lib/reflection-prompt-builder.js.map +1 -0
- package/dist/hooks/lib/reflection-storage.d.ts +64 -0
- package/dist/hooks/lib/reflection-storage.d.ts.map +1 -0
- package/dist/hooks/lib/reflection-storage.js +305 -0
- package/dist/hooks/lib/reflection-storage.js.map +1 -0
- package/dist/hooks/lib/run-self-reflection.d.ts +43 -0
- package/dist/hooks/lib/run-self-reflection.d.ts.map +1 -0
- package/dist/hooks/lib/run-self-reflection.js +203 -0
- package/dist/hooks/lib/run-self-reflection.js.map +1 -0
- package/dist/hooks/lib/sync-living-docs.d.ts +27 -0
- package/dist/hooks/lib/sync-living-docs.d.ts.map +1 -0
- package/dist/hooks/lib/sync-living-docs.js +116 -0
- package/dist/hooks/lib/sync-living-docs.js.map +1 -0
- package/dist/hooks/lib/translate-file.d.ts +59 -0
- package/dist/hooks/lib/translate-file.d.ts.map +1 -0
- package/dist/hooks/lib/translate-file.js +350 -0
- package/dist/hooks/lib/translate-file.js.map +1 -0
- package/dist/hooks/lib/translate-living-docs.d.ts +13 -0
- package/dist/hooks/lib/translate-living-docs.d.ts.map +1 -0
- package/dist/hooks/lib/translate-living-docs.js +175 -0
- package/dist/hooks/lib/translate-living-docs.js.map +1 -0
- package/dist/hooks/lib/types/reflection-types.d.ts +164 -0
- package/dist/hooks/lib/types/reflection-types.d.ts.map +1 -0
- package/dist/hooks/lib/types/reflection-types.js +73 -0
- package/dist/hooks/lib/types/reflection-types.js.map +1 -0
- package/dist/hooks/lib/update-tasks-md.d.ts +29 -0
- package/dist/hooks/lib/update-tasks-md.d.ts.map +1 -0
- package/dist/hooks/lib/update-tasks-md.js +203 -0
- package/dist/hooks/lib/update-tasks-md.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +89 -0
- package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +226 -0
- package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +60 -0
- package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +201 -0
- package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +42 -0
- package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +123 -0
- package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +45 -0
- package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +132 -0
- package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +33 -0
- package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/reflection-parser.js +419 -0
- package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +56 -0
- package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +239 -0
- package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +64 -0
- package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/reflection-storage.js +305 -0
- package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +43 -0
- package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +203 -0
- package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +27 -0
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +144 -0
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +59 -0
- package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/translate-file.js +350 -0
- package/dist/plugins/specweave/lib/hooks/translate-file.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +13 -0
- package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +175 -0
- package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +164 -0
- package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +73 -0
- package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +1 -0
- package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +29 -0
- package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +203 -0
- package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +94 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +219 -0
- package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +134 -0
- package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-client-v2.js +478 -0
- package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-client.d.ts +112 -0
- package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-client.js +272 -0
- package/dist/plugins/specweave-ado/lib/ado-client.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +40 -0
- package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +370 -0
- package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.d.ts +149 -0
- package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.js +517 -0
- package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-project-detector.d.ts +72 -0
- package/dist/plugins/specweave-ado/lib/ado-project-detector.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-project-detector.js +416 -0
- package/dist/plugins/specweave-ado/lib/ado-project-detector.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts +38 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.js +210 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts +28 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js +241 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +100 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +471 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts +99 -0
- package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/conflict-resolver.js +331 -0
- package/dist/plugins/specweave-ado/lib/conflict-resolver.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/project-selector.d.ts +42 -0
- package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/project-selector.js +211 -0
- package/dist/plugins/specweave-ado/lib/project-selector.js.map +1 -0
- package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts +12 -0
- package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js +28 -0
- package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +54 -0
- package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-board-resolver.js +122 -0
- package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +104 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.js +408 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-client.d.ts +96 -0
- package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-client.js +299 -0
- package/dist/plugins/specweave-github/lib/github-client.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +29 -0
- package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +268 -0
- package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts +61 -0
- package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-issue-updater.js +327 -0
- package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-multi-project-sync.d.ts +126 -0
- package/dist/plugins/specweave-github/lib/github-multi-project-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-multi-project-sync.js +420 -0
- package/dist/plugins/specweave-github/lib/github-multi-project-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-spec-commit-sync.d.ts +37 -0
- package/dist/plugins/specweave-github/lib/github-spec-commit-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-spec-commit-sync.js +209 -0
- package/dist/plugins/specweave-github/lib/github-spec-commit-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts +28 -0
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.js +195 -0
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +108 -0
- package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-spec-sync.js +505 -0
- package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts +36 -0
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +228 -0
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts +18 -0
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +287 -0
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.map +1 -0
- package/dist/plugins/specweave-github/lib/index.d.ts +10 -0
- package/dist/plugins/specweave-github/lib/index.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/index.js +10 -0
- package/dist/plugins/specweave-github/lib/index.js.map +1 -0
- package/dist/plugins/specweave-github/lib/repo-selector.d.ts +49 -0
- package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/repo-selector.js +216 -0
- package/dist/plugins/specweave-github/lib/repo-selector.js.map +1 -0
- package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +51 -0
- package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/subtask-sync.js +147 -0
- package/dist/plugins/specweave-github/lib/subtask-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/task-parser.d.ts +37 -0
- package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/task-parser.js +211 -0
- package/dist/plugins/specweave-github/lib/task-parser.js.map +1 -0
- package/dist/plugins/specweave-github/lib/task-sync.d.ts +51 -0
- package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/task-sync.js +332 -0
- package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/types.d.ts +80 -0
- package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/types.js +5 -0
- package/dist/plugins/specweave-github/lib/types.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +50 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +84 -0
- package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +33 -0
- package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +206 -0
- package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.d.ts +95 -0
- package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.js +301 -0
- package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts +43 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.js +282 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.d.ts +33 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.js +294 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +105 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +456 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/project-selector.d.ts +42 -0
- package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/project-selector.js +216 -0
- package/dist/plugins/specweave-jira/lib/project-selector.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +67 -0
- package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/reorganization-detector.js +252 -0
- package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +29 -0
- package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/setup-wizard.js +219 -0
- package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +1 -0
- package/dist/plugins/specweave-release/lib/dashboard-generator.d.ts +23 -0
- package/dist/plugins/specweave-release/lib/dashboard-generator.d.ts.map +1 -0
- package/dist/plugins/specweave-release/lib/dashboard-generator.js +258 -0
- package/dist/plugins/specweave-release/lib/dashboard-generator.js.map +1 -0
- package/dist/plugins/specweave-release/lib/dora-tracker.d.ts +82 -0
- package/dist/plugins/specweave-release/lib/dora-tracker.d.ts.map +1 -0
- package/dist/plugins/specweave-release/lib/dora-tracker.js +279 -0
- package/dist/plugins/specweave-release/lib/dora-tracker.js.map +1 -0
- package/dist/project-mapper.js +272 -0
- package/dist/scripts/split-spec-by-project.js +105 -0
- package/dist/spec-splitter.js +283 -0
- package/dist/src/adapters/adapter-base.d.ts +71 -0
- package/dist/src/adapters/adapter-base.d.ts.map +1 -0
- package/dist/src/adapters/adapter-base.js +139 -0
- package/dist/src/adapters/adapter-base.js.map +1 -0
- package/dist/src/adapters/adapter-interface.d.ts +149 -0
- package/dist/src/adapters/adapter-interface.d.ts.map +1 -0
- package/dist/src/adapters/adapter-interface.js +8 -0
- package/dist/src/adapters/adapter-interface.js.map +1 -0
- package/dist/src/adapters/adapter-loader.d.ts +91 -0
- package/dist/src/adapters/adapter-loader.d.ts.map +1 -0
- package/dist/src/adapters/adapter-loader.js +238 -0
- package/dist/src/adapters/adapter-loader.js.map +1 -0
- package/dist/src/adapters/agents-md-generator.d.ts +48 -0
- package/dist/src/adapters/agents-md-generator.d.ts.map +1 -0
- package/dist/src/adapters/agents-md-generator.js +193 -0
- package/dist/src/adapters/agents-md-generator.js.map +1 -0
- package/dist/src/adapters/claude/adapter.d.ts +128 -0
- package/dist/src/adapters/claude/adapter.d.ts.map +1 -0
- package/dist/src/adapters/claude/adapter.js +415 -0
- package/dist/src/adapters/claude/adapter.js.map +1 -0
- package/dist/src/adapters/claude-md-generator.d.ts +78 -0
- package/dist/src/adapters/claude-md-generator.d.ts.map +1 -0
- package/dist/src/adapters/claude-md-generator.js +307 -0
- package/dist/src/adapters/claude-md-generator.js.map +1 -0
- package/dist/src/adapters/codex/adapter.d.ts +50 -0
- package/dist/src/adapters/codex/adapter.d.ts.map +1 -0
- package/dist/src/adapters/codex/adapter.js +316 -0
- package/dist/src/adapters/codex/adapter.js.map +1 -0
- package/dist/src/adapters/cursor/adapter.d.ts +98 -0
- package/dist/src/adapters/cursor/adapter.d.ts.map +1 -0
- package/dist/src/adapters/cursor/adapter.js +406 -0
- package/dist/src/adapters/cursor/adapter.js.map +1 -0
- package/dist/src/adapters/doc-generator.d.ts +69 -0
- package/dist/src/adapters/doc-generator.d.ts.map +1 -0
- package/dist/src/adapters/doc-generator.js +247 -0
- package/dist/src/adapters/doc-generator.js.map +1 -0
- package/dist/src/adapters/gemini/adapter.d.ts +50 -0
- package/dist/src/adapters/gemini/adapter.d.ts.map +1 -0
- package/dist/src/adapters/gemini/adapter.js +281 -0
- package/dist/src/adapters/gemini/adapter.js.map +1 -0
- package/dist/src/adapters/generic/adapter.d.ts +86 -0
- package/dist/src/adapters/generic/adapter.d.ts.map +1 -0
- package/dist/src/adapters/generic/adapter.js +338 -0
- package/dist/src/adapters/generic/adapter.js.map +1 -0
- package/dist/src/cli/commands/abandon.d.ts +13 -0
- package/dist/src/cli/commands/abandon.d.ts.map +1 -0
- package/dist/src/cli/commands/abandon.js +15 -0
- package/dist/src/cli/commands/abandon.js.map +1 -0
- package/dist/src/cli/commands/check-discipline.d.ts +16 -0
- package/dist/src/cli/commands/check-discipline.d.ts.map +1 -0
- package/dist/src/cli/commands/check-discipline.js +79 -0
- package/dist/src/cli/commands/check-discipline.js.map +1 -0
- package/dist/src/cli/commands/import-docs.d.ts +21 -0
- package/dist/src/cli/commands/import-docs.d.ts.map +1 -0
- package/dist/src/cli/commands/import-docs.js +146 -0
- package/dist/src/cli/commands/import-docs.js.map +1 -0
- package/dist/src/cli/commands/init-multiproject.d.ts +11 -0
- package/dist/src/cli/commands/init-multiproject.d.ts.map +1 -0
- package/dist/src/cli/commands/init-multiproject.js +202 -0
- package/dist/src/cli/commands/init-multiproject.js.map +1 -0
- package/dist/src/cli/commands/init.d.ts +10 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +1328 -0
- package/dist/src/cli/commands/init.js.map +1 -0
- package/dist/src/cli/commands/install.d.ts +9 -0
- package/dist/src/cli/commands/install.d.ts.map +1 -0
- package/dist/src/cli/commands/install.js +127 -0
- package/dist/src/cli/commands/install.js.map +1 -0
- package/dist/src/cli/commands/list.d.ts +8 -0
- package/dist/src/cli/commands/list.d.ts.map +1 -0
- package/dist/src/cli/commands/list.js +119 -0
- package/dist/src/cli/commands/list.js.map +1 -0
- package/dist/src/cli/commands/migrate-to-multiproject.d.ts +37 -0
- package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +1 -0
- package/dist/src/cli/commands/migrate-to-multiproject.js +189 -0
- package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -0
- package/dist/src/cli/commands/migrate-to-profiles.d.ts +25 -0
- package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +1 -0
- package/dist/src/cli/commands/migrate-to-profiles.js +348 -0
- package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -0
- package/dist/src/cli/commands/pause.d.ts +13 -0
- package/dist/src/cli/commands/pause.d.ts.map +1 -0
- package/dist/src/cli/commands/pause.js +15 -0
- package/dist/src/cli/commands/pause.js.map +1 -0
- package/dist/src/cli/commands/qa.d.ts +54 -0
- package/dist/src/cli/commands/qa.d.ts.map +1 -0
- package/dist/src/cli/commands/qa.js +98 -0
- package/dist/src/cli/commands/qa.js.map +1 -0
- package/dist/src/cli/commands/resume.d.ts +12 -0
- package/dist/src/cli/commands/resume.d.ts.map +1 -0
- package/dist/src/cli/commands/resume.js +14 -0
- package/dist/src/cli/commands/resume.js.map +1 -0
- package/dist/src/cli/commands/status-line.d.ts +14 -0
- package/dist/src/cli/commands/status-line.d.ts.map +1 -0
- package/dist/src/cli/commands/status-line.js +75 -0
- package/dist/src/cli/commands/status-line.js.map +1 -0
- package/dist/src/cli/commands/status.d.ts +12 -0
- package/dist/src/cli/commands/status.d.ts.map +1 -0
- package/dist/src/cli/commands/status.js +23 -0
- package/dist/src/cli/commands/status.js.map +1 -0
- package/dist/src/cli/commands/switch-project.d.ts +13 -0
- package/dist/src/cli/commands/switch-project.d.ts.map +1 -0
- package/dist/src/cli/commands/switch-project.js +91 -0
- package/dist/src/cli/commands/switch-project.js.map +1 -0
- package/dist/src/cli/commands/sync-spec-commits.d.ts +9 -0
- package/dist/src/cli/commands/sync-spec-commits.d.ts.map +1 -0
- package/dist/src/cli/commands/sync-spec-commits.js +186 -0
- package/dist/src/cli/commands/sync-spec-commits.js.map +1 -0
- package/dist/src/cli/commands/sync-spec-content.d.ts +13 -0
- package/dist/src/cli/commands/sync-spec-content.d.ts.map +1 -0
- package/dist/src/cli/commands/sync-spec-content.js +223 -0
- package/dist/src/cli/commands/sync-spec-content.js.map +1 -0
- package/dist/src/cli/commands/validate-jira.d.ts +35 -0
- package/dist/src/cli/commands/validate-jira.d.ts.map +1 -0
- package/dist/src/cli/commands/validate-jira.js +112 -0
- package/dist/src/cli/commands/validate-jira.js.map +1 -0
- package/dist/src/cli/commands/validate-plugins.d.ts +41 -0
- package/dist/src/cli/commands/validate-plugins.d.ts.map +1 -0
- package/dist/src/cli/commands/validate-plugins.js +171 -0
- package/dist/src/cli/commands/validate-plugins.js.map +1 -0
- package/dist/src/cli/helpers/github/increment-profile-selector.d.ts +47 -0
- package/dist/src/cli/helpers/github/increment-profile-selector.d.ts.map +1 -0
- package/dist/src/cli/helpers/github/increment-profile-selector.js +186 -0
- package/dist/src/cli/helpers/github/increment-profile-selector.js.map +1 -0
- package/dist/src/cli/helpers/github/profile-manager.d.ts +119 -0
- package/dist/src/cli/helpers/github/profile-manager.d.ts.map +1 -0
- package/dist/src/cli/helpers/github/profile-manager.js +311 -0
- package/dist/src/cli/helpers/github/profile-manager.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts +57 -0
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado.js +243 -0
- package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts +86 -0
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +417 -0
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/github.d.ts +80 -0
- package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/github.js +324 -0
- package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/index.d.ts +22 -0
- package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/index.js +575 -0
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/jira.d.ts +61 -0
- package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/jira.js +404 -0
- package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/types.d.ts +108 -0
- package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/types.js +16 -0
- package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/utils.d.ts +120 -0
- package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/utils.js +293 -0
- package/dist/src/cli/helpers/issue-tracker/utils.js.map +1 -0
- package/dist/src/core/agent-model-manager.d.ts +52 -0
- package/dist/src/core/agent-model-manager.d.ts.map +1 -0
- package/dist/src/core/agent-model-manager.js +120 -0
- package/dist/src/core/agent-model-manager.js.map +1 -0
- package/dist/src/core/brownfield/analyzer.d.ts +86 -0
- package/dist/src/core/brownfield/analyzer.d.ts.map +1 -0
- package/dist/src/core/brownfield/analyzer.js +365 -0
- package/dist/src/core/brownfield/analyzer.js.map +1 -0
- package/dist/src/core/brownfield/importer.d.ts +76 -0
- package/dist/src/core/brownfield/importer.d.ts.map +1 -0
- package/dist/src/core/brownfield/importer.js +287 -0
- package/dist/src/core/brownfield/importer.js.map +1 -0
- package/dist/src/core/comment-builder.d.ts +57 -0
- package/dist/src/core/comment-builder.d.ts.map +1 -0
- package/dist/src/core/comment-builder.js +239 -0
- package/dist/src/core/comment-builder.js.map +1 -0
- package/dist/src/core/config-manager.d.ts +47 -0
- package/dist/src/core/config-manager.d.ts.map +1 -0
- package/dist/src/core/config-manager.js +136 -0
- package/dist/src/core/config-manager.js.map +1 -0
- package/dist/src/core/cost-tracker.d.ts +108 -0
- package/dist/src/core/cost-tracker.d.ts.map +1 -0
- package/dist/src/core/cost-tracker.js +281 -0
- package/dist/src/core/cost-tracker.js.map +1 -0
- package/dist/src/core/credentials-manager.d.ts +107 -0
- package/dist/src/core/credentials-manager.d.ts.map +1 -0
- package/dist/src/core/credentials-manager.js +457 -0
- package/dist/src/core/credentials-manager.js.map +1 -0
- package/dist/src/core/i18n/language-detector.d.ts +29 -0
- package/dist/src/core/i18n/language-detector.d.ts.map +1 -0
- package/dist/src/core/i18n/language-detector.js +143 -0
- package/dist/src/core/i18n/language-detector.js.map +1 -0
- package/dist/src/core/i18n/language-manager.d.ts +101 -0
- package/dist/src/core/i18n/language-manager.d.ts.map +1 -0
- package/dist/src/core/i18n/language-manager.js +232 -0
- package/dist/src/core/i18n/language-manager.js.map +1 -0
- package/dist/src/core/i18n/language-registry.d.ts +44 -0
- package/dist/src/core/i18n/language-registry.d.ts.map +1 -0
- package/dist/src/core/i18n/language-registry.js +234 -0
- package/dist/src/core/i18n/language-registry.js.map +1 -0
- package/dist/src/core/i18n/locale-manager.d.ts +62 -0
- package/dist/src/core/i18n/locale-manager.d.ts.map +1 -0
- package/dist/src/core/i18n/locale-manager.js +137 -0
- package/dist/src/core/i18n/locale-manager.js.map +1 -0
- package/dist/src/core/i18n/system-prompt-injector.d.ts +33 -0
- package/dist/src/core/i18n/system-prompt-injector.d.ts.map +1 -0
- package/dist/src/core/i18n/system-prompt-injector.js +131 -0
- package/dist/src/core/i18n/system-prompt-injector.js.map +1 -0
- package/dist/src/core/i18n/types.d.ts +151 -0
- package/dist/src/core/i18n/types.d.ts.map +1 -0
- package/dist/src/core/i18n/types.js +11 -0
- package/dist/src/core/i18n/types.js.map +1 -0
- package/dist/src/core/increment/active-increment-manager.d.ts +79 -0
- package/dist/src/core/increment/active-increment-manager.d.ts.map +1 -0
- package/dist/src/core/increment/active-increment-manager.js +153 -0
- package/dist/src/core/increment/active-increment-manager.js.map +1 -0
- package/dist/src/core/increment/discipline-checker.d.ts +60 -0
- package/dist/src/core/increment/discipline-checker.d.ts.map +1 -0
- package/dist/src/core/increment/discipline-checker.js +274 -0
- package/dist/src/core/increment/discipline-checker.js.map +1 -0
- package/dist/src/core/increment/limits.d.ts +68 -0
- package/dist/src/core/increment/limits.d.ts.map +1 -0
- package/dist/src/core/increment/limits.js +224 -0
- package/dist/src/core/increment/limits.js.map +1 -0
- package/dist/src/core/increment/metadata-manager.d.ts +116 -0
- package/dist/src/core/increment/metadata-manager.d.ts.map +1 -0
- package/dist/src/core/increment/metadata-manager.js +335 -0
- package/dist/src/core/increment/metadata-manager.js.map +1 -0
- package/dist/src/core/increment/metadata-validator.d.ts +33 -0
- package/dist/src/core/increment/metadata-validator.d.ts.map +1 -0
- package/dist/src/core/increment/metadata-validator.js +147 -0
- package/dist/src/core/increment/metadata-validator.js.map +1 -0
- package/dist/src/core/increment/status-commands.d.ts +43 -0
- package/dist/src/core/increment/status-commands.d.ts.map +1 -0
- package/dist/src/core/increment/status-commands.js +277 -0
- package/dist/src/core/increment/status-commands.js.map +1 -0
- package/dist/src/core/increment/types.d.ts +88 -0
- package/dist/src/core/increment/types.d.ts.map +1 -0
- package/dist/src/core/increment/types.js +8 -0
- package/dist/src/core/increment/types.js.map +1 -0
- package/dist/src/core/increment-status.d.ts +72 -0
- package/dist/src/core/increment-status.d.ts.map +1 -0
- package/dist/src/core/increment-status.js +227 -0
- package/dist/src/core/increment-status.js.map +1 -0
- package/dist/src/core/model-selector.d.ts +57 -0
- package/dist/src/core/model-selector.d.ts.map +1 -0
- package/dist/src/core/model-selector.js +115 -0
- package/dist/src/core/model-selector.js.map +1 -0
- package/dist/src/core/phase-detector.d.ts +62 -0
- package/dist/src/core/phase-detector.d.ts.map +1 -0
- package/dist/src/core/phase-detector.js +229 -0
- package/dist/src/core/phase-detector.js.map +1 -0
- package/dist/src/core/plugin-loader.d.ts +131 -0
- package/dist/src/core/plugin-loader.d.ts.map +1 -0
- package/dist/src/core/plugin-loader.js +421 -0
- package/dist/src/core/plugin-loader.js.map +1 -0
- package/dist/src/core/project-manager.d.ts +122 -0
- package/dist/src/core/project-manager.d.ts.map +1 -0
- package/dist/src/core/project-manager.js +539 -0
- package/dist/src/core/project-manager.js.map +1 -0
- package/dist/src/core/project-structure-detector.d.ts +92 -0
- package/dist/src/core/project-structure-detector.d.ts.map +1 -0
- package/dist/src/core/project-structure-detector.js +289 -0
- package/dist/src/core/project-structure-detector.js.map +1 -0
- package/dist/src/core/qa/qa-runner.d.ts +16 -0
- package/dist/src/core/qa/qa-runner.d.ts.map +1 -0
- package/dist/src/core/qa/qa-runner.js +422 -0
- package/dist/src/core/qa/qa-runner.js.map +1 -0
- package/dist/src/core/qa/quality-gate-decider.d.ts +53 -0
- package/dist/src/core/qa/quality-gate-decider.d.ts.map +1 -0
- package/dist/src/core/qa/quality-gate-decider.js +268 -0
- package/dist/src/core/qa/quality-gate-decider.js.map +1 -0
- package/dist/src/core/qa/risk-calculator.d.ts +126 -0
- package/dist/src/core/qa/risk-calculator.d.ts.map +1 -0
- package/dist/src/core/qa/risk-calculator.js +247 -0
- package/dist/src/core/qa/risk-calculator.js.map +1 -0
- package/dist/src/core/qa/types.d.ts +315 -0
- package/dist/src/core/qa/types.d.ts.map +1 -0
- package/dist/src/core/qa/types.js +8 -0
- package/dist/src/core/qa/types.js.map +1 -0
- package/dist/src/core/repo-structure/github-validator.d.ts +75 -0
- package/dist/src/core/repo-structure/github-validator.d.ts.map +1 -0
- package/dist/src/core/repo-structure/github-validator.js +166 -0
- package/dist/src/core/repo-structure/github-validator.js.map +1 -0
- package/dist/src/core/repo-structure/prompt-consolidator.d.ts +70 -0
- package/dist/src/core/repo-structure/prompt-consolidator.d.ts.map +1 -0
- package/dist/src/core/repo-structure/prompt-consolidator.js +180 -0
- package/dist/src/core/repo-structure/prompt-consolidator.js.map +1 -0
- package/dist/src/core/repo-structure/repo-id-generator.d.ts +79 -0
- package/dist/src/core/repo-structure/repo-id-generator.d.ts.map +1 -0
- package/dist/src/core/repo-structure/repo-id-generator.js +135 -0
- package/dist/src/core/repo-structure/repo-id-generator.js.map +1 -0
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts +105 -0
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -0
- package/dist/src/core/repo-structure/repo-structure-manager.js +878 -0
- package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -0
- package/dist/src/core/repo-structure/setup-state-manager.d.ts +125 -0
- package/dist/src/core/repo-structure/setup-state-manager.d.ts.map +1 -0
- package/dist/src/core/repo-structure/setup-state-manager.js +233 -0
- package/dist/src/core/repo-structure/setup-state-manager.js.map +1 -0
- package/dist/src/core/repo-structure/setup-summary.d.ts +36 -0
- package/dist/src/core/repo-structure/setup-summary.d.ts.map +1 -0
- package/dist/src/core/repo-structure/setup-summary.js +190 -0
- package/dist/src/core/repo-structure/setup-summary.js.map +1 -0
- package/dist/src/core/rfc-generator-v2.d.ts +149 -0
- package/dist/src/core/rfc-generator-v2.d.ts.map +1 -0
- package/dist/src/core/rfc-generator-v2.js +399 -0
- package/dist/src/core/rfc-generator-v2.js.map +1 -0
- package/dist/src/core/spec-content-sync.d.ts +78 -0
- package/dist/src/core/spec-content-sync.d.ts.map +1 -0
- package/dist/src/core/spec-content-sync.js +222 -0
- package/dist/src/core/spec-content-sync.js.map +1 -0
- package/dist/src/core/spec-task-mapper.d.ts +71 -0
- package/dist/src/core/spec-task-mapper.d.ts.map +1 -0
- package/dist/src/core/spec-task-mapper.js +208 -0
- package/dist/src/core/spec-task-mapper.js.map +1 -0
- package/dist/src/core/specs/spec-metadata-manager.d.ts +72 -0
- package/dist/src/core/specs/spec-metadata-manager.d.ts.map +1 -0
- package/dist/src/core/specs/spec-metadata-manager.js +364 -0
- package/dist/src/core/specs/spec-metadata-manager.js.map +1 -0
- package/dist/src/core/specs/spec-parser.d.ts +66 -0
- package/dist/src/core/specs/spec-parser.d.ts.map +1 -0
- package/dist/src/core/specs/spec-parser.js +276 -0
- package/dist/src/core/specs/spec-parser.js.map +1 -0
- package/dist/src/core/status-line/status-line-manager.d.ts +62 -0
- package/dist/src/core/status-line/status-line-manager.d.ts.map +1 -0
- package/dist/src/core/status-line/status-line-manager.js +169 -0
- package/dist/src/core/status-line/status-line-manager.js.map +1 -0
- package/dist/src/core/status-line/types.d.ts +50 -0
- package/dist/src/core/status-line/types.d.ts.map +1 -0
- package/dist/src/core/status-line/types.js +17 -0
- package/dist/src/core/status-line/types.js.map +1 -0
- package/dist/src/core/sync/bidirectional-engine.d.ts +110 -0
- package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -0
- package/dist/src/core/sync/bidirectional-engine.js +356 -0
- package/dist/src/core/sync/bidirectional-engine.js.map +1 -0
- package/dist/src/core/sync/folder-mapper.d.ts +71 -0
- package/dist/src/core/sync/folder-mapper.d.ts.map +1 -0
- package/dist/src/core/sync/folder-mapper.js +203 -0
- package/dist/src/core/sync/folder-mapper.js.map +1 -0
- package/dist/src/core/sync/profile-manager.d.ts +72 -0
- package/dist/src/core/sync/profile-manager.d.ts.map +1 -0
- package/dist/src/core/sync/profile-manager.js +338 -0
- package/dist/src/core/sync/profile-manager.js.map +1 -0
- package/dist/src/core/sync/profile-selector.d.ts +52 -0
- package/dist/src/core/sync/profile-selector.d.ts.map +1 -0
- package/dist/src/core/sync/profile-selector.js +179 -0
- package/dist/src/core/sync/profile-selector.js.map +1 -0
- package/dist/src/core/sync/profile-validator.d.ts +52 -0
- package/dist/src/core/sync/profile-validator.d.ts.map +1 -0
- package/dist/src/core/sync/profile-validator.js +170 -0
- package/dist/src/core/sync/profile-validator.js.map +1 -0
- package/dist/src/core/sync/project-context.d.ts +81 -0
- package/dist/src/core/sync/project-context.d.ts.map +1 -0
- package/dist/src/core/sync/project-context.js +354 -0
- package/dist/src/core/sync/project-context.js.map +1 -0
- package/dist/src/core/sync/rate-limiter.d.ts +116 -0
- package/dist/src/core/sync/rate-limiter.d.ts.map +1 -0
- package/dist/src/core/sync/rate-limiter.js +308 -0
- package/dist/src/core/sync/rate-limiter.js.map +1 -0
- package/dist/src/core/sync/time-range-selector.d.ts +48 -0
- package/dist/src/core/sync/time-range-selector.d.ts.map +1 -0
- package/dist/src/core/sync/time-range-selector.js +224 -0
- package/dist/src/core/sync/time-range-selector.js.map +1 -0
- package/dist/src/core/types/config.d.ts +90 -0
- package/dist/src/core/types/config.d.ts.map +1 -0
- package/dist/src/core/types/config.js +44 -0
- package/dist/src/core/types/config.js.map +1 -0
- package/dist/src/core/types/increment-metadata.d.ts +120 -0
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -0
- package/dist/src/core/types/increment-metadata.js +138 -0
- package/dist/src/core/types/increment-metadata.js.map +1 -0
- package/dist/src/core/types/plugin.d.ts +283 -0
- package/dist/src/core/types/plugin.d.ts.map +1 -0
- package/dist/src/core/types/plugin.js +49 -0
- package/dist/src/core/types/plugin.js.map +1 -0
- package/dist/src/core/types/spec-metadata.d.ts +229 -0
- package/dist/src/core/types/spec-metadata.d.ts.map +1 -0
- package/dist/src/core/types/spec-metadata.js +14 -0
- package/dist/src/core/types/spec-metadata.js.map +1 -0
- package/dist/src/core/types/sync-profile.d.ts +349 -0
- package/dist/src/core/types/sync-profile.d.ts.map +1 -0
- package/dist/src/core/types/sync-profile.js +79 -0
- package/dist/src/core/types/sync-profile.js.map +1 -0
- package/dist/src/hooks/lib/git-diff-analyzer.d.ts +89 -0
- package/dist/src/hooks/lib/git-diff-analyzer.d.ts.map +1 -0
- package/dist/src/hooks/lib/git-diff-analyzer.js +226 -0
- package/dist/src/hooks/lib/git-diff-analyzer.js.map +1 -0
- package/dist/src/hooks/lib/invoke-translator-skill.d.ts +60 -0
- package/dist/src/hooks/lib/invoke-translator-skill.d.ts.map +1 -0
- package/dist/src/hooks/lib/invoke-translator-skill.js +201 -0
- package/dist/src/hooks/lib/invoke-translator-skill.js.map +1 -0
- package/dist/src/hooks/lib/prepare-reflection-context.d.ts +42 -0
- package/dist/src/hooks/lib/prepare-reflection-context.d.ts.map +1 -0
- package/dist/src/hooks/lib/prepare-reflection-context.js +123 -0
- package/dist/src/hooks/lib/prepare-reflection-context.js.map +1 -0
- package/dist/src/hooks/lib/reflection-config-loader.d.ts +45 -0
- package/dist/src/hooks/lib/reflection-config-loader.d.ts.map +1 -0
- package/dist/src/hooks/lib/reflection-config-loader.js +132 -0
- package/dist/src/hooks/lib/reflection-config-loader.js.map +1 -0
- package/dist/src/hooks/lib/reflection-parser.d.ts +33 -0
- package/dist/src/hooks/lib/reflection-parser.d.ts.map +1 -0
- package/dist/src/hooks/lib/reflection-parser.js +419 -0
- package/dist/src/hooks/lib/reflection-parser.js.map +1 -0
- package/dist/src/hooks/lib/reflection-prompt-builder.d.ts +56 -0
- package/dist/src/hooks/lib/reflection-prompt-builder.d.ts.map +1 -0
- package/dist/src/hooks/lib/reflection-prompt-builder.js +239 -0
- package/dist/src/hooks/lib/reflection-prompt-builder.js.map +1 -0
- package/dist/src/hooks/lib/reflection-storage.d.ts +64 -0
- package/dist/src/hooks/lib/reflection-storage.d.ts.map +1 -0
- package/dist/src/hooks/lib/reflection-storage.js +305 -0
- package/dist/src/hooks/lib/reflection-storage.js.map +1 -0
- package/dist/src/hooks/lib/run-self-reflection.d.ts +43 -0
- package/dist/src/hooks/lib/run-self-reflection.d.ts.map +1 -0
- package/dist/src/hooks/lib/run-self-reflection.js +203 -0
- package/dist/src/hooks/lib/run-self-reflection.js.map +1 -0
- package/dist/src/hooks/lib/sync-living-docs.d.ts +27 -0
- package/dist/src/hooks/lib/sync-living-docs.d.ts.map +1 -0
- package/dist/src/hooks/lib/sync-living-docs.js +116 -0
- package/dist/src/hooks/lib/sync-living-docs.js.map +1 -0
- package/dist/src/hooks/lib/translate-file.d.ts +59 -0
- package/dist/src/hooks/lib/translate-file.d.ts.map +1 -0
- package/dist/src/hooks/lib/translate-file.js +350 -0
- package/dist/src/hooks/lib/translate-file.js.map +1 -0
- package/dist/src/hooks/lib/translate-living-docs.d.ts +13 -0
- package/dist/src/hooks/lib/translate-living-docs.d.ts.map +1 -0
- package/dist/src/hooks/lib/translate-living-docs.js +175 -0
- package/dist/src/hooks/lib/translate-living-docs.js.map +1 -0
- package/dist/src/hooks/lib/types/reflection-types.d.ts +164 -0
- package/dist/src/hooks/lib/types/reflection-types.d.ts.map +1 -0
- package/dist/src/hooks/lib/types/reflection-types.js +73 -0
- package/dist/src/hooks/lib/types/reflection-types.js.map +1 -0
- package/dist/src/hooks/lib/update-tasks-md.d.ts +29 -0
- package/dist/src/hooks/lib/update-tasks-md.d.ts.map +1 -0
- package/dist/src/hooks/lib/update-tasks-md.js +203 -0
- package/dist/src/hooks/lib/update-tasks-md.js.map +1 -0
- package/dist/src/integrations/ado/ado-client.d.ts +127 -0
- package/dist/src/integrations/ado/ado-client.d.ts.map +1 -0
- package/dist/src/integrations/ado/ado-client.js +416 -0
- package/dist/src/integrations/ado/ado-client.js.map +1 -0
- package/dist/src/integrations/jira/jira-client.d.ts +139 -0
- package/dist/src/integrations/jira/jira-client.d.ts.map +1 -0
- package/dist/src/integrations/jira/jira-client.js +386 -0
- package/dist/src/integrations/jira/jira-client.js.map +1 -0
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +75 -0
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
- package/dist/src/integrations/jira/jira-incremental-mapper.js +474 -0
- package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -0
- package/dist/src/integrations/jira/jira-mapper.d.ts +105 -0
- package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -0
- package/dist/src/integrations/jira/jira-mapper.js +494 -0
- package/dist/src/integrations/jira/jira-mapper.js.map +1 -0
- package/dist/src/metrics/calculators/change-failure-rate.d.ts +22 -0
- package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +1 -0
- package/dist/src/metrics/calculators/change-failure-rate.js +70 -0
- package/dist/src/metrics/calculators/change-failure-rate.js.map +1 -0
- package/dist/src/metrics/calculators/deployment-frequency.d.ts +20 -0
- package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +1 -0
- package/dist/src/metrics/calculators/deployment-frequency.js +61 -0
- package/dist/src/metrics/calculators/deployment-frequency.js.map +1 -0
- package/dist/src/metrics/calculators/lead-time.d.ts +22 -0
- package/dist/src/metrics/calculators/lead-time.d.ts.map +1 -0
- package/dist/src/metrics/calculators/lead-time.js +82 -0
- package/dist/src/metrics/calculators/lead-time.js.map +1 -0
- package/dist/src/metrics/calculators/mttr.d.ts +21 -0
- package/dist/src/metrics/calculators/mttr.d.ts.map +1 -0
- package/dist/src/metrics/calculators/mttr.js +60 -0
- package/dist/src/metrics/calculators/mttr.js.map +1 -0
- package/dist/src/metrics/dora-calculator.d.ts +28 -0
- package/dist/src/metrics/dora-calculator.d.ts.map +1 -0
- package/dist/src/metrics/dora-calculator.js +117 -0
- package/dist/src/metrics/dora-calculator.js.map +1 -0
- package/dist/src/metrics/github-client.d.ts +51 -0
- package/dist/src/metrics/github-client.d.ts.map +1 -0
- package/dist/src/metrics/github-client.js +133 -0
- package/dist/src/metrics/github-client.js.map +1 -0
- package/dist/src/metrics/report-generator.d.ts +17 -0
- package/dist/src/metrics/report-generator.d.ts.map +1 -0
- package/dist/src/metrics/report-generator.js +403 -0
- package/dist/src/metrics/report-generator.js.map +1 -0
- package/dist/src/metrics/types.d.ts +112 -0
- package/dist/src/metrics/types.d.ts.map +1 -0
- package/dist/src/metrics/types.js +10 -0
- package/dist/src/metrics/types.js.map +1 -0
- package/dist/src/metrics/utils/percentile.d.ts +25 -0
- package/dist/src/metrics/utils/percentile.d.ts.map +1 -0
- package/dist/src/metrics/utils/percentile.js +46 -0
- package/dist/src/metrics/utils/percentile.js.map +1 -0
- package/dist/src/metrics/utils/tier-classifier.d.ts +61 -0
- package/dist/src/metrics/utils/tier-classifier.d.ts.map +1 -0
- package/dist/src/metrics/utils/tier-classifier.js +100 -0
- package/dist/src/metrics/utils/tier-classifier.js.map +1 -0
- package/dist/src/testing/test-generator.d.ts +117 -0
- package/dist/src/testing/test-generator.d.ts.map +1 -0
- package/dist/src/testing/test-generator.js +370 -0
- package/dist/src/testing/test-generator.js.map +1 -0
- package/dist/src/types/cost-tracking.d.ts +43 -0
- package/dist/src/types/cost-tracking.d.ts.map +1 -0
- package/dist/src/types/cost-tracking.js +8 -0
- package/dist/src/types/cost-tracking.js.map +1 -0
- package/dist/src/types/model-selection.d.ts +53 -0
- package/dist/src/types/model-selection.d.ts.map +1 -0
- package/dist/src/types/model-selection.js +12 -0
- package/dist/src/types/model-selection.js.map +1 -0
- package/dist/src/utils/agents-md-compiler.d.ts +68 -0
- package/dist/src/utils/agents-md-compiler.d.ts.map +1 -0
- package/dist/src/utils/agents-md-compiler.js +420 -0
- package/dist/src/utils/agents-md-compiler.js.map +1 -0
- package/dist/src/utils/auth-helpers.d.ts +58 -0
- package/dist/src/utils/auth-helpers.d.ts.map +1 -0
- package/dist/src/utils/auth-helpers.js +108 -0
- package/dist/src/utils/auth-helpers.js.map +1 -0
- package/dist/src/utils/auto-install.d.ts +47 -0
- package/dist/src/utils/auto-install.d.ts.map +1 -0
- package/dist/src/utils/auto-install.js +211 -0
- package/dist/src/utils/auto-install.js.map +1 -0
- package/dist/src/utils/claude-cli-detector.d.ts +75 -0
- package/dist/src/utils/claude-cli-detector.d.ts.map +1 -0
- package/dist/src/utils/claude-cli-detector.js +285 -0
- package/dist/src/utils/claude-cli-detector.js.map +1 -0
- package/dist/src/utils/cost-reporter.d.ts +58 -0
- package/dist/src/utils/cost-reporter.d.ts.map +1 -0
- package/dist/src/utils/cost-reporter.js +224 -0
- package/dist/src/utils/cost-reporter.js.map +1 -0
- package/dist/src/utils/docs-preview/config-generator.d.ts +46 -0
- package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -0
- package/dist/src/utils/docs-preview/config-generator.js +377 -0
- package/dist/src/utils/docs-preview/config-generator.js.map +1 -0
- package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +38 -0
- package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -0
- package/dist/src/utils/docs-preview/docusaurus-setup.js +177 -0
- package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -0
- package/dist/src/utils/docs-preview/index.d.ts +7 -0
- package/dist/src/utils/docs-preview/index.d.ts.map +1 -0
- package/dist/src/utils/docs-preview/index.js +7 -0
- package/dist/src/utils/docs-preview/index.js.map +1 -0
- package/dist/src/utils/docs-preview/package-installer.d.ts +42 -0
- package/dist/src/utils/docs-preview/package-installer.d.ts.map +1 -0
- package/dist/src/utils/docs-preview/package-installer.js +182 -0
- package/dist/src/utils/docs-preview/package-installer.js.map +1 -0
- package/dist/src/utils/docs-preview/server-manager.d.ts +30 -0
- package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -0
- package/dist/src/utils/docs-preview/server-manager.js +212 -0
- package/dist/src/utils/docs-preview/server-manager.js.map +1 -0
- package/dist/src/utils/docs-preview/sidebar-builder.d.ts +32 -0
- package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +1 -0
- package/dist/src/utils/docs-preview/sidebar-builder.js +202 -0
- package/dist/src/utils/docs-preview/sidebar-builder.js.map +1 -0
- package/dist/src/utils/docs-preview/types.d.ts +57 -0
- package/dist/src/utils/docs-preview/types.d.ts.map +1 -0
- package/dist/src/utils/docs-preview/types.js +2 -0
- package/dist/src/utils/docs-preview/types.js.map +1 -0
- package/dist/src/utils/env-file-generator.d.ts +54 -0
- package/dist/src/utils/env-file-generator.d.ts.map +1 -0
- package/dist/src/utils/env-file-generator.js +196 -0
- package/dist/src/utils/env-file-generator.js.map +1 -0
- package/dist/src/utils/env-file.d.ts +88 -0
- package/dist/src/utils/env-file.d.ts.map +1 -0
- package/dist/src/utils/env-file.js +180 -0
- package/dist/src/utils/env-file.js.map +1 -0
- package/dist/src/utils/env-multi-project-parser.d.ts +220 -0
- package/dist/src/utils/env-multi-project-parser.d.ts.map +1 -0
- package/dist/src/utils/env-multi-project-parser.js +401 -0
- package/dist/src/utils/env-multi-project-parser.js.map +1 -0
- package/dist/src/utils/esm-helpers.d.ts +50 -0
- package/dist/src/utils/esm-helpers.d.ts.map +1 -0
- package/dist/src/utils/esm-helpers.js +57 -0
- package/dist/src/utils/esm-helpers.js.map +1 -0
- package/dist/src/utils/execFileNoThrow.d.ts +99 -0
- package/dist/src/utils/execFileNoThrow.d.ts.map +1 -0
- package/dist/src/utils/execFileNoThrow.js +137 -0
- package/dist/src/utils/execFileNoThrow.js.map +1 -0
- package/dist/src/utils/external-resource-validator.d.ts +194 -0
- package/dist/src/utils/external-resource-validator.d.ts.map +1 -0
- package/dist/src/utils/external-resource-validator.js +953 -0
- package/dist/src/utils/external-resource-validator.js.map +1 -0
- package/dist/src/utils/generate-skills-index.d.ts +24 -0
- package/dist/src/utils/generate-skills-index.d.ts.map +1 -0
- package/dist/src/utils/generate-skills-index.js +410 -0
- package/dist/src/utils/generate-skills-index.js.map +1 -0
- package/dist/src/utils/git-detector.d.ts +84 -0
- package/dist/src/utils/git-detector.d.ts.map +1 -0
- package/dist/src/utils/git-detector.js +233 -0
- package/dist/src/utils/git-detector.js.map +1 -0
- package/dist/src/utils/git-utils.d.ts +74 -0
- package/dist/src/utils/git-utils.d.ts.map +1 -0
- package/dist/src/utils/git-utils.js +272 -0
- package/dist/src/utils/git-utils.js.map +1 -0
- package/dist/src/utils/model-selection.d.ts +75 -0
- package/dist/src/utils/model-selection.d.ts.map +1 -0
- package/dist/src/utils/model-selection.js +204 -0
- package/dist/src/utils/model-selection.js.map +1 -0
- package/dist/src/utils/plugin-validator.d.ts +161 -0
- package/dist/src/utils/plugin-validator.d.ts.map +1 -0
- package/dist/src/utils/plugin-validator.js +558 -0
- package/dist/src/utils/plugin-validator.js.map +1 -0
- package/dist/src/utils/pricing-constants.d.ts +70 -0
- package/dist/src/utils/pricing-constants.d.ts.map +1 -0
- package/dist/src/utils/pricing-constants.js +71 -0
- package/dist/src/utils/pricing-constants.js.map +1 -0
- package/dist/src/utils/project-detection.d.ts +141 -0
- package/dist/src/utils/project-detection.d.ts.map +1 -0
- package/dist/src/utils/project-detection.js +321 -0
- package/dist/src/utils/project-detection.js.map +1 -0
- package/dist/src/utils/project-mapper.d.ts +92 -0
- package/dist/src/utils/project-mapper.d.ts.map +1 -0
- package/dist/src/utils/project-mapper.js +276 -0
- package/dist/src/utils/project-mapper.js.map +1 -0
- package/dist/src/utils/spec-splitter.d.ts +75 -0
- package/dist/src/utils/spec-splitter.d.ts.map +1 -0
- package/dist/src/utils/spec-splitter.js +332 -0
- package/dist/src/utils/spec-splitter.js.map +1 -0
- package/dist/src/utils/string-utils.d.ts +40 -0
- package/dist/src/utils/string-utils.d.ts.map +1 -0
- package/dist/src/utils/string-utils.js +58 -0
- package/dist/src/utils/string-utils.js.map +1 -0
- package/dist/src/utils/translation.d.ts +187 -0
- package/dist/src/utils/translation.d.ts.map +1 -0
- package/dist/src/utils/translation.js +414 -0
- package/dist/src/utils/translation.js.map +1 -0
- package/dist/utils/git-utils.d.ts +74 -0
- package/dist/utils/git-utils.d.ts.map +1 -0
- package/dist/utils/git-utils.js +272 -0
- package/dist/utils/git-utils.js.map +1 -0
- package/package.json +3 -2
- package/plugins/specweave/hooks/lib/sync-spec-content.sh +149 -0
- package/plugins/specweave/hooks/post-increment-planning.sh +37 -1
- package/plugins/specweave/lib/hooks/git-diff-analyzer.js +213 -129
- package/plugins/specweave/lib/hooks/invoke-translator-skill.js +192 -146
- package/plugins/specweave/lib/hooks/prepare-reflection-context.js +116 -103
- package/plugins/specweave/lib/hooks/reflection-config-loader.js +125 -85
- package/plugins/specweave/lib/hooks/reflection-parser.js +385 -267
- package/plugins/specweave/lib/hooks/reflection-prompt-builder.js +226 -169
- package/plugins/specweave/lib/hooks/reflection-storage.js +297 -223
- package/plugins/specweave/lib/hooks/run-self-reflection.js +191 -120
- package/plugins/specweave/lib/hooks/sync-living-docs.js +129 -87
- package/plugins/specweave/lib/hooks/translate-file.js +300 -239
- package/plugins/specweave/lib/hooks/translate-living-docs.js +144 -88
- package/plugins/specweave/lib/hooks/types/reflection-types.js +72 -57
- package/plugins/specweave/lib/hooks/update-tasks-md.js +179 -117
- package/plugins/specweave-ado/agents/ado-multi-project-mapper/AGENT.md +521 -0
- package/plugins/specweave-ado/agents/ado-sync-judge/AGENT.md +418 -0
- package/plugins/specweave-ado/hooks/post-living-docs-update.sh +353 -0
- package/plugins/specweave-ado/hooks/post-task-completion.sh +22 -0
- package/plugins/specweave-ado/lib/ado-board-resolver.js +205 -135
- package/plugins/specweave-ado/lib/ado-client-v2.d.ts +15 -5
- package/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +1 -1
- package/plugins/specweave-ado/lib/ado-client-v2.js +449 -406
- package/plugins/specweave-ado/lib/ado-client-v2.js.map +1 -1
- package/plugins/specweave-ado/lib/ado-client-v2.ts +43 -51
- package/plugins/specweave-ado/lib/ado-hierarchical-sync.js +335 -223
- package/plugins/specweave-ado/lib/ado-project-detector.js +469 -0
- package/plugins/specweave-ado/lib/ado-project-detector.ts +510 -0
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.d.js +0 -0
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts +38 -0
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts.map +1 -0
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.js +210 -0
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.js.map +1 -0
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.ts +288 -0
- package/plugins/specweave-ado/lib/ado-spec-content-sync.js +205 -0
- package/plugins/specweave-ado/lib/ado-spec-content-sync.ts +313 -0
- package/plugins/specweave-ado/lib/ado-spec-sync.js +414 -380
- package/plugins/specweave-ado/lib/conflict-resolver.js +297 -0
- package/plugins/specweave-ado/lib/conflict-resolver.ts +443 -0
- package/plugins/specweave-ado/lib/project-selector.js +196 -168
- package/plugins/specweave-ado/skills/ado-multi-project/SKILL.md +541 -0
- package/plugins/specweave-ado/skills/ado-resource-validator/SKILL.md +880 -0
- package/plugins/specweave-github/hooks/post-task-completion.sh +22 -0
- package/plugins/specweave-github/lib/cli-sync-increment-changes.js +20 -9
- package/plugins/specweave-github/lib/github-board-resolver.js +115 -69
- package/plugins/specweave-github/lib/github-client-v2.js +389 -400
- package/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/plugins/specweave-github/lib/github-client-v2.ts +13 -13
- package/plugins/specweave-github/lib/github-client.js +280 -246
- package/plugins/specweave-github/lib/github-hierarchical-sync.js +251 -168
- package/plugins/specweave-github/lib/github-issue-updater.js +4 -4
- package/plugins/specweave-github/lib/github-issue-updater.ts +4 -4
- package/plugins/specweave-github/lib/github-spec-commit-sync.d.js +0 -0
- package/plugins/specweave-github/lib/github-spec-commit-sync.d.ts +37 -0
- package/plugins/specweave-github/lib/github-spec-commit-sync.d.ts.map +1 -0
- package/plugins/specweave-github/lib/github-spec-commit-sync.js +209 -0
- package/plugins/specweave-github/lib/github-spec-commit-sync.js.map +1 -0
- package/plugins/specweave-github/lib/github-spec-commit-sync.ts +285 -0
- package/plugins/specweave-github/lib/github-spec-content-sync.js +169 -0
- package/plugins/specweave-github/lib/github-spec-content-sync.ts +255 -0
- package/plugins/specweave-github/lib/github-spec-sync.js +420 -379
- package/plugins/specweave-github/lib/github-sync-bidirectional.js +2 -2
- package/plugins/specweave-github/lib/github-sync-bidirectional.ts +2 -2
- package/plugins/specweave-github/lib/github-sync-increment-changes.js +4 -4
- package/plugins/specweave-github/lib/github-sync-increment-changes.ts +4 -4
- package/plugins/specweave-github/lib/index.js +10 -11
- package/plugins/specweave-github/lib/repo-selector.js +201 -174
- package/plugins/specweave-github/lib/subtask-sync.js +125 -132
- package/plugins/specweave-github/lib/task-parser.js +207 -191
- package/plugins/specweave-github/lib/task-sync.js +296 -344
- package/plugins/specweave-github/lib/types.js +5 -0
- package/plugins/specweave-jira/hooks/post-task-completion.sh +22 -0
- package/plugins/specweave-jira/lib/jira-board-resolver.js +79 -50
- package/plugins/specweave-jira/lib/jira-hierarchical-sync.js +191 -119
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.d.js +0 -0
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts +43 -0
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts.map +1 -0
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.js +282 -0
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.js.map +1 -0
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.ts +368 -0
- package/plugins/specweave-jira/lib/jira-spec-content-sync.js +260 -0
- package/plugins/specweave-jira/lib/jira-spec-content-sync.ts +367 -0
- package/plugins/specweave-jira/lib/jira-spec-sync.js +405 -366
- package/plugins/specweave-jira/lib/project-selector.js +201 -172
- package/plugins/specweave-jira/lib/reorganization-detector.js +237 -202
- package/plugins/specweave-jira/lib/setup-wizard.js +204 -162
- package/plugins/specweave-mobile/.claude-plugin/plugin.json +25 -0
- package/plugins/specweave-mobile/README.md +337 -0
- package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +642 -0
- package/plugins/specweave-mobile/skills/device-testing/SKILL.md +609 -0
- package/plugins/specweave-mobile/skills/expo-workflow/SKILL.md +440 -0
- package/plugins/specweave-mobile/skills/metro-bundler/SKILL.md +614 -0
- package/plugins/specweave-mobile/skills/mobile-debugging/SKILL.md +536 -0
- package/plugins/specweave-mobile/skills/native-modules/SKILL.md +573 -0
- package/plugins/specweave-mobile/skills/performance-optimization/SKILL.md +550 -0
- package/plugins/specweave-mobile/skills/react-native-setup/SKILL.md +216 -0
- package/plugins/specweave-release/.claude-plugin/plugin.json +41 -0
- package/plugins/specweave-release/IMPLEMENTATION.md +449 -0
- package/plugins/specweave-release/README.md +509 -0
- package/plugins/specweave-release/agents/release-manager/AGENT.md +672 -0
- package/plugins/specweave-release/commands/specweave-release-align.md +505 -0
- package/plugins/specweave-release/commands/specweave-release-init.md +430 -0
- package/plugins/specweave-release/commands/specweave-release-platform.md +439 -0
- package/plugins/specweave-release/commands/specweave-release-rc.md +495 -0
- package/plugins/specweave-release/hooks/hooks.json +15 -0
- package/plugins/specweave-release/hooks/post-task-completion.sh +110 -0
- package/plugins/specweave-release/lib/dashboard-generator.js +232 -0
- package/plugins/specweave-release/lib/dashboard-generator.ts +294 -0
- package/plugins/specweave-release/lib/dora-tracker.js +200 -0
- package/plugins/specweave-release/lib/dora-tracker.ts +361 -0
- package/plugins/specweave-release/skills/rc-manager/SKILL.md +660 -0
- package/plugins/specweave-release/skills/release-coordinator/SKILL.md +535 -0
- package/plugins/specweave-release/skills/release-strategy-advisor/SKILL.md +473 -0
- package/plugins/specweave-release/skills/version-aligner/SKILL.md +579 -0
- package/src/templates/CLAUDE.md.template +24 -0
|
@@ -0,0 +1,880 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ado-resource-validator
|
|
3
|
+
description: Validates Azure DevOps projects and resources exist, creates missing resources automatically. Smart enough to prompt user to select existing or create new projects. Supports multiple projects for project-per-team strategy, area paths for area-path-based strategy, and teams for team-based strategy. Activates for ado setup, ado validation, ado configuration, missing ado project, azure devops .env setup.
|
|
4
|
+
allowed-tools: Read, Bash, Write, Edit
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Azure DevOps Resource Validator Skill
|
|
8
|
+
|
|
9
|
+
**Purpose**: Validate and auto-create Azure DevOps projects and resources, ensuring .env configuration is correct.
|
|
10
|
+
|
|
11
|
+
**Auto-Activation**: Triggers when Azure DevOps setup or validation is needed.
|
|
12
|
+
|
|
13
|
+
## What This Skill Does
|
|
14
|
+
|
|
15
|
+
This skill ensures your Azure DevOps configuration in `.env` is valid and all resources exist. It's **smart enough** to:
|
|
16
|
+
|
|
17
|
+
1. **Validate Azure DevOps projects** - Check if projects exist (multiple for project-per-team)
|
|
18
|
+
2. **Prompt for action** - Select existing project or create new one
|
|
19
|
+
3. **Validate area paths** - Check if area paths exist (for area-path-based strategy)
|
|
20
|
+
4. **Create missing area paths** - Auto-create area paths if missing
|
|
21
|
+
5. **Validate teams** - Check if teams exist (for team-based strategy)
|
|
22
|
+
6. **Update .env with correct values** - Ensure configuration is valid
|
|
23
|
+
|
|
24
|
+
## When This Skill Activates
|
|
25
|
+
|
|
26
|
+
✅ **Automatically activates when**:
|
|
27
|
+
- You set up Azure DevOps integration for the first time
|
|
28
|
+
- You run `/specweave-ado:sync` and resources are missing
|
|
29
|
+
- Your `.env` has invalid Azure DevOps configuration
|
|
30
|
+
- You mention "ado setup" or "azure devops validation"
|
|
31
|
+
|
|
32
|
+
## Azure DevOps Configuration Structure
|
|
33
|
+
|
|
34
|
+
### Required .env Variables
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
AZURE_DEVOPS_PAT=your_token_here
|
|
38
|
+
AZURE_DEVOPS_ORG=yourorganization
|
|
39
|
+
AZURE_DEVOPS_STRATEGY=project-per-team # or area-path-based, team-based
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Strategy-Specific Variables
|
|
43
|
+
|
|
44
|
+
**Strategy 1: Project-per-team** (Multiple Projects)
|
|
45
|
+
```bash
|
|
46
|
+
AZURE_DEVOPS_STRATEGY=project-per-team
|
|
47
|
+
AZURE_DEVOPS_PROJECTS=WebApp,MobileApp,Platform
|
|
48
|
+
```
|
|
49
|
+
→ Validates that WebApp, MobileApp, and Platform projects exist
|
|
50
|
+
|
|
51
|
+
**Strategy 2: Area-path-based** (One Project, Multiple Area Paths)
|
|
52
|
+
```bash
|
|
53
|
+
AZURE_DEVOPS_STRATEGY=area-path-based
|
|
54
|
+
AZURE_DEVOPS_PROJECT=MainProduct
|
|
55
|
+
AZURE_DEVOPS_AREA_PATHS=Frontend,Backend,Mobile
|
|
56
|
+
```
|
|
57
|
+
→ Validates MainProduct project exists
|
|
58
|
+
→ Creates area paths if missing: MainProduct\Frontend, MainProduct\Backend, MainProduct\Mobile
|
|
59
|
+
|
|
60
|
+
**Strategy 3: Team-based** (One Project, Multiple Teams)
|
|
61
|
+
```bash
|
|
62
|
+
AZURE_DEVOPS_STRATEGY=team-based
|
|
63
|
+
AZURE_DEVOPS_PROJECT=MainProduct
|
|
64
|
+
AZURE_DEVOPS_TEAMS=Alpha Team,Beta Team,Gamma Team
|
|
65
|
+
```
|
|
66
|
+
→ Validates MainProduct project exists
|
|
67
|
+
→ Creates teams if missing: Alpha Team, Beta Team, Gamma Team
|
|
68
|
+
|
|
69
|
+
## Validation Flow
|
|
70
|
+
|
|
71
|
+
### Step 1: Strategy Detection
|
|
72
|
+
|
|
73
|
+
**Read .env and detect strategy**:
|
|
74
|
+
```bash
|
|
75
|
+
AZURE_DEVOPS_STRATEGY=project-per-team
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Result**:
|
|
79
|
+
```
|
|
80
|
+
🔍 Detected strategy: Project-per-team
|
|
81
|
+
Projects to validate: WebApp, MobileApp, Platform
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Step 2: Project Validation (Project-per-team)
|
|
85
|
+
|
|
86
|
+
**Check if projects exist**:
|
|
87
|
+
```bash
|
|
88
|
+
# API calls to Azure DevOps
|
|
89
|
+
GET https://dev.azure.com/{org}/_apis/projects/WebApp
|
|
90
|
+
GET https://dev.azure.com/{org}/_apis/projects/MobileApp
|
|
91
|
+
GET https://dev.azure.com/{org}/_apis/projects/Platform
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**If all projects exist**:
|
|
95
|
+
```
|
|
96
|
+
✅ All projects validated:
|
|
97
|
+
• WebApp (ID: abcd1234)
|
|
98
|
+
• MobileApp (ID: efgh5678)
|
|
99
|
+
• Platform (ID: ijkl9012)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**If some projects don't exist**:
|
|
103
|
+
```
|
|
104
|
+
⚠️ Projects not found:
|
|
105
|
+
✅ WebApp (exists)
|
|
106
|
+
❌ MobileApp (not found)
|
|
107
|
+
❌ Platform (not found)
|
|
108
|
+
|
|
109
|
+
What would you like to do?
|
|
110
|
+
1. Create missing projects
|
|
111
|
+
2. Select existing projects
|
|
112
|
+
3. Fix project names manually
|
|
113
|
+
4. Cancel
|
|
114
|
+
|
|
115
|
+
Your choice [1]:
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Option 1: Create Missing Projects**:
|
|
119
|
+
```
|
|
120
|
+
📦 Creating Azure DevOps projects...
|
|
121
|
+
|
|
122
|
+
Creating project: MobileApp...
|
|
123
|
+
✅ Project created: MobileApp (ID: mnop3456)
|
|
124
|
+
|
|
125
|
+
Creating project: Platform...
|
|
126
|
+
✅ Project created: Platform (ID: qrst7890)
|
|
127
|
+
|
|
128
|
+
✅ All projects now exist!
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Option 2: Select Existing Projects**:
|
|
132
|
+
```
|
|
133
|
+
Available projects in organization:
|
|
134
|
+
1. WebApp
|
|
135
|
+
2. ApiGateway
|
|
136
|
+
3. AuthService
|
|
137
|
+
4. NotificationService
|
|
138
|
+
5. DataPipeline
|
|
139
|
+
|
|
140
|
+
Select projects (comma-separated numbers) [2,3]:
|
|
141
|
+
|
|
142
|
+
✅ Updated .env: AZURE_DEVOPS_PROJECTS=WebApp,ApiGateway,AuthService
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Step 3: Area Path Validation (Area-path-based)
|
|
146
|
+
|
|
147
|
+
**Scenario**: One project with area paths
|
|
148
|
+
```bash
|
|
149
|
+
AZURE_DEVOPS_STRATEGY=area-path-based
|
|
150
|
+
AZURE_DEVOPS_PROJECT=MainProduct
|
|
151
|
+
AZURE_DEVOPS_AREA_PATHS=Frontend,Backend,Mobile,QA
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Validation**:
|
|
155
|
+
```
|
|
156
|
+
Checking project: MainProduct...
|
|
157
|
+
✅ Project "MainProduct" exists
|
|
158
|
+
|
|
159
|
+
Checking area paths...
|
|
160
|
+
✅ MainProduct\Frontend (exists)
|
|
161
|
+
✅ MainProduct\Backend (exists)
|
|
162
|
+
⚠️ MainProduct\Mobile (not found)
|
|
163
|
+
⚠️ MainProduct\QA (not found)
|
|
164
|
+
|
|
165
|
+
📦 Creating missing area paths...
|
|
166
|
+
✅ Created: MainProduct\Mobile
|
|
167
|
+
✅ Created: MainProduct\QA
|
|
168
|
+
|
|
169
|
+
✅ All area paths validated/created successfully
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Step 4: Team Validation (Team-based)
|
|
173
|
+
|
|
174
|
+
**Scenario**: One project with multiple teams
|
|
175
|
+
```bash
|
|
176
|
+
AZURE_DEVOPS_STRATEGY=team-based
|
|
177
|
+
AZURE_DEVOPS_PROJECT=MainProduct
|
|
178
|
+
AZURE_DEVOPS_TEAMS=Alpha Team,Beta Team,Gamma Team
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Validation**:
|
|
182
|
+
```
|
|
183
|
+
Checking project: MainProduct...
|
|
184
|
+
✅ Project "MainProduct" exists
|
|
185
|
+
|
|
186
|
+
Checking teams...
|
|
187
|
+
✅ Alpha Team (exists)
|
|
188
|
+
⚠️ Beta Team (not found)
|
|
189
|
+
⚠️ Gamma Team (not found)
|
|
190
|
+
|
|
191
|
+
📦 Creating missing teams...
|
|
192
|
+
✅ Created: Beta Team
|
|
193
|
+
✅ Created: Gamma Team
|
|
194
|
+
|
|
195
|
+
✅ All teams validated/created successfully
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Usage Examples
|
|
199
|
+
|
|
200
|
+
### Example 1: Fresh Azure DevOps Setup (Project-per-team)
|
|
201
|
+
|
|
202
|
+
**Scenario**: New setup with multiple projects for different teams
|
|
203
|
+
|
|
204
|
+
**Action**: Run `/specweave-ado:sync`
|
|
205
|
+
|
|
206
|
+
**What Happens**:
|
|
207
|
+
```bash
|
|
208
|
+
🔍 Validating Azure DevOps configuration...
|
|
209
|
+
|
|
210
|
+
Strategy: Project-per-team
|
|
211
|
+
Checking projects: WebApp, MobileApp, Platform...
|
|
212
|
+
|
|
213
|
+
⚠️ Projects not found:
|
|
214
|
+
• WebApp
|
|
215
|
+
• MobileApp
|
|
216
|
+
• Platform
|
|
217
|
+
|
|
218
|
+
What would you like to do?
|
|
219
|
+
1. Create new projects
|
|
220
|
+
2. Select existing projects
|
|
221
|
+
3. Cancel
|
|
222
|
+
|
|
223
|
+
Your choice [1]: 1
|
|
224
|
+
|
|
225
|
+
📦 Creating Azure DevOps projects...
|
|
226
|
+
|
|
227
|
+
Creating project: WebApp
|
|
228
|
+
Description: Web application frontend
|
|
229
|
+
Process template: Agile
|
|
230
|
+
✅ Created: WebApp (ID: proj-001)
|
|
231
|
+
|
|
232
|
+
Creating project: MobileApp
|
|
233
|
+
Description: Mobile application
|
|
234
|
+
Process template: Agile
|
|
235
|
+
✅ Created: MobileApp (ID: proj-002)
|
|
236
|
+
|
|
237
|
+
Creating project: Platform
|
|
238
|
+
Description: Backend platform services
|
|
239
|
+
Process template: Agile
|
|
240
|
+
✅ Created: Platform (ID: proj-003)
|
|
241
|
+
|
|
242
|
+
🎉 Azure DevOps configuration complete! All resources ready.
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Example 2: Migrate from Single to Multi-Project
|
|
246
|
+
|
|
247
|
+
**Scenario**: Currently using single project, want to split into multiple
|
|
248
|
+
|
|
249
|
+
**Current .env**:
|
|
250
|
+
```bash
|
|
251
|
+
AZURE_DEVOPS_PROJECT=MainProduct
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
**New .env**:
|
|
255
|
+
```bash
|
|
256
|
+
AZURE_DEVOPS_STRATEGY=project-per-team
|
|
257
|
+
AZURE_DEVOPS_PROJECTS=MainProduct-Frontend,MainProduct-Backend,MainProduct-Mobile
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**What Happens**:
|
|
261
|
+
```bash
|
|
262
|
+
🔍 Detected strategy change: team-based → project-per-team
|
|
263
|
+
|
|
264
|
+
Validating new projects...
|
|
265
|
+
✅ MainProduct-Frontend (exists from previous split)
|
|
266
|
+
⚠️ MainProduct-Backend (not found)
|
|
267
|
+
⚠️ MainProduct-Mobile (not found)
|
|
268
|
+
|
|
269
|
+
Would you like to:
|
|
270
|
+
1. Create missing projects
|
|
271
|
+
2. Keep single project with area paths instead
|
|
272
|
+
3. Cancel
|
|
273
|
+
|
|
274
|
+
Your choice [1]: 1
|
|
275
|
+
|
|
276
|
+
📦 Creating projects...
|
|
277
|
+
✅ Created: MainProduct-Backend
|
|
278
|
+
✅ Created: MainProduct-Mobile
|
|
279
|
+
|
|
280
|
+
💡 Tip: You can now organize specs by project:
|
|
281
|
+
.specweave/docs/internal/specs/MainProduct-Frontend/
|
|
282
|
+
.specweave/docs/internal/specs/MainProduct-Backend/
|
|
283
|
+
.specweave/docs/internal/specs/MainProduct-Mobile/
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Example 3: Area Path Setup
|
|
287
|
+
|
|
288
|
+
**Scenario**: Large monolithic project with area-based organization
|
|
289
|
+
|
|
290
|
+
**Action**: Setup area paths for team organization
|
|
291
|
+
|
|
292
|
+
**What Happens**:
|
|
293
|
+
```bash
|
|
294
|
+
🔍 Validating Azure DevOps configuration...
|
|
295
|
+
|
|
296
|
+
Strategy: Area-path-based
|
|
297
|
+
Project: EnterpriseApp
|
|
298
|
+
Area Paths: Core, UserManagement, Billing, Reports, Analytics
|
|
299
|
+
|
|
300
|
+
Checking project: EnterpriseApp...
|
|
301
|
+
✅ Project exists
|
|
302
|
+
|
|
303
|
+
Checking area paths...
|
|
304
|
+
✅ EnterpriseApp\Core
|
|
305
|
+
✅ EnterpriseApp\UserManagement
|
|
306
|
+
⚠️ EnterpriseApp\Billing (not found)
|
|
307
|
+
⚠️ EnterpriseApp\Reports (not found)
|
|
308
|
+
⚠️ EnterpriseApp\Analytics (not found)
|
|
309
|
+
|
|
310
|
+
📦 Creating area paths...
|
|
311
|
+
|
|
312
|
+
Creating: EnterpriseApp\Billing
|
|
313
|
+
✅ Area path created with default team
|
|
314
|
+
|
|
315
|
+
Creating: EnterpriseApp\Reports
|
|
316
|
+
✅ Area path created with default team
|
|
317
|
+
|
|
318
|
+
Creating: EnterpriseApp\Analytics
|
|
319
|
+
✅ Area path created with default team
|
|
320
|
+
|
|
321
|
+
✅ All area paths ready!
|
|
322
|
+
|
|
323
|
+
Work items will be organized by area:
|
|
324
|
+
• Billing features → EnterpriseApp\Billing
|
|
325
|
+
• Report features → EnterpriseApp\Reports
|
|
326
|
+
• Analytics features → EnterpriseApp\Analytics
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Implementation Details
|
|
330
|
+
|
|
331
|
+
**Location**: `src/utils/external-resource-validator.ts`
|
|
332
|
+
|
|
333
|
+
**Core Classes**:
|
|
334
|
+
```typescript
|
|
335
|
+
// Main validator class
|
|
336
|
+
export class AzureDevOpsResourceValidator {
|
|
337
|
+
private pat: string;
|
|
338
|
+
private organization: string;
|
|
339
|
+
private envPath: string;
|
|
340
|
+
|
|
341
|
+
constructor(envPath: string = '.env') {
|
|
342
|
+
this.envPath = envPath;
|
|
343
|
+
const env = this.loadEnv();
|
|
344
|
+
this.pat = env.AZURE_DEVOPS_PAT || '';
|
|
345
|
+
this.organization = env.AZURE_DEVOPS_ORG || '';
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
// Main validation entry point
|
|
349
|
+
async validate(): Promise<AzureDevOpsValidationResult> {
|
|
350
|
+
const env = this.loadEnv();
|
|
351
|
+
const strategy = env.AZURE_DEVOPS_STRATEGY || 'project-per-team';
|
|
352
|
+
|
|
353
|
+
// Validate based on strategy
|
|
354
|
+
if (strategy === 'project-per-team') {
|
|
355
|
+
return this.validateMultipleProjects(projectNames);
|
|
356
|
+
} else if (strategy === 'area-path-based') {
|
|
357
|
+
return this.validateAreaPaths(projectName, areaPaths);
|
|
358
|
+
} else if (strategy === 'team-based') {
|
|
359
|
+
return this.validateTeams(projectName, teams);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// Public API function
|
|
365
|
+
export async function validateAzureDevOpsResources(
|
|
366
|
+
envPath: string = '.env'
|
|
367
|
+
): Promise<AzureDevOpsValidationResult> {
|
|
368
|
+
const validator = new AzureDevOpsResourceValidator(envPath);
|
|
369
|
+
return validator.validate();
|
|
370
|
+
}
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
**Key Implementation Features**:
|
|
374
|
+
|
|
375
|
+
1. **Async Project Creation** (ADO-specific):
|
|
376
|
+
```typescript
|
|
377
|
+
// ADO creates projects asynchronously - need to poll for completion
|
|
378
|
+
async createProject(name: string): Promise<AzureDevOpsProject> {
|
|
379
|
+
const result = await this.callAzureDevOpsApi('projects?api-version=7.0', 'POST', body);
|
|
380
|
+
|
|
381
|
+
// Wait for project to be fully created (ADO async behavior)
|
|
382
|
+
await this.waitForProjectCreation(result.id);
|
|
383
|
+
|
|
384
|
+
return { id: result.id, name, description };
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
// Poll until project is in 'wellFormed' state
|
|
388
|
+
private async waitForProjectCreation(projectId: string): Promise<void> {
|
|
389
|
+
const maxAttempts = 30; // 30 seconds max wait
|
|
390
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
391
|
+
const project = await this.getProject(projectId);
|
|
392
|
+
if (project.state === 'wellFormed') {
|
|
393
|
+
return; // Project is ready!
|
|
394
|
+
}
|
|
395
|
+
await new Promise(resolve => setTimeout(resolve, 1000)); // Wait 1 second
|
|
396
|
+
}
|
|
397
|
+
throw new Error('Project creation timeout');
|
|
398
|
+
}
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
2. **Interactive Prompts** (when resources missing):
|
|
402
|
+
```typescript
|
|
403
|
+
const { action } = await inquirer.prompt([
|
|
404
|
+
{
|
|
405
|
+
type: 'list',
|
|
406
|
+
name: 'action',
|
|
407
|
+
message: `Project "${projectName}" not found. What would you like to do?`,
|
|
408
|
+
choices: [
|
|
409
|
+
{ name: 'Create new project', value: 'create' },
|
|
410
|
+
{ name: 'Select existing project', value: 'select' },
|
|
411
|
+
{ name: 'Skip this project', value: 'skip' },
|
|
412
|
+
{ name: 'Cancel', value: 'cancel' }
|
|
413
|
+
]
|
|
414
|
+
}
|
|
415
|
+
]);
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
3. **Automatic .env Updates**:
|
|
419
|
+
```typescript
|
|
420
|
+
// After creating projects, update .env
|
|
421
|
+
updateEnv(key: string, value: string): void {
|
|
422
|
+
const envContent = fs.readFileSync(this.envPath, 'utf-8');
|
|
423
|
+
const updated = envContent.replace(
|
|
424
|
+
new RegExp(`^${key}=.*$`, 'm'),
|
|
425
|
+
`${key}=${value}`
|
|
426
|
+
);
|
|
427
|
+
fs.writeFileSync(this.envPath, updated);
|
|
428
|
+
}
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
## CLI Command
|
|
432
|
+
|
|
433
|
+
**Automatic validation** (during setup):
|
|
434
|
+
```bash
|
|
435
|
+
# Runs automatically during specweave init
|
|
436
|
+
npx specweave init
|
|
437
|
+
|
|
438
|
+
# Also runs automatically before sync
|
|
439
|
+
/specweave-ado:sync 0014
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
**Manual validation**:
|
|
443
|
+
```bash
|
|
444
|
+
# Via skill activation
|
|
445
|
+
"Can you validate my Azure DevOps configuration?"
|
|
446
|
+
|
|
447
|
+
# Via TypeScript directly
|
|
448
|
+
npx tsx -e "import { validateAzureDevOpsResources } from './dist/utils/external-resource-validator.js'; await validateAzureDevOpsResources();"
|
|
449
|
+
|
|
450
|
+
# Via CLI (future command - planned)
|
|
451
|
+
specweave validate-ado
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
**Validation output**:
|
|
455
|
+
```typescript
|
|
456
|
+
interface AzureDevOpsValidationResult {
|
|
457
|
+
valid: boolean;
|
|
458
|
+
strategy: 'project-per-team' | 'area-path-based' | 'team-based';
|
|
459
|
+
projects: Array<{
|
|
460
|
+
name: string;
|
|
461
|
+
id: string;
|
|
462
|
+
exists: boolean;
|
|
463
|
+
}>;
|
|
464
|
+
created: string[]; // Names of newly created resources
|
|
465
|
+
envUpdated: boolean; // Whether .env was modified
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
// Example output:
|
|
469
|
+
{
|
|
470
|
+
valid: true,
|
|
471
|
+
strategy: 'project-per-team',
|
|
472
|
+
projects: [
|
|
473
|
+
{ name: 'WebApp', id: 'proj-001', exists: true },
|
|
474
|
+
{ name: 'MobileApp', id: 'proj-002', exists: true, created: true },
|
|
475
|
+
{ name: 'Platform', id: 'proj-003', exists: true, created: true }
|
|
476
|
+
],
|
|
477
|
+
created: ['MobileApp', 'Platform'],
|
|
478
|
+
envUpdated: false
|
|
479
|
+
}
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
## Smart Project Detection
|
|
483
|
+
|
|
484
|
+
### Auto-detect Based on Work Item Patterns
|
|
485
|
+
|
|
486
|
+
The skill can intelligently suggest project organization based on your existing work items:
|
|
487
|
+
|
|
488
|
+
```typescript
|
|
489
|
+
// Analyze existing work items
|
|
490
|
+
const workItems = await analyzeWorkItems(org, project);
|
|
491
|
+
|
|
492
|
+
// Detect patterns
|
|
493
|
+
const patterns = {
|
|
494
|
+
byArea: workItems.groupBy('areaPath'), // Area-based organization
|
|
495
|
+
byTeam: workItems.groupBy('assignedTeam'), // Team-based organization
|
|
496
|
+
byType: workItems.groupBy('workItemType') // Type-based organization
|
|
497
|
+
};
|
|
498
|
+
|
|
499
|
+
// Suggest strategy
|
|
500
|
+
if (patterns.byArea.length > 3) {
|
|
501
|
+
console.log('💡 Detected area-based organization');
|
|
502
|
+
console.log(' Suggested strategy: area-path-based');
|
|
503
|
+
} else if (patterns.byTeam.length > 2) {
|
|
504
|
+
console.log('💡 Detected team-based organization');
|
|
505
|
+
console.log(' Suggested strategy: team-based or project-per-team');
|
|
506
|
+
}
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
## Project Creation API
|
|
510
|
+
|
|
511
|
+
**Azure DevOps REST API** (v7.0):
|
|
512
|
+
|
|
513
|
+
### Create Project
|
|
514
|
+
```bash
|
|
515
|
+
POST https://dev.azure.com/{org}/_apis/projects?api-version=7.0
|
|
516
|
+
Content-Type: application/json
|
|
517
|
+
Authorization: Basic {base64(":PAT")}
|
|
518
|
+
|
|
519
|
+
{
|
|
520
|
+
"name": "MobileApp",
|
|
521
|
+
"description": "Mobile application project",
|
|
522
|
+
"capabilities": {
|
|
523
|
+
"versioncontrol": {
|
|
524
|
+
"sourceControlType": "Git"
|
|
525
|
+
},
|
|
526
|
+
"processTemplate": {
|
|
527
|
+
"templateTypeId": "adcc42ab-9882-485e-a3ed-7678f01f66bc" # Agile
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
Response:
|
|
533
|
+
{
|
|
534
|
+
"id": "proj-002",
|
|
535
|
+
"name": "MobileApp",
|
|
536
|
+
"state": "wellFormed"
|
|
537
|
+
}
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
### Create Area Path
|
|
541
|
+
```bash
|
|
542
|
+
POST https://dev.azure.com/{org}/{project}/_apis/wit/classificationnodes/areas?api-version=7.0
|
|
543
|
+
Content-Type: application/json
|
|
544
|
+
|
|
545
|
+
{
|
|
546
|
+
"name": "Frontend",
|
|
547
|
+
"attributes": {
|
|
548
|
+
"startDate": null,
|
|
549
|
+
"finishDate": null
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
Response:
|
|
554
|
+
{
|
|
555
|
+
"id": 123,
|
|
556
|
+
"name": "Frontend",
|
|
557
|
+
"path": "\\MainProduct\\Area\\Frontend"
|
|
558
|
+
}
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
### Create Team
|
|
562
|
+
```bash
|
|
563
|
+
POST https://dev.azure.com/{org}/_apis/projects/{projectId}/teams?api-version=7.0
|
|
564
|
+
Content-Type: application/json
|
|
565
|
+
|
|
566
|
+
{
|
|
567
|
+
"name": "Alpha Team",
|
|
568
|
+
"description": "Alpha development team"
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
Response:
|
|
572
|
+
{
|
|
573
|
+
"id": "team-001",
|
|
574
|
+
"name": "Alpha Team",
|
|
575
|
+
"projectName": "MainProduct"
|
|
576
|
+
}
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
## Configuration Examples
|
|
580
|
+
|
|
581
|
+
### Example 1: Microservices Architecture (Project-per-team)
|
|
582
|
+
|
|
583
|
+
**Before** (`.env`):
|
|
584
|
+
```bash
|
|
585
|
+
AZURE_DEVOPS_ORG=mycompany
|
|
586
|
+
AZURE_DEVOPS_PAT=xxx
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
**After validation**:
|
|
590
|
+
```bash
|
|
591
|
+
AZURE_DEVOPS_ORG=mycompany
|
|
592
|
+
AZURE_DEVOPS_PAT=xxx
|
|
593
|
+
AZURE_DEVOPS_STRATEGY=project-per-team
|
|
594
|
+
AZURE_DEVOPS_PROJECTS=AuthService,UserService,PaymentService,NotificationService
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
**Folder structure created**:
|
|
598
|
+
```
|
|
599
|
+
.specweave/docs/internal/specs/
|
|
600
|
+
├── AuthService/
|
|
601
|
+
│ └── spec-001-oauth-implementation.md
|
|
602
|
+
├── UserService/
|
|
603
|
+
│ └── spec-001-user-management.md
|
|
604
|
+
├── PaymentService/
|
|
605
|
+
│ └── spec-001-stripe-integration.md
|
|
606
|
+
└── NotificationService/
|
|
607
|
+
└── spec-001-email-notifications.md
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
### Example 2: Monolithic Application (Area-path-based)
|
|
611
|
+
|
|
612
|
+
**Before** (`.env`):
|
|
613
|
+
```bash
|
|
614
|
+
AZURE_DEVOPS_PROJECT=ERP
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
**After validation**:
|
|
618
|
+
```bash
|
|
619
|
+
AZURE_DEVOPS_ORG=enterprise
|
|
620
|
+
AZURE_DEVOPS_PAT=xxx
|
|
621
|
+
AZURE_DEVOPS_STRATEGY=area-path-based
|
|
622
|
+
AZURE_DEVOPS_PROJECT=ERP
|
|
623
|
+
AZURE_DEVOPS_AREA_PATHS=Finance,HR,Inventory,Sales,Reports
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
**Work item organization**:
|
|
627
|
+
```
|
|
628
|
+
ERP
|
|
629
|
+
├── Finance/ → Finance module features
|
|
630
|
+
├── HR/ → HR module features
|
|
631
|
+
├── Inventory/ → Inventory management
|
|
632
|
+
├── Sales/ → Sales module features
|
|
633
|
+
└── Reports/ → Reporting features
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
### Example 3: Platform Teams (Team-based)
|
|
637
|
+
|
|
638
|
+
**Before** (`.env`):
|
|
639
|
+
```bash
|
|
640
|
+
AZURE_DEVOPS_PROJECT=Platform
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
**After validation**:
|
|
644
|
+
```bash
|
|
645
|
+
AZURE_DEVOPS_ORG=techcorp
|
|
646
|
+
AZURE_DEVOPS_PAT=xxx
|
|
647
|
+
AZURE_DEVOPS_STRATEGY=team-based
|
|
648
|
+
AZURE_DEVOPS_PROJECT=Platform
|
|
649
|
+
AZURE_DEVOPS_TEAMS=Infrastructure,Security,Data,DevOps
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
**Team assignments**:
|
|
653
|
+
- Infrastructure Team → Cloud resources, networking
|
|
654
|
+
- Security Team → Auth, compliance, auditing
|
|
655
|
+
- Data Team → Databases, analytics, ML
|
|
656
|
+
- DevOps Team → CI/CD, monitoring, tooling
|
|
657
|
+
|
|
658
|
+
## Error Handling
|
|
659
|
+
|
|
660
|
+
### Error 1: Invalid Credentials
|
|
661
|
+
|
|
662
|
+
**Symptom**: API calls fail with 401 Unauthorized
|
|
663
|
+
|
|
664
|
+
**Solution**:
|
|
665
|
+
```
|
|
666
|
+
❌ Azure DevOps API authentication failed
|
|
667
|
+
|
|
668
|
+
Please check:
|
|
669
|
+
1. AZURE_DEVOPS_PAT is correct
|
|
670
|
+
2. Token has not expired
|
|
671
|
+
3. AZURE_DEVOPS_ORG is correct
|
|
672
|
+
|
|
673
|
+
Generate new token at:
|
|
674
|
+
https://dev.azure.com/{org}/_usersSettings/tokens
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
### Error 2: Insufficient Permissions
|
|
678
|
+
|
|
679
|
+
**Symptom**: Cannot create projects (403 Forbidden)
|
|
680
|
+
|
|
681
|
+
**Solution**:
|
|
682
|
+
```
|
|
683
|
+
❌ Insufficient permissions to create projects
|
|
684
|
+
|
|
685
|
+
You need:
|
|
686
|
+
- Project Collection Administrator role (for creating projects)
|
|
687
|
+
- Project Administrator role (for area paths and teams)
|
|
688
|
+
|
|
689
|
+
Contact your Azure DevOps administrator to request permissions.
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
### Error 3: Project Name Conflicts
|
|
693
|
+
|
|
694
|
+
**Symptom**: Project creation fails (name exists)
|
|
695
|
+
|
|
696
|
+
**Solution**:
|
|
697
|
+
```
|
|
698
|
+
❌ Project name "WebApp" already exists
|
|
699
|
+
|
|
700
|
+
Options:
|
|
701
|
+
1. Use a different project name
|
|
702
|
+
2. Select the existing project
|
|
703
|
+
3. Add a suffix (e.g., WebApp-v2)
|
|
704
|
+
|
|
705
|
+
Your choice [2]:
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
### Error 4: Organization Limits
|
|
709
|
+
|
|
710
|
+
**Symptom**: Cannot create more projects
|
|
711
|
+
|
|
712
|
+
**Solution**:
|
|
713
|
+
```
|
|
714
|
+
❌ Organization project limit reached (250 projects)
|
|
715
|
+
|
|
716
|
+
Consider:
|
|
717
|
+
1. Using area-path-based strategy (one project)
|
|
718
|
+
2. Archiving old projects
|
|
719
|
+
3. Upgrading organization plan
|
|
720
|
+
|
|
721
|
+
Contact Azure DevOps support for limit increases.
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
## Integration with SpecWeave Workflow
|
|
725
|
+
|
|
726
|
+
### Automatic Validation
|
|
727
|
+
|
|
728
|
+
When using `/specweave-ado:sync`, validation runs automatically:
|
|
729
|
+
|
|
730
|
+
```bash
|
|
731
|
+
/specweave-ado:sync 0014
|
|
732
|
+
|
|
733
|
+
# Internally calls:
|
|
734
|
+
1. validateAzureDevOpsResources()
|
|
735
|
+
2. Fix missing projects/area paths/teams
|
|
736
|
+
3. Create folder structure for specs
|
|
737
|
+
4. Proceed with sync
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
### Manual Validation
|
|
741
|
+
|
|
742
|
+
Run validation independently:
|
|
743
|
+
|
|
744
|
+
```bash
|
|
745
|
+
# Via skill
|
|
746
|
+
"Validate my Azure DevOps configuration"
|
|
747
|
+
|
|
748
|
+
# Via TypeScript
|
|
749
|
+
npx tsx src/utils/external-resource-validator.ts --provider=ado
|
|
750
|
+
|
|
751
|
+
# Via CLI (future)
|
|
752
|
+
specweave validate-ado
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
## Best Practices
|
|
756
|
+
|
|
757
|
+
✅ **Choose the right strategy**:
|
|
758
|
+
- **Project-per-team**: Best for autonomous teams, microservices
|
|
759
|
+
- **Area-path-based**: Best for monolithic apps, shared codebase
|
|
760
|
+
- **Team-based**: Best for small organizations, simple structure
|
|
761
|
+
|
|
762
|
+
✅ **Use descriptive names**:
|
|
763
|
+
```bash
|
|
764
|
+
# Good
|
|
765
|
+
AZURE_DEVOPS_PROJECTS=UserManagement,PaymentProcessing,NotificationEngine
|
|
766
|
+
|
|
767
|
+
# Bad
|
|
768
|
+
AZURE_DEVOPS_PROJECTS=Proj1,Proj2,Proj3
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
✅ **Document project mapping** (in README):
|
|
772
|
+
```markdown
|
|
773
|
+
## Azure DevOps Projects
|
|
774
|
+
|
|
775
|
+
- UserManagement: User authentication and profile management
|
|
776
|
+
- PaymentProcessing: Payment gateway integrations
|
|
777
|
+
- NotificationEngine: Email, SMS, and push notifications
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
✅ **Keep .env in version control** (gitignored tokens):
|
|
781
|
+
```bash
|
|
782
|
+
# Commit project structure
|
|
783
|
+
AZURE_DEVOPS_STRATEGY=project-per-team
|
|
784
|
+
AZURE_DEVOPS_PROJECTS=WebApp,MobileApp,Platform
|
|
785
|
+
|
|
786
|
+
# Don't commit sensitive data
|
|
787
|
+
AZURE_DEVOPS_PAT=<redacted>
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
## Folder Organization
|
|
791
|
+
|
|
792
|
+
Based on strategy, the skill creates appropriate folder structure:
|
|
793
|
+
|
|
794
|
+
### Project-per-team Structure
|
|
795
|
+
```
|
|
796
|
+
.specweave/docs/internal/specs/
|
|
797
|
+
├── WebApp/
|
|
798
|
+
│ ├── spec-001-user-interface.md
|
|
799
|
+
│ └── spec-002-responsive-design.md
|
|
800
|
+
├── MobileApp/
|
|
801
|
+
│ ├── spec-001-ios-features.md
|
|
802
|
+
│ └── spec-002-android-features.md
|
|
803
|
+
└── Platform/
|
|
804
|
+
├── spec-001-api-design.md
|
|
805
|
+
└── spec-002-database-schema.md
|
|
806
|
+
```
|
|
807
|
+
|
|
808
|
+
### Area-path-based Structure
|
|
809
|
+
```
|
|
810
|
+
.specweave/docs/internal/specs/MainProduct/
|
|
811
|
+
├── Frontend/
|
|
812
|
+
│ └── spec-001-ui-components.md
|
|
813
|
+
├── Backend/
|
|
814
|
+
│ └── spec-001-api-endpoints.md
|
|
815
|
+
└── Mobile/
|
|
816
|
+
└── spec-001-mobile-sync.md
|
|
817
|
+
```
|
|
818
|
+
|
|
819
|
+
### Team-based Structure
|
|
820
|
+
```
|
|
821
|
+
.specweave/docs/internal/specs/MainProduct/
|
|
822
|
+
├── AlphaTeam/
|
|
823
|
+
│ └── spec-001-feature-a.md
|
|
824
|
+
├── BetaTeam/
|
|
825
|
+
│ └── spec-001-feature-b.md
|
|
826
|
+
└── GammaTeam/
|
|
827
|
+
└── spec-001-feature-c.md
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
## Key Differences from JIRA
|
|
831
|
+
|
|
832
|
+
**Azure DevOps vs JIRA Resource Creation**:
|
|
833
|
+
|
|
834
|
+
| Aspect | Azure DevOps | JIRA |
|
|
835
|
+
|--------|-------------|------|
|
|
836
|
+
| **Project Creation** | Asynchronous (polling required) | Synchronous (immediate) |
|
|
837
|
+
| **Creation Time** | 5-30 seconds | <1 second |
|
|
838
|
+
| **Status Tracking** | Poll `state` field ('wellFormed') | No polling needed |
|
|
839
|
+
| **API Complexity** | Higher (async handling) | Lower (sync operations) |
|
|
840
|
+
| **Board Creation** | Auto-created with project | Requires separate API call |
|
|
841
|
+
| **Process Templates** | Required (Agile, Scrum, CMMI) | Not applicable |
|
|
842
|
+
|
|
843
|
+
**Why Async Matters**:
|
|
844
|
+
|
|
845
|
+
When you create an ADO project, the API returns immediately with `state: 'new'`, but the project isn't usable yet. The validator polls every 1 second (max 30 attempts) until `state: 'wellFormed'`:
|
|
846
|
+
|
|
847
|
+
```typescript
|
|
848
|
+
// Create project (returns immediately)
|
|
849
|
+
const project = await createProject('MobileApp'); // state: 'new'
|
|
850
|
+
|
|
851
|
+
// Poll until ready
|
|
852
|
+
await waitForProjectCreation(project.id); // Polls until state: 'wellFormed'
|
|
853
|
+
|
|
854
|
+
// Now safe to use!
|
|
855
|
+
console.log('✅ Project ready for work items');
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
**Impact on UX**:
|
|
859
|
+
- JIRA: "✅ Project created" (instant)
|
|
860
|
+
- ADO: "📦 Creating project... ⏳ Waiting for Azure DevOps to complete setup... ✅ Project ready!" (5-30s)
|
|
861
|
+
|
|
862
|
+
## Summary
|
|
863
|
+
|
|
864
|
+
This skill ensures your Azure DevOps configuration is **always valid** by:
|
|
865
|
+
|
|
866
|
+
1. ✅ **Validating projects** - Check if projects exist, prompt to select or create
|
|
867
|
+
2. ✅ **Supporting multiple strategies** - Project-per-team, area-path-based, team-based
|
|
868
|
+
3. ✅ **Auto-creating resources** - Projects, area paths, teams (with async handling)
|
|
869
|
+
4. ✅ **Organizing specs** - Create folder structure based on projects
|
|
870
|
+
5. ✅ **Clear error messages** - Actionable guidance for all failures
|
|
871
|
+
6. ✅ **Handles ADO async behavior** - Polls for project creation completion
|
|
872
|
+
|
|
873
|
+
**Result**: Zero manual Azure DevOps setup - system handles everything, including ADO's async project creation!
|
|
874
|
+
|
|
875
|
+
---
|
|
876
|
+
|
|
877
|
+
**Skill Version**: 1.1.0
|
|
878
|
+
**Introduced**: SpecWeave v0.17.0
|
|
879
|
+
**Last Updated**: 2025-11-11
|
|
880
|
+
**Key Changes v1.1.0**: Added implementation details, async project creation handling, JIRA comparison
|