specweave 0.4.0 → 0.6.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/README.md +325 -0
- package/.claude-plugin/marketplace.json +210 -0
- package/CLAUDE.md +1000 -252
- package/README.md +273 -180
- package/bin/install-agents.sh +1 -1
- package/bin/install-commands.sh +66 -14
- package/bin/install-hooks.sh +1 -1
- package/bin/install-skills.sh +1 -1
- package/bin/specweave.js +18 -0
- package/dist/adapters/adapter-base.d.ts +21 -0
- package/dist/adapters/adapter-base.d.ts.map +1 -1
- package/dist/adapters/adapter-base.js +28 -0
- package/dist/adapters/adapter-base.js.map +1 -1
- package/dist/adapters/adapter-interface.d.ts +41 -0
- package/dist/adapters/adapter-interface.d.ts.map +1 -1
- package/dist/adapters/claude/adapter.d.ts +85 -11
- package/dist/adapters/claude/adapter.d.ts.map +1 -1
- package/dist/adapters/claude/adapter.js +305 -37
- package/dist/adapters/claude/adapter.js.map +1 -1
- package/dist/adapters/copilot/adapter.d.ts +45 -2
- package/dist/adapters/copilot/adapter.d.ts.map +1 -1
- package/dist/adapters/copilot/adapter.js +226 -4
- package/dist/adapters/copilot/adapter.js.map +1 -1
- package/dist/adapters/cursor/adapter.d.ts +54 -0
- package/dist/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/adapters/cursor/adapter.js +192 -0
- package/dist/adapters/cursor/adapter.js.map +1 -1
- package/dist/adapters/generic/adapter.d.ts +43 -0
- package/dist/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/adapters/generic/adapter.js +163 -0
- package/dist/adapters/generic/adapter.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +392 -123
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts +2 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +28 -25
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list.d.ts +2 -0
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +26 -24
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts +43 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +307 -0
- package/dist/cli/commands/plugin.js.map +1 -0
- package/dist/core/i18n/language-detector.d.ts +29 -0
- package/dist/core/i18n/language-detector.d.ts.map +1 -0
- package/dist/core/i18n/language-detector.js +143 -0
- package/dist/core/i18n/language-detector.js.map +1 -0
- package/dist/core/i18n/language-manager.d.ts +101 -0
- package/dist/core/i18n/language-manager.d.ts.map +1 -0
- package/dist/core/i18n/language-manager.js +232 -0
- package/dist/core/i18n/language-manager.js.map +1 -0
- package/dist/core/i18n/language-registry.d.ts +44 -0
- package/dist/core/i18n/language-registry.d.ts.map +1 -0
- package/dist/core/i18n/language-registry.js +234 -0
- package/dist/core/i18n/language-registry.js.map +1 -0
- package/dist/core/i18n/locale-manager.d.ts +62 -0
- package/dist/core/i18n/locale-manager.d.ts.map +1 -0
- package/dist/core/i18n/locale-manager.js +137 -0
- package/dist/core/i18n/locale-manager.js.map +1 -0
- package/dist/core/i18n/system-prompt-injector.d.ts +33 -0
- package/dist/core/i18n/system-prompt-injector.d.ts.map +1 -0
- package/dist/core/i18n/system-prompt-injector.js +131 -0
- package/dist/core/i18n/system-prompt-injector.js.map +1 -0
- package/dist/core/i18n/types.d.ts +151 -0
- package/dist/core/i18n/types.d.ts.map +1 -0
- package/dist/core/i18n/types.js +11 -0
- package/dist/core/i18n/types.js.map +1 -0
- package/dist/core/increment-status.d.ts +72 -0
- package/dist/core/increment-status.d.ts.map +1 -0
- package/dist/core/increment-status.js +227 -0
- package/dist/core/increment-status.js.map +1 -0
- package/dist/core/plugin-detector.d.ts +96 -0
- package/dist/core/plugin-detector.d.ts.map +1 -0
- package/dist/core/plugin-detector.js +349 -0
- package/dist/core/plugin-detector.js.map +1 -0
- package/dist/core/plugin-loader.d.ts +131 -0
- package/dist/core/plugin-loader.d.ts.map +1 -0
- package/dist/core/plugin-loader.js +421 -0
- package/dist/core/plugin-loader.js.map +1 -0
- package/dist/core/plugin-manager.d.ts +144 -0
- package/dist/core/plugin-manager.d.ts.map +1 -0
- package/dist/core/plugin-manager.js +393 -0
- package/dist/core/plugin-manager.js.map +1 -0
- package/dist/core/schemas/plugin-manifest.schema.json +253 -0
- package/dist/core/types/config.d.ts +51 -0
- package/dist/core/types/config.d.ts.map +1 -0
- package/dist/core/types/config.js +21 -0
- package/dist/core/types/config.js.map +1 -0
- package/dist/core/types/plugin.d.ts +283 -0
- package/dist/core/types/plugin.d.ts.map +1 -0
- package/dist/core/types/plugin.js +49 -0
- package/dist/core/types/plugin.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-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 +166 -0
- package/dist/hooks/lib/translate-living-docs.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/integrations/jira/jira-incremental-mapper.js.map +1 -1
- package/dist/integrations/jira/jira-mapper.d.ts +2 -2
- package/dist/integrations/jira/jira-mapper.js +2 -2
- package/dist/integrations/jira/jira-mapper.js.map +1 -1
- package/dist/locales/de/.gitkeep +0 -0
- package/dist/locales/de/cli.json +108 -0
- package/dist/locales/en/cli.json +269 -0
- package/dist/locales/en/errors.json +7 -0
- package/dist/locales/en/templates.json +6 -0
- package/dist/locales/es/.gitkeep +0 -0
- package/dist/locales/es/cli.json +41 -0
- package/dist/locales/fr/.gitkeep +0 -0
- package/dist/locales/fr/cli.json +108 -0
- package/dist/locales/ja/.gitkeep +0 -0
- package/dist/locales/ja/cli.json +108 -0
- package/dist/locales/ko/.gitkeep +0 -0
- package/dist/locales/ko/cli.json +108 -0
- package/dist/locales/pt/.gitkeep +0 -0
- package/dist/locales/pt/cli.json +108 -0
- package/dist/locales/ru/.gitkeep +0 -0
- package/dist/locales/ru/cli.json +269 -0
- package/dist/locales/zh/.gitkeep +0 -0
- package/dist/locales/zh/cli.json +108 -0
- package/dist/plugins/specweave-github/lib/github-client.d.ts +86 -0
- package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-client.js +275 -0
- package/dist/plugins/specweave-github/lib/github-client.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/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/utils/agents-md-compiler.d.ts +68 -0
- package/dist/utils/agents-md-compiler.d.ts.map +1 -0
- package/dist/utils/agents-md-compiler.js +420 -0
- package/dist/utils/agents-md-compiler.js.map +1 -0
- package/dist/utils/generate-skills-index.js +4 -4
- package/dist/utils/generate-skills-index.js.map +1 -1
- package/package.json +24 -21
- package/plugins/specweave-ado/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-alternatives/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/SKILL.md +626 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/check-setup.js +208 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
- package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
- package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +1010 -0
- package/plugins/specweave-backend/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-core/.claude-plugin/plugin.json +25 -0
- package/{src → plugins/specweave-core}/agents/pm/AGENT.md +80 -0
- package/plugins/specweave-core/agents/translator/AGENT.md +282 -0
- package/{src → plugins/specweave-core}/commands/README.md +11 -11
- package/{src → plugins/specweave-core}/commands/specweave.costs.md +7 -7
- package/{src → plugins/specweave-core}/commands/specweave.do.md +34 -7
- package/{src → plugins/specweave-core}/commands/specweave.increment.md +131 -22
- package/{src → plugins/specweave-core}/commands/specweave.md +49 -17
- package/{src → plugins/specweave-core}/commands/specweave.sync-docs.md +5 -5
- package/plugins/specweave-core/commands/specweave.translate.md +425 -0
- package/{src → plugins/specweave-core}/commands/specweave.validate.md +1 -1
- package/plugins/specweave-core/hooks/hooks.json +13 -0
- package/plugins/specweave-core/hooks/post-increment-plugin-detect.sh +142 -0
- package/plugins/specweave-core/hooks/post-task-completion.sh +265 -0
- package/plugins/specweave-core/hooks/pre-task-plugin-detect.sh +96 -0
- package/plugins/specweave-core/skills/SKILLS-INDEX.md +229 -0
- package/{src → plugins/specweave-core}/skills/brownfield-analyzer/SKILL.md +66 -24
- package/{src → plugins/specweave-core}/skills/context-loader/SKILL.md +1 -1
- package/plugins/specweave-core/skills/context-optimizer/SKILL.md +588 -0
- package/plugins/specweave-core/skills/docs-updater/SKILL.md +0 -0
- package/{src → plugins/specweave-core}/skills/increment-planner/SKILL.md +81 -4
- package/plugins/specweave-core/skills/plugin-detector/SKILL.md +211 -0
- package/{src → plugins/specweave-core}/skills/project-kickstarter/SKILL.md +7 -7
- package/plugins/specweave-core/skills/rfc-generator/SKILL.md +369 -0
- package/{src → plugins/specweave-core}/skills/specweave-detector/SKILL.md +2 -2
- package/plugins/specweave-core/skills/specweave-framework/SKILL.md +498 -0
- package/plugins/specweave-core/skills/specweave-framework/test-cases/test-1-increment-naming.yaml +11 -0
- package/plugins/specweave-core/skills/specweave-framework/test-cases/test-2-source-of-truth.yaml +11 -0
- package/plugins/specweave-core/skills/specweave-framework/test-cases/test-3-increment-discipline.yaml +12 -0
- package/plugins/specweave-core/skills/specweave-framework/test-cases/test-4-file-placement.yaml +11 -0
- package/{src → plugins/specweave-core}/skills/tdd-workflow/SKILL.md +20 -20
- package/plugins/specweave-core/skills/translator/SKILL.md +172 -0
- package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-diagrams/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-docs/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-docs/skills/docusaurus/SKILL.md +526 -0
- package/plugins/specweave-figma/.claude-plugin/.mcp.json +12 -0
- package/plugins/specweave-figma/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-figma/ARCHITECTURE.md +453 -0
- package/plugins/specweave-figma/README.md +728 -0
- package/plugins/specweave-figma/skills/figma-to-code/SKILL.md +632 -0
- package/plugins/specweave-figma/skills/figma-to-code/test-1-token-generation.yaml +29 -0
- package/plugins/specweave-figma/skills/figma-to-code/test-2-component-generation.yaml +27 -0
- package/plugins/specweave-figma/skills/figma-to-code/test-3-typescript-generation.yaml +28 -0
- package/plugins/specweave-frontend/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-github/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-github/agents/github-manager/AGENT.md +651 -0
- package/plugins/specweave-github/commands/github-close-issue.md +418 -0
- package/plugins/specweave-github/commands/github-create-issue.md +307 -0
- package/plugins/specweave-github/commands/github-status.md +533 -0
- package/plugins/specweave-github/commands/github-sync-tasks.md +530 -0
- package/plugins/specweave-github/commands/github-sync.md +443 -0
- package/plugins/specweave-github/lib/github-client.ts +330 -0
- package/plugins/specweave-github/lib/index.ts +10 -0
- package/plugins/specweave-github/lib/subtask-sync.ts +225 -0
- package/plugins/specweave-github/lib/task-parser.ts +246 -0
- package/plugins/specweave-github/lib/task-sync.ts +402 -0
- package/plugins/specweave-github/lib/types.ts +86 -0
- package/plugins/specweave-github/skills/github-issue-tracker/SKILL.md +497 -0
- package/plugins/specweave-github/skills/github-sync/SKILL.md +461 -0
- package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-jira/.claude-plugin/plugin.json +8 -0
- package/{src → plugins/specweave-jira}/commands/specweave.sync-jira.md +18 -18
- package/plugins/specweave-kubernetes/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-ml/.claude-plugin/plugin.json +39 -0
- package/plugins/specweave-ml/README.md +885 -0
- package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +402 -0
- package/plugins/specweave-ml/commands/ml-deploy.md +116 -0
- package/plugins/specweave-ml/commands/ml-evaluate.md +87 -0
- package/plugins/specweave-ml/commands/ml-explain.md +83 -0
- package/plugins/specweave-ml/skills/anomaly-detector/SKILL.md +559 -0
- package/plugins/specweave-ml/skills/automl-optimizer/SKILL.md +485 -0
- package/plugins/specweave-ml/skills/cv-pipeline-builder/SKILL.md +157 -0
- package/plugins/specweave-ml/skills/data-visualizer/SKILL.md +521 -0
- package/plugins/specweave-ml/skills/experiment-tracker/SKILL.md +535 -0
- package/plugins/specweave-ml/skills/feature-engineer/SKILL.md +566 -0
- package/plugins/specweave-ml/skills/ml-deployment-helper/SKILL.md +345 -0
- package/plugins/specweave-ml/skills/ml-pipeline-orchestrator/SKILL.md +518 -0
- package/plugins/specweave-ml/skills/model-evaluator/SKILL.md +155 -0
- package/plugins/specweave-ml/skills/model-explainer/SKILL.md +227 -0
- package/plugins/specweave-ml/skills/model-registry/SKILL.md +541 -0
- package/plugins/specweave-ml/skills/nlp-pipeline-builder/SKILL.md +180 -0
- package/plugins/specweave-ml/skills/time-series-forecaster/SKILL.md +569 -0
- package/plugins/specweave-payments/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-testing/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-tooling/.claude-plugin/plugin.json +8 -0
- package/plugins/specweave-ui/.claude-plugin/plugin.json +106 -0
- package/plugins/specweave-ui/.mcp.json +14 -0
- package/plugins/specweave-ui/README.md +386 -0
- package/src/adapters/adapter-base.ts +33 -0
- package/src/adapters/adapter-interface.ts +46 -0
- package/src/adapters/claude/adapter.ts +350 -39
- package/src/adapters/copilot/adapter.ts +267 -4
- package/src/adapters/cursor/adapter.ts +229 -0
- package/src/adapters/generic/adapter.ts +196 -0
- package/src/templates/AGENTS.md.template +170 -1
- package/src/templates/CLAUDE.md.template +122 -24
- package/src/templates/tasks.md.template +261 -0
- package/src/agents/ml-engineer/AGENT.md +0 -150
- package/src/commands/specweave.sync-github.md +0 -269
- package/src/hooks/post-task-completion.sh +0 -79
- package/src/skills/SKILLS-INDEX.md +0 -444
- package/src/skills/github-sync/SKILL.md +0 -234
- /package/{src → plugins/specweave-ado}/skills/ado-sync/README.md +0 -0
- /package/{src → plugins/specweave-ado}/skills/ado-sync/SKILL.md +0 -0
- /package/{src → plugins/specweave-ado}/skills/specweave-ado-mapper/SKILL.md +0 -0
- /package/{src → plugins/specweave-backend}/agents/database-optimizer/AGENT.md +0 -0
- /package/{src → plugins/specweave-backend}/skills/dotnet-backend/SKILL.md +0 -0
- /package/{src → plugins/specweave-backend}/skills/nodejs-backend/SKILL.md +0 -0
- /package/{src → plugins/specweave-backend}/skills/python-backend/SKILL.md +0 -0
- /package/{src → plugins/specweave-core}/agents/architect/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/code-reviewer.md +0 -0
- /package/{src → plugins/specweave-core}/agents/docs-writer/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/performance/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/qa-lead/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/security/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/tdd-orchestrator/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/agents/tech-lead/AGENT.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.done.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.inc.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.list-increments.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.next.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.progress.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.tdd-cycle.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.tdd-green.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.tdd-red.md +0 -0
- /package/{src → plugins/specweave-core}/commands/specweave.tdd-refactor.md +0 -0
- /package/{src → plugins/specweave-core}/hooks/README.md +0 -0
- /package/{src → plugins/specweave-core}/hooks/docs-changed.sh +0 -0
- /package/{src → plugins/specweave-core}/hooks/human-input-required.sh +0 -0
- /package/{src → plugins/specweave-core}/hooks/pre-implementation.sh +0 -0
- /package/{src → plugins/specweave-core}/skills/brownfield-onboarder/SKILL.md +0 -0
- /package/{src → plugins/specweave-core}/skills/docs-updater/README.md +0 -0
- /package/{src → plugins/specweave-core}/skills/increment-planner/scripts/feature-utils.js +0 -0
- /package/{src → plugins/specweave-core}/skills/increment-quality-judge/SKILL.md +0 -0
- /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-1-high-confidence-full-product.yaml +0 -0
- /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-2-medium-confidence-partial.yaml +0 -0
- /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-3-low-confidence-technical-question.yaml +0 -0
- /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-4-opt-out-explicit.yaml +0 -0
- /package/{src → plugins/specweave-core}/skills/role-orchestrator/README.md +0 -0
- /package/{src → plugins/specweave-core}/skills/role-orchestrator/SKILL.md +0 -0
- /package/{src → plugins/specweave-core}/skills/task-builder/README.md +0 -0
- /package/{src → plugins/specweave-cost-optimizer}/skills/cost-optimizer/SKILL.md +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/AGENT.md +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-component-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-container-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-context-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/deployment-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/er-diagram-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/sequence-template.mmd +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-2-sequence.yaml +0 -0
- /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -0
- /package/{src → plugins/specweave-diagrams}/skills/diagrams-architect/SKILL.md +0 -0
- /package/{src → plugins/specweave-diagrams}/skills/diagrams-generator/SKILL.md +0 -0
- /package/{src → plugins/specweave-docs}/skills/spec-driven-brainstorming/README.md +0 -0
- /package/{src → plugins/specweave-docs}/skills/spec-driven-brainstorming/SKILL.md +0 -0
- /package/{src → plugins/specweave-docs}/skills/spec-driven-debugging/README.md +0 -0
- /package/{src → plugins/specweave-docs}/skills/spec-driven-debugging/SKILL.md +0 -0
- /package/{src → plugins/specweave-frontend}/skills/design-system-architect/SKILL.md +0 -0
- /package/{src → plugins/specweave-frontend}/skills/frontend/SKILL.md +0 -0
- /package/{src → plugins/specweave-frontend}/skills/nextjs/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/devops/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/network-engineer/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/observability-engineer/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/performance-engineer/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/AGENT.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/backend-diagnostics.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/database-diagnostics.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/infrastructure.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/monitoring.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/security-incidents.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/ui-diagnostics.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/01-high-cpu-usage.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/02-database-deadlock.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/03-memory-leak.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/04-slow-api-response.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/05-ddos-attack.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/06-disk-full.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/07-service-down.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/08-data-corruption.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/09-cascade-failure.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/10-rate-limit-exceeded.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/health-check.sh +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/log-analyzer.py +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/metrics-collector.sh +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/trace-analyzer.js +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/incident-report.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/mitigation-plan.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/post-mortem.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/runbook-template.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/commands/specweave.monitor-setup.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/commands/specweave.slo-implement.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/distributed-tracing/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/grafana-dashboards/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/hetzner-provisioner/README.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/hetzner-provisioner/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/prometheus-configuration/SKILL.md +0 -0
- /package/{src → plugins/specweave-infrastructure}/skills/slo-implementation/SKILL.md +0 -0
- /package/{src → plugins/specweave-jira}/skills/jira-sync/README.md +0 -0
- /package/{src → plugins/specweave-jira}/skills/jira-sync/SKILL.md +0 -0
- /package/{src → plugins/specweave-jira}/skills/specweave-jira-mapper/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/agents/kubernetes-architect/AGENT.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/references/argocd-setup.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/references/sync-policies.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/assets/Chart.yaml.template +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/assets/values.yaml.template +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/references/chart-structure.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/scripts/validate-chart.sh +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/configmap-template.yaml +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/deployment-template.yaml +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/service-template.yaml +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/references/deployment-spec.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/references/service-spec.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/SKILL.md +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/assets/network-policy-template.yaml +0 -0
- /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/references/rbac-patterns.md +0 -0
- /package/{src → plugins/specweave-ml}/agents/data-scientist/AGENT.md +0 -0
- /package/{src → plugins/specweave-ml}/agents/mlops-engineer/AGENT.md +0 -0
- /package/{src → plugins/specweave-ml}/commands/specweave.ml-pipeline.md +0 -0
- /package/{src → plugins/specweave-ml}/skills/ml-pipeline-workflow/SKILL.md +0 -0
- /package/{src → plugins/specweave-payments}/agents/payment-integration/AGENT.md +0 -0
- /package/{src → plugins/specweave-payments}/skills/billing-automation/SKILL.md +0 -0
- /package/{src → plugins/specweave-payments}/skills/paypal-integration/SKILL.md +0 -0
- /package/{src → plugins/specweave-payments}/skills/pci-compliance/SKILL.md +0 -0
- /package/{src → plugins/specweave-payments}/skills/stripe-integration/SKILL.md +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/README.md +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/SKILL.md +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/execute.js +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/lib/utils.js +0 -0
- /package/{src → plugins/specweave-testing}/skills/e2e-playwright/package.json +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/LICENSE.txt +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/SKILL.md +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/init_skill.py +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/package_skill.py +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/quick_validate.py +0 -0
- /package/{src → plugins/specweave-tooling}/skills/skill-router/SKILL.md +0 -0
|
@@ -12,6 +12,9 @@ import * as path from 'path';
|
|
|
12
12
|
import fs from 'fs-extra';
|
|
13
13
|
import { AdapterBase } from '../adapter-base.js';
|
|
14
14
|
import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
|
|
15
|
+
import type { Plugin } from '../../core/types/plugin.js';
|
|
16
|
+
import { LanguageManager, getSystemPromptForLanguage } from '../../core/i18n/language-manager.js';
|
|
17
|
+
import type { SupportedLanguage } from '../../core/i18n/types.js';
|
|
15
18
|
|
|
16
19
|
export class GenericAdapter extends AdapterBase {
|
|
17
20
|
name = 'generic';
|
|
@@ -160,4 +163,197 @@ You're ready to build with SpecWeave using ANY AI tool!
|
|
|
160
163
|
Remember: AGENTS.md is the universal standard - it works everywhere!
|
|
161
164
|
`;
|
|
162
165
|
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Check if Generic adapter supports plugins
|
|
169
|
+
*
|
|
170
|
+
* Generic has manual plugin support via AGENTS.md
|
|
171
|
+
*
|
|
172
|
+
* @returns boolean True
|
|
173
|
+
*/
|
|
174
|
+
supportsPlugins(): boolean {
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Read language configuration from project config
|
|
180
|
+
*
|
|
181
|
+
* @returns Language setting from config, defaults to 'en'
|
|
182
|
+
*/
|
|
183
|
+
private async getLanguageConfig(): Promise<SupportedLanguage> {
|
|
184
|
+
const projectPath = process.cwd();
|
|
185
|
+
const configPath = path.join(projectPath, '.specweave', 'config.json');
|
|
186
|
+
|
|
187
|
+
if (!(await fs.pathExists(configPath))) {
|
|
188
|
+
return 'en'; // Default to English if no config
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
try {
|
|
192
|
+
const config = await fs.readJson(configPath);
|
|
193
|
+
return (config.language as SupportedLanguage) || 'en';
|
|
194
|
+
} catch (error) {
|
|
195
|
+
console.warn('⚠️ Could not read language from config, defaulting to English');
|
|
196
|
+
return 'en';
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Inject system prompt for non-English languages
|
|
202
|
+
*
|
|
203
|
+
* Prepends language instruction to markdown content if language !== 'en'
|
|
204
|
+
*
|
|
205
|
+
* @param content Original markdown content
|
|
206
|
+
* @param language Target language
|
|
207
|
+
* @returns Modified content with system prompt (or unchanged if English)
|
|
208
|
+
*/
|
|
209
|
+
private injectSystemPrompt(content: string, language: SupportedLanguage): string {
|
|
210
|
+
if (language === 'en') {
|
|
211
|
+
return content; // No changes for English - preserve default behavior
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// Get system prompt for target language
|
|
215
|
+
const systemPrompt = getSystemPromptForLanguage(language);
|
|
216
|
+
|
|
217
|
+
// For AGENTS.md compilation, inject at the beginning of the content
|
|
218
|
+
return `${systemPrompt}\n\n${content}`;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Compile and install a plugin for Generic adapter
|
|
223
|
+
*
|
|
224
|
+
* Appends plugin content to AGENTS.md for manual copy-paste workflows
|
|
225
|
+
*
|
|
226
|
+
* NEW: Injects system prompts for non-English languages
|
|
227
|
+
*
|
|
228
|
+
* @param plugin Plugin to install
|
|
229
|
+
*/
|
|
230
|
+
async compilePlugin(plugin: Plugin): Promise<void> {
|
|
231
|
+
const projectPath = process.cwd();
|
|
232
|
+
const agentsMdPath = path.join(projectPath, 'AGENTS.md');
|
|
233
|
+
|
|
234
|
+
console.log(`\n📦 Adding plugin to AGENTS.md: ${plugin.manifest.name}`);
|
|
235
|
+
|
|
236
|
+
// Get language configuration for system prompt injection
|
|
237
|
+
const language = await this.getLanguageConfig();
|
|
238
|
+
if (language !== 'en') {
|
|
239
|
+
console.log(` 🌐 Language: ${language} (system prompts will be injected)`);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
if (!(await fs.pathExists(agentsMdPath))) {
|
|
243
|
+
throw new Error('AGENTS.md not found. Run specweave init first.');
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
let agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
|
|
247
|
+
|
|
248
|
+
const pluginMarker = `<!-- Plugin: ${plugin.manifest.name} -->`;
|
|
249
|
+
if (agentsMd.includes(pluginMarker)) {
|
|
250
|
+
console.log(` ℹ️ Plugin ${plugin.manifest.name} already in AGENTS.md`);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
let pluginSection = `\n\n${pluginMarker}\n\n`;
|
|
255
|
+
pluginSection += `# Plugin: ${plugin.manifest.name}\n\n`;
|
|
256
|
+
pluginSection += `${plugin.manifest.description}\n\n`;
|
|
257
|
+
|
|
258
|
+
if (plugin.skills.length > 0) {
|
|
259
|
+
pluginSection += `## Skills\n\n`;
|
|
260
|
+
for (const skill of plugin.skills) {
|
|
261
|
+
const skillContent = await fs.readFile(path.join(skill.path, 'SKILL.md'), 'utf-8');
|
|
262
|
+
const contentWithoutFrontmatter = skillContent.replace(/^---\n[\s\S]+?\n---\n/, '');
|
|
263
|
+
// Inject system prompt if needed
|
|
264
|
+
const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
|
|
265
|
+
pluginSection += `### ${skill.name}\n\n${modifiedContent}\n\n`;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
if (plugin.agents.length > 0) {
|
|
270
|
+
pluginSection += `## Agents\n\n`;
|
|
271
|
+
for (const agent of plugin.agents) {
|
|
272
|
+
const agentContent = await fs.readFile(path.join(agent.path, 'AGENT.md'), 'utf-8');
|
|
273
|
+
// Inject system prompt if needed
|
|
274
|
+
const modifiedContent = this.injectSystemPrompt(agentContent, language);
|
|
275
|
+
pluginSection += `### ${agent.name}\n\n${modifiedContent}\n\n`;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
if (plugin.commands.length > 0) {
|
|
280
|
+
pluginSection += `## Workflows (Manual)\n\n`;
|
|
281
|
+
for (const command of plugin.commands) {
|
|
282
|
+
const commandContent = await fs.readFile(command.path, 'utf-8');
|
|
283
|
+
const contentWithoutFrontmatter = commandContent.replace(/^---\n[\s\S]+?\n---\n/, '');
|
|
284
|
+
// Inject system prompt if needed
|
|
285
|
+
const modifiedContent = this.injectSystemPrompt(contentWithoutFrontmatter, language);
|
|
286
|
+
pluginSection += `### ${command.name.replace('specweave.', '')}\n\n${modifiedContent}\n\n`;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
pluginSection += `<!-- End Plugin: ${plugin.manifest.name} -->\n`;
|
|
291
|
+
|
|
292
|
+
agentsMd += pluginSection;
|
|
293
|
+
await fs.writeFile(agentsMdPath, agentsMd, 'utf-8');
|
|
294
|
+
|
|
295
|
+
console.log(` ✓ Added to AGENTS.md (copy-paste workflows)`);
|
|
296
|
+
console.log(`\n✅ Plugin ${plugin.manifest.name} available for manual use!`);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Unload a plugin from Generic adapter
|
|
301
|
+
*/
|
|
302
|
+
async unloadPlugin(pluginName: string): Promise<void> {
|
|
303
|
+
const projectPath = process.cwd();
|
|
304
|
+
const agentsMdPath = path.join(projectPath, 'AGENTS.md');
|
|
305
|
+
|
|
306
|
+
console.log(`\n🗑️ Removing plugin from AGENTS.md: ${pluginName}`);
|
|
307
|
+
|
|
308
|
+
if (!(await fs.pathExists(agentsMdPath))) {
|
|
309
|
+
console.warn(`⚠️ AGENTS.md not found`);
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
let agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
|
|
314
|
+
|
|
315
|
+
const startMarker = `<!-- Plugin: ${pluginName} -->`;
|
|
316
|
+
const endMarker = `<!-- End Plugin: ${pluginName} -->`;
|
|
317
|
+
|
|
318
|
+
const startIndex = agentsMd.indexOf(startMarker);
|
|
319
|
+
if (startIndex === -1) {
|
|
320
|
+
console.warn(`⚠️ Plugin ${pluginName} not found in AGENTS.md`);
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
const endIndex = agentsMd.indexOf(endMarker, startIndex);
|
|
325
|
+
if (endIndex === -1) {
|
|
326
|
+
console.warn(`⚠️ Plugin ${pluginName} section malformed`);
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
agentsMd = agentsMd.slice(0, startIndex) + agentsMd.slice(endIndex + endMarker.length);
|
|
331
|
+
await fs.writeFile(agentsMdPath, agentsMd, 'utf-8');
|
|
332
|
+
|
|
333
|
+
console.log(` ✓ Removed from AGENTS.md`);
|
|
334
|
+
console.log(`\n✅ Plugin ${pluginName} removed!`);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Get list of installed plugins for Generic adapter
|
|
339
|
+
*/
|
|
340
|
+
async getInstalledPlugins(): Promise<string[]> {
|
|
341
|
+
const projectPath = process.cwd();
|
|
342
|
+
const agentsMdPath = path.join(projectPath, 'AGENTS.md');
|
|
343
|
+
|
|
344
|
+
if (!(await fs.pathExists(agentsMdPath))) {
|
|
345
|
+
return [];
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
const agentsMd = await fs.readFile(agentsMdPath, 'utf-8');
|
|
349
|
+
const pluginMarkerRegex = /<!-- Plugin: (specweave-[a-z0-9-]+) -->/g;
|
|
350
|
+
const matches = agentsMd.matchAll(pluginMarkerRegex);
|
|
351
|
+
|
|
352
|
+
const plugins: string[] = [];
|
|
353
|
+
for (const match of matches) {
|
|
354
|
+
plugins.push(match[1]);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
return plugins;
|
|
358
|
+
}
|
|
163
359
|
}
|
|
@@ -45,12 +45,166 @@ This is a **SpecWeave project** where specifications and documentation are the s
|
|
|
45
45
|
├── agents/ # Specialized roles (PM, Architect, DevOps, etc.)
|
|
46
46
|
├── skills/ # Capabilities (increment-planner, context-loader, etc.)
|
|
47
47
|
└── commands/ # Slash commands (/inc, /do, /done)
|
|
48
|
+
|
|
49
|
+
plugins/ # Optional plugins (extended capabilities)
|
|
50
|
+
└── specweave-{name}/
|
|
51
|
+
├── .claude-plugin/ # Plugin manifest (Claude native format)
|
|
52
|
+
│ └── plugin.json
|
|
53
|
+
├── skills/ # Plugin-specific skills
|
|
54
|
+
├── agents/ # Plugin-specific agents
|
|
55
|
+
└── commands/ # Plugin-specific commands
|
|
48
56
|
```
|
|
49
57
|
|
|
50
58
|
**CRITICAL**: Always read `context-manifest.yaml` first! Only load files listed there.
|
|
51
59
|
|
|
52
60
|
---
|
|
53
61
|
|
|
62
|
+
## 🔌 Plugin Architecture (IMPORTANT FOR NON-CLAUDE TOOLS)
|
|
63
|
+
|
|
64
|
+
### For Claude Code Users
|
|
65
|
+
|
|
66
|
+
Plugins work automatically via marketplace:
|
|
67
|
+
```bash
|
|
68
|
+
/plugin install github@specweave
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Skills, agents, and commands are immediately available. **Skip this section if using Claude Code.**
|
|
72
|
+
|
|
73
|
+
### For Other Tools (Cursor, Copilot, ChatGPT, etc.)
|
|
74
|
+
|
|
75
|
+
**⚠️ CRITICAL**: Claude Code has native plugin support. **Other tools DO NOT.**
|
|
76
|
+
|
|
77
|
+
You MUST manually discover and load plugins at the start of each session:
|
|
78
|
+
|
|
79
|
+
#### Step 1: Check for Plugins
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Check if project uses plugins
|
|
83
|
+
ls plugins/
|
|
84
|
+
|
|
85
|
+
# Example output:
|
|
86
|
+
# specweave-github/
|
|
87
|
+
# specweave-jira/
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
If `plugins/` folder exists, proceed to Step 2.
|
|
91
|
+
|
|
92
|
+
#### Step 2: Load Plugin Components
|
|
93
|
+
|
|
94
|
+
**For EACH plugin, load its components BEFORE starting work:**
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Example: Loading GitHub plugin
|
|
98
|
+
|
|
99
|
+
# 1. Check plugin structure
|
|
100
|
+
ls plugins/specweave-github/
|
|
101
|
+
|
|
102
|
+
# 2. Load ALL plugin skills (like core skills)
|
|
103
|
+
cat plugins/specweave-github/skills/github-sync/SKILL.md
|
|
104
|
+
cat plugins/specweave-github/skills/github-issue-tracker/SKILL.md
|
|
105
|
+
|
|
106
|
+
# 3. Load plugin agents (if any)
|
|
107
|
+
cat plugins/specweave-github/agents/github-manager/AGENT.md
|
|
108
|
+
|
|
109
|
+
# 4. Note available commands (load on-demand when user requests)
|
|
110
|
+
ls plugins/specweave-github/commands/
|
|
111
|
+
# github-create-issue.md, github-sync.md, github-status.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
#### Step 3: Make Plugin Capabilities Available
|
|
115
|
+
|
|
116
|
+
Treat plugin components like core components:
|
|
117
|
+
|
|
118
|
+
**Plugin Skills**:
|
|
119
|
+
- Same activation pattern as core skills
|
|
120
|
+
- Check "Activates for" keywords in SKILL.md
|
|
121
|
+
- Follow workflow when relevant
|
|
122
|
+
|
|
123
|
+
**Plugin Agents**:
|
|
124
|
+
- Adopt role when needed (like core agents)
|
|
125
|
+
- Example: "Adopting github-manager agent role..."
|
|
126
|
+
|
|
127
|
+
**Plugin Commands**:
|
|
128
|
+
- Load command file when user requests action
|
|
129
|
+
- Example: User says "sync to GitHub" → Load `plugins/specweave-github/commands/github-sync.md`
|
|
130
|
+
|
|
131
|
+
#### Step 4: Document Loaded Plugins
|
|
132
|
+
|
|
133
|
+
At session start, note which plugins are active:
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
# Session Context
|
|
137
|
+
- Core skills: ✅ Loaded from .claude/skills/
|
|
138
|
+
- Core agents: ✅ Loaded from .claude/agents/
|
|
139
|
+
- Plugins detected:
|
|
140
|
+
- specweave-github: ✅ Loaded (2 skills, 1 agent, 4 commands)
|
|
141
|
+
- specweave-jira: ✅ Loaded (1 skill, 1 agent, 2 commands)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Why Manual Loading Is Required
|
|
145
|
+
|
|
146
|
+
**Claude Code**: Has native plugin marketplace, auto-loads plugins, manages dependencies.
|
|
147
|
+
|
|
148
|
+
**Other Tools**: No plugin system, so you must:
|
|
149
|
+
- ✅ Discover plugins in `plugins/` folder
|
|
150
|
+
- ✅ Read plugin skills/agents/commands manually
|
|
151
|
+
- ✅ Make them available in your context
|
|
152
|
+
- ✅ Use them like core components
|
|
153
|
+
|
|
154
|
+
**This is NOT optional** - plugins extend SpecWeave capabilities. Without loading them, you're missing critical functionality (GitHub sync, Jira integration, tech-specific skills, etc.).
|
|
155
|
+
|
|
156
|
+
### Example: Session Start Routine (Non-Claude Tools)
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# 1. Load core components
|
|
160
|
+
cat .claude/skills/SKILLS-INDEX.md # Core skills index
|
|
161
|
+
cat AGENTS.md # This file
|
|
162
|
+
|
|
163
|
+
# 2. Check for plugins
|
|
164
|
+
if [ -d "plugins" ]; then
|
|
165
|
+
# 3. For each plugin, load components
|
|
166
|
+
for plugin in plugins/*/; do
|
|
167
|
+
echo "Loading plugin: $(basename $plugin)"
|
|
168
|
+
|
|
169
|
+
# Load all skills
|
|
170
|
+
find "$plugin/skills" -name "SKILL.md" -exec cat {} \;
|
|
171
|
+
|
|
172
|
+
# Load all agents
|
|
173
|
+
find "$plugin/agents" -name "AGENT.md" -exec cat {} \;
|
|
174
|
+
|
|
175
|
+
# Note available commands
|
|
176
|
+
ls "$plugin/commands/"
|
|
177
|
+
done
|
|
178
|
+
fi
|
|
179
|
+
|
|
180
|
+
# 4. Now ready to work with full SpecWeave capabilities
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Plugin Naming Convention
|
|
184
|
+
|
|
185
|
+
Plugin commands use namespace pattern:
|
|
186
|
+
|
|
187
|
+
**Core commands** (no namespace):
|
|
188
|
+
- `/specweave:inc` → Core framework
|
|
189
|
+
- `/specweave:do` → Core framework
|
|
190
|
+
- `/specweave:progress` → Core framework
|
|
191
|
+
|
|
192
|
+
**Plugin commands** (with namespace):
|
|
193
|
+
- `/specweave:github:sync` → GitHub plugin
|
|
194
|
+
- `/specweave:github:create-issue` → GitHub plugin
|
|
195
|
+
- `/specweave:jira:sync` → Jira plugin
|
|
196
|
+
- `/specweave:jira:create-ticket` → Jira plugin
|
|
197
|
+
|
|
198
|
+
**In non-Claude tools**: Read the command file when user requests the action:
|
|
199
|
+
```bash
|
|
200
|
+
# User: "Sync this increment to GitHub"
|
|
201
|
+
# You: Load and execute command
|
|
202
|
+
cat plugins/specweave-github/commands/github-sync.md
|
|
203
|
+
# Then follow the instructions in that file
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
54
208
|
## Available Agents (Specialized Roles)
|
|
55
209
|
|
|
56
210
|
SpecWeave uses role-based development. When working on tasks, adopt the appropriate role:
|
|
@@ -319,6 +473,7 @@ max_context_tokens: 10000
|
|
|
319
473
|
|
|
320
474
|
If using Claude Code, these slash commands are available:
|
|
321
475
|
|
|
476
|
+
**Core Commands** (always available):
|
|
322
477
|
| Command | Purpose | Example |
|
|
323
478
|
|---------|---------|---------|
|
|
324
479
|
| `/inc` | Create new increment | `/inc "user authentication"` |
|
|
@@ -326,7 +481,21 @@ If using Claude Code, these slash commands are available:
|
|
|
326
481
|
| `/progress` | Check status | `/progress` |
|
|
327
482
|
| `/done` | Close increment | `/done 0001` |
|
|
328
483
|
| `/validate` | Validate quality | `/validate 0001 --quality` |
|
|
329
|
-
|
|
484
|
+
|
|
485
|
+
**Plugin Commands** (when plugin installed):
|
|
486
|
+
| Command | Purpose | Plugin |
|
|
487
|
+
|---------|---------|--------|
|
|
488
|
+
| `/specweave:github:sync` | Sync to GitHub | specweave-github |
|
|
489
|
+
| `/specweave:github:create-issue` | Create GitHub issue | specweave-github |
|
|
490
|
+
| `/specweave:jira:sync` | Sync to Jira | specweave-jira |
|
|
491
|
+
| `/specweave:jira:create-ticket` | Create Jira ticket | specweave-jira |
|
|
492
|
+
|
|
493
|
+
**For non-Claude tools**: Read the command file when user requests the action:
|
|
494
|
+
```bash
|
|
495
|
+
# User: "Sync to GitHub"
|
|
496
|
+
cat plugins/specweave-github/commands/github-sync.md
|
|
497
|
+
# Then follow instructions in that file
|
|
498
|
+
```
|
|
330
499
|
|
|
331
500
|
---
|
|
332
501
|
|
|
@@ -4,39 +4,83 @@ This project uses **SpecWeave** - a specification-first AI development framework
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## 🚨 CRITICAL: NEVER POLLUTE PROJECT ROOT!
|
|
8
|
+
|
|
9
|
+
**⛔ THIS IS THE #1 RULE - ALL AI-GENERATED FILES GO IN INCREMENT FOLDERS ⛔**
|
|
10
|
+
|
|
11
|
+
### ❌ NEVER Create in Root
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
❌ WRONG - ROOT FILES (NOT ALLOWED!):
|
|
15
|
+
/SESSION-SUMMARY.md # NO! Goes to increment reports/
|
|
16
|
+
/ANALYSIS-REPORT.md # NO! Goes to increment reports/
|
|
17
|
+
/migration-script.py # NO! Goes to increment scripts/
|
|
18
|
+
/execution.log # NO! Goes to increment logs/
|
|
19
|
+
/temp-data.json # NO! Goes to increment logs/
|
|
20
|
+
|
|
21
|
+
✅ CORRECT - INCREMENT FOLDERS:
|
|
22
|
+
.specweave/increments/0001-user-auth/
|
|
23
|
+
├── spec.md # Core spec files
|
|
24
|
+
├── plan.md
|
|
25
|
+
├── tasks.md
|
|
26
|
+
├── tests.md
|
|
27
|
+
├── reports/ # ✅ PUT REPORTS HERE!
|
|
28
|
+
│ ├── SESSION-SUMMARY.md
|
|
29
|
+
│ └── ANALYSIS-REPORT.md
|
|
30
|
+
├── scripts/ # ✅ PUT SCRIPTS HERE!
|
|
31
|
+
│ └── migration-script.py
|
|
32
|
+
└── logs/ # ✅ PUT LOGS HERE!
|
|
33
|
+
├── execution.log
|
|
34
|
+
└── temp-data.json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### What IS Allowed in Root?
|
|
38
|
+
|
|
39
|
+
**ONLY these files**:
|
|
40
|
+
- ✅ `CLAUDE.md` (this file)
|
|
41
|
+
- ✅ Your project files (`src/`, `package.json`, etc.)
|
|
42
|
+
- ✅ Standard config (`.env`, `.gitignore`, `tsconfig.json`)
|
|
43
|
+
|
|
44
|
+
**Everything else → increment folders!**
|
|
45
|
+
|
|
46
|
+
**Before asking me to commit, check**: `git status` - If you see unexpected `.md` files in root, STOP and move them!
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
7
50
|
## SpecWeave Workflow (Use These Commands!)
|
|
8
51
|
|
|
9
52
|
**How SpecWeave works**:
|
|
10
53
|
|
|
11
54
|
```
|
|
12
|
-
/specweave
|
|
55
|
+
/specweave:inc "feature" → /specweave:do → /specweave:progress → /specweave:done → repeat
|
|
13
56
|
```
|
|
14
57
|
|
|
15
|
-
**1. Plan Feature** → `/specweave
|
|
58
|
+
**1. Plan Feature** → `/specweave:inc "user authentication"`
|
|
16
59
|
- Creates spec.md (WHAT/WHY), plan.md (HOW), tasks.md, tests.md
|
|
17
60
|
- PM-led process with architect/security/QA review
|
|
18
61
|
- **Use when**: Starting any new feature or increment
|
|
19
62
|
|
|
20
|
-
**2. Execute Tasks** → `/specweave
|
|
63
|
+
**2. Execute Tasks** → `/specweave:do` or `/specweave:do 0001`
|
|
21
64
|
- Smart resume (picks up where you left off)
|
|
22
65
|
- Runs hooks after EVERY task completion
|
|
23
66
|
- **Use when**: Ready to implement planned work
|
|
24
67
|
|
|
25
|
-
**3. Check Progress** → `/specweave
|
|
68
|
+
**3. Check Progress** → `/specweave:progress`
|
|
26
69
|
- Shows task completion %, next action
|
|
27
70
|
- **Use when**: Want to see status
|
|
28
71
|
|
|
29
|
-
**4. Validate Quality** → `/specweave
|
|
72
|
+
**4. Validate Quality** → `/specweave:validate 0001` or `/specweave:validate 0001 --quality`
|
|
30
73
|
- Rule-based validation (120 checks)
|
|
31
74
|
- Optional AI quality assessment
|
|
32
75
|
- **Use when**: Verify increment quality before completion
|
|
33
76
|
|
|
34
|
-
**5. Close Increment** → `/specweave
|
|
77
|
+
**5. Close Increment** → `/specweave:done 0001`
|
|
35
78
|
- Validates all tasks complete
|
|
36
79
|
- **Use when**: Feature is finished
|
|
37
80
|
|
|
38
|
-
**6. Sync to External**
|
|
39
|
-
-
|
|
81
|
+
**6. Sync to External** (Plugin Commands):
|
|
82
|
+
- `/specweave:github:sync` - Export to GitHub issues (github plugin)
|
|
83
|
+
- `/specweave:jira:sync` - Export to Jira (jira plugin)
|
|
40
84
|
- **Use when**: Need to sync with project management tools
|
|
41
85
|
|
|
42
86
|
**All other functionality (agents, skills) activates automatically based on context.**
|
|
@@ -60,7 +104,7 @@ When working in a SpecWeave-initialized project (`.specweave/` exists), SpecWeav
|
|
|
60
104
|
6. ✅ **Business Model** - "Freemium", "$X/mo", "B2B", "Consumer"
|
|
61
105
|
|
|
62
106
|
**Confidence Levels:**
|
|
63
|
-
- **High (5-6 signals + SpecWeave folder)**: Auto-route to `/specweave
|
|
107
|
+
- **High (5-6 signals + SpecWeave folder)**: Auto-route to `/specweave:inc` immediately
|
|
64
108
|
- **Medium (3-4 signals + SpecWeave folder)**: Ask 1-2 clarifying questions, then route
|
|
65
109
|
- **Low (<3 signals)**: Regular conversation (no auto-routing)
|
|
66
110
|
|
|
@@ -80,7 +124,7 @@ Monetization: Freemium ($10/mo)
|
|
|
80
124
|
SpecWeave detects: ✅ Name ✅ Features ✅ Tech ✅ Timeline ✅ Problem ✅ Business
|
|
81
125
|
→ Automatically recognizes this as a product description
|
|
82
126
|
→ Guides you through increment planning
|
|
83
|
-
→ Invokes /specweave
|
|
127
|
+
→ Invokes /specweave:inc automatically
|
|
84
128
|
|
|
85
129
|
No need to remember to type /inc!
|
|
86
130
|
```
|
|
@@ -204,9 +248,9 @@ Config: Auto-detected from project files
|
|
|
204
248
|
│ └── tests/ # Centralized test repository
|
|
205
249
|
│
|
|
206
250
|
├── .claude/ # Pre-installed components
|
|
207
|
-
│ ├── agents/ #
|
|
208
|
-
│ ├── skills/ #
|
|
209
|
-
│ └── commands/ #
|
|
251
|
+
│ ├── agents/ # Core + plugin agents (auto-activate)
|
|
252
|
+
│ ├── skills/ # Core + plugin skills (auto-activate)
|
|
253
|
+
│ └── commands/ # Core + plugin slash commands
|
|
210
254
|
│
|
|
211
255
|
├── CLAUDE.md # This file
|
|
212
256
|
└── src/ # Your source code
|
|
@@ -214,15 +258,67 @@ Config: Auto-detected from project files
|
|
|
214
258
|
|
|
215
259
|
---
|
|
216
260
|
|
|
261
|
+
## Plugin Architecture
|
|
262
|
+
|
|
263
|
+
**SpecWeave uses Claude Code's native plugin system** for optional capabilities.
|
|
264
|
+
|
|
265
|
+
### Core vs. Plugins
|
|
266
|
+
|
|
267
|
+
**Core Framework** (always loaded):
|
|
268
|
+
- 9 core skills (increment-planner, tdd-workflow, context-loader, etc.)
|
|
269
|
+
- 3 core agents (PM, Architect, Tech Lead)
|
|
270
|
+
- 7 core commands (`/specweave:inc`, `/specweave:do`, etc.)
|
|
271
|
+
- ~12K tokens (lightweight!)
|
|
272
|
+
|
|
273
|
+
**Plugins** (opt-in based on your stack):
|
|
274
|
+
- Tech stacks: `specweave-frontend`, `specweave-backend`, `specweave-kubernetes`
|
|
275
|
+
- Integrations: `specweave-github`, `specweave-jira`
|
|
276
|
+
- Domains: `specweave-ml`, `specweave-payments`, `specweave-testing`
|
|
277
|
+
|
|
278
|
+
### Using Plugin Commands
|
|
279
|
+
|
|
280
|
+
**Core commands** (always available):
|
|
281
|
+
```bash
|
|
282
|
+
/specweave:inc "feature" # or /inc
|
|
283
|
+
/specweave:do # or /do
|
|
284
|
+
/specweave:progress # or /progress
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**Plugin commands** (when plugin installed):
|
|
288
|
+
```bash
|
|
289
|
+
# GitHub plugin:
|
|
290
|
+
/specweave:github:sync # Sync increments to GitHub issues
|
|
291
|
+
/specweave:github:create-issue # Create new issue
|
|
292
|
+
/specweave:github:status # Check sync status
|
|
293
|
+
|
|
294
|
+
# Jira plugin:
|
|
295
|
+
/specweave:jira:sync # Sync to Jira
|
|
296
|
+
/specweave:jira:create-ticket # Create Jira ticket
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Plugin agents and skills activate automatically** based on your tech stack and context.
|
|
300
|
+
|
|
301
|
+
### Installing Plugins
|
|
302
|
+
|
|
303
|
+
Plugins are detected and suggested during `specweave init` based on:
|
|
304
|
+
- Git remote (GitHub detected → suggest github plugin)
|
|
305
|
+
- Tech stack (React detected → suggest frontend plugin)
|
|
306
|
+
- Project files (K8s yamls → suggest kubernetes plugin)
|
|
307
|
+
|
|
308
|
+
**Enabled plugins**: {ENABLED_PLUGINS}
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
217
312
|
## Documentation Philosophy
|
|
218
313
|
|
|
219
314
|
**You chose**: {DOCUMENTATION_APPROACH}
|
|
220
315
|
|
|
221
316
|
{#IF_COMPREHENSIVE}
|
|
222
317
|
### Comprehensive Upfront Approach
|
|
223
|
-
- Create complete specifications before coding (
|
|
318
|
+
- Create complete specifications before coding (scope-appropriate detail)
|
|
224
319
|
- All ADRs documented in advance
|
|
225
|
-
- Best for: Enterprise, regulated industries, large teams
|
|
320
|
+
- Best for: Enterprise, regulated industries, large teams, complex systems
|
|
321
|
+
- Spec size scales with project complexity (10-500+ pages depending on scope)
|
|
226
322
|
{#ENDIF}
|
|
227
323
|
|
|
228
324
|
{#IF_INCREMENTAL}
|
|
@@ -238,8 +334,8 @@ Config: Auto-detected from project files
|
|
|
238
334
|
|
|
239
335
|
**Four Levels**:
|
|
240
336
|
1. **Specification** (`.specweave/docs/internal/strategy/`) - Acceptance criteria
|
|
241
|
-
2. **Feature** (`.specweave/increments/####/tests.md`) - Test coverage
|
|
242
|
-
3. **
|
|
337
|
+
2. **Feature** (`.specweave/increments/####/tests.md`) - Test coverage per increment
|
|
338
|
+
3. **Integration** (`tests/integration/` or `tests/specs/`) - Component/module tests
|
|
243
339
|
4. **Code** (`tests/`) - Automated tests (Unit, Integration, E2E)
|
|
244
340
|
|
|
245
341
|
**Requirements**:
|
|
@@ -260,16 +356,18 @@ Config: Auto-detected from project files
|
|
|
260
356
|
| "What's the status?" | `/progress` | Show task completion % |
|
|
261
357
|
| "Is this ready?" | `/validate 0001` | Validate increment quality |
|
|
262
358
|
| "We're done" | `/done 0001` | Close increment |
|
|
263
|
-
|
|
264
|
-
|
|
359
|
+
|
|
360
|
+
**Plugin Commands** (when installed):
|
|
361
|
+
| "Sync to GitHub" | `/specweave:github:sync` | Export to GitHub issues |
|
|
362
|
+
| "Sync to Jira" | `/specweave:jira:sync` | Export to Jira |
|
|
265
363
|
|
|
266
364
|
### Command Aliases
|
|
267
365
|
|
|
268
|
-
- `/inc` = `/specweave inc` = `/specweave
|
|
269
|
-
- `/do` = `/specweave do` = `/specweave
|
|
270
|
-
- `/validate` = `/specweave validate` = `/specweave
|
|
271
|
-
- `/done` = `/specweave done` = `/specweave
|
|
272
|
-
- `/progress` = `/specweave progress` = `/specweave
|
|
366
|
+
- `/inc` = `/specweave inc` = `/specweave:inc`
|
|
367
|
+
- `/do` = `/specweave do` = `/specweave:do`
|
|
368
|
+
- `/validate` = `/specweave validate` = `/specweave:validate`
|
|
369
|
+
- `/done` = `/specweave done` = `/specweave:done`
|
|
370
|
+
- `/progress` = `/specweave progress` = `/specweave:progress`
|
|
273
371
|
|
|
274
372
|
---
|
|
275
373
|
|