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,97 @@
|
|
|
1
|
+
import { ExecFileException } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Result from command execution
|
|
4
|
+
*/
|
|
5
|
+
export interface ExecResult {
|
|
6
|
+
/** Standard output from command */
|
|
7
|
+
stdout: string;
|
|
8
|
+
/** Standard error from command */
|
|
9
|
+
stderr: string;
|
|
10
|
+
/** Exit code (0 = success) */
|
|
11
|
+
exitCode: number;
|
|
12
|
+
/** Whether command succeeded (exitCode === 0) */
|
|
13
|
+
success: boolean;
|
|
14
|
+
/** Error object if command failed */
|
|
15
|
+
error?: ExecFileException;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Safely execute a command without throwing errors
|
|
19
|
+
*
|
|
20
|
+
* This utility uses child_process.execFile instead of exec/execSync:
|
|
21
|
+
* - ✅ Prevents command injection vulnerabilities (no shell interpolation)
|
|
22
|
+
* - ✅ Cross-platform compatible (Windows, Mac, Linux)
|
|
23
|
+
* - ✅ Proper error handling (returns result instead of throwing)
|
|
24
|
+
* - ✅ Structured output (stdout, stderr, exitCode)
|
|
25
|
+
*
|
|
26
|
+
* @param command - Command to execute (must be in PATH or absolute path)
|
|
27
|
+
* @param args - Array of arguments (safely escaped automatically)
|
|
28
|
+
* @param options - Additional execution options
|
|
29
|
+
* @returns Promise resolving to execution result
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // ✅ Safe: Arguments automatically escaped
|
|
34
|
+
* const result = await execFileNoThrow('git', ['add', userProvidedFilename]);
|
|
35
|
+
* if (result.success) {
|
|
36
|
+
* console.log('Git add succeeded:', result.stdout);
|
|
37
|
+
* } else {
|
|
38
|
+
* console.error('Git add failed:', result.stderr);
|
|
39
|
+
* }
|
|
40
|
+
*
|
|
41
|
+
* // ✅ Check if command exists
|
|
42
|
+
* const which = process.platform === 'win32' ? 'where' : 'which';
|
|
43
|
+
* const checkResult = await execFileNoThrow(which, ['claude']);
|
|
44
|
+
* if (checkResult.success) {
|
|
45
|
+
* console.log('Claude CLI found at:', checkResult.stdout.trim());
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function execFileNoThrow(command: string, args?: string[], options?: {
|
|
50
|
+
cwd?: string;
|
|
51
|
+
env?: NodeJS.ProcessEnv;
|
|
52
|
+
timeout?: number;
|
|
53
|
+
maxBuffer?: number;
|
|
54
|
+
}): Promise<ExecResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Synchronous version of execFileNoThrow
|
|
57
|
+
*
|
|
58
|
+
* Use sparingly - prefer async version when possible.
|
|
59
|
+
* Useful for initialization code that needs to be synchronous.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const result = execFileNoThrowSync('claude', ['--version']);
|
|
64
|
+
* if (result.success) {
|
|
65
|
+
* console.log('Claude version:', result.stdout.trim());
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function execFileNoThrowSync(command: string, args?: string[], options?: {
|
|
70
|
+
cwd?: string;
|
|
71
|
+
env?: NodeJS.ProcessEnv;
|
|
72
|
+
timeout?: number;
|
|
73
|
+
maxBuffer?: number;
|
|
74
|
+
}): ExecResult;
|
|
75
|
+
/**
|
|
76
|
+
* Check if a command is available in PATH
|
|
77
|
+
*
|
|
78
|
+
* Cross-platform helper that uses 'which' (Unix) or 'where' (Windows)
|
|
79
|
+
*
|
|
80
|
+
* @param command - Command name to check (e.g., 'claude', 'git', 'node')
|
|
81
|
+
* @returns Promise resolving to true if command exists, false otherwise
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* if (await isCommandAvailable('claude')) {
|
|
86
|
+
* console.log('Claude CLI is installed');
|
|
87
|
+
* } else {
|
|
88
|
+
* console.log('Claude CLI not found - install from https://claude.com/code');
|
|
89
|
+
* }
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function isCommandAvailable(command: string): Promise<boolean>;
|
|
93
|
+
/**
|
|
94
|
+
* Synchronous version of isCommandAvailable
|
|
95
|
+
*/
|
|
96
|
+
export declare function isCommandAvailableSync(command: string): boolean;
|
|
97
|
+
//# sourceMappingURL=execFileNoThrow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execFileNoThrow.d.ts","sourceRoot":"","sources":["../../src/utils/execFileNoThrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAK1E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,UAAU,CAAC,CA0BrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,UAAU,CAuBZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI/D"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { execFile, execFileSync } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
const execFileAsync = promisify(execFile);
|
|
4
|
+
/**
|
|
5
|
+
* Safely execute a command without throwing errors
|
|
6
|
+
*
|
|
7
|
+
* This utility uses child_process.execFile instead of exec/execSync:
|
|
8
|
+
* - ✅ Prevents command injection vulnerabilities (no shell interpolation)
|
|
9
|
+
* - ✅ Cross-platform compatible (Windows, Mac, Linux)
|
|
10
|
+
* - ✅ Proper error handling (returns result instead of throwing)
|
|
11
|
+
* - ✅ Structured output (stdout, stderr, exitCode)
|
|
12
|
+
*
|
|
13
|
+
* @param command - Command to execute (must be in PATH or absolute path)
|
|
14
|
+
* @param args - Array of arguments (safely escaped automatically)
|
|
15
|
+
* @param options - Additional execution options
|
|
16
|
+
* @returns Promise resolving to execution result
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // ✅ Safe: Arguments automatically escaped
|
|
21
|
+
* const result = await execFileNoThrow('git', ['add', userProvidedFilename]);
|
|
22
|
+
* if (result.success) {
|
|
23
|
+
* console.log('Git add succeeded:', result.stdout);
|
|
24
|
+
* } else {
|
|
25
|
+
* console.error('Git add failed:', result.stderr);
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* // ✅ Check if command exists
|
|
29
|
+
* const which = process.platform === 'win32' ? 'where' : 'which';
|
|
30
|
+
* const checkResult = await execFileNoThrow(which, ['claude']);
|
|
31
|
+
* if (checkResult.success) {
|
|
32
|
+
* console.log('Claude CLI found at:', checkResult.stdout.trim());
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export async function execFileNoThrow(command, args = [], options = {}) {
|
|
37
|
+
try {
|
|
38
|
+
const { stdout, stderr } = await execFileAsync(command, args, {
|
|
39
|
+
...options,
|
|
40
|
+
encoding: 'utf-8',
|
|
41
|
+
// Windows compatibility: execFile automatically finds .exe/.cmd/.bat
|
|
42
|
+
windowsHide: true, // Don't show console window on Windows
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
stdout: stdout || '',
|
|
46
|
+
stderr: stderr || '',
|
|
47
|
+
exitCode: 0,
|
|
48
|
+
success: true,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
const execError = error;
|
|
53
|
+
return {
|
|
54
|
+
stdout: execError.stdout || '',
|
|
55
|
+
stderr: execError.stderr || '',
|
|
56
|
+
exitCode: typeof execError.code === 'number' ? execError.code : 1,
|
|
57
|
+
success: false,
|
|
58
|
+
error: execError,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Synchronous version of execFileNoThrow
|
|
64
|
+
*
|
|
65
|
+
* Use sparingly - prefer async version when possible.
|
|
66
|
+
* Useful for initialization code that needs to be synchronous.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const result = execFileNoThrowSync('claude', ['--version']);
|
|
71
|
+
* if (result.success) {
|
|
72
|
+
* console.log('Claude version:', result.stdout.trim());
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export function execFileNoThrowSync(command, args = [], options = {}) {
|
|
77
|
+
try {
|
|
78
|
+
const stdout = execFileSync(command, args, {
|
|
79
|
+
...options,
|
|
80
|
+
encoding: 'utf-8',
|
|
81
|
+
windowsHide: true,
|
|
82
|
+
});
|
|
83
|
+
return {
|
|
84
|
+
stdout: stdout || '',
|
|
85
|
+
stderr: '',
|
|
86
|
+
exitCode: 0,
|
|
87
|
+
success: true,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
return {
|
|
92
|
+
stdout: error.stdout || '',
|
|
93
|
+
stderr: error.stderr || '',
|
|
94
|
+
exitCode: typeof error.status === 'number' ? error.status : 1,
|
|
95
|
+
success: false,
|
|
96
|
+
error: error,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Check if a command is available in PATH
|
|
102
|
+
*
|
|
103
|
+
* Cross-platform helper that uses 'which' (Unix) or 'where' (Windows)
|
|
104
|
+
*
|
|
105
|
+
* @param command - Command name to check (e.g., 'claude', 'git', 'node')
|
|
106
|
+
* @returns Promise resolving to true if command exists, false otherwise
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* if (await isCommandAvailable('claude')) {
|
|
111
|
+
* console.log('Claude CLI is installed');
|
|
112
|
+
* } else {
|
|
113
|
+
* console.log('Claude CLI not found - install from https://claude.com/code');
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export async function isCommandAvailable(command) {
|
|
118
|
+
const whichCommand = process.platform === 'win32' ? 'where' : 'which';
|
|
119
|
+
const result = await execFileNoThrow(whichCommand, [command]);
|
|
120
|
+
return result.success;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Synchronous version of isCommandAvailable
|
|
124
|
+
*/
|
|
125
|
+
export function isCommandAvailableSync(command) {
|
|
126
|
+
const whichCommand = process.platform === 'win32' ? 'where' : 'which';
|
|
127
|
+
const result = execFileNoThrowSync(whichCommand, [command]);
|
|
128
|
+
return result.success;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=execFileNoThrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execFileNoThrow.js","sourceRoot":"","sources":["../../src/utils/execFileNoThrow.ts"],"names":[],"mappings":"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"}
|
|
@@ -350,8 +350,8 @@ This index simulates Claude Code's native progressive disclosure:
|
|
|
350
350
|
*/
|
|
351
351
|
export async function generateSkillsIndex(outputPath) {
|
|
352
352
|
console.log('🔍 Scanning skills...');
|
|
353
|
-
// Determine skills directory
|
|
354
|
-
const skillsDir = path.join(__dirname, '../../
|
|
353
|
+
// Determine skills directory (root-level after v0.5.0 Claude native architecture)
|
|
354
|
+
const skillsDir = path.join(__dirname, '../../skills');
|
|
355
355
|
if (!fs.existsSync(skillsDir)) {
|
|
356
356
|
throw new Error(`Skills directory not found: ${skillsDir}`);
|
|
357
357
|
}
|
|
@@ -374,8 +374,8 @@ export async function generateSkillsIndex(outputPath) {
|
|
|
374
374
|
console.log(`✅ Found ${skills.length} skills`);
|
|
375
375
|
// Generate markdown
|
|
376
376
|
const markdown = generateIndexMarkdown(skills);
|
|
377
|
-
// Determine output path
|
|
378
|
-
const defaultOutputPath = path.join(__dirname, '../../
|
|
377
|
+
// Determine output path (root-level after v0.5.0 Claude native architecture)
|
|
378
|
+
const defaultOutputPath = path.join(__dirname, '../../skills/SKILLS-INDEX.md');
|
|
379
379
|
const finalOutputPath = outputPath || defaultOutputPath;
|
|
380
380
|
// Write to file
|
|
381
381
|
fs.writeFileSync(finalOutputPath, markdown, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-skills-index.js","sourceRoot":"","sources":["../../src/utils/generate-skills-index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generate-skills-index.js","sourceRoot":"","sources":["../../src/utils/generate-skills-index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Replace vibe coding with spec-driven development. Smart workflow: /specweave inc auto-closes previous, /specweave build auto-resumes, /specweave progress shows status. PM-led planning, 10 agents, 35+ skills. spec-weave.com",
|
|
3
|
+
"version": "0.6.3",
|
|
4
|
+
"description": "Replace vibe coding with spec-driven development. LLM-native i18n in 9 languages. Smart workflow: /specweave inc auto-closes previous, /specweave build auto-resumes, /specweave progress shows status. PM-led planning, 10 agents, 35+ skills. spec-weave.com",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"specweave": "./bin/specweave.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
11
|
+
"build": "tsc && npm run copy:locales",
|
|
12
|
+
"copy:locales": "node scripts/copy-locales.js",
|
|
12
13
|
"dev": "tsc --watch",
|
|
13
14
|
"prepare": "npm run build",
|
|
14
15
|
"test": "jest",
|
|
@@ -22,18 +23,14 @@
|
|
|
22
23
|
"test:incremental:jira": "npx tsx tests/integration/jira-sync/jira-incremental-sync.test.ts",
|
|
23
24
|
"test:ml:pipeline": "npx tsx tests/integration/ml-pipeline-workflow/ml-pipeline-soccer-detection.test.ts",
|
|
24
25
|
"test:ml:real": "npx tsx tests/integration/ml-pipeline-workflow/ml-pipeline-real-video.test.ts",
|
|
26
|
+
"test:github-sync": "npx tsx scripts/test-github-sync.ts",
|
|
25
27
|
"generate:tests": "npx tsx scripts/generate-tests.ts",
|
|
26
28
|
"generate:tests:skill": "npx tsx scripts/generate-tests.ts",
|
|
27
29
|
"test:all:generated": "bash scripts/run-all-tests.sh",
|
|
28
30
|
"test:all": "npm test && npm run test:smoke && npm run test:integration",
|
|
29
31
|
"generate:skills-index": "npx tsx src/utils/generate-skills-index.ts",
|
|
30
32
|
"prepublishOnly": "npm run build",
|
|
31
|
-
"install:
|
|
32
|
-
"install:skills": "bash bin/install-skills.sh",
|
|
33
|
-
"install:all": "bash bin/install-all.sh",
|
|
34
|
-
"install:agents:global": "bash bin/install-agents.sh --global",
|
|
35
|
-
"install:skills:global": "bash bin/install-skills.sh --global",
|
|
36
|
-
"install:all:global": "bash bin/install-all.sh --global",
|
|
33
|
+
"install:deprecated": "echo '⚠️ DEPRECATED: Install scripts no longer needed for Claude Code (native loading). For other tools, run: specweave init'",
|
|
37
34
|
"generate:diagrams": "bash scripts/generate-diagram-svgs.sh",
|
|
38
35
|
"docs:dev": "cd docs-site && npm start",
|
|
39
36
|
"docs:build": "cd docs-site && npm run build"
|
|
@@ -62,16 +59,18 @@
|
|
|
62
59
|
},
|
|
63
60
|
"homepage": "https://spec-weave.com",
|
|
64
61
|
"engines": {
|
|
65
|
-
"node": ">=
|
|
62
|
+
"node": ">=20.0.0"
|
|
66
63
|
},
|
|
67
64
|
"files": [
|
|
68
65
|
"dist",
|
|
69
66
|
"bin",
|
|
67
|
+
".claude-plugin",
|
|
68
|
+
"skills",
|
|
69
|
+
"agents",
|
|
70
|
+
"commands",
|
|
71
|
+
"hooks",
|
|
72
|
+
"plugins",
|
|
70
73
|
"src/templates",
|
|
71
|
-
"src/skills",
|
|
72
|
-
"src/agents",
|
|
73
|
-
"src/commands",
|
|
74
|
-
"src/hooks",
|
|
75
74
|
"src/adapters",
|
|
76
75
|
"README.md",
|
|
77
76
|
"SPECWEAVE.md",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[Mon Nov 3 09:34:04 EST 2025] 📋 TodoWrite hook fired
|
|
2
|
+
[Mon Nov 3 09:34:04 EST 2025] Input JSON:
|
|
3
|
+
{"session_id":"0838c8f3-363c-474c-b220-be7164977242","transcript_path":"/Users/antonabyzov/.claude/projects/-Users-antonabyzov-Projects-github-specweave/0838c8f3-363c-474c-b220-be7164977242.jsonl","cwd":"/Users/antonabyzov/Projects/github/specweave","permission_mode":"bypassPermissions","hook_event_name":"PostToolUse","tool_name":"TodoWrite","tool_input":{"todos":[{"content":"Analyze failing GitHub Actions workflows","status":"completed","activeForm":"Analyzing failing GitHub Actions workflows"},{"content":"Fix cross-platform copy:locales script for Windows support","status":"completed","activeForm":"Fixing cross-platform copy:locales script for Windows support"},{"content":"Update Node.js minimum version to 20.x for dependencies","status":"completed","activeForm":"Updating Node.js minimum version to 20.x for dependencies"},{"content":"Test the build locally to verify copy-locales script works","status":"completed","activeForm":"Testing the build locally to verify copy-locales script works"},{"content":"Check and fix Jest test configuration","status":"completed","activeForm":"Checking and fixing Jest test configuration"},{"content":"Fix E2E smoke test failures","status":"completed","activeForm":"Fixing E2E smoke test failures"},{"content":"Commit and push all fixes","status":"completed","activeForm":"Committing and pushing all fixes"}]},"tool_response":{"oldTodos":[{"content":"Analyze failing GitHub Actions workflows","status":"completed","activeForm":"Analyzing failing GitHub Actions workflows"},{"content":"Fix cross-platform copy:locales script for Windows support","status":"completed","activeForm":"Fixing cross-platform copy:locales script for Windows support"},{"content":"Update Node.js minimum version to 20.x for dependencies","status":"completed","activeForm":"Updating Node.js minimum version to 20.x for dependencies"},{"content":"Test the build locally to verify copy-locales script works","status":"completed","activeForm":"Testing the build locally to verify copy-locales script works"},{"content":"Check and fix Jest test configuration","status":"completed","activeForm":"Checking and fixing Jest test configuration"},{"content":"Fix E2E smoke test failures","status":"completed","activeForm":"Fixing E2E smoke test failures"},{"content":"Commit and push all fixes","status":"in_progress","activeForm":"Committing and pushing all fixes"}],"newTodos":[{"content":"Analyze failing GitHub Actions workflows","status":"completed","activeForm":"Analyzing failing GitHub Actions workflows"},{"content":"Fix cross-platform copy:locales script for Windows support","status":"completed","activeForm":"Fixing cross-platform copy:locales script for Windows support"},{"content":"Update Node.js minimum version to 20.x for dependencies","status":"completed","activeForm":"Updating Node.js minimum version to 20.x for dependencies"},{"content":"Test the build locally to verify copy-locales script works","status":"completed","activeForm":"Testing the build locally to verify copy-locales script works"},{"content":"Check and fix Jest test configuration","status":"completed","activeForm":"Checking and fixing Jest test configuration"},{"content":"Fix E2E smoke test failures","status":"completed","activeForm":"Fixing E2E smoke test failures"},{"content":"Commit and push all fixes","status":"completed","activeForm":"Committing and pushing all fixes"}]}}
|
|
4
|
+
[Mon Nov 3 09:34:04 EST 2025] 🆕 First TodoWrite in session
|
|
5
|
+
[Mon Nov 3 09:34:04 EST 2025] 📊 Tasks: 7/7 completed
|
|
6
|
+
[Mon Nov 3 09:34:04 EST 2025] ⚡ All tasks complete, but rapid activity (0s < 15s) - Claude likely creating more work (no sound)
|
|
7
|
+
[Mon Nov 3 09:34:04 EST 2025] ℹ️ No current increment or tasks.md found, skipping tasks.md update
|
|
8
|
+
---
|
|
9
|
+
[Mon Nov 3 13:38:00 EST 2025] 📋 TodoWrite hook fired
|
|
10
|
+
[Mon Nov 3 13:38:00 EST 2025] Input JSON:
|
|
11
|
+
{"session_id":"2bd78607-8a30-4dc4-a33c-a79f383b2cf5","transcript_path":"/Users/antonabyzov/.claude/projects/-Users-antonabyzov-Projects-github-specweave/2bd78607-8a30-4dc4-a33c-a79f383b2cf5.jsonl","cwd":"/Users/antonabyzov/Projects/github/specweave","permission_mode":"bypassPermissions","hook_event_name":"PostToolUse","tool_name":"TodoWrite","tool_input":{"todos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"pending","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}]},"tool_response":{"oldTodos":[],"newTodos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"pending","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}]}}
|
|
12
|
+
[Mon Nov 3 13:38:00 EST 2025] ⏱️ Inactivity gap: 14636s (threshold: 15s)
|
|
13
|
+
[Mon Nov 3 13:38:00 EST 2025] 📊 Tasks: 0/10 completed
|
|
14
|
+
[Mon Nov 3 13:38:00 EST 2025] 🔄 Tasks remaining in current list (no sound)
|
|
15
|
+
[Mon Nov 3 13:38:00 EST 2025] ℹ️ No current increment or tasks.md found, skipping tasks.md update
|
|
16
|
+
---
|
|
17
|
+
[Mon Nov 3 13:38:09 EST 2025] 📋 TodoWrite hook fired
|
|
18
|
+
[Mon Nov 3 13:38:09 EST 2025] Input JSON:
|
|
19
|
+
{"session_id":"2bd78607-8a30-4dc4-a33c-a79f383b2cf5","transcript_path":"/Users/antonabyzov/.claude/projects/-Users-antonabyzov-Projects-github-specweave/2bd78607-8a30-4dc4-a33c-a79f383b2cf5.jsonl","cwd":"/Users/antonabyzov/Projects/github/specweave","permission_mode":"bypassPermissions","hook_event_name":"PostToolUse","tool_name":"TodoWrite","tool_input":{"todos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"in_progress","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}]},"tool_response":{"oldTodos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"pending","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}],"newTodos":[{"content":"Rename plugin directory from specweave-core to specweave","status":"in_progress","activeForm":"Renaming plugin directory from specweave-core to specweave"},{"content":"Update plugin.json with new name","status":"pending","activeForm":"Updating plugin.json with new name"},{"content":"Rename all command files (remove specweave. prefix)","status":"pending","activeForm":"Renaming all command files (remove specweave. prefix)"},{"content":"Update marketplace.json registry","status":"pending","activeForm":"Updating marketplace.json registry"},{"content":"Update CLAUDE.md with new command format","status":"pending","activeForm":"Updating CLAUDE.md with new command format"},{"content":"Update README.md with new command format","status":"pending","activeForm":"Updating README.md with new command format"},{"content":"Update all Docusaurus site documentation","status":"pending","activeForm":"Updating all Docusaurus site documentation"},{"content":"Update source code references to plugin name","status":"pending","activeForm":"Updating source code references to plugin name"},{"content":"Update test files with new plugin name","status":"pending","activeForm":"Updating test files with new plugin name"},{"content":"Update increment specs/plans with new command format","status":"pending","activeForm":"Updating increment specs/plans with new command format"}]}}
|
|
20
|
+
[Mon Nov 3 13:38:09 EST 2025] ⏱️ Inactivity gap: 9s (threshold: 15s)
|
|
21
|
+
[Mon Nov 3 13:38:09 EST 2025] 📊 Tasks: 0/10 completed
|
|
22
|
+
[Mon Nov 3 13:38:09 EST 2025] 🔄 Tasks remaining in current list (no sound)
|
|
23
|
+
[Mon Nov 3 13:38:09 EST 2025] ℹ️ No current increment or tasks.md found, skipping tasks.md update
|
|
24
|
+
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1762195089
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1762195089
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
[Mon Nov 3 09:34:04 EST 2025] Status: All_completed=true, Session_ending=false, Inactivity=0s
|
|
2
|
+
[Mon Nov 3 09:34:04 EST 2025] Reason: All tasks complete, but rapid activity (0s < 15s) - Claude likely creating more work
|
|
3
|
+
[Mon Nov 3 13:38:00 EST 2025] Status: All_completed=false, Session_ending=false, Inactivity=14636s
|
|
4
|
+
[Mon Nov 3 13:38:00 EST 2025] Reason: Tasks remaining in current list
|
|
5
|
+
[Mon Nov 3 13:38:09 EST 2025] Status: All_completed=false, Session_ending=false, Inactivity=9s
|
|
6
|
+
[Mon Nov 3 13:38:09 EST 2025] Reason: Tasks remaining in current list
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "specweave",
|
|
3
|
+
"description": "SpecWeave framework. Provides increment planning (PM, Architect, Tech Lead agents), RFC generation, TDD workflow, living docs sync, and brownfield support. Essential for all SpecWeave projects.",
|
|
4
|
+
"version": "0.6.1",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "SpecWeave Team",
|
|
7
|
+
"url": "https://spec-weave.com"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://spec-weave.com",
|
|
10
|
+
"repository": "https://github.com/anton-abyzov/specweave",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"specweave",
|
|
14
|
+
"core",
|
|
15
|
+
"increment-planning",
|
|
16
|
+
"rfc",
|
|
17
|
+
"tdd",
|
|
18
|
+
"pm",
|
|
19
|
+
"architect",
|
|
20
|
+
"living-docs"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -27,6 +27,86 @@ These guides contain:
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
+
## ⛔ CRITICAL: Increment Discipline (v0.6.0+ MANDATORY)
|
|
31
|
+
|
|
32
|
+
**THE IRON RULE**: You CANNOT plan increment N+1 until increment N is DONE.
|
|
33
|
+
|
|
34
|
+
**ENFORCEMENT**: This is NON-NEGOTIABLE. You MUST enforce strict increment discipline.
|
|
35
|
+
|
|
36
|
+
### Pre-Planning Validation (Step 0 - MANDATORY)
|
|
37
|
+
|
|
38
|
+
**BEFORE planning any new increment**, you MUST:
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
// Import the status detector
|
|
42
|
+
import { IncrementStatusDetector } from '../../src/core/increment-status';
|
|
43
|
+
|
|
44
|
+
// Check for incomplete increments
|
|
45
|
+
const detector = new IncrementStatusDetector();
|
|
46
|
+
const incomplete = await detector.getAllIncomplete();
|
|
47
|
+
|
|
48
|
+
if (incomplete.length > 0) {
|
|
49
|
+
// ❌ BLOCK IMMEDIATELY - Do NOT proceed with planning
|
|
50
|
+
console.log('❌ Cannot plan new increment! Previous increments incomplete.');
|
|
51
|
+
console.log('');
|
|
52
|
+
|
|
53
|
+
incomplete.forEach(status => {
|
|
54
|
+
console.log(`📋 ${status.id}: ${status.percentComplete}% complete`);
|
|
55
|
+
console.log(` ${status.completedTasks}/${status.totalTasks} tasks done`);
|
|
56
|
+
if (status.pendingTasks.length <= 3) {
|
|
57
|
+
status.pendingTasks.forEach(task => {
|
|
58
|
+
console.log(` - ${task.id}: ${task.title}`);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
console.log('');
|
|
64
|
+
console.log('💡 Use /specweave:close to close incomplete increments.');
|
|
65
|
+
console.log('');
|
|
66
|
+
|
|
67
|
+
// EXIT - Do NOT plan
|
|
68
|
+
throw new Error('Increment discipline violation: Previous increments incomplete');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// ✅ If we reach here, all previous increments are complete
|
|
72
|
+
// Proceed with planning
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Why This Matters
|
|
76
|
+
|
|
77
|
+
**Without discipline**:
|
|
78
|
+
- Multiple incomplete increments pile up (e.g., 0002, 0003, 0006 all in progress)
|
|
79
|
+
- No clear source of truth ("which increment are we working on?")
|
|
80
|
+
- Living docs become stale (sync doesn't know what's current)
|
|
81
|
+
- Scope creep (jumping between features without finishing)
|
|
82
|
+
- Quality degradation (tests not run, docs not updated)
|
|
83
|
+
|
|
84
|
+
**With discipline**:
|
|
85
|
+
- ✅ ONE increment active at a time
|
|
86
|
+
- ✅ Clear source of truth
|
|
87
|
+
- ✅ Living docs stay current
|
|
88
|
+
- ✅ Focus on completion
|
|
89
|
+
- ✅ Quality enforced
|
|
90
|
+
|
|
91
|
+
### What "DONE" Means
|
|
92
|
+
|
|
93
|
+
An increment is DONE if **ONE** of:
|
|
94
|
+
1. All tasks in `tasks.md` marked `[x] Completed`
|
|
95
|
+
2. `COMPLETION-SUMMARY.md` exists with "✅ COMPLETE" status
|
|
96
|
+
3. Explicit closure via `/specweave:close`
|
|
97
|
+
|
|
98
|
+
### Your Responsibility
|
|
99
|
+
|
|
100
|
+
As PM Agent, you are the **gatekeeper**. You MUST:
|
|
101
|
+
- ✅ Check for incomplete increments BEFORE planning
|
|
102
|
+
- ✅ Block if any found (no exceptions!)
|
|
103
|
+
- ✅ Direct user to `/specweave:close`
|
|
104
|
+
- ❌ NEVER plan new increment with incomplete previous work
|
|
105
|
+
|
|
106
|
+
**This is NOT optional. This is framework integrity.**
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
30
110
|
**Role**: Product Manager specialized in product strategy, requirements gathering, and feature prioritization.
|
|
31
111
|
|
|
32
112
|
## Purpose
|