claude-flow-novice 2.15.5 → 2.15.7
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/cfn-extras/.gs-api-quota.json +16 -0
- package/.claude/cfn-extras/.gs-progress-state.json +22 -0
- package/.claude/cfn-extras/GOOGLE_SHEETS_IMPLEMENTATION_SUMMARY.md +414 -0
- package/.claude/cfn-extras/agents/google-sheets/README.md +114 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-advanced-analytics-specialist.md +288 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-api-integrator.md +127 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-automation-scripting-specialist.md +195 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-business-validator.md +179 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-collaboration-security-specialist.md +240 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-coordinator.md +214 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-transformer.md +127 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-validation-quality-specialist.md +177 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-validator.md +119 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-visualization-specialist.md +135 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-design-layout-specialist.md +109 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-engineer.md +127 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-engineering-specialist.md +138 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-validator.md +128 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-generalist.md +645 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-integration-api-specialist.md +258 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-performance-analyst.md +125 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-performance-optimization-specialist.md +211 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-schema-designer.md +130 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-template-architecture-specialist.md +259 -0
- package/.claude/cfn-extras/docs/GOOGLE_SHEETS_CFN_LOOP.md +617 -0
- package/.claude/cfn-extras/skills/GOOGLE_SHEETS_SKILLS_README.md +453 -0
- package/.claude/cfn-extras/skills/google-sheets-api-coordinator/SKILL.md +272 -0
- package/.claude/cfn-extras/skills/google-sheets-api-coordinator/api-call.sh +254 -0
- package/.claude/cfn-extras/skills/google-sheets-api-coordinator/test.sh +174 -0
- package/.claude/cfn-extras/skills/google-sheets-api-coordinator/validate.sh +98 -0
- package/.claude/cfn-extras/skills/google-sheets-decomposition/SKILL.md +269 -0
- package/.claude/cfn-extras/skills/google-sheets-decomposition/decompose.sh +313 -0
- package/.claude/cfn-extras/skills/google-sheets-formula-builder/SKILL.md +237 -0
- package/.claude/cfn-extras/skills/google-sheets-formula-builder/build-formula.sh +220 -0
- package/.claude/cfn-extras/skills/google-sheets-formula-builder/test.sh +172 -0
- package/.claude/cfn-extras/skills/google-sheets-formula-builder/validate.sh +98 -0
- package/.claude/cfn-extras/skills/google-sheets-progress/SKILL.md +287 -0
- package/.claude/cfn-extras/skills/google-sheets-progress/test.sh +385 -0
- package/.claude/cfn-extras/skills/google-sheets-progress/track-progress.sh +516 -0
- package/.claude/cfn-extras/skills/google-sheets-progress/validate.sh +119 -0
- package/.claude/cfn-extras/skills/google-sheets-sprint-order/SKILL.md +277 -0
- package/.claude/cfn-extras/skills/google-sheets-sprint-order/order-sprints.sh +233 -0
- package/.claude/cfn-extras/skills/google-sheets-validation/SKILL.md +352 -0
- package/.claude/cfn-extras/skills/google-sheets-validation/test.sh +355 -0
- package/.claude/cfn-extras/skills/google-sheets-validation/validate-state.sh +374 -0
- package/.claude/cfn-extras/skills/google-sheets-validation/validate.sh +128 -0
- package/.claude/commands/cfn-context.md +10 -0
- package/.claude/commands/cfn-loop-cli.md +36 -15
- package/.claude/commands/google-sheets/google-sheets-loop.md +289 -0
- package/.claude/skills/cfn-agent-selector/SKILL.md +143 -0
- package/.claude/skills/cfn-agent-selector/select-agents.sh +94 -0
- package/.claude/skills/cfn-agent-spawning/get-agent-provider-env.sh +22 -2
- package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +21 -2
- package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +11 -5
- package/.claude/skills/cfn-docker-redis-coordination/MIGRATION_SUMMARY.md +348 -0
- package/.claude/skills/cfn-docker-redis-coordination/README.md +294 -0
- package/.claude/skills/cfn-docker-redis-coordination/jest.config.js +37 -0
- package/.claude/skills/cfn-docker-redis-coordination/package-lock.json +5259 -0
- package/.claude/skills/cfn-docker-redis-coordination/package.json +40 -0
- package/.claude/skills/cfn-docker-redis-coordination/src/coordinator.ts +801 -0
- package/.claude/skills/cfn-docker-redis-coordination/src/index.ts +42 -0
- package/.claude/skills/cfn-docker-redis-coordination/src/types.ts +351 -0
- package/.claude/skills/cfn-docker-redis-coordination/tests/coordinator.test.ts +1464 -0
- package/.claude/skills/cfn-docker-redis-coordination/tsconfig.json +30 -0
- package/.claude/skills/cfn-loop-orchestration/.eslintrc.js +56 -0
- package/.claude/skills/cfn-loop-orchestration/.prettierrc.json +18 -0
- package/.claude/skills/cfn-loop-orchestration/README.md +149 -41
- package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +39 -577
- package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +49 -270
- package/.claude/skills/cfn-loop-orchestration/jest.config.js +67 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate-wrapper.sh +268 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +91 -8
- package/.claude/skills/cfn-loop-orchestration/package-lock.json +5470 -0
- package/.claude/skills/cfn-loop-orchestration/package.json +49 -0
- package/.claude/skills/cfn-loop-orchestration/src/agent-spawner/agent-spawner.ts +34 -0
- package/.claude/skills/cfn-loop-orchestration/src/gate-checker/gate-checker.ts +36 -0
- package/.claude/skills/cfn-loop-orchestration/src/helpers/consensus.ts +87 -0
- package/.claude/skills/cfn-loop-orchestration/src/helpers/gate-check.ts +115 -0
- package/.claude/skills/cfn-loop-orchestration/src/helpers/parse-test-results.ts +372 -0
- package/.claude/skills/cfn-loop-orchestration/src/index.ts +14 -0
- package/.claude/skills/cfn-loop-orchestration/src/orchestrator/orchestrator.ts +31 -0
- package/.claude/skills/cfn-loop-orchestration/src/redis/redis-coordinator.ts +72 -0
- package/.claude/skills/cfn-loop-orchestration/src/types.ts +188 -0
- package/.claude/skills/cfn-loop-orchestration/src/utils/logger.ts +32 -0
- package/.claude/skills/cfn-loop-orchestration/tests/consensus.test.ts +142 -0
- package/.claude/skills/cfn-loop-orchestration/tests/deliverable-verifier.test.ts +199 -0
- package/.claude/skills/cfn-loop-orchestration/tests/gate-check.test.ts +325 -0
- package/.claude/skills/cfn-loop-orchestration/tests/iteration-manager.test.ts +132 -0
- package/.claude/skills/cfn-loop-orchestration/tests/parse-test-results.test.ts +382 -0
- package/.claude/skills/cfn-loop-orchestration/tests/setup.ts +22 -0
- package/.claude/skills/cfn-loop-orchestration/tests/timeout-calculator.test.ts +118 -0
- package/.claude/skills/cfn-loop-orchestration/tests/types.test.ts +132 -0
- package/.claude/skills/cfn-loop-orchestration/tsconfig.json +54 -0
- package/.claude/skills/cfn-redis-coordination/bash-wrappers/store-context.sh +23 -0
- package/.claude/skills/cfn-redis-coordination/coverage/clover.xml +1447 -0
- package/.claude/skills/cfn-redis-coordination/coverage/coverage-final.json +13 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/agent-logger.ts.html +1423 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/agent-recovery.ts.html +1447 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/base.css +224 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/block-navigation.js +87 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/completion-reporter.ts.html +1273 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/context-manager.ts.html +1066 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/favicon.png +0 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/index.html +281 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/mode-detector.ts.html +550 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/prettify.css +1 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/prettify.js +2 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/redis-client.ts.html +2047 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/result-collector.ts.html +1396 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/sorter.js +210 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/swarm-manager.ts.html +1567 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/task-analyzer.ts.html +1297 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/task-executor.ts.html +1354 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/types.ts.html +790 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov-report/waiting-coordinator.ts.html +1846 -0
- package/.claude/skills/cfn-redis-coordination/coverage/lcov.info +2650 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-logger.d.ts +92 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-logger.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-logger.js +329 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-logger.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.d.ts +75 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.js +302 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.d.ts +58 -0
- package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.js +237 -0
- package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/context-manager.d.ts +63 -0
- package/.claude/skills/cfn-redis-coordination/dist/context-manager.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/context-manager.js +230 -0
- package/.claude/skills/cfn-redis-coordination/dist/context-manager.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/index.d.ts +45 -0
- package/.claude/skills/cfn-redis-coordination/dist/index.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/index.js +114 -0
- package/.claude/skills/cfn-redis-coordination/dist/index.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/mode-detector.d.ts +31 -0
- package/.claude/skills/cfn-redis-coordination/dist/mode-detector.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/mode-detector.js +185 -0
- package/.claude/skills/cfn-redis-coordination/dist/mode-detector.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/redis-client.d.ts +191 -0
- package/.claude/skills/cfn-redis-coordination/dist/redis-client.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/redis-client.js +509 -0
- package/.claude/skills/cfn-redis-coordination/dist/redis-client.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/result-collector.d.ts +75 -0
- package/.claude/skills/cfn-redis-coordination/dist/result-collector.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/result-collector.js +281 -0
- package/.claude/skills/cfn-redis-coordination/dist/result-collector.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.d.ts +75 -0
- package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.js +354 -0
- package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.d.ts +62 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.js +305 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-executor.d.ts +97 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-executor.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-executor.js +283 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-executor.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/types.d.ts +176 -0
- package/.claude/skills/cfn-redis-coordination/dist/types.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/types.js +81 -0
- package/.claude/skills/cfn-redis-coordination/dist/types.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts +86 -0
- package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.js +419 -0
- package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/docs/migration/PHASE_3_REDIS_COORDINATION_COMPLETION_REPORT.md +553 -0
- package/.claude/skills/cfn-redis-coordination/jest.config.js +23 -0
- package/.claude/skills/cfn-redis-coordination/package-lock.json +5272 -0
- package/.claude/skills/cfn-redis-coordination/package.json +45 -0
- package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +21 -8
- package/.claude/skills/cfn-redis-coordination/src/agent-logger.ts +446 -0
- package/.claude/skills/cfn-redis-coordination/src/agent-recovery.ts +454 -0
- package/.claude/skills/cfn-redis-coordination/src/completion-reporter.ts +396 -0
- package/.claude/skills/cfn-redis-coordination/src/context-manager.ts +327 -0
- package/.claude/skills/cfn-redis-coordination/src/index.ts +82 -0
- package/.claude/skills/cfn-redis-coordination/src/mode-detector.ts +155 -0
- package/.claude/skills/cfn-redis-coordination/src/redis/redis-client.ts +305 -0
- package/.claude/skills/cfn-redis-coordination/src/redis/redis-functions.ts +283 -0
- package/.claude/skills/cfn-redis-coordination/src/redis-client.ts +654 -0
- package/.claude/skills/cfn-redis-coordination/src/result-collector.ts +437 -0
- package/.claude/skills/cfn-redis-coordination/src/swarm-manager.ts +494 -0
- package/.claude/skills/cfn-redis-coordination/src/task-analyzer.ts +404 -0
- package/.claude/skills/cfn-redis-coordination/src/task-executor.ts +423 -0
- package/.claude/skills/cfn-redis-coordination/src/types.ts +235 -0
- package/.claude/skills/cfn-redis-coordination/src/waiting-coordinator.ts +587 -0
- package/.claude/skills/cfn-redis-coordination/test-connection-attempts.js +70 -0
- package/.claude/skills/cfn-redis-coordination/test-mode-simple.js +121 -0
- package/.claude/skills/cfn-redis-coordination/test-redis-check.js +84 -0
- package/.claude/skills/cfn-redis-coordination/test-task-mode-redis.cjs +391 -0
- package/.claude/skills/cfn-redis-coordination/tests/coordination.test.ts +788 -0
- package/.claude/skills/cfn-redis-coordination/tsconfig.json +31 -0
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +13 -72
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +172 -62
- package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +465 -508
- package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +733 -743
- package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +13 -79
- package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +15 -14
- package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +15 -17
- package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +23 -30
- package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +13 -18
- package/claude-assets/agents/cfn-dev-team/reviewers/code-reviewer.md +312 -317
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +23 -20
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +23 -20
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +23 -20
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +23 -20
- package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +16 -21
- package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +15 -20
- package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +718 -737
- package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +817 -828
- package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +15 -20
- package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +8 -9
- package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +668 -684
- package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +15 -20
- package/claude-assets/agents/cfn-dev-team/testers/tester.md +248 -253
- package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +13 -18
- package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +13 -18
- package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +13 -18
- package/claude-assets/agents/custom/cfn-redis-operations.md +530 -0
- package/claude-assets/agents/custom/cfn-system-expert.md +77 -0
- package/claude-assets/cfn-extras/.gs-api-quota.json +16 -0
- package/claude-assets/cfn-extras/.gs-progress-state.json +22 -0
- package/claude-assets/cfn-extras/GOOGLE_SHEETS_IMPLEMENTATION_SUMMARY.md +414 -0
- package/claude-assets/cfn-extras/agents/google-sheets/README.md +114 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-advanced-analytics-specialist.md +288 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-api-integrator.md +127 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-automation-scripting-specialist.md +195 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-business-validator.md +179 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-collaboration-security-specialist.md +240 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-coordinator.md +214 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-transformer.md +127 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-validation-quality-specialist.md +177 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-validator.md +119 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-visualization-specialist.md +135 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-design-layout-specialist.md +109 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-engineer.md +127 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-engineering-specialist.md +138 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-validator.md +128 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-generalist.md +645 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-integration-api-specialist.md +258 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-performance-analyst.md +125 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-performance-optimization-specialist.md +211 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-schema-designer.md +130 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-template-architecture-specialist.md +259 -0
- package/claude-assets/cfn-extras/docs/GOOGLE_SHEETS_CFN_LOOP.md +617 -0
- package/claude-assets/cfn-extras/skills/GOOGLE_SHEETS_SKILLS_README.md +453 -0
- package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/SKILL.md +272 -0
- package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/api-call.sh +254 -0
- package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/test.sh +174 -0
- package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/validate.sh +98 -0
- package/claude-assets/cfn-extras/skills/google-sheets-decomposition/SKILL.md +269 -0
- package/claude-assets/cfn-extras/skills/google-sheets-decomposition/decompose.sh +313 -0
- package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/SKILL.md +237 -0
- package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/build-formula.sh +220 -0
- package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/test.sh +172 -0
- package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/validate.sh +98 -0
- package/claude-assets/cfn-extras/skills/google-sheets-progress/SKILL.md +287 -0
- package/claude-assets/cfn-extras/skills/google-sheets-progress/test.sh +385 -0
- package/claude-assets/cfn-extras/skills/google-sheets-progress/track-progress.sh +516 -0
- package/claude-assets/cfn-extras/skills/google-sheets-progress/validate.sh +119 -0
- package/claude-assets/cfn-extras/skills/google-sheets-sprint-order/SKILL.md +277 -0
- package/claude-assets/cfn-extras/skills/google-sheets-sprint-order/order-sprints.sh +233 -0
- package/claude-assets/cfn-extras/skills/google-sheets-validation/SKILL.md +352 -0
- package/claude-assets/cfn-extras/skills/google-sheets-validation/test.sh +355 -0
- package/claude-assets/cfn-extras/skills/google-sheets-validation/validate-state.sh +374 -0
- package/claude-assets/cfn-extras/skills/google-sheets-validation/validate.sh +128 -0
- package/claude-assets/commands/cfn-context.md +10 -0
- package/claude-assets/commands/cfn-loop-cli.md +36 -15
- package/claude-assets/commands/google-sheets/google-sheets-loop.md +289 -0
- package/claude-assets/hooks/cfn-pre-execution/SESSION_START_README.md +87 -0
- package/claude-assets/hooks/cfn-pre-execution/TEST_SESSION_START.md +128 -0
- package/claude-assets/hooks/cfn-pre-execution/session-start-context.sh +111 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/INTEGRATION_EXAMPLE.md +209 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/README.md +130 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/SKILL.md +243 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/agent-mappings.json +142 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/select-agents.sh +173 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/task-classifier.sh +71 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/test-agent-selection.sh +282 -0
- package/claude-assets/skills/cfn-agent-selector/SKILL.md +143 -0
- package/claude-assets/skills/cfn-agent-selector/select-agents.sh +94 -0
- package/claude-assets/skills/cfn-agent-spawning/get-agent-provider-env.sh +22 -2
- package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +21 -2
- package/claude-assets/skills/cfn-docker-coordination/.eslintrc.json +33 -0
- package/claude-assets/skills/cfn-docker-coordination/README.md +349 -0
- package/claude-assets/skills/cfn-docker-coordination/docker-helpers.sh +433 -0
- package/claude-assets/skills/cfn-docker-coordination/jest.config.js +25 -0
- package/claude-assets/skills/cfn-docker-coordination/package-lock.json +6827 -0
- package/claude-assets/skills/cfn-docker-coordination/package.json +38 -0
- package/claude-assets/skills/cfn-docker-coordination/src/agent-container.ts +471 -0
- package/claude-assets/skills/cfn-docker-coordination/src/docker-client.ts +483 -0
- package/claude-assets/skills/cfn-docker-coordination/src/health-checker.ts +418 -0
- package/claude-assets/skills/cfn-docker-coordination/src/index.ts +45 -0
- package/claude-assets/skills/cfn-docker-coordination/src/network-manager.ts +377 -0
- package/claude-assets/skills/cfn-docker-coordination/src/types.ts +412 -0
- package/claude-assets/skills/cfn-docker-coordination/src/volume-manager.ts +389 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/agent-container.test.ts +379 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/docker-client.test.ts +345 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/health-checker.test.ts +535 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/integration.test.ts +193 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/network-manager.test.ts +352 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/setup.ts +36 -0
- package/claude-assets/skills/cfn-docker-coordination/tsconfig.json +29 -0
- package/claude-assets/skills/cfn-docker-logging/INTEGRATION.md +268 -0
- package/claude-assets/skills/cfn-docker-logging/SAMPLE_OUTPUTS.md +237 -0
- package/claude-assets/skills/cfn-docker-logging/SKILL.md +442 -0
- package/claude-assets/skills/cfn-docker-logging/capture-container-logs.sh +120 -0
- package/claude-assets/skills/cfn-docker-logging/enable-logging.sh +430 -0
- package/claude-assets/skills/cfn-docker-logging/init-hybrid-logging.sh +210 -0
- package/claude-assets/skills/cfn-docker-logging/queries/analytics-summary.sh +87 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-agent-timeline.sh +51 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-consensus-history.sh +56 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-coordination-timeline.sh +39 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-failed-containers.sh +40 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-gate-checks.sh +39 -0
- package/claude-assets/skills/cfn-docker-logging/schema.sql +111 -0
- package/claude-assets/skills/cfn-docker-logging/sqlite-helpers.sh +240 -0
- package/claude-assets/skills/cfn-docker-logging/test-hybrid-logging.sh +331 -0
- package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +11 -5
- package/claude-assets/skills/cfn-docker-redis-coordination/MIGRATION_SUMMARY.md +348 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/README.md +294 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/jest.config.js +37 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/package-lock.json +5259 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/package.json +40 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/src/coordinator.ts +801 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/src/index.ts +42 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/src/types.ts +351 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/tests/coordinator.test.ts +1464 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/tsconfig.json +30 -0
- package/claude-assets/skills/cfn-error-logging/.eslintrc.json +57 -0
- package/claude-assets/skills/cfn-error-logging/.prettierrc.json +10 -0
- package/claude-assets/skills/cfn-error-logging/MIGRATION_SUMMARY.md +485 -0
- package/claude-assets/skills/cfn-error-logging/package.json +47 -0
- package/claude-assets/skills/cfn-error-logging/src/error-logger.ts +1042 -0
- package/claude-assets/skills/cfn-error-logging/src/index.ts +12 -0
- package/claude-assets/skills/cfn-error-logging/src/types.ts +456 -0
- package/claude-assets/skills/cfn-error-logging/tests/error-logger.test.ts +1302 -0
- package/claude-assets/skills/cfn-error-logging/tsconfig.json +38 -0
- package/claude-assets/skills/cfn-loop-orchestration/.eslintrc.js +56 -0
- package/claude-assets/skills/cfn-loop-orchestration/.prettierrc.json +18 -0
- package/claude-assets/skills/cfn-loop-orchestration/README.md +149 -41
- package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +39 -577
- package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +49 -270
- package/claude-assets/skills/cfn-loop-orchestration/jest.config.js +67 -0
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate-wrapper.sh +268 -0
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +91 -8
- package/claude-assets/skills/cfn-loop-orchestration/package-lock.json +5470 -0
- package/claude-assets/skills/cfn-loop-orchestration/package.json +49 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/agent-spawner/agent-spawner.ts +34 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/gate-checker/gate-checker.ts +36 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/helpers/gate-check.ts +115 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/helpers/parse-test-results.ts +372 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/index.ts +14 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/orchestrator/orchestrator.ts +31 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/redis/redis-coordinator.ts +72 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/types.ts +188 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/utils/logger.ts +32 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/consensus.test.ts +142 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/deliverable-verifier.test.ts +199 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/gate-check.test.ts +325 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/iteration-manager.test.ts +132 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/parse-test-results.test.ts +382 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/setup.ts +22 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/timeout-calculator.test.ts +118 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/types.test.ts +132 -0
- package/claude-assets/skills/cfn-loop-orchestration/tsconfig.json +54 -0
- package/claude-assets/skills/cfn-redis-coordination/bash-wrappers/store-context.sh +23 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/clover.xml +1447 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/coverage-final.json +13 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/agent-logger.ts.html +1423 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/agent-recovery.ts.html +1447 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/base.css +224 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/block-navigation.js +87 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/completion-reporter.ts.html +1273 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/context-manager.ts.html +1066 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/favicon.png +0 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/index.html +281 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/mode-detector.ts.html +550 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/prettify.css +1 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/prettify.js +2 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/redis-client.ts.html +2047 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/result-collector.ts.html +1396 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/sorter.js +210 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/swarm-manager.ts.html +1567 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/task-analyzer.ts.html +1297 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/task-executor.ts.html +1354 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/types.ts.html +790 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov-report/waiting-coordinator.ts.html +1846 -0
- package/claude-assets/skills/cfn-redis-coordination/coverage/lcov.info +2650 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.d.ts +92 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.js +329 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.d.ts +75 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.js +302 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.d.ts +58 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.js +237 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.d.ts +63 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.js +230 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/index.d.ts +45 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/index.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/index.js +114 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/index.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.d.ts +31 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.js +185 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.d.ts +191 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.js +509 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.d.ts +75 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.js +281 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.d.ts +75 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.js +354 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.d.ts +62 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.js +305 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.d.ts +97 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.js +283 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/types.d.ts +176 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/types.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/types.js +81 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/types.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts +86 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.js +419 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/docs/migration/PHASE_3_REDIS_COORDINATION_COMPLETION_REPORT.md +553 -0
- package/claude-assets/skills/cfn-redis-coordination/jest.config.js +23 -0
- package/claude-assets/skills/cfn-redis-coordination/package-lock.json +5272 -0
- package/claude-assets/skills/cfn-redis-coordination/package.json +45 -0
- package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +21 -8
- package/claude-assets/skills/cfn-redis-coordination/src/agent-logger.ts +446 -0
- package/claude-assets/skills/cfn-redis-coordination/src/agent-recovery.ts +454 -0
- package/claude-assets/skills/cfn-redis-coordination/src/completion-reporter.ts +396 -0
- package/claude-assets/skills/cfn-redis-coordination/src/context-manager.ts +327 -0
- package/claude-assets/skills/cfn-redis-coordination/src/index.ts +82 -0
- package/claude-assets/skills/cfn-redis-coordination/src/mode-detector.ts +155 -0
- package/claude-assets/skills/cfn-redis-coordination/src/redis/redis-client.ts +305 -0
- package/claude-assets/skills/cfn-redis-coordination/src/redis/redis-functions.ts +283 -0
- package/claude-assets/skills/cfn-redis-coordination/src/redis-client.ts +654 -0
- package/claude-assets/skills/cfn-redis-coordination/src/result-collector.ts +437 -0
- package/claude-assets/skills/cfn-redis-coordination/src/swarm-manager.ts +494 -0
- package/claude-assets/skills/cfn-redis-coordination/src/task-analyzer.ts +404 -0
- package/claude-assets/skills/cfn-redis-coordination/src/task-executor.ts +423 -0
- package/claude-assets/skills/cfn-redis-coordination/src/types.ts +235 -0
- package/claude-assets/skills/cfn-redis-coordination/src/waiting-coordinator.ts +587 -0
- package/claude-assets/skills/cfn-redis-coordination/test-connection-attempts.js +70 -0
- package/claude-assets/skills/cfn-redis-coordination/test-mode-simple.js +121 -0
- package/claude-assets/skills/cfn-redis-coordination/test-redis-check.js +84 -0
- package/claude-assets/skills/cfn-redis-coordination/test-task-mode-redis.cjs +391 -0
- package/claude-assets/skills/cfn-redis-coordination/tests/coordination.test.ts +788 -0
- package/claude-assets/skills/cfn-redis-coordination/tsconfig.json +31 -0
- package/claude-assets/skills/cfn-skill-propagation/README.md +233 -0
- package/claude-assets/skills/cfn-skill-propagation/package-lock.json +5174 -0
- package/claude-assets/skills/cfn-skill-propagation/package.json +52 -0
- package/claude-assets/skills/cfn-skill-propagation/propagate-skill-update.sh +32 -0
- package/claude-assets/skills/cfn-skill-propagation/src/cli.ts +75 -0
- package/claude-assets/skills/cfn-skill-propagation/src/database-adapter.ts +239 -0
- package/claude-assets/skills/cfn-skill-propagation/src/file-system-adapter.ts +113 -0
- package/claude-assets/skills/cfn-skill-propagation/src/index.ts +72 -0
- package/claude-assets/skills/cfn-skill-propagation/src/logger.ts +43 -0
- package/claude-assets/skills/cfn-skill-propagation/src/metadata-parser.ts +154 -0
- package/claude-assets/skills/cfn-skill-propagation/src/skill-propagator.ts +274 -0
- package/claude-assets/skills/cfn-skill-propagation/src/skill-validator.ts +179 -0
- package/claude-assets/skills/cfn-skill-propagation/src/types.ts +143 -0
- package/claude-assets/skills/cfn-skill-propagation/src/version-manager.ts +118 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/file-system-adapter.test.ts +91 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/metadata-parser.test.ts +176 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/skill-propagator.test.ts +209 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/skill-validator.test.ts +203 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/version-manager.test.ts +115 -0
- package/claude-assets/skills/cfn-skill-propagation/tsconfig.json +34 -0
- package/claude-assets/skills/task-classifier/SKILL.md +81 -0
- package/claude-assets/skills/task-classifier/classify-task.sh +62 -0
- package/claude-assets/skills/workflow-codification/package-lock.json +5170 -0
- package/claude-assets/skills/workflow-codification/package.json +30 -0
- package/claude-assets/skills/workflow-codification/src/index.ts +24 -0
- package/claude-assets/skills/workflow-codification/src/pattern-analyzer.ts +537 -0
- package/claude-assets/skills/workflow-codification/src/types.ts +180 -0
- package/claude-assets/skills/workflow-codification/tests/pattern-analyzer.test.ts +960 -0
- package/claude-assets/skills/workflow-codification/tsconfig.json +34 -0
- package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
- package/dist/agent-spawner/agent-spawner.js +448 -0
- package/dist/agent-spawner/agent-spawner.js.map +1 -0
- package/dist/agent-spawner/index.js +10 -0
- package/dist/agent-spawner/index.js.map +1 -0
- package/dist/agent-spawner/types.js +14 -0
- package/dist/agent-spawner/types.js.map +1 -0
- package/dist/cli/agent-executor.js +47 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/agent-spawn.js +4 -1
- package/dist/cli/agent-spawn.js.map +1 -1
- package/dist/cli/config-manager.js +91 -109
- package/dist/cli/config-manager.js.map +1 -1
- package/dist/cli/tool-executor.js +3 -1
- package/dist/cli/tool-executor.js.map +1 -1
- package/dist/gate-checker/gate-checker.js +292 -0
- package/dist/gate-checker/gate-checker.js.map +1 -0
- package/dist/gate-checker/types.js +94 -0
- package/dist/gate-checker/types.js.map +1 -0
- package/dist/lib/database-service/connection-pool-manager.js +2 -1
- package/dist/lib/database-service/connection-pool-manager.js.map +1 -1
- package/dist/orchestrator/index.js +10 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestrate.js +496 -0
- package/dist/orchestrator/orchestrate.js.map +1 -0
- package/dist/orchestrator/types.js +58 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/package.json +1 -1
- package/scripts/clean-agent-profiles.sh +112 -0
- package/scripts/switch-api.sh +142 -4
- package/scripts/verify-no-secrets.sh +6 -13
- package/tests/README.md +175 -58
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"lib": ["ES2022"],
|
|
6
|
+
"outDir": "./dist",
|
|
7
|
+
"rootDir": "./src",
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"declarationMap": true,
|
|
10
|
+
"sourceMap": true,
|
|
11
|
+
"strict": true,
|
|
12
|
+
"noImplicitAny": true,
|
|
13
|
+
"strictNullChecks": true,
|
|
14
|
+
"strictFunctionTypes": true,
|
|
15
|
+
"strictBindCallApply": true,
|
|
16
|
+
"strictPropertyInitialization": true,
|
|
17
|
+
"noImplicitThis": true,
|
|
18
|
+
"alwaysStrict": true,
|
|
19
|
+
"noUnusedLocals": false,
|
|
20
|
+
"noUnusedParameters": false,
|
|
21
|
+
"noImplicitReturns": true,
|
|
22
|
+
"noFallthroughCasesInSwitch": true,
|
|
23
|
+
"esModuleInterop": true,
|
|
24
|
+
"skipLibCheck": true,
|
|
25
|
+
"forceConsistentCasingInFileNames": true,
|
|
26
|
+
"resolveJsonModule": true,
|
|
27
|
+
"moduleResolution": "node"
|
|
28
|
+
},
|
|
29
|
+
"include": ["src/**/*"],
|
|
30
|
+
"exclude": ["node_modules", "dist", "tests", "src/redis/**/*"]
|
|
31
|
+
}
|
|
@@ -46,25 +46,18 @@ fi
|
|
|
46
46
|
|
|
47
47
|
**Old (Deprecated):**
|
|
48
48
|
```bash
|
|
49
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
50
|
-
"${AGENT_ID}" "0.85"
|
|
51
|
-
```
|
|
52
49
|
|
|
53
50
|
**New (Required):**
|
|
54
51
|
```bash
|
|
55
52
|
# Execute tests and capture output
|
|
56
53
|
TEST_OUTPUT=$(npm test -- --reporter=json 2>&1)
|
|
57
54
|
|
|
58
|
-
# Parse
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
redis-cli HSET "swarm:${TASK_ID}:test-results:iteration${ITERATION}" \
|
|
64
|
-
"${AGENT_ID}" "$RESULTS"
|
|
55
|
+
# Parse natively (no external dependencies)
|
|
56
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
57
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
58
|
+
TOTAL=$((PASS + FAIL))
|
|
59
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
65
60
|
|
|
66
|
-
# Signal completion
|
|
67
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
68
61
|
```
|
|
69
62
|
|
|
70
63
|
## Core Responsibility
|
|
@@ -78,22 +71,10 @@ redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
|
78
71
|
### Frontend Context Storage in Redis
|
|
79
72
|
```bash
|
|
80
73
|
# Store frontend coordination context
|
|
81
|
-
redis-cli HSET "frontend:task:${TASK_ID}:context" \
|
|
82
|
-
"component_name" "${COMPONENT_NAME}" \
|
|
83
|
-
"mockup_path" "${MOCKUP_PATH}" \
|
|
84
|
-
"brand_guidelines" "${BRAND_GUIDELINES}" \
|
|
85
|
-
"mode" "${MODE}" \
|
|
86
|
-
"visual_threshold" "${VISUAL_THRESHOLD}" \
|
|
87
|
-
"max_iterations" "${MAX_ITERATIONS}" \
|
|
88
|
-
"current_iteration" "1"
|
|
89
74
|
|
|
90
75
|
# Store brand guidelines for agent reference
|
|
91
76
|
redis-cli SET "frontend:task:${TASK_ID}:brand-guidelines" "${BRAND_GUIDELINES_JSON}"
|
|
92
77
|
redis-cli SET "frontend:task:${TASK_ID}:mockup-path" "${MOCKUP_PATH}"
|
|
93
|
-
redis-cli HSET "frontend:task:${TASK_ID}:config" \
|
|
94
|
-
"visual_threshold" "85" \
|
|
95
|
-
"interaction_threshold" "80" \
|
|
96
|
-
"accessibility_threshold" "90"
|
|
97
78
|
```
|
|
98
79
|
|
|
99
80
|
### Agent Spawning with Redis Context
|
|
@@ -103,13 +84,6 @@ for agent in "${loop3Agents[@]}"; do
|
|
|
103
84
|
AGENT_ID="${TASK_ID}-${agent}-$(date +%s)"
|
|
104
85
|
|
|
105
86
|
# Store agent coordination data
|
|
106
|
-
redis-cli HSET "frontend:agent:${AGENT_ID}" \
|
|
107
|
-
"agent_type" "${agent}" \
|
|
108
|
-
"task_id" "${TASK_ID}" \
|
|
109
|
-
"loop_number" "3" \
|
|
110
|
-
"iteration" "${CURRENT_ITERATION}" \
|
|
111
|
-
"component_name" "${COMPONENT_NAME}" \
|
|
112
|
-
"status" "spawning"
|
|
113
87
|
|
|
114
88
|
# Prepare enhanced context with brand guidelines
|
|
115
89
|
CONTEXT_WITH_BRAND=$(cat <<EOF
|
|
@@ -161,13 +135,6 @@ store_visual_analysis() {
|
|
|
161
135
|
local overall_score="$3"
|
|
162
136
|
local iteration="$4"
|
|
163
137
|
|
|
164
|
-
redis-cli HSET "frontend:task:${TASK_ID}:visual:${iteration}" \
|
|
165
|
-
"similarity_score" "$similarity_score" \
|
|
166
|
-
"interaction_score" "$interaction_score" \
|
|
167
|
-
"overall_score" "$overall_score" \
|
|
168
|
-
"analyzed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
169
|
-
"screenshot_path" "${SCREENSHOT_PATH}" \
|
|
170
|
-
"video_path" "${VIDEO_PATH}"
|
|
171
138
|
|
|
172
139
|
# Store visual feedback for iteration
|
|
173
140
|
redis-cli SET "frontend:task:${TASK_ID}:feedback:${iteration}" "$VISUAL_FEEDBACK_JSON"
|
|
@@ -196,13 +163,6 @@ spawn_visual_validators() {
|
|
|
196
163
|
AGENT_ID="${TASK_ID}-${validator}-$(date +%s)"
|
|
197
164
|
|
|
198
165
|
# Store validator context
|
|
199
|
-
redis-cli HSET "frontend:agent:${AGENT_ID}" \
|
|
200
|
-
"agent_type" "${validator}" \
|
|
201
|
-
"task_id" "${TASK_ID}" \
|
|
202
|
-
"loop_number" "2" \
|
|
203
|
-
"iteration" "${CURRENT_ITERATION}" \
|
|
204
|
-
"component_name" "${COMPONENT_NAME}" \
|
|
205
|
-
"visual_score" "$OVERALL_SCORE"
|
|
206
166
|
|
|
207
167
|
# Prepare validation context with visual artifacts
|
|
208
168
|
VALIDATION_CONTEXT=$(cat <<EOF
|
|
@@ -255,11 +215,6 @@ signal_agent_completion() {
|
|
|
255
215
|
|
|
256
216
|
if [[ -n "${TASK_ID:-}" && -n "${AGENT_ID:-}" ]]; then
|
|
257
217
|
# Store completion data
|
|
258
|
-
redis-cli HSET "frontend:task:${TASK_ID}:completion:${AGENT_ID}" \
|
|
259
|
-
"confidence" "$confidence" \
|
|
260
|
-
"iteration" "$iteration" \
|
|
261
|
-
"deliverables" "$deliverables" \
|
|
262
|
-
"completed_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
263
218
|
|
|
264
219
|
# Signal completion
|
|
265
220
|
redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
|
|
@@ -281,10 +236,6 @@ signal_validator_completion() {
|
|
|
281
236
|
|
|
282
237
|
if [[ -n "${TASK_ID:-}" && -n "${AGENT_ID:-}" ]]; then
|
|
283
238
|
# Store validator consensus
|
|
284
|
-
redis-cli HSET "frontend:task:${TASK_ID}:validator:${AGENT_ID}" \
|
|
285
|
-
"consensus_score" "$consensus_score" \
|
|
286
|
-
"feedback" "$validation_feedback" \
|
|
287
|
-
"validated_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
288
239
|
|
|
289
240
|
# Signal validation completion
|
|
290
241
|
redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
|
|
@@ -306,13 +257,6 @@ signal_product_owner_decision() {
|
|
|
306
257
|
|
|
307
258
|
if [[ -n "${TASK_ID:-}" && -n "${AGENT_ID:-}" ]]; then
|
|
308
259
|
# Store PO decision
|
|
309
|
-
redis-cli HSET "frontend:task:${TASK_ID}:po-decision" \
|
|
310
|
-
"decision" "$decision" \
|
|
311
|
-
"reasoning" "$reasoning" \
|
|
312
|
-
"final_score" "$OVERALL_SCORE" \
|
|
313
|
-
"final_consensus" "$FINAL_CONSENSUS" \
|
|
314
|
-
"total_iterations" "$CURRENT_ITERATION" \
|
|
315
|
-
"decided_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
316
260
|
|
|
317
261
|
# Signal decision completion
|
|
318
262
|
redis-cli lpush "swarm:${TASK_ID}:product-owner:done" "$decision"
|
|
@@ -355,11 +299,6 @@ store_iteration_result() {
|
|
|
355
299
|
local score="$3"
|
|
356
300
|
local feedback="$4"
|
|
357
301
|
|
|
358
|
-
redis-cli HSET "frontend:task:${TASK_ID}:audit:${iteration}" \
|
|
359
|
-
"status" "$status" \
|
|
360
|
-
"score" "$score" \
|
|
361
|
-
"feedback" "$feedback" \
|
|
362
|
-
"timestamp" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
363
302
|
}
|
|
364
303
|
```
|
|
365
304
|
|
|
@@ -906,12 +845,14 @@ fi
|
|
|
906
845
|
Complete your frontend coordination work and provide test-based validation:
|
|
907
846
|
|
|
908
847
|
1. **Execute Tests**: Run all test suites from success criteria
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
848
|
+
# Parse natively (no external dependencies)
|
|
849
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
850
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
851
|
+
TOTAL=$((PASS + FAIL))
|
|
852
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
853
|
+
|
|
854
|
+
# Return results (Main Chat receives automatically in Task Mode)
|
|
855
|
+
echo "{\"passed\": $PASS, \"failed\": $FAIL, \"pass_rate\": $RATE}"
|
|
915
856
|
- Coverage: ≥80%
|
|
916
857
|
4. **Store in Redis**: Use test-results key (not confidence key)
|
|
917
858
|
5. **Signal Completion**: Push to completion queue
|
|
@@ -46,25 +46,18 @@ fi
|
|
|
46
46
|
|
|
47
47
|
**Old (Deprecated):**
|
|
48
48
|
```bash
|
|
49
|
-
redis-cli HSET "swarm:${TASK_ID}:confidence:iteration${ITERATION}" \
|
|
50
|
-
"${AGENT_ID}" "0.85"
|
|
51
|
-
```
|
|
52
49
|
|
|
53
50
|
**New (Required):**
|
|
54
51
|
```bash
|
|
55
52
|
# Execute tests and capture output
|
|
56
53
|
TEST_OUTPUT=$(npm test 2>&1)
|
|
57
54
|
|
|
58
|
-
# Parse
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
redis-cli HSET "swarm:${TASK_ID}:test-results:iteration${ITERATION}" \
|
|
64
|
-
"${AGENT_ID}" "$RESULTS"
|
|
55
|
+
# Parse natively (no external dependencies)
|
|
56
|
+
PASS=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= passing)' || echo "0")
|
|
57
|
+
FAIL=$(echo "$TEST_OUTPUT" | grep -oP '\d+(?= failing)' || echo "0")
|
|
58
|
+
TOTAL=$((PASS + FAIL))
|
|
59
|
+
RATE=$(awk "BEGIN {if ($TOTAL > 0) printf \"%.2f\", $PASS/$TOTAL; else print \"0.00\"}")
|
|
65
60
|
|
|
66
|
-
# Signal completion
|
|
67
|
-
redis-cli LPUSH "swarm:${TASK_ID}:completion:${AGENT_ID}" "done"
|
|
68
61
|
```
|
|
69
62
|
|
|
70
63
|
## Success Criteria Auto-Generation (Phase 3)
|
|
@@ -346,23 +339,8 @@ When spawned via CLI (`cfn-spawn agent`), implement full Redis coordination:
|
|
|
346
339
|
#### 1. Task Context Storage
|
|
347
340
|
```bash
|
|
348
341
|
# Store task context in Redis for swarm recovery
|
|
349
|
-
redis-cli HSET "cfn_loop:task:${TASK_ID}:context" \
|
|
350
|
-
"epic_goal" "${EPIC_GOAL}" \
|
|
351
|
-
"in_scope" "${IN_SCOPE}" \
|
|
352
|
-
"out_of_scope" "${OUT_OF_SCOPE}" \
|
|
353
|
-
"deliverables" "${DELIVERABLES}" \
|
|
354
|
-
"acceptance_criteria" "${ACCEPTANCE_CRITERIA}" \
|
|
355
|
-
"mode" "${MODE}" \
|
|
356
|
-
"gate_threshold" "${GATE_THRESHOLD}" \
|
|
357
|
-
"consensus_threshold" "${CONSENSUS_THRESHOLD}" \
|
|
358
|
-
"max_iterations" "${MAX_ITERATIONS}"
|
|
359
342
|
|
|
360
343
|
# Store agent configuration
|
|
361
|
-
redis-cli HSET "cfn_loop:task:${TASK_ID}:config" \
|
|
362
|
-
"loop3_agents" "${LOOP3_AGENTS}" \
|
|
363
|
-
"loop2_agents" "${LOOP2_AGENTS}" \
|
|
364
|
-
"product_owner" "${PRODUCT_OWNER}" \
|
|
365
|
-
"complexity" "${COMPLEXITY}"
|
|
366
344
|
```
|
|
367
345
|
|
|
368
346
|
#### 2. Agent Spawning with Context Injection
|
|
@@ -372,12 +350,6 @@ for agent in "${loop3_agents[@]}"; do
|
|
|
372
350
|
AGENT_ID="${TASK_ID}-${agent}-$(date +%s)"
|
|
373
351
|
|
|
374
352
|
# Store agent-specific context
|
|
375
|
-
redis-cli HSET "cfn_loop:agent:${AGENT_ID}" \
|
|
376
|
-
"agent_type" "${agent}" \
|
|
377
|
-
"task_id" "${TASK_ID}" \
|
|
378
|
-
"loop_number" "3" \
|
|
379
|
-
"iteration" "1" \
|
|
380
|
-
"status" "spawning"
|
|
381
353
|
|
|
382
354
|
# Inject context and spawn via CLI
|
|
383
355
|
cfn-spawn agent "${agent}" \
|
|
@@ -426,10 +398,6 @@ if (( $(echo "$AVERAGE_CONFIDENCE >= $GATE_THRESHOLD" | bc -l) )); then
|
|
|
426
398
|
echo "✅ Gate PASSED - signaling Loop 2"
|
|
427
399
|
|
|
428
400
|
# Store gate result and broadcast signal
|
|
429
|
-
redis-cli HSET "cfn_loop:task:${TASK_ID}:gate_result" \
|
|
430
|
-
"status" "passed" \
|
|
431
|
-
"confidence" "$AVERAGE_CONFIDENCE" \
|
|
432
|
-
"iteration" "$CURRENT_ITERATION"
|
|
433
401
|
|
|
434
402
|
# Signal Loop 2 agents to start
|
|
435
403
|
redis-cli lpush "swarm:${TASK_ID}:gate-passed" "1"
|
|
@@ -440,10 +408,6 @@ else
|
|
|
440
408
|
echo "❌ Gate FAILED - preparing Loop 3 iteration"
|
|
441
409
|
|
|
442
410
|
# Store gate failure and prepare feedback
|
|
443
|
-
redis-cli HSET "cfn_loop:task:${TASK_ID}:gate_result" \
|
|
444
|
-
"status" "failed" \
|
|
445
|
-
"confidence" "$AVERAGE_CONFIDENCE" \
|
|
446
|
-
"iteration" "$CURRENT_ITERATION"
|
|
447
411
|
|
|
448
412
|
# Prepare iteration feedback
|
|
449
413
|
prepare_loop3_feedback
|
|
@@ -458,11 +422,6 @@ spawn_loop2_validators() {
|
|
|
458
422
|
AGENT_ID="${TASK_ID}-${validator}-$(date +%s)"
|
|
459
423
|
|
|
460
424
|
# Store validator context
|
|
461
|
-
redis-cli HSET "cfn_loop:agent:${AGENT_ID}" \
|
|
462
|
-
"agent_type" "${validator}" \
|
|
463
|
-
"task_id" "${TASK_ID}" \
|
|
464
|
-
"loop_number" "2" \
|
|
465
|
-
"iteration" "$CURRENT_ITERATION"
|
|
466
425
|
|
|
467
426
|
# Inject validation context
|
|
468
427
|
VALIDATION_CONTEXT=$(cat <<EOF
|
|
@@ -547,12 +506,6 @@ if [ -n "$PO_SIGNAL" ]; then
|
|
|
547
506
|
PO_DECISION=$(redis-cli HGET "cfn_loop:task:${TASK_ID}:po_decision")
|
|
548
507
|
|
|
549
508
|
# Store final result
|
|
550
|
-
redis-cli HSET "cfn_loop:task:${TASK_ID}:result" \
|
|
551
|
-
"decision" "$PO_DECISION" \
|
|
552
|
-
"final_confidence" "$AVERAGE_CONFIDENCE" \
|
|
553
|
-
"final_consensus" "$AVERAGE_CONSENSUS" \
|
|
554
|
-
"iterations_completed" "$CURRENT_ITERATION" \
|
|
555
|
-
"completion_time" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
556
509
|
|
|
557
510
|
execute_decision "$PO_DECISION"
|
|
558
511
|
fi
|
|
@@ -597,10 +550,6 @@ Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
|
597
550
|
CURRENT_ITERATION=$((CURRENT_ITERATION + 1))
|
|
598
551
|
|
|
599
552
|
# Store iteration context
|
|
600
|
-
redis-cli HSET "cfn_loop:task:${TASK_ID}:iteration:${CURRENT_ITERATION}" \
|
|
601
|
-
"confidence" "$AVERAGE_CONFIDENCE" \
|
|
602
|
-
"consensus" "$AVERAGE_CONSENSUS" \
|
|
603
|
-
"feedback" "$(prepare_iteration_feedback)"
|
|
604
553
|
|
|
605
554
|
# Restart Loop 3 with fresh agents
|
|
606
555
|
restart_loop3_agents
|
|
@@ -631,10 +580,6 @@ signal_agent_completion() {
|
|
|
631
580
|
redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete"
|
|
632
581
|
|
|
633
582
|
# Report confidence score
|
|
634
|
-
redis-cli HSET "cfn_loop:task:${TASK_ID}:confidence:${AGENT_ID}" \
|
|
635
|
-
"confidence" "$confidence" \
|
|
636
|
-
"iteration" "$iteration" \
|
|
637
|
-
"reported_at" "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
638
583
|
|
|
639
584
|
# Use coordination script for structured reporting
|
|
640
585
|
./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh report \
|
|
@@ -809,16 +754,27 @@ Extract deliverables from task description:
|
|
|
809
754
|
|
|
810
755
|
### Step 1: Task Classification (REQUIRED)
|
|
811
756
|
```bash
|
|
757
|
+
# BUG #23 FIX: Store task classification in Redis to persist across Bash tool calls
|
|
758
|
+
# Each Bash tool call creates a new shell, so environment variables don't persist
|
|
759
|
+
# Redis provides persistence across iterations
|
|
760
|
+
|
|
812
761
|
# Classify task type (use hardcoded defaults if script fails)
|
|
813
762
|
TASK_TYPE="infrastructure" # Default fallback
|
|
814
763
|
if [[ -f ".claude/skills/task-classifier/classify-task.sh" ]]; then
|
|
815
764
|
CLASSIFIED_TYPE=$(bash .claude/skills/task-classifier/classify-task.sh "$TASK_DESCRIPTION" 2>/dev/null || echo "")
|
|
816
765
|
[[ -n "$CLASSIFIED_TYPE" ]] && TASK_TYPE="$CLASSIFIED_TYPE"
|
|
817
766
|
fi
|
|
767
|
+
|
|
768
|
+
# Store task type in Redis for persistence across Bash tool calls
|
|
769
|
+
echo "✅ Task type '$TASK_TYPE' stored in Redis: swarm:${TASK_ID}:config"
|
|
818
770
|
```
|
|
819
771
|
|
|
820
772
|
### Step 2: Agent Selection with Fallback (REQUIRED)
|
|
821
773
|
```bash
|
|
774
|
+
# BUG #23 FIX: Store agent selections in Redis to persist across Bash tool calls
|
|
775
|
+
# Environment variables are lost between Bash tool executions
|
|
776
|
+
# Redis ensures parameters persist through validation and orchestrator invocation
|
|
777
|
+
|
|
822
778
|
# Select agents with hardcoded fallbacks (never fail)
|
|
823
779
|
LOOP3_AGENTS="terraform-engineer,devops-engineer" # Infrastructure default
|
|
824
780
|
LOOP2_AGENTS="security-auditor,compliance-checker,cost-optimizer" # Validation default
|
|
@@ -835,6 +791,120 @@ if [[ -f ".claude/skills/cfn-agent-selector/select-agents.sh" ]]; then
|
|
|
835
791
|
[[ -n "$PARSED_AGENTS" ]] && LOOP2_AGENTS="$PARSED_AGENTS"
|
|
836
792
|
fi
|
|
837
793
|
fi
|
|
794
|
+
|
|
795
|
+
# Store agent selections in Redis for persistence
|
|
796
|
+
|
|
797
|
+
echo "✅ Agent selections stored in Redis:"
|
|
798
|
+
echo " loop3_agents: $LOOP3_AGENTS"
|
|
799
|
+
echo " loop2_agents: $LOOP2_AGENTS"
|
|
800
|
+
echo " product_owner: $PRODUCT_OWNER"
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
### Step 2.5: MANDATORY Parameter Initialization (BUG #22 & BUG #23 FIX)
|
|
804
|
+
|
|
805
|
+
**CRITICAL: Execute this BEFORE orchestrator invocation to prevent empty parameter errors.**
|
|
806
|
+
|
|
807
|
+
This step implements defense-in-depth fixes for both BUG #22 and BUG #23:
|
|
808
|
+
- BUG #22: Empty parameter validation with hardcoded fallbacks
|
|
809
|
+
- BUG #23: Redis-first parameter retrieval to handle Bash tool session loss
|
|
810
|
+
|
|
811
|
+
```bash
|
|
812
|
+
# BUG #23 FIX: Read parameters from Redis with fallbacks
|
|
813
|
+
# Bash tool creates new shell each call, so variables set in Step 2 may be lost
|
|
814
|
+
# Redis provides persistent storage across all Bash tool executions
|
|
815
|
+
LOOP3_AGENTS=$(redis-cli HGET "swarm:${TASK_ID}:config" "loop3_agents" 2>/dev/null || echo "")
|
|
816
|
+
LOOP2_AGENTS=$(redis-cli HGET "swarm:${TASK_ID}:config" "loop2_agents" 2>/dev/null || echo "")
|
|
817
|
+
PRODUCT_OWNER=$(redis-cli HGET "swarm:${TASK_ID}:config" "product_owner" 2>/dev/null || echo "")
|
|
818
|
+
|
|
819
|
+
echo "🔄 Parameters retrieved from Redis (BUG #23 fix)"
|
|
820
|
+
echo " LOOP3_AGENTS='$LOOP3_AGENTS'"
|
|
821
|
+
echo " LOOP2_AGENTS='$LOOP2_AGENTS'"
|
|
822
|
+
echo " PRODUCT_OWNER='$PRODUCT_OWNER'"
|
|
823
|
+
|
|
824
|
+
# BUG #22 FIX: Apply fallbacks if Redis returns empty (defense-in-depth)
|
|
825
|
+
# Even if Redis succeeded, re-validate and apply defaults if empty
|
|
826
|
+
LOOP3_AGENTS="${LOOP3_AGENTS:-backend-developer,frontend-developer}"
|
|
827
|
+
LOOP2_AGENTS="${LOOP2_AGENTS:-code-reviewer,tester,security-specialist}"
|
|
828
|
+
PRODUCT_OWNER="${PRODUCT_OWNER:-product-owner}"
|
|
829
|
+
|
|
830
|
+
echo "🔒 Fallback parameters initialized (BUG #22 prevention)"
|
|
831
|
+
echo " LOOP3_AGENTS='$LOOP3_AGENTS'"
|
|
832
|
+
echo " LOOP2_AGENTS='$LOOP2_AGENTS'"
|
|
833
|
+
echo " PRODUCT_OWNER='$PRODUCT_OWNER'"
|
|
834
|
+
|
|
835
|
+
# MANDATORY: Validate before orchestrator invocation
|
|
836
|
+
if [[ -z "$LOOP3_AGENTS" ]] || [[ -z "$LOOP2_AGENTS" ]] || [[ -z "$PRODUCT_OWNER" ]]; then
|
|
837
|
+
echo "❌ FATAL: Agent parameters cannot be empty after Redis retrieval + fallback initialization" >&2
|
|
838
|
+
echo " This indicates a critical logic error in parameter handling (BUG #22 & #23)" >&2
|
|
839
|
+
echo " LOOP3_AGENTS='$LOOP3_AGENTS'" >&2
|
|
840
|
+
echo " LOOP2_AGENTS='$LOOP2_AGENTS'" >&2
|
|
841
|
+
echo " PRODUCT_OWNER='$PRODUCT_OWNER'" >&2
|
|
842
|
+
exit 1
|
|
843
|
+
fi
|
|
844
|
+
|
|
845
|
+
echo "✅ All parameters validated non-empty before orchestrator invocation (BUG #22 & #23 fixes applied)"
|
|
846
|
+
```
|
|
847
|
+
|
|
848
|
+
**Why This Matters:**
|
|
849
|
+
|
|
850
|
+
1. **BUG #23 Fix - Redis Persistence**: Each Bash tool call creates a new shell
|
|
851
|
+
- Environment variables set in iteration N are lost in iteration N+1
|
|
852
|
+
- Redis provides persistent storage across all Bash tool executions
|
|
853
|
+
- Parameters stored in Step 2 are reliably retrieved in Step 2.5
|
|
854
|
+
- Prevents coordinator from being stuck in validation loop
|
|
855
|
+
|
|
856
|
+
2. **BUG #22 Fix - Defense-in-Depth**: Multiple layers of protection against empty parameters
|
|
857
|
+
- Step 2 provides hardcoded defaults AND stores in Redis
|
|
858
|
+
- Step 2.5 reads from Redis then applies fallbacks if Redis fails
|
|
859
|
+
- Explicit validation catches any logic errors before orchestrator call
|
|
860
|
+
|
|
861
|
+
3. **Clear Error Messages**: If validation fails, provides:
|
|
862
|
+
- Exact parameter values (shows what went wrong)
|
|
863
|
+
- Context about where failure occurred (BUG #22 or BUG #23)
|
|
864
|
+
- Actionable error message (indicates critical logic error)
|
|
865
|
+
|
|
866
|
+
4. **Fail-Fast Principle**: Better to exit early with clear error than pass empty strings to orchestrator
|
|
867
|
+
- Orchestrator would fail with confusing error messages
|
|
868
|
+
- Empty parameters cause cascade failures in agent spawning
|
|
869
|
+
- Early validation prevents wasted iteration time
|
|
870
|
+
|
|
871
|
+
**Testing BUG #22 & BUG #23 Fixes:**
|
|
872
|
+
|
|
873
|
+
```bash
|
|
874
|
+
# Test BUG #23 fix (Redis persistence across Bash tool calls)
|
|
875
|
+
# Simulate multiple Bash tool executions (coordinator iterations)
|
|
876
|
+
npx claude-flow-novice agent-spawn cfn-v3-coordinator \
|
|
877
|
+
--task-id test-bug23 \
|
|
878
|
+
--env TASK_DESCRIPTION="Test Redis parameter persistence"
|
|
879
|
+
|
|
880
|
+
# Expected output in Step 2:
|
|
881
|
+
# ✅ Agent selections stored in Redis:
|
|
882
|
+
# loop3_agents: backend-developer,frontend-developer
|
|
883
|
+
# loop2_agents: code-reviewer,tester,security-specialist
|
|
884
|
+
# product_owner: product-owner
|
|
885
|
+
|
|
886
|
+
# Expected output in Step 2.5 (even in NEW Bash shell):
|
|
887
|
+
# 🔄 Parameters retrieved from Redis (BUG #23 fix)
|
|
888
|
+
# LOOP3_AGENTS='backend-developer,frontend-developer'
|
|
889
|
+
# LOOP2_AGENTS='code-reviewer,tester,security-specialist'
|
|
890
|
+
# PRODUCT_OWNER='product-owner'
|
|
891
|
+
# ✅ All parameters validated non-empty before orchestrator invocation (BUG #22 & #23 fixes applied)
|
|
892
|
+
|
|
893
|
+
# Test BUG #22 fix (fallbacks when Redis fails)
|
|
894
|
+
# Simulate Redis failure
|
|
895
|
+
redis-cli SHUTDOWN NOSAVE
|
|
896
|
+
|
|
897
|
+
# Run coordinator - should fall back to defaults
|
|
898
|
+
npx claude-flow-novice agent-spawn cfn-v3-coordinator \
|
|
899
|
+
--task-id test-bug22 \
|
|
900
|
+
--env TASK_DESCRIPTION="Test fallback parameters"
|
|
901
|
+
|
|
902
|
+
# Expected output:
|
|
903
|
+
# 🔄 Parameters retrieved from Redis (BUG #23 fix)
|
|
904
|
+
# LOOP3_AGENTS='' (Redis down)
|
|
905
|
+
# 🔒 Fallback parameters initialized (BUG #22 prevention)
|
|
906
|
+
# LOOP3_AGENTS='backend-developer,frontend-developer'
|
|
907
|
+
# ✅ All parameters validated non-empty before orchestrator invocation (BUG #22 & #23 fixes applied)
|
|
838
908
|
```
|
|
839
909
|
|
|
840
910
|
### Step 3: INVOKE ORCHESTRATOR (MANDATORY - NOT OPTIONAL)
|
|
@@ -842,15 +912,51 @@ fi
|
|
|
842
912
|
**CRITICAL:** You MUST invoke orchestrator by iteration 3. DO NOT complete tasks directly.
|
|
843
913
|
|
|
844
914
|
```bash
|
|
915
|
+
# BUG #23 FIX: Read parameters from Redis before invoking orchestrator
|
|
916
|
+
# This ensures we use the SAME parameters that were validated in Step 2.5
|
|
917
|
+
# Even if this is executed in a NEW Bash shell (which it likely is)
|
|
918
|
+
LOOP3_AGENTS=$(redis-cli HGET "swarm:${TASK_ID}:config" "loop3_agents" 2>/dev/null || echo "backend-developer,frontend-developer")
|
|
919
|
+
LOOP2_AGENTS=$(redis-cli HGET "swarm:${TASK_ID}:config" "loop2_agents" 2>/dev/null || echo "code-reviewer,tester,security-specialist")
|
|
920
|
+
PRODUCT_OWNER=$(redis-cli HGET "swarm:${TASK_ID}:config" "product_owner" 2>/dev/null || echo "product-owner")
|
|
921
|
+
|
|
922
|
+
# Apply final fallbacks if Redis returns empty (defense-in-depth)
|
|
923
|
+
LOOP3_AGENTS="${LOOP3_AGENTS:-backend-developer,frontend-developer}"
|
|
924
|
+
LOOP2_AGENTS="${LOOP2_AGENTS:-code-reviewer,tester,security-specialist}"
|
|
925
|
+
PRODUCT_OWNER="${PRODUCT_OWNER:-product-owner}"
|
|
926
|
+
|
|
927
|
+
echo "🔄 Orchestrator parameters loaded from Redis (BUG #23 fix):"
|
|
928
|
+
echo " LOOP3_AGENTS='$LOOP3_AGENTS'"
|
|
929
|
+
echo " LOOP2_AGENTS='$LOOP2_AGENTS'"
|
|
930
|
+
echo " PRODUCT_OWNER='$PRODUCT_OWNER'"
|
|
931
|
+
|
|
845
932
|
# ALWAYS invoke orchestrator - this is your ONLY responsibility
|
|
846
|
-
|
|
933
|
+
|
|
934
|
+
# Store success criteria in Redis BEFORE spawning orchestrator
|
|
935
|
+
REDIS_KEY="swarm:${TASK_ID}:context"
|
|
936
|
+
cat <<'CRITERIA_EOF' | redis-cli -h "${REDIS_HOST:-localhost}" -p "${REDIS_PORT:-6379}" -x HSET "$REDIS_KEY" "success-criteria"
|
|
937
|
+
{
|
|
938
|
+
"deliverables": [],
|
|
939
|
+
"acceptanceCriteria": ["Implementation complete"],
|
|
940
|
+
"test_suites": []
|
|
941
|
+
}
|
|
942
|
+
CRITERIA_EOF
|
|
943
|
+
|
|
944
|
+
# Set TTL on context hash (24 hours)
|
|
945
|
+
redis-cli -h "${REDIS_HOST:-localhost}" -p "${REDIS_PORT:-6379}" EXPIRE "$REDIS_KEY" 86400
|
|
946
|
+
|
|
947
|
+
echo "✅ Success criteria stored in Redis: $REDIS_KEY"
|
|
948
|
+
|
|
949
|
+
# BUG #22 & BUG #23 FIX: Use orchestrate-wrapper.sh with Redis-backed parameters
|
|
950
|
+
# BUG #22: Wrapper provides additional validation and error handling
|
|
951
|
+
# BUG #23: Parameters are read from Redis to survive Bash tool session boundaries
|
|
952
|
+
./.claude/skills/cfn-loop-orchestration/orchestrate-wrapper.sh \
|
|
847
953
|
--task-id "$TASK_ID" \
|
|
848
954
|
--mode "standard" \
|
|
849
955
|
--loop3-agents "$LOOP3_AGENTS" \
|
|
850
956
|
--loop2-agents "$LOOP2_AGENTS" \
|
|
851
957
|
--product-owner "$PRODUCT_OWNER" \
|
|
852
958
|
--max-iterations 10 \
|
|
853
|
-
--success-criteria
|
|
959
|
+
--success-criteria "enabled"
|
|
854
960
|
|
|
855
961
|
# The orchestrator handles ALL CFN Loop execution including:
|
|
856
962
|
# - Loop 3 agent spawning and iteration
|
|
@@ -864,10 +970,14 @@ fi
|
|
|
864
970
|
|
|
865
971
|
**EXECUTION GUARANTEE:**
|
|
866
972
|
- If steps 1-2 fail, use hardcoded defaults and proceed to step 3
|
|
973
|
+
- **Step 2 stores parameters in Redis** (BUG #23 fix - persistence)
|
|
974
|
+
- **Step 2.5 validates parameters from Redis** (BUG #22 + BUG #23 fix - retrieval + fallbacks)
|
|
975
|
+
- **Step 3 reads parameters from Redis** (BUG #23 fix - fresh shell reads from persistent storage)
|
|
867
976
|
- **Never exit without invoking orchestrator**
|
|
868
977
|
- **Orchestrator invocation MUST happen by iteration 3**
|
|
869
978
|
- This coordinator's ONLY job is to configure and invoke the orchestrator
|
|
870
979
|
|
|
980
|
+
|
|
871
981
|
## Multi-Worktree Coordination
|
|
872
982
|
|
|
873
983
|
When spawning agents in multi-worktree environments (teams using git worktrees), inject environment variables for proper Docker isolation:
|