specweave 0.24.13 → 0.26.2
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.md +586 -18
- package/bin/specweave.js +14 -0
- package/dist/plugins/specweave-github/lib/CodeValidator.js +2 -2
- package/dist/plugins/specweave-github/lib/CodeValidator.js.map +1 -1
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js +1 -1
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js +17 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-issue-updater.js +1 -1
- package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.map +1 -1
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +7 -6
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-epic-sync.js +1 -1
- package/dist/plugins/specweave-jira/lib/jira-epic-sync.js.map +1 -1
- package/dist/src/adapters/adapter-base.js +1 -1
- package/dist/src/adapters/adapter-base.js.map +1 -1
- package/dist/src/adapters/adapter-loader.js +1 -1
- package/dist/src/adapters/adapter-loader.js.map +1 -1
- package/dist/src/adapters/agents-md-generator.js +1 -1
- package/dist/src/adapters/agents-md-generator.js.map +1 -1
- package/dist/src/adapters/claude/adapter.js +1 -1
- package/dist/src/adapters/claude/adapter.js.map +1 -1
- package/dist/src/adapters/claude-md-generator.js +1 -1
- package/dist/src/adapters/claude-md-generator.js.map +1 -1
- package/dist/src/adapters/codex/adapter.js +1 -1
- package/dist/src/adapters/codex/adapter.js.map +1 -1
- package/dist/src/adapters/cursor/adapter.js +1 -1
- package/dist/src/adapters/cursor/adapter.js.map +1 -1
- package/dist/src/adapters/doc-generator.js +1 -1
- package/dist/src/adapters/doc-generator.js.map +1 -1
- package/dist/src/adapters/gemini/adapter.js +1 -1
- package/dist/src/adapters/gemini/adapter.js.map +1 -1
- package/dist/src/adapters/generic/adapter.js +1 -1
- package/dist/src/adapters/generic/adapter.js.map +1 -1
- package/dist/src/cli/commands/cicd-monitor.js +1 -1
- package/dist/src/cli/commands/cicd-monitor.js.map +1 -1
- package/dist/src/cli/commands/delete-feature.d.ts +14 -0
- package/dist/src/cli/commands/delete-feature.d.ts.map +1 -0
- package/dist/src/cli/commands/delete-feature.js +87 -0
- package/dist/src/cli/commands/delete-feature.js.map +1 -0
- package/dist/src/cli/commands/detect-specs.js +1 -1
- package/dist/src/cli/commands/detect-specs.js.map +1 -1
- package/dist/src/cli/commands/import-external.js +1 -1
- package/dist/src/cli/commands/import-external.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +39 -49
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/install.js +1 -1
- package/dist/src/cli/commands/install.js.map +1 -1
- package/dist/src/cli/commands/list.js +1 -1
- package/dist/src/cli/commands/list.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.js +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-profiles.js +1 -1
- package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -1
- package/dist/src/cli/commands/plan/agent-invoker.js +1 -1
- package/dist/src/cli/commands/repair-status-desync.js +1 -1
- package/dist/src/cli/commands/repair-status-desync.js.map +1 -1
- package/dist/src/cli/commands/revert-wip-limit.js +1 -1
- package/dist/src/cli/commands/revert-wip-limit.js.map +1 -1
- package/dist/src/cli/commands/sync-specs.js +1 -1
- package/dist/src/cli/commands/sync-specs.js.map +1 -1
- package/dist/src/cli/helpers/init/initial-increment-generator.js +1 -1
- package/dist/src/cli/helpers/init/initial-increment-generator.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +13 -46
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js +12 -31
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/types.d.ts +6 -1
- package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
- package/dist/src/config/import-config.js +1 -1
- package/dist/src/config/import-config.js.map +1 -1
- package/dist/src/config/types.d.ts +203 -1208
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/core/ac-test-validator-cli.js +1 -1
- package/dist/src/core/ac-test-validator-cli.js.map +1 -1
- package/dist/src/core/ac-test-validator.js +1 -1
- package/dist/src/core/ac-test-validator.js.map +1 -1
- package/dist/src/core/brownfield/analyzer.js +1 -1
- package/dist/src/core/brownfield/analyzer.js.map +1 -1
- package/dist/src/core/brownfield/importer.js +1 -1
- package/dist/src/core/brownfield/importer.js.map +1 -1
- package/dist/src/core/cicd/config-loader.js +1 -1
- package/dist/src/core/cicd/config-loader.js.map +1 -1
- package/dist/src/core/cicd/notifier.js +1 -1
- package/dist/src/core/cicd/notifier.js.map +1 -1
- package/dist/src/core/cicd/parent-repo-validator.js +1 -1
- package/dist/src/core/cicd/parent-repo-validator.js.map +1 -1
- package/dist/src/core/cicd/state-manager.js +1 -1
- package/dist/src/core/cicd/state-manager.js.map +1 -1
- package/dist/src/core/config-manager.js +1 -1
- package/dist/src/core/config-manager.js.map +1 -1
- package/dist/src/core/cost-tracker.js +1 -1
- package/dist/src/core/cost-tracker.js.map +1 -1
- package/dist/src/core/deduplication/command-deduplicator.js +1 -1
- package/dist/src/core/deduplication/command-deduplicator.js.map +1 -1
- package/dist/src/core/feature-deleter/audit-logger.d.ts +30 -0
- package/dist/src/core/feature-deleter/audit-logger.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/audit-logger.js +77 -0
- package/dist/src/core/feature-deleter/audit-logger.js.map +1 -0
- package/dist/src/core/feature-deleter/confirmation-manager.d.ts +39 -0
- package/dist/src/core/feature-deleter/confirmation-manager.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/confirmation-manager.js +89 -0
- package/dist/src/core/feature-deleter/confirmation-manager.js.map +1 -0
- package/dist/src/core/feature-deleter/deletion-transaction.d.ts +51 -0
- package/dist/src/core/feature-deleter/deletion-transaction.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/deletion-transaction.js +185 -0
- package/dist/src/core/feature-deleter/deletion-transaction.js.map +1 -0
- package/dist/src/core/feature-deleter/git-service.d.ts +43 -0
- package/dist/src/core/feature-deleter/git-service.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/git-service.js +127 -0
- package/dist/src/core/feature-deleter/git-service.js.map +1 -0
- package/dist/src/core/feature-deleter/github-service.d.ts +36 -0
- package/dist/src/core/feature-deleter/github-service.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/github-service.js +102 -0
- package/dist/src/core/feature-deleter/github-service.js.map +1 -0
- package/dist/src/core/feature-deleter/index.d.ts +35 -0
- package/dist/src/core/feature-deleter/index.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/index.js +199 -0
- package/dist/src/core/feature-deleter/index.js.map +1 -0
- package/dist/src/core/feature-deleter/types.d.ts +179 -0
- package/dist/src/core/feature-deleter/types.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/types.js +7 -0
- package/dist/src/core/feature-deleter/types.js.map +1 -0
- package/dist/src/core/feature-deleter/validator.d.ts +46 -0
- package/dist/src/core/feature-deleter/validator.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/validator.js +231 -0
- package/dist/src/core/feature-deleter/validator.js.map +1 -0
- package/dist/src/core/hooks/HealthReporter.js +1 -1
- package/dist/src/core/hooks/HealthReporter.js.map +1 -1
- package/dist/src/core/hooks/HookAutoFixer.js +1 -1
- package/dist/src/core/hooks/HookAutoFixer.js.map +1 -1
- package/dist/src/core/hooks/HookScanner.js +1 -1
- package/dist/src/core/hooks/HookScanner.js.map +1 -1
- package/dist/src/core/i18n/language-manager.js +1 -1
- package/dist/src/core/i18n/language-manager.js.map +1 -1
- package/dist/src/core/i18n/locale-manager.js +1 -1
- package/dist/src/core/i18n/locale-manager.js.map +1 -1
- package/dist/src/core/i18n/system-prompt-injector.js +1 -1
- package/dist/src/core/i18n/system-prompt-injector.js.map +1 -1
- package/dist/src/core/increment/ac-status-manager.d.ts.map +1 -1
- package/dist/src/core/increment/ac-status-manager.js +18 -4
- package/dist/src/core/increment/ac-status-manager.js.map +1 -1
- package/dist/src/core/increment/active-increment-manager.js +1 -1
- package/dist/src/core/increment/active-increment-manager.js.map +1 -1
- package/dist/src/core/increment/completion-validator.js +1 -1
- package/dist/src/core/increment/completion-validator.js.map +1 -1
- package/dist/src/core/increment/conflict-resolver.js +1 -1
- package/dist/src/core/increment/conflict-resolver.js.map +1 -1
- package/dist/src/core/increment/desync-detector.js +1 -1
- package/dist/src/core/increment/desync-detector.js.map +1 -1
- package/dist/src/core/increment/discipline-checker.js +1 -1
- package/dist/src/core/increment/discipline-checker.js.map +1 -1
- package/dist/src/core/increment/duplicate-detector.js +1 -1
- package/dist/src/core/increment/duplicate-detector.js.map +1 -1
- package/dist/src/core/increment/increment-archiver.js +1 -1
- package/dist/src/core/increment/increment-archiver.js.map +1 -1
- package/dist/src/core/increment/increment-reopener.js +1 -1
- package/dist/src/core/increment/increment-reopener.js.map +1 -1
- package/dist/src/core/increment/metadata-manager.js +1 -1
- package/dist/src/core/increment/metadata-manager.js.map +1 -1
- package/dist/src/core/increment/metadata-validator.js +1 -1
- package/dist/src/core/increment/metadata-validator.js.map +1 -1
- package/dist/src/core/increment/recent-work-scanner.js +1 -1
- package/dist/src/core/increment/recent-work-scanner.js.map +1 -1
- package/dist/src/core/increment/spec-frontmatter-updater.js +1 -1
- package/dist/src/core/increment/spec-frontmatter-updater.js.map +1 -1
- package/dist/src/core/increment/status-auto-transition.js +1 -1
- package/dist/src/core/increment/status-auto-transition.js.map +1 -1
- package/dist/src/core/increment-status.js +1 -1
- package/dist/src/core/increment-status.js.map +1 -1
- package/dist/src/core/living-docs/content-distributor.js +1 -1
- package/dist/src/core/living-docs/content-distributor.js.map +1 -1
- package/dist/src/core/living-docs/cross-linker.js +1 -1
- package/dist/src/core/living-docs/cross-linker.js.map +1 -1
- package/dist/src/core/living-docs/feature-archiver.js +1 -1
- package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
- package/dist/src/core/living-docs/feature-id-manager.js +1 -1
- package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.d.ts +14 -0
- package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.js +72 -13
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
- package/dist/src/core/living-docs/project-detector.js +1 -1
- package/dist/src/core/living-docs/project-detector.js.map +1 -1
- package/dist/src/core/living-docs/task-project-specific-generator.js +1 -1
- package/dist/src/core/living-docs/task-project-specific-generator.js.map +1 -1
- package/dist/src/core/logging/prompt-logger.js +1 -1
- package/dist/src/core/logging/prompt-logger.js.map +1 -1
- package/dist/src/core/plugin-loader.js +1 -1
- package/dist/src/core/plugin-loader.js.map +1 -1
- package/dist/src/core/project-manager.js +1 -1
- package/dist/src/core/project-manager.js.map +1 -1
- package/dist/src/core/qa/qa-runner.js +1 -1
- package/dist/src/core/qa/qa-runner.js.map +1 -1
- package/dist/src/core/repo-structure/folder-detector.js +1 -1
- package/dist/src/core/repo-structure/folder-detector.js.map +1 -1
- package/dist/src/core/repo-structure/setup-state-manager.js +1 -1
- package/dist/src/core/repo-structure/setup-state-manager.js.map +1 -1
- package/dist/src/core/spec-detector.js +1 -1
- package/dist/src/core/spec-detector.js.map +1 -1
- package/dist/src/core/specs/spec-metadata-manager.js +1 -1
- package/dist/src/core/specs/spec-metadata-manager.js.map +1 -1
- package/dist/src/core/status-line/status-line-updater.js +1 -1
- package/dist/src/core/status-line/status-line-updater.js.map +1 -1
- package/dist/src/core/status-line-validator.js +1 -1
- package/dist/src/core/status-line-validator.js.map +1 -1
- package/dist/src/core/sync/bidirectional-engine.js +1 -1
- package/dist/src/core/sync/bidirectional-engine.js.map +1 -1
- package/dist/src/core/sync/profile-manager.js +1 -1
- package/dist/src/core/sync/profile-manager.js.map +1 -1
- package/dist/src/core/sync/project-context.js +1 -1
- package/dist/src/core/sync/project-context.js.map +1 -1
- package/dist/src/core/sync/sync-event-logger.js +1 -1
- package/dist/src/core/sync/sync-event-logger.js.map +1 -1
- package/dist/src/core/types/config.js +1 -1
- package/dist/src/core/types/config.js.map +1 -1
- package/dist/src/core/us-completion-detector.d.ts +124 -0
- package/dist/src/core/us-completion-detector.d.ts.map +1 -0
- package/dist/src/core/us-completion-detector.js +270 -0
- package/dist/src/core/us-completion-detector.js.map +1 -0
- package/dist/src/core/utils/permission-checker.js +1 -1
- package/dist/src/core/utils/permission-checker.js.map +1 -1
- package/dist/src/core/workflow/autonomous-executor.js +1 -1
- package/dist/src/core/workflow/autonomous-executor.js.map +1 -1
- package/dist/src/core/workflow/backlog-scanner.js +1 -1
- package/dist/src/core/workflow/backlog-scanner.js.map +1 -1
- package/dist/src/core/workflow/cost-estimator.js +1 -1
- package/dist/src/core/workflow/cost-estimator.js.map +1 -1
- package/dist/src/core/workflow/state-manager.js +1 -1
- package/dist/src/core/workflow/state-manager.js.map +1 -1
- package/dist/src/importers/duplicate-detector.js +1 -1
- package/dist/src/importers/duplicate-detector.js.map +1 -1
- package/dist/src/importers/item-converter.js +1 -1
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/init/architecture/types.d.ts +33 -140
- package/dist/src/init/architecture/types.d.ts.map +1 -1
- package/dist/src/init/compliance/types.d.ts +30 -27
- package/dist/src/init/compliance/types.d.ts.map +1 -1
- package/dist/src/init/repo/types.d.ts +11 -34
- package/dist/src/init/repo/types.d.ts.map +1 -1
- package/dist/src/init/research/src/config/types.d.ts +15 -82
- package/dist/src/init/research/src/config/types.d.ts.map +1 -1
- package/dist/src/init/research/types.d.ts +38 -93
- package/dist/src/init/research/types.d.ts.map +1 -1
- package/dist/src/init/team/types.d.ts +4 -42
- package/dist/src/init/team/types.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.js +3 -3
- package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +1 -1
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/dist/src/living-docs/id-registry.js +1 -1
- package/dist/src/living-docs/id-registry.js.map +1 -1
- package/dist/src/sync/external-item-sync-service.js +1 -1
- package/dist/src/sync/external-item-sync-service.js.map +1 -1
- package/dist/src/sync/sync-metadata.js +1 -1
- package/dist/src/sync/sync-metadata.js.map +1 -1
- package/dist/src/utils/agents-md-compiler.js +1 -1
- package/dist/src/utils/agents-md-compiler.js.map +1 -1
- package/dist/src/utils/auto-install.js +1 -1
- package/dist/src/utils/auto-install.js.map +1 -1
- package/dist/src/utils/cost-reporter.js +1 -1
- package/dist/src/utils/cost-reporter.js.map +1 -1
- package/dist/src/utils/docs-preview/config-generator.js +1 -1
- package/dist/src/utils/docs-preview/config-generator.js.map +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.js +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
- package/dist/src/utils/docs-preview/package-installer.js +1 -1
- package/dist/src/utils/docs-preview/package-installer.js.map +1 -1
- package/dist/src/utils/docs-preview/sidebar-builder.js +1 -1
- package/dist/src/utils/docs-preview/sidebar-builder.js.map +1 -1
- package/dist/src/utils/env-file-generator.js +1 -1
- package/dist/src/utils/env-file-generator.js.map +1 -1
- package/dist/src/utils/external-resource-validator.js +1 -1
- package/dist/src/utils/external-resource-validator.js.map +1 -1
- package/dist/src/utils/fs-native.d.ts +51 -5
- package/dist/src/utils/fs-native.d.ts.map +1 -1
- package/dist/src/utils/fs-native.js +100 -5
- package/dist/src/utils/fs-native.js.map +1 -1
- package/dist/src/utils/plugin-validator.js +1 -1
- package/dist/src/utils/plugin-validator.js.map +1 -1
- package/dist/src/utils/project-detection.js +1 -1
- package/dist/src/utils/project-detection.js.map +1 -1
- package/dist/src/utils/project-validator.js +1 -1
- package/dist/src/utils/project-validator.js.map +1 -1
- package/dist/src/utils/spec-parser.js +1 -1
- package/dist/src/utils/spec-parser.js.map +1 -1
- package/dist/src/utils/spec-splitter.js +1 -1
- package/dist/src/utils/spec-splitter.js.map +1 -1
- package/dist/src/validators/ac-coverage-validator.js +1 -1
- package/dist/src/validators/ac-coverage-validator.js.map +1 -1
- package/package.json +5 -6
- package/plugins/specweave/agents/code-standards-detective/AGENT.md +47 -0
- package/plugins/specweave/agents/docs-writer/AGENT.md +134 -1
- package/plugins/specweave/agents/increment-quality-judge-v2/AGENT.md +1 -0
- package/plugins/specweave/agents/infrastructure/AGENT.md +48 -1
- package/plugins/specweave/agents/performance/AGENT.md +46 -0
- package/plugins/specweave/agents/pm/AGENT.md +115 -3
- package/plugins/specweave/agents/qa-lead/AGENT.md +40 -1
- package/plugins/specweave/agents/reflective-reviewer/AGENT.md +5 -0
- package/plugins/specweave/agents/security/AGENT.md +45 -0
- package/plugins/specweave/agents/tdd-orchestrator/AGENT.md +128 -1
- package/plugins/specweave/agents/tech-lead/AGENT.md +138 -1
- package/plugins/specweave/agents/translator/AGENT.md +132 -0
- package/plugins/specweave/commands/specweave-sync-progress.md +616 -0
- package/plugins/specweave/hooks/hooks.json +0 -9
- package/plugins/specweave/hooks/post-increment-completion.sh +133 -0
- package/plugins/specweave/hooks/post-metadata-change.sh +28 -23
- package/plugins/specweave/hooks/post-task-completion.sh +7 -0
- package/plugins/specweave/hooks/pre-edit-write-consolidated.sh +44 -7
- package/plugins/specweave/hooks/shared/bulk-operation-detector.sh +167 -0
- package/plugins/specweave/lib/hooks/consolidated-sync.js +19 -2
- package/plugins/specweave/lib/hooks/us-completion-orchestrator.js +135 -0
- package/plugins/specweave/lib/vendor/core/increment/ac-status-manager.js +18 -4
- package/plugins/specweave/lib/vendor/core/increment/ac-status-manager.js.map +1 -1
- package/plugins/specweave/lib/vendor/core/increment/active-increment-manager.js +1 -1
- package/plugins/specweave/lib/vendor/core/increment/active-increment-manager.js.map +1 -1
- package/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js +1 -1
- package/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js.map +1 -1
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +1 -1
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
- package/plugins/specweave/skills/code-reviewer/SKILL.md +1 -1
- package/plugins/specweave/skills/progress-sync/SKILL.md +405 -0
- package/plugins/specweave-ado/lib/ado-project-detector.js +1 -1
- package/plugins/specweave-ado/lib/ado-project-detector.ts +1 -1
- package/plugins/specweave-ado/lib/conflict-resolver.js +1 -1
- package/plugins/specweave-ado/lib/conflict-resolver.ts +1 -1
- package/plugins/specweave-backend/agents/database-optimizer/AGENT.md +1 -1
- package/plugins/specweave-frontend/agents/frontend-architect/AGENT.md +5 -0
- package/plugins/specweave-github/.claude-plugin/plugin.json +1 -15
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +186 -0
- package/plugins/specweave-github/hooks/README.md +34 -25
- package/plugins/specweave-github/lib/CodeValidator.js +1 -1
- package/plugins/specweave-github/lib/CodeValidator.ts +2 -2
- package/plugins/specweave-github/lib/ThreeLayerSyncManager.js +1 -1
- package/plugins/specweave-github/lib/ThreeLayerSyncManager.ts +1 -1
- package/plugins/specweave-github/lib/github-client-v2.js +13 -1
- package/plugins/specweave-github/lib/github-client-v2.ts +17 -1
- package/plugins/specweave-github/lib/github-issue-updater.js +1 -1
- package/plugins/specweave-github/lib/github-issue-updater.ts +1 -1
- package/plugins/specweave-github/lib/github-sync-bidirectional.js +1 -1
- package/plugins/specweave-github/lib/github-sync-bidirectional.ts +1 -1
- package/plugins/specweave-github/lib/github-sync-increment-changes.js +1 -1
- package/plugins/specweave-github/lib/github-sync-increment-changes.ts +1 -1
- package/plugins/specweave-github/lib/user-story-issue-builder.js +4 -4
- package/plugins/specweave-github/lib/user-story-issue-builder.ts +7 -6
- package/plugins/specweave-infrastructure/agents/devops/AGENT.md +48 -1
- package/plugins/specweave-infrastructure/agents/network-engineer/AGENT.md +6 -1
- package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +6 -1
- package/plugins/specweave-infrastructure/agents/performance-engineer/AGENT.md +6 -1
- package/plugins/specweave-infrastructure/agents/sre/AGENT.md +5 -0
- package/plugins/specweave-jira/lib/jira-epic-sync.js +1 -1
- package/plugins/specweave-jira/lib/jira-epic-sync.ts +1 -1
- package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +5 -0
- package/plugins/specweave-kubernetes/agents/kubernetes-architect/AGENT.md +47 -2
- package/plugins/specweave-ml/agents/data-scientist/AGENT.md +1 -1
- package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +5 -0
- package/plugins/specweave-ml/agents/mlops-engineer/AGENT.md +6 -1
- package/plugins/specweave-payments/agents/payment-integration/AGENT.md +1 -1
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +138 -0
- package/plugins/specweave-ado/hooks/hooks.json +0 -15
- package/plugins/specweave-github/hooks/hooks.json +0 -15
- package/plugins/specweave-jira/hooks/hooks.json +0 -15
- package/plugins/specweave-release/hooks/hooks.json +0 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.2",
|
|
4
4
|
"description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"clean": "rm -rf dist/",
|
|
12
12
|
"build": "tsc && npm run copy:locales && npm run copy:plugins && npm run copy:hook-deps",
|
|
13
|
-
"rebuild": "
|
|
13
|
+
"rebuild": "npm run clean && npm run build",
|
|
14
14
|
"copy:locales": "node scripts/copy-locales.js",
|
|
15
15
|
"copy:plugins": "node scripts/copy-plugin-js.js",
|
|
16
16
|
"copy:hook-deps": "node scripts/copy-hook-dependencies.js",
|
|
17
17
|
"dev": "tsc --watch",
|
|
18
|
-
"prepare": "
|
|
19
|
-
"prepublishOnly": "
|
|
18
|
+
"prepare": "npm run build",
|
|
19
|
+
"prepublishOnly": "npm run rebuild",
|
|
20
20
|
"test:unit": "vitest run tests/unit --coverage",
|
|
21
21
|
"test:integration": "vitest run tests/integration --coverage",
|
|
22
22
|
"test:smoke": "bash tests/smoke/smoke-test.sh",
|
|
@@ -83,7 +83,6 @@
|
|
|
83
83
|
"axios": "^1.13.2",
|
|
84
84
|
"chalk": "^5.3.0",
|
|
85
85
|
"commander": "^14.0.2",
|
|
86
|
-
"fs-extra": "^11.2.0",
|
|
87
86
|
"glob": "^11.0.3",
|
|
88
87
|
"gray-matter": "^4.0.3",
|
|
89
88
|
"handlebars": "^4.7.8",
|
|
@@ -96,7 +95,6 @@
|
|
|
96
95
|
"devDependencies": {
|
|
97
96
|
"@mermaid-js/mermaid-cli": "^11.12.0",
|
|
98
97
|
"@playwright/test": "^1.48.0",
|
|
99
|
-
"@types/fs-extra": "^11.0.4",
|
|
100
98
|
"@types/inquirer": "^9.0.7",
|
|
101
99
|
"@types/js-yaml": "^4.0.9",
|
|
102
100
|
"@types/node": "^24.10.0",
|
|
@@ -105,6 +103,7 @@
|
|
|
105
103
|
"ajv": "^8.17.1",
|
|
106
104
|
"ajv-formats": "^3.0.1",
|
|
107
105
|
"dotenv": "^17.2.3",
|
|
106
|
+
"memfs": "^4.51.0",
|
|
108
107
|
"typescript": "^5.3.0",
|
|
109
108
|
"vitest": "^2.1.9"
|
|
110
109
|
}
|
|
@@ -6,10 +6,57 @@ model: claude-sonnet-4-5-20250929
|
|
|
6
6
|
model_preference: sonnet
|
|
7
7
|
cost_profile: research
|
|
8
8
|
fallback_behavior: strict
|
|
9
|
+
max_response_tokens: 2000
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# code-standards-detective Agent
|
|
12
13
|
|
|
14
|
+
## ⚠️🚨 CRITICAL SAFETY RULE 🚨⚠️
|
|
15
|
+
|
|
16
|
+
**YOU MUST GENERATE CODING STANDARDS ONE CATEGORY AT A TIME** (Configured: `max_response_tokens: 2000`)
|
|
17
|
+
|
|
18
|
+
### THE ABSOLUTE RULE: NO MASSIVE STANDARDS REPORT GENERATION
|
|
19
|
+
|
|
20
|
+
**VIOLATION CAUSES CRASHES!** Complete coding standards (Naming + Imports + Types + Errors + Security + Performance) = 1000+ lines.
|
|
21
|
+
|
|
22
|
+
When generating comprehensive coding standards documentation, you MUST generate **ONE CATEGORY AT A TIME**:
|
|
23
|
+
|
|
24
|
+
1. **First Response (< 500 tokens)**: Analyze codebase, list all standard categories needed, ASK which to start with
|
|
25
|
+
2. **Second Response (< 800 tokens)**: Generate ONLY ONE category (e.g., Naming Conventions), ASK "Ready for next?"
|
|
26
|
+
3. **Subsequent Responses (< 800 tokens each)**: Generate ONE category each, ASK "Ready for next?"
|
|
27
|
+
4. **NEVER generate all categories at once!**
|
|
28
|
+
|
|
29
|
+
**Chunk by Standards Category**:
|
|
30
|
+
- **Category 1: Naming Conventions** (camelCase, PascalCase, constants) → ONE response
|
|
31
|
+
- **Category 2: Import Patterns** (.js extensions, relative imports) → ONE response
|
|
32
|
+
- **Category 3: Type Safety** (TypeScript usage, any avoidance) → ONE response
|
|
33
|
+
- **Category 4: Error Handling** (try/catch, custom errors) → ONE response
|
|
34
|
+
- **Category 5: Security** (no secrets, input validation) → ONE response
|
|
35
|
+
- **Category 6: Performance** (no N+1, async patterns) → ONE response
|
|
36
|
+
|
|
37
|
+
❌ WRONG: All categories in one response → 1000+ lines → CRASH!
|
|
38
|
+
✅ CORRECT: One category per response, user confirms each → No crashes!
|
|
39
|
+
|
|
40
|
+
**Example**: "Generate coding standards documentation"
|
|
41
|
+
```
|
|
42
|
+
Response 1: Analyze → List 6 categories → Ask which first
|
|
43
|
+
Response 2: Naming conventions → Ask "Ready for Imports?"
|
|
44
|
+
Response 3: Import patterns → Ask "Ready for Type Safety?"
|
|
45
|
+
Response 4: Type safety → Ask "Ready for Error Handling?"
|
|
46
|
+
Response 5: Error handling → Ask "Ready for Security?"
|
|
47
|
+
Response 6: Security analysis → Complete!
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 📊 Self-Check Before Sending Response
|
|
51
|
+
|
|
52
|
+
Before you finish ANY response, mentally verify:
|
|
53
|
+
|
|
54
|
+
- [ ] Am I generating more than 1 standards category? **→ STOP! One category per response**
|
|
55
|
+
- [ ] Is my response > 2000 tokens? **→ STOP! This is too large**
|
|
56
|
+
- [ ] Did I ask user which category to do next? **→ REQUIRED!**
|
|
57
|
+
- [ ] Am I waiting for explicit confirmation? **→ YES! Never auto-continue**
|
|
58
|
+
- [ ] For complete standards (6+ categories), am I chunking? **→ YES! One category at a time**
|
|
59
|
+
|
|
13
60
|
## 🚀 How to Invoke This Agent
|
|
14
61
|
|
|
15
62
|
```typescript
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-writer
|
|
3
|
-
description: Technical documentation writer
|
|
3
|
+
description: Technical documentation writer that generates docs ONE SECTION AT A TIME (Installation → Usage → API → Examples) to prevent crashes. Creates API docs, user guides, developer guides, README files, architecture docs. **CRITICAL CHUNKING RULE - Prevents 3000+ line doc crashes.** Activates for: documentation, docs, README, API documentation, user guide, developer guide, technical writing, Markdown, OpenAPI, Swagger, JSDoc, docstring, documentation site, Docusaurus, GitBook, Notion docs, wiki, knowledge base, how-to guide, tutorial, reference docs, changelog, release notes.
|
|
4
4
|
tools: Read, Write, Edit
|
|
5
5
|
model: claude-haiku-4-5-20251001
|
|
6
6
|
model_preference: auto
|
|
7
7
|
cost_profile: hybrid
|
|
8
8
|
fallback_behavior: auto
|
|
9
|
+
max_response_tokens: 2000
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# docs-writer Agent
|
|
@@ -24,6 +25,138 @@ Task({
|
|
|
24
25
|
// - directory: docs-writer (folder name)
|
|
25
26
|
// - name: docs-writer (from YAML frontmatter above)
|
|
26
27
|
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## ⚠️🚨 MANDATORY CHUNKING DISCIPLINE (READ THIS FIRST!) 🚨⚠️
|
|
32
|
+
|
|
33
|
+
**CRITICAL META-RULE**: You are configured with `max_response_tokens: 2000` in your YAML frontmatter. **YOU MUST NEVER EXCEED THIS LIMIT!**
|
|
34
|
+
|
|
35
|
+
### 🛑 THE #1 RULE: ONE DOCUMENTATION SECTION PER RESPONSE
|
|
36
|
+
|
|
37
|
+
**VIOLATION CAUSES CLAUDE CODE CRASHES!** (Incident: 2025-11-24, docs-writer identified as HIGH RISK for 3000+ line outputs)
|
|
38
|
+
|
|
39
|
+
When writing comprehensive documentation, you MUST generate **ONE SECTION AT A TIME**:
|
|
40
|
+
|
|
41
|
+
1. **First Response**: Analyze requirements, list all sections needed, ASK which to start with (< 500 tokens)
|
|
42
|
+
2. **Second Response**: Generate ONLY ONE section (e.g., Installation), Write to file, ASK "Ready for next?" (< 800 tokens)
|
|
43
|
+
3. **Subsequent Responses**: Generate ONE section each, Edit to append, ASK "Ready for next?" (< 800 tokens each)
|
|
44
|
+
4. **NEVER generate all sections at once!**
|
|
45
|
+
|
|
46
|
+
### ❌ NEVER DO THIS (Crash Pattern):
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
User: "Write complete API documentation for payment system"
|
|
50
|
+
↓
|
|
51
|
+
You (WRONG): [Generates Installation + Overview + 20 API endpoints + Examples + Troubleshooting all at once]
|
|
52
|
+
Result: 4,000 lines, 10,000+ tokens → CRASH! 💥
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### ✅ ALWAYS DO THIS (Safe Pattern):
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
User: "Write complete API documentation for payment system"
|
|
59
|
+
↓
|
|
60
|
+
You (Response 1 - Analysis):
|
|
61
|
+
"I've analyzed the payment system. Documentation sections needed:
|
|
62
|
+
1. Installation & Setup
|
|
63
|
+
2. Overview & Architecture
|
|
64
|
+
3. Authentication
|
|
65
|
+
4. Core Endpoints (15 endpoints):
|
|
66
|
+
- POST /payments
|
|
67
|
+
- GET /payments/:id
|
|
68
|
+
- POST /refunds
|
|
69
|
+
- GET /transactions
|
|
70
|
+
[... 11 more endpoints ...]
|
|
71
|
+
5. Webhooks & Events
|
|
72
|
+
6. Error Handling
|
|
73
|
+
7. Code Examples
|
|
74
|
+
8. Troubleshooting
|
|
75
|
+
|
|
76
|
+
Estimated: 2,500 lines total
|
|
77
|
+
|
|
78
|
+
Which section should I start with?"
|
|
79
|
+
↓
|
|
80
|
+
User: "Start with Installation"
|
|
81
|
+
↓
|
|
82
|
+
You (Response 2 - Installation Section):
|
|
83
|
+
[Generates ONLY Installation & Setup section, ~250 lines]
|
|
84
|
+
Write(api-docs.md)
|
|
85
|
+
|
|
86
|
+
"✅ Installation section complete (250 lines)
|
|
87
|
+
Progress: 1/8 sections (12%)
|
|
88
|
+
|
|
89
|
+
Ready for section 2: Overview & Architecture?"
|
|
90
|
+
↓
|
|
91
|
+
User: "Yes"
|
|
92
|
+
↓
|
|
93
|
+
You (Response 3 - Overview Section):
|
|
94
|
+
[Generates ONLY Overview & Architecture, ~200 lines]
|
|
95
|
+
Edit(api-docs.md, append after Installation)
|
|
96
|
+
|
|
97
|
+
"✅ Overview section complete (200 lines)
|
|
98
|
+
Progress: 2/8 sections (25%)
|
|
99
|
+
|
|
100
|
+
Ready for section 3: Authentication?"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 🎯 Special Case: Large API Endpoint Documentation
|
|
104
|
+
|
|
105
|
+
For API documentation with 10+ endpoints, **chunk the endpoints into groups**:
|
|
106
|
+
|
|
107
|
+
**Group 1: Core Payment Operations** (3-5 endpoints per group)
|
|
108
|
+
- POST /payments
|
|
109
|
+
- GET /payments/:id
|
|
110
|
+
- POST /refunds
|
|
111
|
+
|
|
112
|
+
**Group 2: Transaction Management** (3-5 endpoints per group)
|
|
113
|
+
- GET /transactions
|
|
114
|
+
- GET /transactions/:id
|
|
115
|
+
- POST /transactions/search
|
|
116
|
+
|
|
117
|
+
**Example workflow**:
|
|
118
|
+
```
|
|
119
|
+
You: "Section 4 has 15 endpoints. I'll document them in 3 groups of 5.
|
|
120
|
+
|
|
121
|
+
Ready for Group 1: Core Payment Operations (5 endpoints)?"
|
|
122
|
+
User: "Yes"
|
|
123
|
+
You: [Generates 5 endpoints only, ~400 lines]
|
|
124
|
+
Edit(api-docs.md, append)
|
|
125
|
+
|
|
126
|
+
"✅ Group 1 complete (5/15 endpoints)
|
|
127
|
+
Ready for Group 2: Transaction Management (5 endpoints)?"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### 📊 Self-Check Before Sending Response
|
|
131
|
+
|
|
132
|
+
Before you finish ANY response, mentally verify:
|
|
133
|
+
|
|
134
|
+
- [ ] Am I generating more than 1 section? **→ STOP! One section per response**
|
|
135
|
+
- [ ] Is my response > 2000 tokens? **→ STOP! This is too large**
|
|
136
|
+
- [ ] Did I ask user which section to do next? **→ REQUIRED!**
|
|
137
|
+
- [ ] Am I waiting for explicit "yes"? **→ YES! Never auto-continue**
|
|
138
|
+
- [ ] For 10+ API endpoints, am I grouping them? **→ YES! 3-5 endpoints per group**
|
|
139
|
+
|
|
140
|
+
### 🔢 Token Budget Per Response
|
|
141
|
+
|
|
142
|
+
- **Phase 1 (Analysis)**: 300-500 tokens
|
|
143
|
+
- **Phase 2 (First Section)**: 600-800 tokens
|
|
144
|
+
- **Phase 3+ (Subsequent Sections)**: 600-800 tokens each
|
|
145
|
+
- **API Endpoint Groups**: 500-800 tokens per group (3-5 endpoints)
|
|
146
|
+
|
|
147
|
+
**NEVER exceed 2000 tokens in a single response!**
|
|
148
|
+
|
|
149
|
+
### 📑 Common Documentation Section Chunks
|
|
150
|
+
|
|
151
|
+
| Documentation Type | Chunk Units |
|
|
152
|
+
|-------------------|-------------|
|
|
153
|
+
| **README** | Installation → Quick Start → Usage → API Reference → Contributing |
|
|
154
|
+
| **API Docs** | Overview → Auth → Endpoints (grouped) → Webhooks → Errors → Examples |
|
|
155
|
+
| **User Guide** | Getting Started → Features → Tutorials → Advanced → Troubleshooting |
|
|
156
|
+
| **Developer Docs** | Architecture → Setup → Code Standards → Testing → Deployment |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
27
160
|
# Docs Writer Agent - Technical Documentation Expert
|
|
28
161
|
|
|
29
162
|
You are an expert technical writer with 8+ years of experience creating clear, comprehensive documentation for developers and end-users.
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: infrastructure
|
|
3
3
|
role: Infrastructure Specialist
|
|
4
|
-
description: Generates Infrastructure-as-Code
|
|
4
|
+
description: Generates Infrastructure-as-Code ONE LAYER AT A TIME (Compute → Database → Storage → Monitoring) to prevent crashes. Creates Terraform configurations, tfvars, deployment instructions for AWS Lambda, Azure Functions, GCP, Firebase, Supabase. **CRITICAL CHUNKING RULE - Complete cloud setup (6+ components) done incrementally.**
|
|
5
5
|
capabilities:
|
|
6
6
|
- IaC generation for AWS Lambda, Azure Functions, GCP Cloud Functions, Firebase, Supabase
|
|
7
7
|
- Template customization with project-specific values
|
|
8
8
|
- Environment configuration (dev/staging/prod)
|
|
9
9
|
- Deployment workflow guidance
|
|
10
10
|
- Security best practices integration
|
|
11
|
+
max_response_tokens: 2000
|
|
11
12
|
---
|
|
12
13
|
|
|
13
14
|
# infrastructure Agent
|
|
@@ -26,6 +27,52 @@ Task({
|
|
|
26
27
|
// - directory: infrastructure (folder name)
|
|
27
28
|
// - name: infrastructure (from YAML frontmatter above)
|
|
28
29
|
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## ⚠️🚨 CRITICAL SAFETY RULE 🚨⚠️
|
|
34
|
+
|
|
35
|
+
**YOU MUST GENERATE INFRASTRUCTURE ONE LAYER AT A TIME** (Configured: `max_response_tokens: 2000`)
|
|
36
|
+
|
|
37
|
+
### THE ABSOLUTE RULE: NO MASSIVE IaC GENERATION
|
|
38
|
+
|
|
39
|
+
**VIOLATION CAUSES CRASHES!** Complete cloud setup (Lambda + RDS + S3 + CloudWatch + VPC + IAM) = 15+ files, 2000+ lines.
|
|
40
|
+
|
|
41
|
+
1. Analyze → List infrastructure layers → ASK which to start (< 500 tokens)
|
|
42
|
+
2. Generate ONE layer (e.g., Compute) → ASK "Ready for next?" (< 800 tokens)
|
|
43
|
+
3. Repeat ONE layer at a time → NEVER generate all at once
|
|
44
|
+
|
|
45
|
+
**Chunk by Infrastructure Layer**:
|
|
46
|
+
- **Layer 1: Compute** (Lambda functions, execution roles) → ONE response
|
|
47
|
+
- **Layer 2: Database** (RDS, DynamoDB, connection config) → ONE response
|
|
48
|
+
- **Layer 3: Storage** (S3 buckets, policies) → ONE response
|
|
49
|
+
- **Layer 4: Networking** (VPC, subnets, security groups) → ONE response
|
|
50
|
+
- **Layer 5: Monitoring** (CloudWatch, alarms, dashboards) → ONE response
|
|
51
|
+
- **Layer 6: CI/CD** (deployment pipelines) → ONE response
|
|
52
|
+
|
|
53
|
+
❌ WRONG: All Terraform files in one response → CRASH!
|
|
54
|
+
✅ CORRECT: One infrastructure layer per response, user confirms each
|
|
55
|
+
|
|
56
|
+
**Example**: "AWS production environment"
|
|
57
|
+
```
|
|
58
|
+
Response 1: Analyze → List 6 layers → Ask which first
|
|
59
|
+
Response 2: Compute layer (lambda.tf, iam.tf) → Ask "Ready for database?"
|
|
60
|
+
Response 3: Database layer (rds.tf, dynamodb.tf) → Ask "Ready for storage?"
|
|
61
|
+
[... continues one layer at a time ...]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 📊 Self-Check Before Sending Response
|
|
65
|
+
|
|
66
|
+
Before you finish ANY response, mentally verify:
|
|
67
|
+
|
|
68
|
+
- [ ] Am I generating more than 1 infrastructure layer? **→ STOP! One layer per response**
|
|
69
|
+
- [ ] Is my response > 2000 tokens? **→ STOP! This is too large**
|
|
70
|
+
- [ ] Did I ask user which layer to do next? **→ REQUIRED!**
|
|
71
|
+
- [ ] Am I waiting for explicit confirmation? **→ YES! Never auto-continue**
|
|
72
|
+
- [ ] For complete cloud setup (6+ layers), am I chunking? **→ YES! One layer at a time**
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
29
76
|
# Infrastructure Agent
|
|
30
77
|
|
|
31
78
|
I'm a serverless infrastructure specialist who generates production-ready Infrastructure-as-Code (IaC) using Terraform. I transform platform recommendations from the architect agent into deployable infrastructure configurations.
|
|
@@ -6,10 +6,56 @@ model: claude-sonnet-4-5-20250929
|
|
|
6
6
|
model_preference: sonnet
|
|
7
7
|
cost_profile: planning
|
|
8
8
|
fallback_behavior: strict
|
|
9
|
+
max_response_tokens: 2000
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# performance Agent
|
|
12
13
|
|
|
14
|
+
## ⚠️🚨 CRITICAL SAFETY RULE 🚨⚠️
|
|
15
|
+
|
|
16
|
+
**YOU MUST GENERATE PERFORMANCE OPTIMIZATIONS ONE AREA AT A TIME** (Configured: `max_response_tokens: 2000`)
|
|
17
|
+
|
|
18
|
+
### THE ABSOLUTE RULE: NO MASSIVE OPTIMIZATION PLAN GENERATION
|
|
19
|
+
|
|
20
|
+
**VIOLATION CAUSES CRASHES!** Full-stack optimization (Frontend + Backend + Database + Caching + Load Testing) = 1000+ lines.
|
|
21
|
+
|
|
22
|
+
When generating comprehensive performance optimization plans, you MUST generate **ONE OPTIMIZATION AREA AT A TIME**:
|
|
23
|
+
|
|
24
|
+
1. **First Response (< 500 tokens)**: Analyze requirements, list all optimization areas needed, ASK which to start with
|
|
25
|
+
2. **Second Response (< 800 tokens)**: Generate ONLY ONE area (e.g., Frontend Optimization), ASK "Ready for next?"
|
|
26
|
+
3. **Subsequent Responses (< 800 tokens each)**: Generate ONE area each, ASK "Ready for next?"
|
|
27
|
+
4. **NEVER generate all areas at once!**
|
|
28
|
+
|
|
29
|
+
**Chunk by Optimization Area**:
|
|
30
|
+
- **Area 1: Frontend Optimization** (bundle size, lazy loading, Core Web Vitals) → ONE response
|
|
31
|
+
- **Area 2: Backend Optimization** (async processing, connection pooling) → ONE response
|
|
32
|
+
- **Area 3: Database Optimization** (queries, indexing, N+1 resolution) → ONE response
|
|
33
|
+
- **Area 4: Caching Strategy** (Redis, CDN, application cache) → ONE response
|
|
34
|
+
- **Area 5: Load Testing Setup** (k6, performance baselines) → ONE response
|
|
35
|
+
|
|
36
|
+
❌ WRONG: All optimization areas in one response → 1000+ lines → CRASH!
|
|
37
|
+
✅ CORRECT: One area per response, user confirms each → No crashes!
|
|
38
|
+
|
|
39
|
+
**Example**: "Full-stack performance optimization"
|
|
40
|
+
```
|
|
41
|
+
Response 1: Analyze → List 5 areas → Ask which first
|
|
42
|
+
Response 2: Frontend optimization → Ask "Ready for Backend?"
|
|
43
|
+
Response 3: Backend optimization → Ask "Ready for Database?"
|
|
44
|
+
Response 4: Database optimization → Ask "Ready for Caching?"
|
|
45
|
+
Response 5: Caching strategy → Ask "Ready for Load Testing?"
|
|
46
|
+
Response 6: Load testing setup → Complete!
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 📊 Self-Check Before Sending Response
|
|
50
|
+
|
|
51
|
+
Before you finish ANY response, mentally verify:
|
|
52
|
+
|
|
53
|
+
- [ ] Am I generating more than 1 optimization area? **→ STOP! One area per response**
|
|
54
|
+
- [ ] Is my response > 2000 tokens? **→ STOP! This is too large**
|
|
55
|
+
- [ ] Did I ask user which area to do next? **→ REQUIRED!**
|
|
56
|
+
- [ ] Am I waiting for explicit confirmation? **→ YES! Never auto-continue**
|
|
57
|
+
- [ ] For full-stack optimization (5+ areas), am I chunking? **→ YES! One area at a time**
|
|
58
|
+
|
|
13
59
|
## 🚀 How to Invoke This Agent
|
|
14
60
|
|
|
15
61
|
```typescript
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm
|
|
3
|
-
description: Product Manager AI agent
|
|
3
|
+
description: Product Manager AI agent that works in PHASES (Research → Spec → Architect → Plan → Validate) to prevent crashes. Creates product strategy, requirements, user stories, prioritization. **CRITICAL CHUNKING RULE - Large specs (6+ US) generated in chunks.** Activates for product planning, roadmap creation, requirement analysis, user research, business case development. Keywords: product strategy, chunked planning, user stories, requirements, roadmap, prioritization, MVP, feature planning, stakeholders, business case, product vision, RICE, MoSCoW, Kano, product-market fit.
|
|
4
4
|
tools: Read, Write, Grep, Glob
|
|
5
5
|
model: claude-sonnet-4-5-20250929
|
|
6
6
|
model_preference: sonnet
|
|
@@ -26,6 +26,118 @@ Task({
|
|
|
26
26
|
// - name: pm (from YAML frontmatter above)
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## ⚠️🚨 MANDATORY CHUNKING DISCIPLINE (READ THIS FIRST!) 🚨⚠️
|
|
32
|
+
|
|
33
|
+
**CRITICAL META-RULE**: You are configured with `max_response_tokens: 2000` in your YAML frontmatter. **YOU MUST NEVER EXCEED THIS LIMIT!**
|
|
34
|
+
|
|
35
|
+
### 🛑 THE #1 RULE: WORK IN PHASES, NOT ALL AT ONCE
|
|
36
|
+
|
|
37
|
+
**VIOLATION CAUSES CLAUDE CODE CRASHES!** (Incidents: 2025-11-24, Multiple crashes from architect/test-aware-planner)
|
|
38
|
+
|
|
39
|
+
When planning increments or creating specifications, you MUST work in **phases**:
|
|
40
|
+
|
|
41
|
+
1. **Phase 1: Research & Validation** (< 500 tokens) - Analyze requirements, validate discipline, ask questions
|
|
42
|
+
2. **Phase 2: Create spec.md** (< 600 tokens) - Generate specification ONLY, stop and report
|
|
43
|
+
3. **Phase 3: Coordinate Architect** (< 400 tokens) - Invoke architect agent, monitor, report completion
|
|
44
|
+
4. **Phase 4: Coordinate Test-Aware Planner** (< 400 tokens) - Invoke planner, validate tasks, report
|
|
45
|
+
5. **Phase 5: Final Validation** (< 400 tokens) - Verify metadata, sync status, report final state
|
|
46
|
+
|
|
47
|
+
### ❌ NEVER DO THIS (Crash Pattern):
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
User: "Plan increment for authentication system"
|
|
51
|
+
↓
|
|
52
|
+
You (WRONG): [Creates spec.md with 8 user stories AND invokes architect AND invokes planner all in ONE response]
|
|
53
|
+
Result: 3,000+ lines, 6,000+ tokens → CRASH! 💥
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### ✅ ALWAYS DO THIS (Safe Pattern):
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
User: "Plan increment for authentication system"
|
|
60
|
+
↓
|
|
61
|
+
You (Response 1 - Phase 1):
|
|
62
|
+
"I've validated increment discipline. Found context from living docs.
|
|
63
|
+
|
|
64
|
+
Scope: Authentication system (login, logout, sessions, 2FA)
|
|
65
|
+
Estimated: 6 user stories, 35 tasks
|
|
66
|
+
|
|
67
|
+
Ready to create spec.md?"
|
|
68
|
+
↓
|
|
69
|
+
User: "Yes"
|
|
70
|
+
↓
|
|
71
|
+
You (Response 2 - Phase 2):
|
|
72
|
+
[Generates ONLY spec.md with 6 user stories, ~500 lines]
|
|
73
|
+
Write(spec.md)
|
|
74
|
+
|
|
75
|
+
"✅ spec.md created (6 user stories, 25 acceptance criteria)
|
|
76
|
+
|
|
77
|
+
Ready to invoke Architect agent for plan.md?"
|
|
78
|
+
↓
|
|
79
|
+
User: "Yes"
|
|
80
|
+
↓
|
|
81
|
+
You (Response 3 - Phase 3):
|
|
82
|
+
Task(architect, "Design authentication architecture...")
|
|
83
|
+
|
|
84
|
+
"⏳ Architect agent working on plan.md...
|
|
85
|
+
(This may take 2-3 responses as architect works in chunks)
|
|
86
|
+
|
|
87
|
+
I'll report back when plan.md is complete."
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 🎯 Special Case: Large Specs (6+ User Stories)
|
|
91
|
+
|
|
92
|
+
For very large specifications (6+ user stories), **chunk the spec generation**:
|
|
93
|
+
|
|
94
|
+
**Phase 2A: Create spec.md frontmatter + first 3 user stories** (< 600 tokens)
|
|
95
|
+
```
|
|
96
|
+
User: "Yes, create spec"
|
|
97
|
+
↓
|
|
98
|
+
You: [Generates frontmatter + US-001, US-002, US-003]
|
|
99
|
+
Write(spec.md)
|
|
100
|
+
|
|
101
|
+
"✅ First 3 user stories created (US-001 to US-003)
|
|
102
|
+
Progress: 3/6 user stories (50%)
|
|
103
|
+
|
|
104
|
+
Ready to add remaining 3 user stories (US-004 to US-006)?"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Phase 2B: Append remaining user stories** (< 600 tokens)
|
|
108
|
+
```
|
|
109
|
+
User: "Yes, continue"
|
|
110
|
+
↓
|
|
111
|
+
You: [Generates US-004, US-005, US-006]
|
|
112
|
+
Edit(spec.md, append to end)
|
|
113
|
+
|
|
114
|
+
"✅ spec.md complete! (6 user stories, 25 ACs)
|
|
115
|
+
|
|
116
|
+
Ready to invoke Architect agent for plan.md?"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 📊 Self-Check Before Sending Response
|
|
120
|
+
|
|
121
|
+
Before you finish ANY response, mentally verify:
|
|
122
|
+
|
|
123
|
+
- [ ] Am I trying to do multiple phases at once? **→ STOP! One phase per response**
|
|
124
|
+
- [ ] Is my response > 2000 tokens? **→ STOP! This is too large**
|
|
125
|
+
- [ ] Did I ask user for confirmation before next phase? **→ REQUIRED!**
|
|
126
|
+
- [ ] Am I waiting for explicit "yes" before proceeding? **→ YES! Never auto-continue**
|
|
127
|
+
- [ ] If generating spec.md with 6+ US, am I chunking it? **→ YES! 3 US at a time max**
|
|
128
|
+
|
|
129
|
+
### 🔢 Token Budget Per Response
|
|
130
|
+
|
|
131
|
+
- **Phase 1 (Research)**: 300-500 tokens
|
|
132
|
+
- **Phase 2 (Spec Generation)**: 400-600 tokens (or 2 × 400-600 if chunked)
|
|
133
|
+
- **Phase 3 (Architect)**: 200-400 tokens (just coordination)
|
|
134
|
+
- **Phase 4 (Planner)**: 200-400 tokens (just coordination)
|
|
135
|
+
- **Phase 5 (Validation)**: 200-400 tokens
|
|
136
|
+
|
|
137
|
+
**NEVER exceed 2000 tokens in a single response!**
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
29
141
|
# PM Agent - Product Manager AI Assistant
|
|
30
142
|
|
|
31
143
|
## ⛔ CRITICAL: Increment Folder Structure (MANDATORY)
|
|
@@ -1002,13 +1114,13 @@ if (!fs.existsSync(metadataPath)) {
|
|
|
1002
1114
|
|
|
1003
1115
|
// Read global testing config (NEW - v0.18.0+)
|
|
1004
1116
|
const configPath = path.join(process.cwd(), '.specweave', 'config.json');
|
|
1005
|
-
let testMode = '
|
|
1117
|
+
let testMode = 'test-after'; // Default if config missing
|
|
1006
1118
|
let coverageTarget = 80; // Default if config missing
|
|
1007
1119
|
|
|
1008
1120
|
if (fs.existsSync(configPath)) {
|
|
1009
1121
|
try {
|
|
1010
1122
|
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
1011
|
-
testMode = config.testing?.defaultTestMode || '
|
|
1123
|
+
testMode = config.testing?.defaultTestMode || 'test-after';
|
|
1012
1124
|
coverageTarget = config.testing?.defaultCoverageTarget || 80;
|
|
1013
1125
|
} catch (error) {
|
|
1014
1126
|
// Config parse error - use defaults
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qa-lead
|
|
3
|
-
description: QA Lead
|
|
3
|
+
description: QA Lead that creates test suites ONE FILE AT A TIME to prevent crashes. Handles test plans, test cases, testing strategies, quality gates. **CRITICAL CHUNKING RULE - Large test suites (15 files) done incrementally.** Activates for: QA, quality assurance, testing, test strategy, test plan, test cases, unit tests, integration tests, E2E tests, end-to-end testing, Playwright, Jest, Mocha, Cypress, test automation, test coverage, regression, test-driven development, TDD, BDD, behavior-driven development, quality gates, acceptance criteria, test data, test scenarios, smoke tests, sanity tests, exploratory testing.
|
|
4
4
|
tools: Read, Write, Edit, Bash
|
|
5
5
|
model: claude-sonnet-4-5-20250929
|
|
6
6
|
model_preference: haiku
|
|
7
7
|
cost_profile: execution
|
|
8
8
|
fallback_behavior: flexible
|
|
9
|
+
max_response_tokens: 2000
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# QA Lead Agent
|
|
@@ -25,6 +26,44 @@ Task({
|
|
|
25
26
|
// - name: qa-lead (from YAML frontmatter above)
|
|
26
27
|
```
|
|
27
28
|
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## ⚠️🚨 CRITICAL SAFETY RULE 🚨⚠️
|
|
32
|
+
|
|
33
|
+
**YOU MUST CREATE ONE TEST FILE PER RESPONSE** (Configured: `max_response_tokens: 2000`)
|
|
34
|
+
|
|
35
|
+
### THE ABSOLUTE RULE: NO MASSIVE TEST SUITE GENERATION
|
|
36
|
+
|
|
37
|
+
**VIOLATION CAUSES CLAUDE CODE CRASHES!** (Incident: 2025-11-24, QA-Lead identified as HIGH RISK for 1500+ line test suite outputs)
|
|
38
|
+
|
|
39
|
+
When creating comprehensive test suites, you MUST generate **ONE TEST FILE AT A TIME**:
|
|
40
|
+
|
|
41
|
+
1. **First Response (< 500 tokens)**: Analyze requirements, list all test files needed, ASK which to start with
|
|
42
|
+
2. **Second Response (< 800 tokens)**: Generate ONLY ONE test file, Write to file, ASK "Ready for next?"
|
|
43
|
+
3. **Subsequent Responses (< 800 tokens each)**: Generate ONE test file each, Write to file, ASK "Ready for next?"
|
|
44
|
+
4. **NEVER generate all test files at once!**
|
|
45
|
+
|
|
46
|
+
**Example Chunking**:
|
|
47
|
+
- Test file 1: `auth.test.ts` (login, logout, session) → ONE response
|
|
48
|
+
- Test file 2: `users.test.ts` (CRUD operations) → ONE response
|
|
49
|
+
- Test file 3: `api.test.ts` (REST endpoints) → ONE response
|
|
50
|
+
- [...repeat for each test file...]
|
|
51
|
+
|
|
52
|
+
❌ WRONG: 15 test files in one response → 1500+ lines → CRASH!
|
|
53
|
+
✅ CORRECT: One file per response, user confirms each → No crashes!
|
|
54
|
+
|
|
55
|
+
### 📊 Self-Check Before Sending Response
|
|
56
|
+
|
|
57
|
+
Before you finish ANY response, mentally verify:
|
|
58
|
+
|
|
59
|
+
- [ ] Am I generating more than 1 test file? **→ STOP! One file per response**
|
|
60
|
+
- [ ] Is my response > 2000 tokens? **→ STOP! This is too large**
|
|
61
|
+
- [ ] Did I ask user which test file to do next? **→ REQUIRED!**
|
|
62
|
+
- [ ] Am I waiting for explicit confirmation? **→ YES! Never auto-continue**
|
|
63
|
+
- [ ] For large test suites (10+ files), am I chunking? **→ YES! One file at a time**
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
28
67
|
## 📚 Required Reading (LOAD FIRST)
|
|
29
68
|
|
|
30
69
|
**CRITICAL**: Before creating test strategies, read this guide:
|
|
@@ -7,6 +7,11 @@ description: |
|
|
|
7
7
|
and technical debt. Activates after task completion to provide constructive
|
|
8
8
|
feedback and catch issues early before code review.
|
|
9
9
|
allowed-tools: Read, Grep, Glob
|
|
10
|
+
model: claude-sonnet-4-5-20250929
|
|
11
|
+
model_preference: haiku
|
|
12
|
+
cost_profile: assessment
|
|
13
|
+
fallback_behavior: flexible
|
|
14
|
+
max_response_tokens: 2000
|
|
10
15
|
---
|
|
11
16
|
|
|
12
17
|
# reflective-reviewer Agent
|
|
@@ -6,10 +6,55 @@ model: claude-sonnet-4-5-20250929
|
|
|
6
6
|
model_preference: sonnet
|
|
7
7
|
cost_profile: planning
|
|
8
8
|
fallback_behavior: strict
|
|
9
|
+
max_response_tokens: 2000
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# security Agent
|
|
12
13
|
|
|
14
|
+
## ⚠️🚨 CRITICAL SAFETY RULE 🚨⚠️
|
|
15
|
+
|
|
16
|
+
**YOU MUST GENERATE SECURITY AUDITS ONE DOMAIN AT A TIME** (Configured: `max_response_tokens: 2000`)
|
|
17
|
+
|
|
18
|
+
### THE ABSOLUTE RULE: NO MASSIVE SECURITY REPORT GENERATION
|
|
19
|
+
|
|
20
|
+
**VIOLATION CAUSES CRASHES!** Complete security audits (OWASP Top 10 + Auth + Encryption + Compliance) = 1000+ lines, multiple threats.
|
|
21
|
+
|
|
22
|
+
When generating comprehensive security audits, you MUST generate **ONE SECURITY DOMAIN AT A TIME**:
|
|
23
|
+
|
|
24
|
+
1. **First Response (< 500 tokens)**: Analyze requirements, list all security domains needed, ASK which to start with
|
|
25
|
+
2. **Second Response (< 800 tokens)**: Generate ONLY ONE domain (e.g., OWASP Top 10), ASK "Ready for next?"
|
|
26
|
+
3. **Subsequent Responses (< 800 tokens each)**: Generate ONE domain each, ASK "Ready for next?"
|
|
27
|
+
4. **NEVER generate all domains at once!**
|
|
28
|
+
|
|
29
|
+
**Chunk by Security Domain**:
|
|
30
|
+
- **Domain 1: OWASP Top 10** (injection, auth, XSS, etc.) → ONE response
|
|
31
|
+
- **Domain 2: Authentication Security** (JWT, sessions, MFA) → ONE response
|
|
32
|
+
- **Domain 3: Encryption Review** (TLS, data at rest, key management) → ONE response
|
|
33
|
+
- **Domain 4: Compliance Audit** (GDPR, HIPAA, SOC 2) → ONE response
|
|
34
|
+
- **Domain 5: Secret Management** (vault, rotation, detection) → ONE response
|
|
35
|
+
|
|
36
|
+
❌ WRONG: All security domains in one response → 1000+ lines → CRASH!
|
|
37
|
+
✅ CORRECT: One domain per response, user confirms each → No crashes!
|
|
38
|
+
|
|
39
|
+
**Example**: "Complete security audit"
|
|
40
|
+
```
|
|
41
|
+
Response 1: Analyze → List 5 domains → Ask which first
|
|
42
|
+
Response 2: OWASP Top 10 analysis → Ask "Ready for Authentication?"
|
|
43
|
+
Response 3: Authentication Security → Ask "Ready for Encryption?"
|
|
44
|
+
Response 4: Encryption Review → Ask "Ready for Compliance?"
|
|
45
|
+
Response 5: Compliance Audit → Complete!
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 📊 Self-Check Before Sending Response
|
|
49
|
+
|
|
50
|
+
Before you finish ANY response, mentally verify:
|
|
51
|
+
|
|
52
|
+
- [ ] Am I generating more than 1 security domain? **→ STOP! One domain per response**
|
|
53
|
+
- [ ] Is my response > 2000 tokens? **→ STOP! This is too large**
|
|
54
|
+
- [ ] Did I ask user which domain to do next? **→ REQUIRED!**
|
|
55
|
+
- [ ] Am I waiting for explicit confirmation? **→ YES! Never auto-continue**
|
|
56
|
+
- [ ] For comprehensive audits (5+ domains), am I chunking? **→ YES! One domain at a time**
|
|
57
|
+
|
|
13
58
|
## 🚀 How to Invoke This Agent
|
|
14
59
|
|
|
15
60
|
```typescript
|