specweave 0.4.1 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/README.md +312 -0
- package/.claude-plugin/marketplace.json +210 -0
- package/CLAUDE.md +952 -609
- package/README.md +179 -761
- 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 +2 -0
- package/dist/adapters/claude/adapter.d.ts +49 -11
- package/dist/adapters/claude/adapter.d.ts.map +1 -1
- package/dist/adapters/claude/adapter.js +175 -42
- package/dist/adapters/claude/adapter.js.map +1 -1
- package/dist/adapters/copilot/adapter.d.ts +20 -2
- package/dist/adapters/copilot/adapter.d.ts.map +1 -1
- package/dist/adapters/copilot/adapter.js +117 -7
- package/dist/adapters/copilot/adapter.js.map +1 -1
- package/dist/adapters/cursor/adapter.d.ts +18 -0
- package/dist/adapters/cursor/adapter.d.ts.map +1 -1
- package/dist/adapters/cursor/adapter.js +55 -3
- package/dist/adapters/cursor/adapter.js.map +1 -1
- package/dist/adapters/generic/adapter.d.ts +18 -0
- package/dist/adapters/generic/adapter.d.ts.map +1 -1
- package/dist/adapters/generic/adapter.js +55 -3
- 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 +521 -185
- 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 +23 -6
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +92 -66
- package/dist/cli/commands/plugin.js.map +1 -1
- 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-loader.d.ts +33 -13
- package/dist/core/plugin-loader.d.ts.map +1 -1
- package/dist/core/plugin-loader.js +145 -43
- package/dist/core/plugin-loader.js.map +1 -1
- 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 +73 -42
- package/dist/core/types/plugin.d.ts.map +1 -1
- package/dist/core/types/plugin.js +4 -3
- package/dist/core/types/plugin.js.map +1 -1
- 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.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 +285 -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/execFileNoThrow.d.ts +97 -0
- package/dist/utils/execFileNoThrow.d.ts.map +1 -0
- package/dist/utils/execFileNoThrow.js +130 -0
- package/dist/utils/execFileNoThrow.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 +13 -14
- package/plugins/.specweave/logs/hooks-debug.log +24 -0
- package/plugins/.specweave/logs/last-hook-fire +1 -0
- package/plugins/.specweave/logs/last-todowrite-time +1 -0
- package/plugins/.specweave/logs/tasks.log +6 -0
- package/plugins/specweave/.claude-plugin/plugin.json +22 -0
- package/{src → plugins/specweave}/agents/pm/AGENT.md +80 -0
- package/plugins/specweave/agents/translator/AGENT.md +282 -0
- package/{src → plugins/specweave}/commands/README.md +11 -11
- package/{src/commands/specweave.costs.md → plugins/specweave/commands/costs.md} +8 -8
- package/{src/commands/specweave.do.md → plugins/specweave/commands/do.md} +35 -8
- package/{src/commands/specweave.done.md → plugins/specweave/commands/done.md} +1 -1
- package/{src/commands/specweave.inc.md → plugins/specweave/commands/inc.md} +1 -1
- package/{src/commands/specweave.increment.md → plugins/specweave/commands/increment.md} +84 -19
- package/{src/commands/specweave.next.md → plugins/specweave/commands/next.md} +1 -1
- package/{src/commands/specweave.progress.md → plugins/specweave/commands/progress.md} +1 -1
- package/{src → plugins/specweave}/commands/specweave.md +57 -25
- package/{src/commands/specweave.sync-docs.md → plugins/specweave/commands/sync-docs.md} +6 -6
- package/plugins/specweave/commands/translate.md +425 -0
- package/{src/commands/specweave.validate.md → plugins/specweave/commands/validate.md} +2 -2
- package/plugins/specweave/hooks/hooks.json +15 -0
- package/plugins/specweave/hooks/post-task-completion.sh +265 -0
- package/plugins/specweave/skills/SKILLS-INDEX.md +229 -0
- package/{src → plugins/specweave}/skills/brownfield-analyzer/SKILL.md +66 -24
- package/{src → plugins/specweave}/skills/context-loader/SKILL.md +1 -1
- package/plugins/specweave/skills/context-optimizer/SKILL.md +588 -0
- package/plugins/specweave/skills/docs-updater/SKILL.md +0 -0
- package/{src → plugins/specweave}/skills/increment-planner/SKILL.md +81 -4
- package/plugins/specweave/skills/plugin-detector/SKILL.md +211 -0
- package/{src → plugins/specweave}/skills/project-kickstarter/SKILL.md +7 -7
- package/plugins/specweave/skills/rfc-generator/SKILL.md +369 -0
- package/{src → plugins/specweave}/skills/specweave-detector/SKILL.md +2 -2
- package/plugins/specweave/skills/specweave-framework/SKILL.md +498 -0
- package/plugins/specweave/skills/specweave-framework/test-cases/test-1-increment-naming.yaml +11 -0
- package/plugins/specweave/skills/specweave-framework/test-cases/test-2-source-of-truth.yaml +11 -0
- package/plugins/specweave/skills/specweave-framework/test-cases/test-3-increment-discipline.yaml +12 -0
- package/plugins/specweave/skills/specweave-framework/test-cases/test-4-file-placement.yaml +11 -0
- package/{src → plugins/specweave}/skills/tdd-workflow/SKILL.md +21 -21
- package/plugins/specweave/skills/translator/SKILL.md +172 -0
- 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-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 +19 -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 +38 -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 +26 -0
- package/plugins/specweave-ui/.mcp.json +14 -0
- package/plugins/specweave-ui/README.md +386 -0
- package/src/adapters/claude/adapter.ts +193 -46
- package/src/adapters/copilot/adapter.ts +132 -7
- package/src/adapters/cursor/adapter.ts +62 -3
- package/src/adapters/generic/adapter.ts +62 -3
- 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 -121
- package/src/skills/SKILLS-INDEX.md +0 -444
- package/src/skills/github-sync/SKILL.md +0 -234
- /package/{src → plugins/specweave}/agents/architect/AGENT.md +0 -0
- /package/{src → plugins/specweave}/agents/code-reviewer.md +0 -0
- /package/{src → plugins/specweave}/agents/docs-writer/AGENT.md +0 -0
- /package/{src → plugins/specweave}/agents/performance/AGENT.md +0 -0
- /package/{src → plugins/specweave}/agents/qa-lead/AGENT.md +0 -0
- /package/{src → plugins/specweave}/agents/security/AGENT.md +0 -0
- /package/{src → plugins/specweave}/agents/tdd-orchestrator/AGENT.md +0 -0
- /package/{src → plugins/specweave}/agents/tech-lead/AGENT.md +0 -0
- /package/{src/commands/specweave.list-increments.md → plugins/specweave/commands/list-increments.md} +0 -0
- /package/{src/commands/specweave.tdd-cycle.md → plugins/specweave/commands/tdd-cycle.md} +0 -0
- /package/{src/commands/specweave.tdd-green.md → plugins/specweave/commands/tdd-green.md} +0 -0
- /package/{src/commands/specweave.tdd-red.md → plugins/specweave/commands/tdd-red.md} +0 -0
- /package/{src/commands/specweave.tdd-refactor.md → plugins/specweave/commands/tdd-refactor.md} +0 -0
- /package/{src → plugins/specweave}/hooks/README.md +0 -0
- /package/{src → plugins/specweave}/hooks/docs-changed.sh +0 -0
- /package/{src → plugins/specweave}/hooks/human-input-required.sh +0 -0
- /package/{src → plugins/specweave}/hooks/post-increment-plugin-detect.sh +0 -0
- /package/{src → plugins/specweave}/hooks/pre-implementation.sh +0 -0
- /package/{src → plugins/specweave}/hooks/pre-task-plugin-detect.sh +0 -0
- /package/{src → plugins/specweave}/skills/brownfield-onboarder/SKILL.md +0 -0
- /package/{src → plugins/specweave}/skills/docs-updater/README.md +0 -0
- /package/{src → plugins/specweave}/skills/increment-planner/scripts/feature-utils.js +0 -0
- /package/{src → plugins/specweave}/skills/increment-quality-judge/SKILL.md +0 -0
- /package/{src → plugins/specweave}/skills/project-kickstarter/test-cases/test-1-high-confidence-full-product.yaml +0 -0
- /package/{src → plugins/specweave}/skills/project-kickstarter/test-cases/test-2-medium-confidence-partial.yaml +0 -0
- /package/{src → plugins/specweave}/skills/project-kickstarter/test-cases/test-3-low-confidence-technical-question.yaml +0 -0
- /package/{src → plugins/specweave}/skills/project-kickstarter/test-cases/test-4-opt-out-explicit.yaml +0 -0
- /package/{src → plugins/specweave}/skills/role-orchestrator/README.md +0 -0
- /package/{src → plugins/specweave}/skills/role-orchestrator/SKILL.md +0 -0
- /package/{src → plugins/specweave}/skills/task-builder/README.md +0 -0
- /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-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
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
# SpecWeave UI Plugin
|
|
2
|
+
|
|
3
|
+
**Complete UI/UX Development Toolkit** - Playwright E2E testing, Figma design integration, React/Vue/Angular development, design systems, Storybook component testing.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What's Included
|
|
8
|
+
|
|
9
|
+
### Skills (7)
|
|
10
|
+
|
|
11
|
+
1. **e2e-playwright** - Browser automation and E2E testing with Playwright
|
|
12
|
+
- Write automated tests for web applications
|
|
13
|
+
- Cross-browser testing (Chrome, Firefox, Safari, Edge)
|
|
14
|
+
- Screenshot and video capture
|
|
15
|
+
- Accessibility testing
|
|
16
|
+
- Mobile emulation
|
|
17
|
+
|
|
18
|
+
2. **figma-designer** - Figma design integration and mockup creation
|
|
19
|
+
- Create production-ready Figma designs
|
|
20
|
+
- Design systems with reusable components
|
|
21
|
+
- Design tokens (colors, typography, spacing)
|
|
22
|
+
- Responsive layouts
|
|
23
|
+
|
|
24
|
+
3. **figma-implementer** - Convert Figma designs to production code
|
|
25
|
+
- Pixel-perfect React/Angular components
|
|
26
|
+
- Extract design tokens automatically
|
|
27
|
+
- Generate TypeScript interfaces from Figma
|
|
28
|
+
- Storybook integration
|
|
29
|
+
|
|
30
|
+
4. **figma-mcp-connector** - Connect to Figma via MCP servers
|
|
31
|
+
- Read/write Figma files
|
|
32
|
+
- Extract design variables
|
|
33
|
+
- Sync design changes
|
|
34
|
+
|
|
35
|
+
5. **design-system-architect** - Build scalable design systems
|
|
36
|
+
- Atomic design methodology
|
|
37
|
+
- Component hierarchy (atoms/molecules/organisms)
|
|
38
|
+
- Design token management
|
|
39
|
+
- Brand consistency
|
|
40
|
+
|
|
41
|
+
6. **frontend** - React, Vue, Angular development
|
|
42
|
+
- Component-driven development
|
|
43
|
+
- State management (Redux, Zustand, Pinia)
|
|
44
|
+
- Form validation and handling
|
|
45
|
+
- Responsive design with Tailwind/CSS modules
|
|
46
|
+
- Accessibility (WCAG 2.1 compliance)
|
|
47
|
+
|
|
48
|
+
7. **nextjs** - Next.js 14+ App Router specialist
|
|
49
|
+
- Server components and streaming
|
|
50
|
+
- Server actions and mutations
|
|
51
|
+
- Route handlers and middleware
|
|
52
|
+
- Metadata API and SEO
|
|
53
|
+
- NextAuth.js authentication
|
|
54
|
+
- Prisma ORM integration
|
|
55
|
+
|
|
56
|
+
### Agents (1)
|
|
57
|
+
|
|
58
|
+
**ui-ux-specialist** - Unified agent with expertise across all UI/UX tools
|
|
59
|
+
- Combines knowledge from all 7 skills
|
|
60
|
+
- Coordinates design → implementation → testing workflow
|
|
61
|
+
- Provides holistic UI/UX guidance
|
|
62
|
+
|
|
63
|
+
### Commands (3)
|
|
64
|
+
|
|
65
|
+
1. `/ui.test` - Run Playwright E2E tests
|
|
66
|
+
2. `/ui.design` - Generate Figma designs
|
|
67
|
+
3. `/ui.implement` - Convert Figma to code
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Auto-Detection
|
|
72
|
+
|
|
73
|
+
This plugin **auto-activates** when your project contains:
|
|
74
|
+
|
|
75
|
+
**Package.json dependencies**:
|
|
76
|
+
- `@playwright/test`, `playwright`
|
|
77
|
+
- `figma`, `@figma/rest-api-types`
|
|
78
|
+
- `react`, `react-dom`, `next`
|
|
79
|
+
- `vue`, `@vue/core`
|
|
80
|
+
- `@angular/core`
|
|
81
|
+
- `@storybook/react`
|
|
82
|
+
|
|
83
|
+
**Files/directories**:
|
|
84
|
+
- `playwright.config.ts`
|
|
85
|
+
- `figma.config.json`
|
|
86
|
+
- `.storybook/`
|
|
87
|
+
- `next.config.js`
|
|
88
|
+
|
|
89
|
+
**Keywords in increment descriptions**:
|
|
90
|
+
- "playwright", "e2e", "end-to-end"
|
|
91
|
+
- "figma", "design", "ui", "ux"
|
|
92
|
+
- "react", "next", "vue", "angular"
|
|
93
|
+
- "storybook", "design system"
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Installation
|
|
98
|
+
|
|
99
|
+
### Automatic (Recommended)
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# SpecWeave detects UI project and suggests plugin
|
|
103
|
+
specweave init
|
|
104
|
+
|
|
105
|
+
# Detected: React + Playwright
|
|
106
|
+
# Installing: specweave-ui
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Manual
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Via SpecWeave CLI
|
|
113
|
+
specweave plugin enable specweave-ui
|
|
114
|
+
|
|
115
|
+
# Via Claude Code
|
|
116
|
+
/plugin install specweave-ui
|
|
117
|
+
|
|
118
|
+
# Via NPM
|
|
119
|
+
npm install -g specweave
|
|
120
|
+
cp -r node_modules/specweave/plugins/specweave-ui .claude/plugins/
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Usage
|
|
126
|
+
|
|
127
|
+
### E2E Testing with Playwright
|
|
128
|
+
|
|
129
|
+
**Skill auto-activates when you mention:**
|
|
130
|
+
- "Add Playwright tests"
|
|
131
|
+
- "Create E2E test for login"
|
|
132
|
+
- "Test user signup flow"
|
|
133
|
+
|
|
134
|
+
**Example interaction**:
|
|
135
|
+
```
|
|
136
|
+
User: Add Playwright tests for the login page
|
|
137
|
+
AI: I'll create a comprehensive E2E test suite for the login page...
|
|
138
|
+
[Generates tests/e2e/login.spec.ts with Playwright tests]
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Manual command**:
|
|
142
|
+
```bash
|
|
143
|
+
/ui.test login
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### Figma Design Integration
|
|
149
|
+
|
|
150
|
+
**Skill auto-activates when you mention:**
|
|
151
|
+
- "Design in Figma"
|
|
152
|
+
- "Create mockup"
|
|
153
|
+
- "Convert Figma to code"
|
|
154
|
+
|
|
155
|
+
**Example interaction**:
|
|
156
|
+
```
|
|
157
|
+
User: Convert the Figma dashboard design to React components
|
|
158
|
+
AI: I'll extract the Figma design and generate React components...
|
|
159
|
+
[Generates components with design tokens and TypeScript types]
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Manual command**:
|
|
163
|
+
```bash
|
|
164
|
+
/ui.design dashboard
|
|
165
|
+
/ui.implement dashboard
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### Frontend Development
|
|
171
|
+
|
|
172
|
+
**Skill auto-activates when you mention:**
|
|
173
|
+
- "Create React component"
|
|
174
|
+
- "Build Next.js page"
|
|
175
|
+
- "Add Vue component"
|
|
176
|
+
|
|
177
|
+
**Example interaction**:
|
|
178
|
+
```
|
|
179
|
+
User: Create a reusable Button component with variants
|
|
180
|
+
AI: I'll create a Button component following atomic design...
|
|
181
|
+
[Generates Button.tsx with primary/secondary variants, Storybook stories, tests]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
### Design System Architecture
|
|
187
|
+
|
|
188
|
+
**Skill auto-activates when you mention:**
|
|
189
|
+
- "Design system"
|
|
190
|
+
- "Component library"
|
|
191
|
+
- "Design tokens"
|
|
192
|
+
|
|
193
|
+
**Example interaction**:
|
|
194
|
+
```
|
|
195
|
+
User: Set up a design system with Tailwind and design tokens
|
|
196
|
+
AI: I'll create a comprehensive design system...
|
|
197
|
+
[Generates tokens.ts, color palette, typography scale, spacing system]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## MCP Integration (Optional)
|
|
203
|
+
|
|
204
|
+
### Browserbase (Cloud Browser Automation)
|
|
205
|
+
|
|
206
|
+
**What it does**:
|
|
207
|
+
- Runs Playwright tests in cloud infrastructure
|
|
208
|
+
- Parallel test execution (10x faster)
|
|
209
|
+
- No local browser dependencies
|
|
210
|
+
- Automatic screenshots/videos
|
|
211
|
+
|
|
212
|
+
**Setup**:
|
|
213
|
+
|
|
214
|
+
1. Get API key from [Browserbase](https://www.browserbase.com/)
|
|
215
|
+
|
|
216
|
+
2. Set environment variables:
|
|
217
|
+
```bash
|
|
218
|
+
export BROWSERBASE_API_KEY="bb_xxx"
|
|
219
|
+
export BROWSERBASE_PROJECT_ID="proj_xxx"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
3. SpecWeave auto-configures MCP server (via `.mcp.json`)
|
|
223
|
+
|
|
224
|
+
4. Use in Playwright:
|
|
225
|
+
```typescript
|
|
226
|
+
// playwright.config.ts
|
|
227
|
+
export default {
|
|
228
|
+
use: {
|
|
229
|
+
connectOptions: {
|
|
230
|
+
wsEndpoint: process.env.BROWSERBASE_WS_ENDPOINT
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**Benefits**:
|
|
237
|
+
- ✅ 10x faster parallel execution
|
|
238
|
+
- ✅ No local ChromeDriver installation
|
|
239
|
+
- ✅ Automatic scaling
|
|
240
|
+
- ✅ Works in CI/CD without setup
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Workflow Example
|
|
245
|
+
|
|
246
|
+
### Complete UI Feature Development
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# 1. Create increment
|
|
250
|
+
/specweave:inc "Add user dashboard with charts"
|
|
251
|
+
|
|
252
|
+
# 2. SpecWeave detects UI work, auto-enables plugin
|
|
253
|
+
# Installing: specweave-ui (Playwright + Figma + React + Design System)
|
|
254
|
+
|
|
255
|
+
# 3. Design phase (Figma skill)
|
|
256
|
+
/ui.design dashboard
|
|
257
|
+
|
|
258
|
+
# 4. Implementation (Frontend + Next.js skills)
|
|
259
|
+
/ui.implement dashboard
|
|
260
|
+
|
|
261
|
+
# 5. Testing (Playwright skill)
|
|
262
|
+
/ui.test dashboard
|
|
263
|
+
|
|
264
|
+
# 6. Storybook documentation (auto-generated)
|
|
265
|
+
npm run storybook
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**AI auto-coordinates** across all skills:
|
|
269
|
+
1. **Design System Architect**: Defines tokens, components
|
|
270
|
+
2. **Figma Designer**: Creates mockups
|
|
271
|
+
3. **Frontend**: Implements React components
|
|
272
|
+
4. **Next.js**: Integrates into App Router
|
|
273
|
+
5. **Playwright**: Writes E2E tests
|
|
274
|
+
6. **Storybook**: Documents components
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Configuration
|
|
279
|
+
|
|
280
|
+
### Plugin Settings
|
|
281
|
+
|
|
282
|
+
**File**: `.claude/settings.json`
|
|
283
|
+
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"plugins": {
|
|
287
|
+
"specweave-ui": {
|
|
288
|
+
"enabled": true,
|
|
289
|
+
"mcp": {
|
|
290
|
+
"browserbase": {
|
|
291
|
+
"enabled": false
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
"defaults": {
|
|
295
|
+
"frontend_framework": "react", // or "vue", "angular"
|
|
296
|
+
"test_framework": "playwright",
|
|
297
|
+
"design_tool": "figma"
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## FAQ
|
|
307
|
+
|
|
308
|
+
### Q: Do I need all 7 skills?
|
|
309
|
+
|
|
310
|
+
**A**: No! Skills auto-activate based on your project.
|
|
311
|
+
- React project? Only `frontend` and `nextjs` activate
|
|
312
|
+
- Playwright tests? Only `e2e-playwright` activates
|
|
313
|
+
- Design work? Only `figma-*` and `design-system-architect` activate
|
|
314
|
+
|
|
315
|
+
### Q: Can I disable specific skills?
|
|
316
|
+
|
|
317
|
+
**A**: Yes, via settings:
|
|
318
|
+
```json
|
|
319
|
+
{
|
|
320
|
+
"plugins": {
|
|
321
|
+
"specweave-ui": {
|
|
322
|
+
"skills": {
|
|
323
|
+
"figma-designer": { "enabled": false }
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Q: Does this work without SpecWeave?
|
|
331
|
+
|
|
332
|
+
**A**: Yes! This is a **native Claude Code plugin**. Install it directly:
|
|
333
|
+
```bash
|
|
334
|
+
/plugin install specweave-ui
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Q: How much context does this use?
|
|
338
|
+
|
|
339
|
+
**A**:
|
|
340
|
+
- **All skills loaded**: ~8K tokens
|
|
341
|
+
- **Typical usage** (2-3 skills active): ~3K tokens
|
|
342
|
+
- **vs. Monolithic** (loading all 44 skills): 50K tokens
|
|
343
|
+
|
|
344
|
+
**Result**: **84-94% context reduction** vs. old architecture.
|
|
345
|
+
|
|
346
|
+
### Q: Can I contribute skills?
|
|
347
|
+
|
|
348
|
+
**A**: Yes! Submit a PR:
|
|
349
|
+
1. Add skill to `src/plugins/specweave-ui/skills/`
|
|
350
|
+
2. Update `plugin.json` provides list
|
|
351
|
+
3. Add tests in `test-cases/`
|
|
352
|
+
4. Update this README
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Community Extensions
|
|
357
|
+
|
|
358
|
+
### Available Community Skills
|
|
359
|
+
|
|
360
|
+
- **specweave-ui-mobile** - React Native, Flutter, SwiftUI
|
|
361
|
+
- **specweave-ui-3d** - Three.js, WebGL, 3D visualization
|
|
362
|
+
- **specweave-ui-animation** - Framer Motion, GSAP, Lottie
|
|
363
|
+
|
|
364
|
+
**Install**:
|
|
365
|
+
```bash
|
|
366
|
+
/plugin marketplace add specweave-community
|
|
367
|
+
/plugin install specweave-ui-mobile
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## Support
|
|
373
|
+
|
|
374
|
+
- **Documentation**: https://spec-weave.com/plugins/ui
|
|
375
|
+
- **Issues**: https://github.com/anton-abyzov/specweave/issues
|
|
376
|
+
- **Discussions**: https://github.com/anton-abyzov/specweave/discussions
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## License
|
|
381
|
+
|
|
382
|
+
MIT © Anton Abyzov
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
🎨 **SpecWeave UI Plugin** - Complete UI/UX toolkit for AI-assisted development
|
|
@@ -13,6 +13,8 @@ import fs from 'fs-extra';
|
|
|
13
13
|
import { AdapterBase } from '../adapter-base.js';
|
|
14
14
|
import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
|
|
15
15
|
import type { Plugin } from '../../core/types/plugin.js';
|
|
16
|
+
import { LanguageManager, getSystemPromptForLanguage } from '../../core/i18n/language-manager.js';
|
|
17
|
+
import type { SupportedLanguage, I18nConfig } from '../../core/i18n/types.js';
|
|
16
18
|
|
|
17
19
|
export class ClaudeAdapter extends AdapterBase {
|
|
18
20
|
name = 'claude';
|
|
@@ -39,56 +41,50 @@ export class ClaudeAdapter extends AdapterBase {
|
|
|
39
41
|
/**
|
|
40
42
|
* Get files to install for Claude adapter
|
|
41
43
|
*
|
|
42
|
-
* Claude
|
|
43
|
-
*
|
|
44
|
-
* - Agents to .claude/agents/ (specialized roles)
|
|
45
|
-
* - Commands to .claude/commands/ (slash commands)
|
|
46
|
-
* - Hooks to .claude/hooks/ (auto-update mechanisms)
|
|
44
|
+
* Claude Code v0.5.0+ uses native plugin loading via marketplace.
|
|
45
|
+
* No file copying needed!
|
|
47
46
|
*/
|
|
48
47
|
getFiles(): AdapterFile[] {
|
|
49
|
-
return [
|
|
50
|
-
{
|
|
51
|
-
sourcePath: 'README.md',
|
|
52
|
-
targetPath: '.claude/README.md',
|
|
53
|
-
description: 'Claude adapter documentation'
|
|
54
|
-
}
|
|
55
|
-
// Note: Skills, agents, commands, hooks are installed via npm scripts
|
|
56
|
-
// (install:skills, install:agents) - not copied here
|
|
57
|
-
];
|
|
48
|
+
return []; // No files to copy - native loading!
|
|
58
49
|
}
|
|
59
50
|
|
|
60
51
|
/**
|
|
61
52
|
* Install Claude adapter
|
|
62
53
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
54
|
+
* Claude Code v0.5.0+ uses native plugin system with marketplace.
|
|
55
|
+
* Installation steps:
|
|
56
|
+
* 1. Create .specweave/ structure (project data)
|
|
57
|
+
* 2. Show marketplace installation instructions
|
|
58
|
+
* 3. User adds marketplace: /plugin marketplace add anton-abyzov/specweave
|
|
59
|
+
* 4. User installs plugins: /plugin install specweave@specweave
|
|
69
60
|
*/
|
|
70
61
|
async install(options: AdapterOptions): Promise<void> {
|
|
71
|
-
console.log('\n📦 Installing Claude Code Adapter (
|
|
72
|
-
|
|
73
|
-
//
|
|
74
|
-
const
|
|
75
|
-
await fs.ensureDir(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
await fs.ensureDir(path.join(
|
|
79
|
-
await fs.ensureDir(path.join(
|
|
80
|
-
await fs.ensureDir(path.join(
|
|
81
|
-
await fs.ensureDir(path.join(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
await
|
|
85
|
-
|
|
86
|
-
console.log('\n
|
|
87
|
-
console.log('\n📋 Next steps:');
|
|
88
|
-
console.log('
|
|
89
|
-
console.log('
|
|
90
|
-
console.log('
|
|
91
|
-
console.log('
|
|
62
|
+
console.log('\n📦 Installing Claude Code Adapter (Native Plugin System)\n');
|
|
63
|
+
|
|
64
|
+
// Create .specweave/ structure (project data only)
|
|
65
|
+
const specweaveDir = path.join(options.projectPath, '.specweave');
|
|
66
|
+
await fs.ensureDir(specweaveDir);
|
|
67
|
+
await fs.ensureDir(path.join(specweaveDir, 'increments'));
|
|
68
|
+
await fs.ensureDir(path.join(specweaveDir, 'increments', '_backlog'));
|
|
69
|
+
await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'strategy'));
|
|
70
|
+
await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'adr'));
|
|
71
|
+
await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'rfc'));
|
|
72
|
+
await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'architecture', 'diagrams'));
|
|
73
|
+
await fs.ensureDir(path.join(specweaveDir, 'docs', 'internal', 'delivery'));
|
|
74
|
+
await fs.ensureDir(path.join(specweaveDir, 'docs', 'public', 'guides'));
|
|
75
|
+
await fs.ensureDir(path.join(specweaveDir, 'logs'));
|
|
76
|
+
|
|
77
|
+
console.log('\n✅ Created .specweave/ structure');
|
|
78
|
+
console.log('\n📋 Next steps - Install SpecWeave plugins:');
|
|
79
|
+
console.log('\n 1️⃣ Add SpecWeave marketplace:');
|
|
80
|
+
console.log(' /plugin marketplace add anton-abyzov/specweave');
|
|
81
|
+
console.log('\n 2️⃣ Install SpecWeave core:');
|
|
82
|
+
console.log(' /plugin install specweave@specweave');
|
|
83
|
+
console.log('\n 3️⃣ (Optional) Install GitHub plugin:');
|
|
84
|
+
console.log(' /plugin install specweave-github@specweave');
|
|
85
|
+
console.log('\n 4️⃣ Start using SpecWeave:');
|
|
86
|
+
console.log(' /specweave.inc "create a todo app"');
|
|
87
|
+
console.log('\n💡 Tip: Plugins load natively - no file copying needed!');
|
|
92
88
|
}
|
|
93
89
|
|
|
94
90
|
/**
|
|
@@ -167,6 +163,130 @@ For complete documentation, see: .claude/README.md
|
|
|
167
163
|
return true;
|
|
168
164
|
}
|
|
169
165
|
|
|
166
|
+
/**
|
|
167
|
+
* Check if Claude Code native plugin system is available
|
|
168
|
+
*
|
|
169
|
+
* Detects if /plugin commands are supported in current Claude Code version
|
|
170
|
+
*
|
|
171
|
+
* @returns boolean True if native plugin commands available
|
|
172
|
+
*/
|
|
173
|
+
async supportsNativePlugins(): Promise<boolean> {
|
|
174
|
+
// Check if .claude/plugins directory exists (indicates native plugin support)
|
|
175
|
+
const projectPath = process.cwd();
|
|
176
|
+
const nativePluginsDir = path.join(projectPath, '.claude', 'plugins');
|
|
177
|
+
|
|
178
|
+
if (await fs.pathExists(nativePluginsDir)) {
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Check if plugin.json format is present in any installed plugins
|
|
183
|
+
const claudeDir = path.join(projectPath, '.claude');
|
|
184
|
+
if (await fs.pathExists(claudeDir)) {
|
|
185
|
+
const entries = await fs.readdir(claudeDir, { withFileTypes: true });
|
|
186
|
+
for (const entry of entries) {
|
|
187
|
+
if (entry.isDirectory()) {
|
|
188
|
+
const pluginJsonPath = path.join(claudeDir, entry.name, '.claude-plugin', 'plugin.json');
|
|
189
|
+
if (await fs.pathExists(pluginJsonPath)) {
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Get installation instructions based on available plugin system
|
|
201
|
+
*
|
|
202
|
+
* Returns instructions for either:
|
|
203
|
+
* - Native /plugin commands (if supported)
|
|
204
|
+
* - SpecWeave CLI fallback (always available)
|
|
205
|
+
*
|
|
206
|
+
* @param pluginName Name of plugin to install
|
|
207
|
+
* @returns Installation instructions
|
|
208
|
+
*/
|
|
209
|
+
async getPluginInstallInstructions(pluginName: string): Promise<string> {
|
|
210
|
+
const hasNativePlugins = await this.supportsNativePlugins();
|
|
211
|
+
|
|
212
|
+
if (hasNativePlugins) {
|
|
213
|
+
return `
|
|
214
|
+
Installation Options:
|
|
215
|
+
|
|
216
|
+
Option 1 (Recommended): Native Claude Code
|
|
217
|
+
/plugin marketplace add specweave/marketplace
|
|
218
|
+
/plugin install ${pluginName}@specweave
|
|
219
|
+
|
|
220
|
+
Option 2: SpecWeave CLI
|
|
221
|
+
specweave plugin install ${pluginName}
|
|
222
|
+
|
|
223
|
+
Both methods install the same plugin - choose based on preference!
|
|
224
|
+
`.trim();
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
return `
|
|
228
|
+
Installation:
|
|
229
|
+
specweave plugin install ${pluginName}
|
|
230
|
+
|
|
231
|
+
Note: Native /plugin commands not detected in your Claude Code version.
|
|
232
|
+
Using SpecWeave CLI for plugin management.
|
|
233
|
+
`.trim();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Read language configuration from project config
|
|
238
|
+
*
|
|
239
|
+
* @returns Language setting from config, defaults to 'en'
|
|
240
|
+
*/
|
|
241
|
+
private async getLanguageConfig(): Promise<SupportedLanguage> {
|
|
242
|
+
const projectPath = process.cwd();
|
|
243
|
+
const configPath = path.join(projectPath, '.specweave', 'config.json');
|
|
244
|
+
|
|
245
|
+
if (!(await fs.pathExists(configPath))) {
|
|
246
|
+
return 'en'; // Default to English if no config
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
try {
|
|
250
|
+
const config = await fs.readJson(configPath);
|
|
251
|
+
return (config.language as SupportedLanguage) || 'en';
|
|
252
|
+
} catch (error) {
|
|
253
|
+
console.warn('⚠️ Could not read language from config, defaulting to English');
|
|
254
|
+
return 'en';
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Inject system prompt for non-English languages
|
|
260
|
+
*
|
|
261
|
+
* Prepends language instruction to markdown content if language !== 'en'
|
|
262
|
+
*
|
|
263
|
+
* @param content Original markdown content
|
|
264
|
+
* @param language Target language
|
|
265
|
+
* @returns Modified content with system prompt (or unchanged if English)
|
|
266
|
+
*/
|
|
267
|
+
private injectSystemPrompt(content: string, language: SupportedLanguage): string {
|
|
268
|
+
if (language === 'en') {
|
|
269
|
+
return content; // No changes for English - preserve default behavior
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// Get system prompt for target language
|
|
273
|
+
const systemPrompt = getSystemPromptForLanguage(language);
|
|
274
|
+
|
|
275
|
+
// Inject system prompt at the top (after YAML frontmatter if present)
|
|
276
|
+
if (content.startsWith('---')) {
|
|
277
|
+
// Has YAML frontmatter - inject after closing ---
|
|
278
|
+
const endOfFrontmatter = content.indexOf('---', 3);
|
|
279
|
+
if (endOfFrontmatter !== -1) {
|
|
280
|
+
const frontmatter = content.substring(0, endOfFrontmatter + 3);
|
|
281
|
+
const body = content.substring(endOfFrontmatter + 3);
|
|
282
|
+
return `${frontmatter}\n\n${systemPrompt}\n${body}`;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// No frontmatter - inject at the very top
|
|
287
|
+
return `${systemPrompt}\n\n${content}`;
|
|
288
|
+
}
|
|
289
|
+
|
|
170
290
|
/**
|
|
171
291
|
* Compile and install a plugin for Claude Code
|
|
172
292
|
*
|
|
@@ -175,6 +295,12 @@ For complete documentation, see: .claude/README.md
|
|
|
175
295
|
* - Copy agents to .claude/agents/{plugin-name}/{agent-name}/
|
|
176
296
|
* - Copy commands to .claude/commands/
|
|
177
297
|
*
|
|
298
|
+
* Supports both:
|
|
299
|
+
* - Native /plugin install (if Claude Code supports it)
|
|
300
|
+
* - SpecWeave CLI fallback (always available)
|
|
301
|
+
*
|
|
302
|
+
* NEW: Injects system prompts for non-English languages
|
|
303
|
+
*
|
|
178
304
|
* @param plugin Plugin to install
|
|
179
305
|
*/
|
|
180
306
|
async compilePlugin(plugin: Plugin): Promise<void> {
|
|
@@ -183,6 +309,21 @@ For complete documentation, see: .claude/README.md
|
|
|
183
309
|
|
|
184
310
|
console.log(`\n📦 Installing plugin: ${plugin.manifest.name}`);
|
|
185
311
|
|
|
312
|
+
// Get language configuration for system prompt injection
|
|
313
|
+
const language = await this.getLanguageConfig();
|
|
314
|
+
if (language !== 'en') {
|
|
315
|
+
console.log(` 🌐 Language: ${language} (system prompts will be injected)`);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
// Check for native plugin support
|
|
319
|
+
const hasNativePlugins = await this.supportsNativePlugins();
|
|
320
|
+
if (hasNativePlugins) {
|
|
321
|
+
console.log(' 💡 Tip: You can also use native /plugin commands:');
|
|
322
|
+
console.log(` /plugin marketplace add specweave/marketplace`);
|
|
323
|
+
console.log(` /plugin install ${plugin.manifest.name.replace('specweave-', '')}@specweave`);
|
|
324
|
+
console.log('');
|
|
325
|
+
}
|
|
326
|
+
|
|
186
327
|
// Ensure base directories exist
|
|
187
328
|
await fs.ensureDir(path.join(claudeDir, 'skills'));
|
|
188
329
|
await fs.ensureDir(path.join(claudeDir, 'agents'));
|
|
@@ -193,10 +334,12 @@ For complete documentation, see: .claude/README.md
|
|
|
193
334
|
const targetPath = path.join(claudeDir, 'skills', skill.name);
|
|
194
335
|
await fs.ensureDir(targetPath);
|
|
195
336
|
|
|
196
|
-
// Copy SKILL.md
|
|
337
|
+
// Copy SKILL.md (with language injection if needed)
|
|
197
338
|
const skillMdPath = path.join(skill.path, 'SKILL.md');
|
|
198
339
|
if (await fs.pathExists(skillMdPath)) {
|
|
199
|
-
await fs.
|
|
340
|
+
const content = await fs.readFile(skillMdPath, 'utf-8');
|
|
341
|
+
const modifiedContent = this.injectSystemPrompt(content, language);
|
|
342
|
+
await fs.writeFile(path.join(targetPath, 'SKILL.md'), modifiedContent, 'utf-8');
|
|
200
343
|
}
|
|
201
344
|
|
|
202
345
|
// Copy test cases if they exist
|
|
@@ -213,10 +356,12 @@ For complete documentation, see: .claude/README.md
|
|
|
213
356
|
const targetPath = path.join(claudeDir, 'agents', agent.name);
|
|
214
357
|
await fs.ensureDir(targetPath);
|
|
215
358
|
|
|
216
|
-
// Copy AGENT.md
|
|
359
|
+
// Copy AGENT.md (with language injection if needed)
|
|
217
360
|
const agentMdPath = path.join(agent.path, 'AGENT.md');
|
|
218
361
|
if (await fs.pathExists(agentMdPath)) {
|
|
219
|
-
await fs.
|
|
362
|
+
const content = await fs.readFile(agentMdPath, 'utf-8');
|
|
363
|
+
const modifiedContent = this.injectSystemPrompt(content, language);
|
|
364
|
+
await fs.writeFile(path.join(targetPath, 'AGENT.md'), modifiedContent, 'utf-8');
|
|
220
365
|
}
|
|
221
366
|
|
|
222
367
|
console.log(` ✓ Agent: ${agent.name}`);
|
|
@@ -229,7 +374,9 @@ For complete documentation, see: .claude/README.md
|
|
|
229
374
|
const targetPath = path.join(claudeDir, 'commands', fileName);
|
|
230
375
|
|
|
231
376
|
if (await fs.pathExists(command.path)) {
|
|
232
|
-
await fs.
|
|
377
|
+
const content = await fs.readFile(command.path, 'utf-8');
|
|
378
|
+
const modifiedContent = this.injectSystemPrompt(content, language);
|
|
379
|
+
await fs.writeFile(targetPath, modifiedContent, 'utf-8');
|
|
233
380
|
}
|
|
234
381
|
|
|
235
382
|
console.log(` ✓ Command: /${command.name}`);
|