specweave 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CLAUDE.md +131 -144
- package/README.md +48 -21
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +21 -70
- package/dist/cli/commands/init.js.map +1 -1
- 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/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/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/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 +116 -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 +124 -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 +382 -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 +257 -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/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/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 +10 -0
- package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client.js +24 -0
- package/dist/plugins/specweave-github/lib/github-client.js.map +1 -1
- 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/index.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/index.js.map +1 -1
- 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.map +1 -1
- package/dist/plugins/specweave-github/lib/subtask-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/task-parser.js.map +1 -1
- package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/types.js.map +1 -1
- 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/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/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/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 +9 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +1205 -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 +350 -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.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/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/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.d.ts +65 -0
- package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/github.js +426 -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 +314 -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 +107 -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 +112 -0
- package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/utils.js +247 -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/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/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 +114 -0
- package/dist/src/core/increment/metadata-manager.d.ts.map +1 -0
- package/dist/src/core/increment/metadata-manager.js +320 -0
- package/dist/src/core/increment/metadata-manager.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-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 +127 -0
- package/dist/src/core/project-manager.d.ts.map +1 -0
- package/dist/src/core/project-manager.js +524 -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 +404 -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/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/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 +168 -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 +225 -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 +37 -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/sync-profile.d.ts +403 -0
- package/dist/src/core/types/sync-profile.d.ts.map +1 -0
- package/dist/src/core/types/sync-profile.js +55 -0
- package/dist/src/core/types/sync-profile.js.map +1 -0
- package/dist/src/hooks/lib/types/reflection-types.d.ts +125 -0
- package/dist/src/hooks/lib/types/reflection-types.d.ts.map +1 -0
- package/dist/src/hooks/lib/types/reflection-types.js +54 -0
- package/dist/src/hooks/lib/types/reflection-types.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.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 +403 -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 +102 -0
- package/dist/src/utils/external-resource-validator.d.ts.map +1 -0
- package/dist/src/utils/external-resource-validator.js +400 -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/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/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/plugin-validator.d.ts.map +1 -1
- package/dist/utils/plugin-validator.js +0 -7
- package/dist/utils/plugin-validator.js.map +1 -1
- package/package.json +3 -2
- package/plugins/specweave/agents/reflective-reviewer/AGENT.md +535 -0
- package/plugins/specweave/hooks/post-first-increment.sh +10 -28
- package/plugins/specweave/hooks/post-increment-planning.sh +261 -1
- package/plugins/specweave/hooks/post-task-completion.sh +26 -0
- package/plugins/specweave/lib/hooks/git-diff-analyzer.ts +269 -0
- package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +264 -0
- package/plugins/specweave/lib/hooks/prepare-reflection-context.ts +178 -0
- package/plugins/specweave/lib/hooks/reflection-config-loader.ts +156 -0
- package/plugins/specweave/lib/hooks/reflection-parser.ts +484 -0
- package/plugins/specweave/lib/hooks/reflection-prompt-builder.ts +306 -0
- package/plugins/specweave/lib/hooks/reflection-storage.ts +369 -0
- package/plugins/specweave/lib/hooks/run-self-reflection.ts +258 -0
- package/plugins/specweave/lib/hooks/sync-living-docs.ts +147 -0
- package/plugins/specweave/lib/hooks/translate-file.ts +428 -0
- package/plugins/specweave/lib/hooks/translate-living-docs.ts +224 -0
- package/plugins/specweave/lib/hooks/types/reflection-types.ts +193 -0
- package/plugins/specweave/lib/hooks/update-tasks-md.ts +256 -0
- package/plugins/specweave/skills/SKILLS-INDEX.md +2 -2
- package/plugins/specweave/skills/increment-planner/SKILL.md +8 -0
- package/plugins/specweave/skills/plugin-expert/SKILL.md +0 -4
- package/plugins/specweave/skills/plugin-installer/SKILL.md +19 -21
- package/plugins/specweave/skills/plugin-validator/SKILL.md +0 -1
- package/plugins/specweave/skills/project-kickstarter/SKILL.md +3 -3
- package/plugins/specweave/skills/spec-generator/SKILL.md +3 -3
- package/plugins/specweave-docs-preview/.claude-plugin/plugin.json +21 -0
- package/plugins/specweave-docs-preview/commands/build.md +489 -0
- package/plugins/specweave-docs-preview/commands/preview.md +330 -0
- package/plugins/specweave-docs-preview/skills/docs-preview/SKILL.md +386 -0
- package/plugins/specweave/skills/translator/SKILL.md.bak +0 -172
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for AI Self-Reflection System
|
|
3
|
+
* @module reflection-types
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Severity levels for identified issues
|
|
8
|
+
*/
|
|
9
|
+
export enum IssueSeverity {
|
|
10
|
+
CRITICAL = 'CRITICAL',
|
|
11
|
+
HIGH = 'HIGH',
|
|
12
|
+
MEDIUM = 'MEDIUM',
|
|
13
|
+
LOW = 'LOW'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Issue categories
|
|
18
|
+
*/
|
|
19
|
+
export enum IssueCategory {
|
|
20
|
+
SECURITY = 'SECURITY',
|
|
21
|
+
QUALITY = 'QUALITY',
|
|
22
|
+
TESTING = 'TESTING',
|
|
23
|
+
PERFORMANCE = 'PERFORMANCE',
|
|
24
|
+
TECHNICAL_DEBT = 'TECHNICAL_DEBT'
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Reflection depth modes
|
|
29
|
+
*/
|
|
30
|
+
export enum ReflectionDepth {
|
|
31
|
+
QUICK = 'quick', // <15s, critical issues only
|
|
32
|
+
STANDARD = 'standard', // <30s, full analysis (default)
|
|
33
|
+
DEEP = 'deep' // <60s, detailed + architectural
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* AI model selection for reflection
|
|
38
|
+
*/
|
|
39
|
+
export enum ReflectionModel {
|
|
40
|
+
HAIKU = 'haiku', // Fast, cheap (~$0.01/task)
|
|
41
|
+
SONNET = 'sonnet', // Balanced (~$0.05/task)
|
|
42
|
+
OPUS = 'opus' // Deep analysis (~$0.15/task)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Reflection execution mode
|
|
47
|
+
*/
|
|
48
|
+
export enum ReflectionMode {
|
|
49
|
+
AUTO = 'auto', // Automatic after task completion
|
|
50
|
+
MANUAL = 'manual', // User-triggered only
|
|
51
|
+
DISABLED = 'disabled' // Reflection disabled
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Issue identified during reflection
|
|
56
|
+
*/
|
|
57
|
+
export interface ReflectionIssue {
|
|
58
|
+
severity: IssueSeverity;
|
|
59
|
+
category: IssueCategory;
|
|
60
|
+
description: string;
|
|
61
|
+
impact: string;
|
|
62
|
+
recommendation: string;
|
|
63
|
+
location?: {
|
|
64
|
+
file: string;
|
|
65
|
+
line?: number;
|
|
66
|
+
snippet?: string;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Lesson learned from task execution
|
|
72
|
+
*/
|
|
73
|
+
export interface LessonLearned {
|
|
74
|
+
whatWentWell: string[];
|
|
75
|
+
whatCouldImprove: string[];
|
|
76
|
+
forNextTime: string[];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Quality metrics from reflection
|
|
81
|
+
*/
|
|
82
|
+
export interface ReflectionMetrics {
|
|
83
|
+
codeQuality: number; // 1-10 rating
|
|
84
|
+
security: number; // 1-10 rating
|
|
85
|
+
testCoverage?: number; // Percentage or null
|
|
86
|
+
technicalDebt: 'LOW' | 'MEDIUM' | 'HIGH';
|
|
87
|
+
performance: 'GOOD' | 'ACCEPTABLE' | 'NEEDS_WORK';
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Complete reflection result
|
|
92
|
+
*/
|
|
93
|
+
export interface ReflectionResult {
|
|
94
|
+
taskName: string;
|
|
95
|
+
completed: string; // ISO timestamp
|
|
96
|
+
duration?: string;
|
|
97
|
+
filesModified: {
|
|
98
|
+
count: number;
|
|
99
|
+
linesAdded: number;
|
|
100
|
+
linesRemoved: number;
|
|
101
|
+
};
|
|
102
|
+
accomplishments: string[];
|
|
103
|
+
strengths: string[];
|
|
104
|
+
issues: ReflectionIssue[];
|
|
105
|
+
recommendedActions: {
|
|
106
|
+
priority1: string[]; // MUST FIX
|
|
107
|
+
priority2: string[]; // SHOULD FIX
|
|
108
|
+
priority3: string[]; // NICE TO HAVE
|
|
109
|
+
};
|
|
110
|
+
lessonsLearned: LessonLearned;
|
|
111
|
+
metrics: ReflectionMetrics;
|
|
112
|
+
relatedTasks?: string[];
|
|
113
|
+
metadata: {
|
|
114
|
+
model: ReflectionModel;
|
|
115
|
+
reflectionTime: number; // seconds
|
|
116
|
+
estimatedCost: number; // USD
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Configuration for reflection system
|
|
122
|
+
*/
|
|
123
|
+
export interface ReflectionConfig {
|
|
124
|
+
enabled: boolean;
|
|
125
|
+
mode: ReflectionMode;
|
|
126
|
+
depth: ReflectionDepth;
|
|
127
|
+
model: ReflectionModel;
|
|
128
|
+
categories: {
|
|
129
|
+
security: boolean;
|
|
130
|
+
quality: boolean;
|
|
131
|
+
testing: boolean;
|
|
132
|
+
performance: boolean;
|
|
133
|
+
technicalDebt: boolean;
|
|
134
|
+
};
|
|
135
|
+
criticalThreshold: IssueSeverity;
|
|
136
|
+
storeReflections: boolean;
|
|
137
|
+
autoCreateFollowUpTasks: boolean;
|
|
138
|
+
soundNotifications?: boolean;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Git diff information for modified files
|
|
143
|
+
*/
|
|
144
|
+
export interface GitDiffInfo {
|
|
145
|
+
file: string;
|
|
146
|
+
linesAdded: number;
|
|
147
|
+
linesRemoved: number;
|
|
148
|
+
content: string;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Context for reflection execution
|
|
153
|
+
*/
|
|
154
|
+
export interface ReflectionContext {
|
|
155
|
+
incrementId: string;
|
|
156
|
+
taskId: string;
|
|
157
|
+
modifiedFiles: GitDiffInfo[];
|
|
158
|
+
config: ReflectionConfig;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Reflection execution result (success or failure)
|
|
163
|
+
*/
|
|
164
|
+
export interface ReflectionExecutionResult {
|
|
165
|
+
success: boolean;
|
|
166
|
+
result?: ReflectionResult;
|
|
167
|
+
error?: {
|
|
168
|
+
message: string;
|
|
169
|
+
code: string;
|
|
170
|
+
details?: any;
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Default reflection configuration
|
|
176
|
+
*/
|
|
177
|
+
export const DEFAULT_REFLECTION_CONFIG: ReflectionConfig = {
|
|
178
|
+
enabled: true,
|
|
179
|
+
mode: ReflectionMode.AUTO,
|
|
180
|
+
depth: ReflectionDepth.STANDARD,
|
|
181
|
+
model: ReflectionModel.HAIKU,
|
|
182
|
+
categories: {
|
|
183
|
+
security: true,
|
|
184
|
+
quality: true,
|
|
185
|
+
testing: true,
|
|
186
|
+
performance: true,
|
|
187
|
+
technicalDebt: true
|
|
188
|
+
},
|
|
189
|
+
criticalThreshold: IssueSeverity.MEDIUM,
|
|
190
|
+
storeReflections: true,
|
|
191
|
+
autoCreateFollowUpTasks: false,
|
|
192
|
+
soundNotifications: false
|
|
193
|
+
};
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* SpecWeave Tasks.md Auto-Updater
|
|
5
|
+
*
|
|
6
|
+
* Automatically updates tasks.md completion status after TodoWrite completes tasks.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* node dist/hooks/lib/update-tasks-md.js <incrementId>
|
|
10
|
+
*
|
|
11
|
+
* Example:
|
|
12
|
+
* node dist/hooks/lib/update-tasks-md.js 0006-llm-native-i18n
|
|
13
|
+
*
|
|
14
|
+
* What it does:
|
|
15
|
+
* 1. Reads tasks.md for the given increment
|
|
16
|
+
* 2. Finds recently completed tasks from TodoWrite
|
|
17
|
+
* 3. Updates "[ ]" to "[x]" for completed tasks
|
|
18
|
+
* 4. Updates "Status: ⏳ Pending" to "Status: [x] Completed"
|
|
19
|
+
* 5. Recalculates progress percentage
|
|
20
|
+
* 6. Writes back to tasks.md
|
|
21
|
+
*
|
|
22
|
+
* @author SpecWeave Team
|
|
23
|
+
* @version 1.0.0
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import fs from 'fs-extra';
|
|
27
|
+
import path from 'path';
|
|
28
|
+
|
|
29
|
+
interface TaskMatch {
|
|
30
|
+
taskId: string;
|
|
31
|
+
lineNumber: number;
|
|
32
|
+
currentStatus: 'pending' | 'in_progress' | 'completed';
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Main function - update tasks.md for given increment
|
|
37
|
+
*/
|
|
38
|
+
async function updateTasksMd(incrementId: string): Promise<void> {
|
|
39
|
+
try {
|
|
40
|
+
console.log(`\n🔄 Updating tasks.md for increment: ${incrementId}`);
|
|
41
|
+
|
|
42
|
+
// 1. Validate increment exists
|
|
43
|
+
const incrementDir = path.join(process.cwd(), '.specweave', 'increments', incrementId);
|
|
44
|
+
if (!fs.existsSync(incrementDir)) {
|
|
45
|
+
console.error(`❌ Increment directory not found: ${incrementDir}`);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const tasksPath = path.join(incrementDir, 'tasks.md');
|
|
50
|
+
if (!fs.existsSync(tasksPath)) {
|
|
51
|
+
console.error(`❌ tasks.md not found: ${tasksPath}`);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// 2. Read tasks.md
|
|
56
|
+
const originalContent = await fs.readFile(tasksPath, 'utf-8');
|
|
57
|
+
const lines = originalContent.split('\n');
|
|
58
|
+
|
|
59
|
+
console.log(`📖 Read tasks.md (${lines.length} lines)`);
|
|
60
|
+
|
|
61
|
+
// 3. Parse task completion status
|
|
62
|
+
const tasks = parseTaskStatus(lines);
|
|
63
|
+
console.log(`📋 Found ${tasks.length} tasks`);
|
|
64
|
+
|
|
65
|
+
// 4. Get recently completed tasks from environment (passed by hook)
|
|
66
|
+
// For now, we'll mark tasks as complete if they match a heuristic
|
|
67
|
+
// TODO: In future, hook will pass completed task IDs via env var
|
|
68
|
+
const completedTasks = detectCompletedTasks(lines);
|
|
69
|
+
|
|
70
|
+
if (completedTasks.length === 0) {
|
|
71
|
+
console.log('✅ No new task completions detected');
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
console.log(`🎯 Detected ${completedTasks.length} completed task(s):`, completedTasks);
|
|
76
|
+
|
|
77
|
+
// 5. Update task status in content
|
|
78
|
+
let updatedContent = originalContent;
|
|
79
|
+
|
|
80
|
+
for (const taskId of completedTasks) {
|
|
81
|
+
updatedContent = markTaskComplete(updatedContent, taskId);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// 6. Recalculate progress
|
|
85
|
+
const updatedLines = updatedContent.split('\n');
|
|
86
|
+
const totalTasks = countTotalTasks(updatedLines);
|
|
87
|
+
const completedCount = countCompletedTasks(updatedLines);
|
|
88
|
+
const progress = Math.round((completedCount / totalTasks) * 100);
|
|
89
|
+
|
|
90
|
+
console.log(`📊 Progress: ${completedCount}/${totalTasks} (${progress}%)`);
|
|
91
|
+
|
|
92
|
+
// 7. Update header with new progress
|
|
93
|
+
updatedContent = updateProgressHeader(updatedContent, completedCount, totalTasks, progress);
|
|
94
|
+
|
|
95
|
+
// 8. Write back to tasks.md
|
|
96
|
+
await fs.writeFile(tasksPath, updatedContent, 'utf-8');
|
|
97
|
+
|
|
98
|
+
console.log(`✅ Updated ${tasksPath}`);
|
|
99
|
+
console.log(` Completed: ${completedCount}/${totalTasks}`);
|
|
100
|
+
console.log(` Progress: ${progress}%\n`);
|
|
101
|
+
|
|
102
|
+
} catch (error) {
|
|
103
|
+
console.error('❌ Error updating tasks.md:', error);
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Parse task status from lines
|
|
110
|
+
*/
|
|
111
|
+
function parseTaskStatus(lines: string[]): TaskMatch[] {
|
|
112
|
+
const tasks: TaskMatch[] = [];
|
|
113
|
+
const taskPattern = /^###\s+(T-?\d+[-A-Z]*):?\s+(.+)/; // Matches "### T-001: Task Name" or "### T-001-DISCIPLINE:"
|
|
114
|
+
|
|
115
|
+
lines.forEach((line, index) => {
|
|
116
|
+
const match = line.match(taskPattern);
|
|
117
|
+
if (match) {
|
|
118
|
+
const taskId = match[1];
|
|
119
|
+
|
|
120
|
+
// Look ahead for status line
|
|
121
|
+
let status: 'pending' | 'in_progress' | 'completed' = 'pending';
|
|
122
|
+
|
|
123
|
+
for (let i = index + 1; i < Math.min(index + 5, lines.length); i++) {
|
|
124
|
+
const nextLine = lines[i];
|
|
125
|
+
if (nextLine.includes('**Status**:')) {
|
|
126
|
+
if (nextLine.includes('[x] Completed')) {
|
|
127
|
+
status = 'completed';
|
|
128
|
+
} else if (nextLine.includes('⏳ Pending') || nextLine.includes('[ ] Pending')) {
|
|
129
|
+
status = 'pending';
|
|
130
|
+
} else if (nextLine.includes('🔄 In Progress') || nextLine.includes('in_progress')) {
|
|
131
|
+
status = 'in_progress';
|
|
132
|
+
}
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
tasks.push({
|
|
138
|
+
taskId,
|
|
139
|
+
lineNumber: index,
|
|
140
|
+
currentStatus: status,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
return tasks;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Detect which tasks are completed (heuristic-based for now)
|
|
150
|
+
* TODO: In future, hook will pass completed task IDs via env var
|
|
151
|
+
*/
|
|
152
|
+
function detectCompletedTasks(lines: string[]): string[] {
|
|
153
|
+
// For now, this is a placeholder - we'll mark tasks as complete
|
|
154
|
+
// if they have implementation sections or "COMPLETE" markers
|
|
155
|
+
const completedTasks: string[] = [];
|
|
156
|
+
|
|
157
|
+
// This function will be enhanced in future versions
|
|
158
|
+
// For MVP, we'll rely on manual marking in tasks.md
|
|
159
|
+
|
|
160
|
+
return completedTasks;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Mark a specific task as complete
|
|
165
|
+
*/
|
|
166
|
+
function markTaskComplete(content: string, taskId: string): string {
|
|
167
|
+
let updated = content;
|
|
168
|
+
|
|
169
|
+
// Pattern: "**Status**: [ ] Pending" or "**Status**: ⏳ Pending"
|
|
170
|
+
const statusPattern = new RegExp(
|
|
171
|
+
`(###\\s+${taskId.replace(/[-]/g, '\\-')}[^\\n]*[\\s\\S]*?\\*\\*Status\\*\\*:)\\s*\\[?\\s*\\]?\\s*⏳?\\s*Pending`,
|
|
172
|
+
'i'
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
updated = updated.replace(statusPattern, '$1 [x] Completed');
|
|
176
|
+
|
|
177
|
+
return updated;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Count total tasks
|
|
182
|
+
*/
|
|
183
|
+
function countTotalTasks(lines: string[]): number {
|
|
184
|
+
let count = 0;
|
|
185
|
+
const taskPattern = /^###\s+(T-?\d+[-A-Z]*):?\s+/;
|
|
186
|
+
|
|
187
|
+
for (const line of lines) {
|
|
188
|
+
if (taskPattern.test(line)) {
|
|
189
|
+
count++;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return count;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Count completed tasks
|
|
198
|
+
*/
|
|
199
|
+
function countCompletedTasks(lines: string[]): number {
|
|
200
|
+
let count = 0;
|
|
201
|
+
const taskPattern = /^###\s+(T-?\d+[-A-Z]*):?\s+/;
|
|
202
|
+
|
|
203
|
+
for (let i = 0; i < lines.length; i++) {
|
|
204
|
+
const line = lines[i];
|
|
205
|
+
if (taskPattern.test(line)) {
|
|
206
|
+
// Look ahead for status line
|
|
207
|
+
for (let j = i + 1; j < Math.min(i + 5, lines.length); j++) {
|
|
208
|
+
const nextLine = lines[j];
|
|
209
|
+
if (nextLine.includes('**Status**:') && nextLine.includes('[x] Completed')) {
|
|
210
|
+
count++;
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return count;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Update progress header
|
|
222
|
+
*/
|
|
223
|
+
function updateProgressHeader(content: string, completed: number, total: number, progress: number): string {
|
|
224
|
+
let updated = content;
|
|
225
|
+
|
|
226
|
+
// Update "**Completed**: X"
|
|
227
|
+
updated = updated.replace(/\*\*Completed\*\*:\s*\d+/, `**Completed**: ${completed}`);
|
|
228
|
+
|
|
229
|
+
// Update "**Progress**: X%"
|
|
230
|
+
updated = updated.replace(/\*\*Progress\*\*:\s*\d+%/, `**Progress**: ${progress}%`);
|
|
231
|
+
|
|
232
|
+
// Update "**Total Tasks**: X"
|
|
233
|
+
updated = updated.replace(/\*\*Total Tasks\*\*:\s*\d+/, `**Total Tasks**: ${total}`);
|
|
234
|
+
|
|
235
|
+
return updated;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// CLI entry point
|
|
239
|
+
const isMainModule = import.meta.url === `file://${process.argv[1]}`;
|
|
240
|
+
|
|
241
|
+
if (isMainModule) {
|
|
242
|
+
const incrementId = process.argv[2];
|
|
243
|
+
|
|
244
|
+
if (!incrementId) {
|
|
245
|
+
console.error('❌ Usage: update-tasks-md <incrementId>');
|
|
246
|
+
console.error(' Example: update-tasks-md 0006-llm-native-i18n');
|
|
247
|
+
process.exit(1);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
updateTasksMd(incrementId).catch((error) => {
|
|
251
|
+
console.error('❌ Fatal error:', error);
|
|
252
|
+
process.exit(1);
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export { updateTasksMd };
|
|
@@ -39,9 +39,9 @@ Step 4: Execute → Follow the increment planning workflow
|
|
|
39
39
|
|
|
40
40
|
#### plugin-installer
|
|
41
41
|
|
|
42
|
-
**Description**: Proactive just-in-time plugin installation. Auto-detects when specialized plugins are needed (
|
|
42
|
+
**Description**: Proactive just-in-time plugin installation. Auto-detects when specialized plugins are needed (frontend, kubernetes, ML, payments, testing, etc.) and installs them automatically before use. Activates for React, Next.js, K8s, Kubernetes, Helm, TensorFlow, PyTorch, ML model, Stripe, billing, payment, Playwright, E2E testing, Figma, design system, ADO, Azure DevOps, infrastructure, Prometheus, Grafana, monitoring, Node.js, Python backend, REST API, cloud deployment, diagram, Mermaid, C4, architecture diagram.
|
|
43
43
|
|
|
44
|
-
**Activates for**:
|
|
44
|
+
**Activates for**: React, Next.js, frontend, UI component, K8s, Kubernetes, deploy, TensorFlow, ML model, Stripe, billing, E2E testing, Figma, diagram, architecture diagram
|
|
45
45
|
|
|
46
46
|
**Location**: `.claude/skills/plugin-installer/SKILL.md`
|
|
47
47
|
|
|
@@ -72,6 +72,14 @@ Use this skill when:
|
|
|
72
72
|
- **Experiments**: Structuring POCs and technical spikes
|
|
73
73
|
- **Brownfield**: Structuring modifications to existing codebases
|
|
74
74
|
|
|
75
|
+
## When NOT to Use This Skill
|
|
76
|
+
|
|
77
|
+
Do NOT activate if:
|
|
78
|
+
- ❌ User is asking general questions about SpecWeave (use documentation instead)
|
|
79
|
+
- ❌ Another skill (e.g., `project-kickstarter`) is already handling the request
|
|
80
|
+
- ❌ User is already in an active increment planning workflow
|
|
81
|
+
- ❌ Increment files (spec.md, plan.md, tasks.md) are currently being created
|
|
82
|
+
|
|
75
83
|
## Activation Triggers
|
|
76
84
|
|
|
77
85
|
This skill activates automatically when users say:
|
|
@@ -178,10 +178,6 @@ For contributors working on SpecWeave itself:
|
|
|
178
178
|
- Install: `/plugin install specweave-diagrams`
|
|
179
179
|
- Provides: Architecture diagram generation, C4 model support
|
|
180
180
|
|
|
181
|
-
- **specweave-docs-preview** - Docusaurus documentation preview
|
|
182
|
-
- Install: `/plugin install specweave-docs-preview`
|
|
183
|
-
- Provides: Beautiful docs UI, hot reload, Mermaid rendering
|
|
184
|
-
|
|
185
181
|
---
|
|
186
182
|
|
|
187
183
|
## Common Mistakes to Avoid
|
|
@@ -40,8 +40,6 @@ description: DEPRECATED - This skill is no longer needed. All plugins are now in
|
|
|
40
40
|
|
|
41
41
|
| User Keywords | Required Plugin | Installation Command |
|
|
42
42
|
|--------------|----------------|---------------------|
|
|
43
|
-
| **Documentation Preview** |
|
|
44
|
-
| "preview docs", "browse docs locally", "documentation UI", "Docusaurus server", "local docs preview" | `specweave-docs-preview` | `/plugin install specweave-docs-preview` |
|
|
45
43
|
| **Frontend Development** |
|
|
46
44
|
| "React", "Next.js", "Vue", "Angular", "frontend", "UI component", "design system", "Tailwind" | `specweave-frontend` | `/plugin install specweave-frontend` |
|
|
47
45
|
| **Kubernetes/DevOps** |
|
|
@@ -77,10 +75,10 @@ When user mentions keywords from the map above, **IMMEDIATELY** check if the req
|
|
|
77
75
|
|
|
78
76
|
**Example**:
|
|
79
77
|
```
|
|
80
|
-
User: "Can you
|
|
78
|
+
User: "Can you help me build a React component?"
|
|
81
79
|
|
|
82
|
-
Keywords detected: "
|
|
83
|
-
→ Required plugin: specweave-
|
|
80
|
+
Keywords detected: "React", "component"
|
|
81
|
+
→ Required plugin: specweave-frontend
|
|
84
82
|
```
|
|
85
83
|
|
|
86
84
|
### Step 2: Check if Plugin is Installed
|
|
@@ -101,7 +99,7 @@ If the plugin is NOT installed:
|
|
|
101
99
|
/plugin install <plugin-name>
|
|
102
100
|
|
|
103
101
|
# Example:
|
|
104
|
-
/plugin install specweave-
|
|
102
|
+
/plugin install specweave-frontend
|
|
105
103
|
```
|
|
106
104
|
|
|
107
105
|
### Step 4: Notify User (Clear and Friendly)
|
|
@@ -123,9 +121,9 @@ Proceeding with your request...
|
|
|
123
121
|
**Example**:
|
|
124
122
|
|
|
125
123
|
```
|
|
126
|
-
🔌 Detected need for specweave-
|
|
124
|
+
🔌 Detected need for specweave-frontend plugin
|
|
127
125
|
|
|
128
|
-
📦 Installing specweave-
|
|
126
|
+
📦 Installing specweave-frontend...
|
|
129
127
|
This plugin provides: Beautiful Docusaurus UI for browsing .specweave/docs/
|
|
130
128
|
|
|
131
129
|
✅ Plugin installed successfully!
|
|
@@ -145,25 +143,25 @@ Proceeding to launch docs preview server...
|
|
|
145
143
|
|
|
146
144
|
## Common Scenarios
|
|
147
145
|
|
|
148
|
-
### Scenario 1:
|
|
146
|
+
### Scenario 1: React Component Development
|
|
149
147
|
|
|
150
|
-
**User Request**: "
|
|
148
|
+
**User Request**: "Build a React component with TypeScript"
|
|
151
149
|
|
|
152
150
|
**Workflow**:
|
|
153
151
|
```
|
|
154
|
-
1. Detect keywords: "
|
|
155
|
-
→ Required: specweave-
|
|
152
|
+
1. Detect keywords: "React", "component", "TypeScript"
|
|
153
|
+
→ Required: specweave-frontend
|
|
156
154
|
|
|
157
155
|
2. Check installed: /plugin list --installed
|
|
158
156
|
→ Not found
|
|
159
157
|
|
|
160
|
-
3. Install: /plugin install specweave-
|
|
158
|
+
3. Install: /plugin install specweave-frontend
|
|
161
159
|
|
|
162
160
|
4. Notify user:
|
|
163
|
-
🔌 Installing specweave-
|
|
161
|
+
🔌 Installing specweave-frontend for React development...
|
|
164
162
|
✅ Installed!
|
|
165
163
|
|
|
166
|
-
5.
|
|
164
|
+
5. Create component using frontend skills
|
|
167
165
|
```
|
|
168
166
|
|
|
169
167
|
### Scenario 2: Kubernetes Deployment
|
|
@@ -280,16 +278,16 @@ When increment-planner detects plugin requirements (Step 6), it should:
|
|
|
280
278
|
3. **Auto-install missing plugins** (via this skill)
|
|
281
279
|
4. **Then proceed** with increment planning
|
|
282
280
|
|
|
283
|
-
### Example:
|
|
281
|
+
### Example: frontend skill (hypothetical)
|
|
284
282
|
|
|
285
283
|
```markdown
|
|
286
|
-
# BEFORE using
|
|
284
|
+
# BEFORE using React features:
|
|
287
285
|
|
|
288
|
-
1. Check if specweave-
|
|
286
|
+
1. Check if specweave-frontend is installed
|
|
289
287
|
→ If not: Invoke plugin-installer skill
|
|
290
|
-
→ Auto-install specweave-
|
|
288
|
+
→ Auto-install specweave-frontend
|
|
291
289
|
|
|
292
|
-
2. Then
|
|
290
|
+
2. Then proceed with component creation
|
|
293
291
|
```
|
|
294
292
|
|
|
295
293
|
---
|
|
@@ -311,7 +309,7 @@ When increment-planner detects plugin requirements (Step 6), it should:
|
|
|
311
309
|
User: "Show me the internal documentation in a browser"
|
|
312
310
|
|
|
313
311
|
Expected:
|
|
314
|
-
1. Detects "
|
|
312
|
+
1. Detects "React", "component" → specweave-frontend
|
|
315
313
|
2. Checks installed
|
|
316
314
|
3. Auto-installs if missing
|
|
317
315
|
4. Launches preview
|
|
@@ -92,7 +92,6 @@ This skill ensures that your SpecWeave environment is properly configured with a
|
|
|
92
92
|
- **specweave-backend-nodejs**: nodejs, express, fastify, nestjs, backend
|
|
93
93
|
- **specweave-backend-python**: python, fastapi, django, flask
|
|
94
94
|
- **specweave-backend-dotnet**: dotnet, .net, aspnet, c#
|
|
95
|
-
- **specweave-docs-preview**: documentation, docs, preview, docusaurus
|
|
96
95
|
- **specweave-e2e-testing**: playwright, e2e, end-to-end, browser
|
|
97
96
|
|
|
98
97
|
## Usage Examples
|
|
@@ -115,7 +115,7 @@ Let's start: [Ask 1 clarifying question if needed, otherwise proceed]"
|
|
|
115
115
|
|
|
116
116
|
Once I have these details, I'll guide you through SpecWeave's increment planning process."
|
|
117
117
|
|
|
118
|
-
[Wait for response, then route to
|
|
118
|
+
[Wait for response, then route to the planning workflow]
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
**Low Confidence:**
|
|
@@ -331,8 +331,8 @@ User message → specweave-detector (checks .specweave/ exists)
|
|
|
331
331
|
**Calls:**
|
|
332
332
|
- `specweave-detector` - Checks if .specweave/ directory exists (SpecWeave context)
|
|
333
333
|
- `/specweave:inc` - For clear requirements (high confidence)
|
|
334
|
-
-
|
|
335
|
-
-
|
|
334
|
+
- Spec-driven brainstorming - For unclear requirements (medium confidence)
|
|
335
|
+
- Planning workflow - Directly if enough detail provided
|
|
336
336
|
|
|
337
337
|
**Called By:**
|
|
338
338
|
- Automatically when pattern detected in SpecWeave folder
|
|
@@ -350,9 +350,9 @@ spec_generator:
|
|
|
350
350
|
|
|
351
351
|
## Related Skills
|
|
352
352
|
|
|
353
|
-
- **
|
|
354
|
-
- **
|
|
355
|
-
- **
|
|
353
|
+
- **Planning workflow**: Guides increment planning (uses Spec Generator internally)
|
|
354
|
+
- **Context loading**: Loads relevant context for specification generation
|
|
355
|
+
- **Quality validation**: Validates generated specifications for completeness
|
|
356
356
|
|
|
357
357
|
---
|
|
358
358
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "specweave-docs-preview",
|
|
3
|
+
"description": "Interactive documentation preview with Docusaurus. Launch local dev server to view living documentation in beautiful UI with hot reload, auto-generated sidebar, and Mermaid diagrams. Build static sites for deployment.",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "SpecWeave Team",
|
|
7
|
+
"url": "https://spec-weave.com"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://spec-weave.com",
|
|
10
|
+
"repository": "https://github.com/anton-abyzov/specweave",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"docusaurus",
|
|
14
|
+
"documentation",
|
|
15
|
+
"preview",
|
|
16
|
+
"docs-server",
|
|
17
|
+
"hot-reload",
|
|
18
|
+
"static-site",
|
|
19
|
+
"specweave"
|
|
20
|
+
]
|
|
21
|
+
}
|