claude-flow-novice 2.6.0 → 2.8.1
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/adaptive-context/cfn-v3-reflection.json +21 -0
- package/.claude/agents/AGENT_LIFECYCLE.md +495 -0
- package/.claude/agents/CLAUDE.md +1002 -995
- package/.claude/agents/accessibility-advocate.md +457 -0
- package/.claude/agents/agent-principles/README.md +226 -226
- package/.claude/agents/agent-principles/agent-type-guidelines.md +10 -0
- package/.claude/agents/agent-principles/format-selection.md +10 -0
- package/.claude/agents/agent-principles/phase4-template-optimization.md +502 -494
- package/.claude/agents/agent-principles/prompt-engineering.md +8 -0
- package/.claude/agents/agent-principles/quality-metrics.md +8 -0
- package/.claude/agents/analysis/code-analyzer.md +7 -17
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +2 -104
- package/.claude/agents/analysis/perf-analyzer.md +2 -196
- package/.claude/agents/context/context-curator.md +78 -84
- package/.claude/agents/context/context-reflector.md +27 -81
- package/.claude/agents/coordinators/README.md +42 -0
- package/.claude/agents/coordinators/cfn-v3-coordinator.md +440 -0
- package/.claude/agents/{product-owner-team → coordinators}/cto-agent.md +154 -187
- package/.claude/agents/coordinators/multi-sprint-coordinator.md +50 -0
- package/.claude/agents/{product-owner-team → coordinators}/product-owner-agent.md +6 -39
- package/.claude/agents/{cfn-loop → coordinators}/product-owner.md +72 -17
- package/.claude/agents/core-agents/reviewer.md +114 -135
- package/.claude/agents/custom/agent-builder.md +637 -637
- package/.claude/agents/developers/README.md +69 -0
- package/.claude/agents/developers/backend-dev.md +77 -0
- package/.claude/agents/{core-agents → developers}/coder.md +131 -26
- package/.claude/agents/developers/react-frontend-engineer.md +121 -0
- package/.claude/agents/{frontend → developers}/state-architect.md +1 -0
- package/.claude/agents/{frontend → developers}/ui-designer.md +1 -0
- package/.claude/agents/development/backend/dev-backend-api.md +0 -29
- package/.claude/agents/development/npm-package-specialist.md +355 -347
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +8 -0
- package/.claude/agents/documentation/api-docs.md +8 -0
- package/.claude/agents/github/github-commit-agent.md +125 -117
- package/.claude/agents/goal/goal-planner.md +8 -0
- package/.claude/agents/infrastructure/README.md +100 -0
- package/.claude/agents/{specialized → infrastructure}/devops-engineer.md +131 -150
- package/.claude/agents/planners/README.md +94 -0
- package/.claude/agents/{core-agents → planners}/analyst.md +1 -22
- package/.claude/agents/{planning-team → planners}/api-designer-persona.md +8 -0
- package/.claude/agents/{core-agents → planners}/architect.md +7 -20
- package/.claude/agents/{core-agents → planners}/planner.md +0 -21
- package/.claude/agents/{planning-team → planners}/security-architect-persona.md +8 -28
- package/.claude/agents/{planning-team → planners}/system-architect-persona.md +6 -38
- package/.claude/agents/{architecture → planners}/system-architect.md +12 -17
- package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +132 -161
- package/.claude/agents/product-owner-team/power-user-persona.md +149 -182
- package/.claude/agents/retrospective-analyst.md +84 -0
- package/.claude/agents/reviewers/README.md +58 -0
- package/.claude/agents/{analysis → reviewers}/code-quality-validator.md +8 -17
- package/.claude/agents/reviewers/reviewer.md +181 -0
- package/.claude/agents/sparc/architecture.md +6 -25
- package/.claude/agents/sparc/pseudocode.md +6 -0
- package/.claude/agents/sparc/refinement.md +6 -0
- package/.claude/agents/sparc/specification.md +1 -0
- package/.claude/agents/specialists/README.md +60 -0
- package/.claude/agents/{core-agents → specialists}/base-template-generator.md +8 -21
- package/.claude/agents/{specialized → specialists}/cli-agent-optimizer.md +1 -1
- package/.claude/agents/{specialized → specialists}/code-booster.md +1 -0
- package/.claude/agents/{consensus → specialists}/consensus-builder.md +1 -17
- package/.claude/agents/{specialized/mobile → specialists}/mobile-dev.md +0 -20
- package/.claude/agents/{core-agents → specialists}/performance-benchmarker.md +134 -148
- package/.claude/agents/{specialized → specialists}/rust-developer.md +1 -20
- package/.claude/agents/{specialized → specialists}/rust-enterprise-developer.md +1 -20
- package/.claude/agents/{specialized → specialists}/rust-mvp-developer.md +1 -20
- package/.claude/agents/{core-agents → specialists}/security-manager.md +68 -88
- package/.claude/agents/{security → specialists}/security-specialist-existing.md +6 -57
- package/.claude/agents/{security → specialists}/security-specialist.md +6 -30
- package/.claude/agents/{specialized/mobile → specialists}/spec-mobile-react-native.md +2 -21
- package/.claude/agents/testers/README.md +94 -0
- package/.claude/agents/{testing → testers}/e2e/playwright-agent.md +1 -20
- package/.claude/agents/{testing → testers}/interaction-tester.md +1 -20
- package/.claude/agents/{testing → testers}/playwright-tester.md +1 -1
- package/.claude/agents/testers/tester.md +139 -0
- package/.claude/agents/testers/unit/tdd-london-swarm.md +49 -0
- package/.claude/agents/testers/validation/production-validator.md +33 -0
- package/.claude/agents-ignore/cfn-loop-coordinator.md +157 -0
- package/.claude/agents-ignore/cfn-loop-coordinator.md.backup +156 -0
- package/.claude/agents-ignore/coordinator.md.backup +182 -0
- package/.claude/agents-ignore/cost-savings-cfn-loop-coordinator.md +760 -0
- package/.claude/agents-ignore/cost-savings-coordinator.md +173 -0
- package/.claude/artifacts/ace-reflections/REFLECT-001-summary.json +39 -0
- package/.claude/artifacts/ace-reflections/sprint-7_$(date -u +/"%Y%m%d_%H%M%S/").json" +47 -0
- package/.claude/commands/CFN_COORDINATOR_PARAMETERS.md +10 -10
- package/.claude/commands/cfn-loop-epic.md +3 -3
- package/.claude/commands/cfn-loop-single.md +3 -3
- package/.claude/commands/cfn-loop-sprints.md +1 -1
- package/.claude/commands/cfn-loop.md +3 -3
- package/.claude/commands/cfn-mode.md +20 -0
- package/.claude/commands/write-plan.md +104 -0
- package/.claude/data/cfn-loop.db +0 -0
- package/.claude/data/cfn_loop_logs.db +0 -0
- package/.claude/hooks/BACKUP_USAGE.md +243 -0
- package/.claude/hooks/post-edit-cfn-retrospective.sh +79 -0
- package/.claude/hooks/post-edit.sh +21 -0
- package/.claude/hooks/pre-edit-backup.sh +71 -0
- package/.claude/hooks/restore-from-backup.sh +37 -0
- package/.claude/prompts/cfn-loop-context.md +115 -0
- package/.claude/prompts/loop-specific/loop2.md +50 -0
- package/.claude/prompts/loop-specific/loop3.md +43 -0
- package/.claude/prompts/loop-specific/loop4.md +54 -0
- package/.claude/root-claude-distribute/CLAUDE.md +76 -2
- package/.claude/skills/ace-system/sprint-7-lessons.json +46 -0
- package/.claude/skills/ace-system/store-reflection.sh +33 -136
- package/.claude/skills/agent-discovery/SKILL.md +40 -0
- package/.claude/skills/agent-discovery/agents-registry-clean.json +0 -0
- package/.claude/skills/agent-discovery/agents-registry-fixed.json +19 -0
- package/.claude/skills/agent-discovery/agents-registry.json +718 -0
- package/.claude/skills/agent-discovery/discover-agents.py +175 -0
- package/.claude/skills/agent-discovery/discover-agents.sh +87 -0
- package/.claude/skills/agent-discovery/invoke-registry.sh +11 -0
- package/.claude/skills/agent-discovery/temp_script.py +0 -0
- package/.claude/skills/agent-output-processing/SKILL.md +359 -0
- package/.claude/skills/agent-selector/SKILL.md +90 -0
- package/.claude/skills/agent-selector/select-agents.sh +96 -0
- package/.claude/skills/agent-spawning/agent-selection-guide.md +1 -1
- package/.claude/skills/agent-swap/SKILL.md +36 -0
- package/.claude/skills/agent-swap/recommend-swap.sh +60 -0
- package/.claude/skills/api-validation/test-endpoints.sh +54 -0
- package/.claude/skills/automatic-memory-persistence/SKILL.md +73 -0
- package/.claude/skills/automatic-memory-persistence/persist-agent-output.sh +49 -0
- package/.claude/skills/automatic-memory-persistence/query-agent-history.sh +35 -0
- package/.claude/skills/automatic-memory-persistence/test-memory-persistence.sh +235 -0
- package/.claude/skills/cfn-loop-orchestration/README.md +41 -0
- package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
- package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
- package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +840 -0
- package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
- package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
- package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
- package/.claude/skills/cfn-loop-validation/SKILL.md +307 -217
- package/.claude/skills/complexity-estimator/SKILL.md +96 -0
- package/.claude/skills/complexity-estimator/estimate-complexity.sh +144 -0
- package/.claude/skills/context-pruner/SKILL.md +75 -0
- package/.claude/skills/context-pruner/prune-context.sh +73 -0
- package/.claude/skills/defense-in-depth/SKILL.md +133 -0
- package/.claude/skills/dependency-extractor/SKILL.md +35 -0
- package/.claude/skills/dependency-extractor/extract-dependencies.sh +66 -0
- package/.claude/skills/epic-decomposer/SKILL.md +44 -0
- package/.claude/skills/epic-decomposer/decompose-epic.sh +104 -0
- package/.claude/skills/improvement-recommender/SKILL.md +33 -0
- package/.claude/skills/improvement-recommender/recommend-improvements.sh +92 -0
- package/.claude/skills/intervention-detector/SKILL.md +39 -0
- package/.claude/skills/intervention-detector/detect-intervention.sh +111 -0
- package/.claude/skills/intervention-orchestrator/SKILL.md +43 -0
- package/.claude/skills/intervention-orchestrator/execute-intervention.sh +59 -0
- package/.claude/skills/loop2-output-processing/SKILL.md +163 -0
- package/.claude/skills/loop2-output-processing/execute-and-extract.sh +77 -0
- package/.claude/skills/loop2-output-processing/execute-and-extract.sh.backup +36 -0
- package/.claude/skills/loop2-output-processing/parse-feedback.sh +147 -0
- package/.claude/skills/loop2-output-processing/process-validator-output.sh +275 -0
- package/.claude/skills/loop2-output-processing/test-bug27-fix.sh +200 -0
- package/.claude/skills/loop2-output-processing/test-loop2-processing.sh +113 -0
- package/.claude/skills/loop3-output-processing/AGENT_COMPLETION_PROTOCOL.md +206 -0
- package/.claude/skills/loop3-output-processing/SKILL.md +421 -0
- package/.claude/skills/loop3-output-processing/calculate-confidence.sh +28 -0
- package/.claude/skills/loop3-output-processing/execute-and-extract.sh +85 -0
- package/.claude/skills/loop3-output-processing/parse-confidence.sh +31 -0
- package/.claude/skills/loop3-output-processing/test-agent-timeout.sh +327 -0
- package/.claude/skills/loop3-output-processing/test-loop3-processing.sh +155 -0
- package/.claude/skills/loop3-output-processing/verify-deliverables.sh +42 -0
- package/.claude/skills/pattern-extraction/SKILL.md +30 -0
- package/.claude/skills/pattern-extraction/extract-patterns.sh +80 -0
- package/.claude/skills/playbook/SKILL.md +113 -0
- package/.claude/skills/playbook/init-playbook.sh +54 -0
- package/.claude/skills/playbook/playbook.db +0 -0
- package/.claude/skills/playbook/query-playbook.sh +79 -0
- package/.claude/skills/playbook/update-playbook.sh +69 -0
- package/.claude/skills/playbook-auto-update/SKILL.md +29 -0
- package/.claude/skills/playbook-auto-update/auto-update-playbook.sh +86 -0
- package/.claude/skills/product-owner-decision/SKILL.md +332 -0
- package/.claude/skills/product-owner-decision/execute-decision.sh +176 -0
- package/.claude/skills/product-owner-decision/parse-decision.sh +66 -0
- package/.claude/skills/product-owner-decision/validate-deliverables.sh +82 -0
- package/.claude/skills/redis-coordination/LOGGING.md +260 -0
- package/.claude/skills/redis-coordination/README.md +30 -29
- package/.claude/skills/redis-coordination/SKILL.md +685 -83
- package/.claude/skills/redis-coordination/analyze-task-complexity.sh +277 -0
- package/.claude/skills/redis-coordination/cfn-loop-exec.sh +468 -0
- package/.claude/skills/redis-coordination/collect-confidence-scores.sh +179 -0
- package/.claude/skills/redis-coordination/collect-results.sh +75 -0
- package/.claude/skills/redis-coordination/data/cfn-loop.db +0 -0
- package/.claude/skills/redis-coordination/{test-orchestrator.sh → demos/test-orchestrator.sh} +25 -0
- package/.claude/skills/redis-coordination/execute-product-owner-decision.sh +258 -0
- package/.claude/skills/redis-coordination/get-agent-timeout.sh +176 -176
- package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +93 -227
- package/.claude/skills/redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
- package/.claude/skills/redis-coordination/log-event.sh +109 -0
- package/.claude/skills/redis-coordination/monitor-cfn-violations.sh +391 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +31 -993
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
- package/.claude/skills/redis-coordination/query-logs.sh +103 -0
- package/.claude/skills/redis-coordination/retrieve-context.sh +58 -0
- package/.claude/skills/redis-coordination/select-specialist-agent.sh +371 -0
- package/.claude/skills/redis-coordination/semantic-match-tfidf.py +252 -0
- package/.claude/skills/redis-coordination/send-heartbeat.sh +164 -72
- package/.claude/skills/redis-coordination/signal.sh +38 -0
- package/.claude/skills/redis-coordination/store-context.sh +86 -0
- package/.claude/skills/redis-coordination/test-context-injection.sh +354 -0
- package/.claude/skills/redis-coordination/test-timeout-enforcement.sh +513 -0
- package/.claude/skills/redis-coordination/tests/convert-line-endings.sh +15 -0
- package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +101 -101
- package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +98 -98
- package/.claude/skills/redis-coordination/tests/integration-test.sh +169 -169
- package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +81 -81
- package/.claude/skills/redis-coordination/tests/run-test-suite.sh +91 -91
- package/.claude/skills/redis-coordination/tests/run-tests.sh +4 -0
- package/.claude/skills/redis-coordination/tests/test-primitives.sh +166 -0
- package/.claude/skills/redis-coordination/tests/test-utils.sh +53 -121
- package/.claude/skills/redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
- package/.claude/skills/redis-coordination/tests/test_utils.sh +49 -0
- package/.claude/skills/redis-coordination/v2_modularization/core_orchestration.sh +76 -0
- package/.claude/skills/redis-coordination/validate-parameters.sh +492 -0
- package/.claude/skills/retrospective-report/SKILL.md +31 -0
- package/.claude/skills/retrospective-report/generate-report.sh +101 -0
- package/.claude/skills/run-all-skill-tests.sh +124 -0
- package/.claude/skills/scope-simplifier/SKILL.md +37 -0
- package/.claude/skills/scope-simplifier/simplify-scope.sh +68 -0
- package/.claude/skills/simplified-agent-lifecycle/COST_ANALYSIS.md +49 -0
- package/.claude/skills/simplified-agent-lifecycle/DESIGN.md +98 -0
- package/.claude/skills/simplified-agent-lifecycle/MIGRATION_PLAN.md +74 -0
- package/.claude/skills/specialist-injection/SKILL.md +41 -0
- package/.claude/skills/specialist-injection/recommend-specialist.sh +57 -0
- package/.claude/skills/sprint-execution/SKILL.md +27 -0
- package/.claude/skills/sprint-execution/execute-sprint-task.sh +59 -0
- package/.claude/skills/sprint-execution/execute-sprint.sh +65 -0
- package/.claude/skills/sprint-planner/SKILL.md +37 -0
- package/.claude/skills/sprint-planner/plan-sprint.sh +85 -0
- package/.claude/skills/standardized-error-handling/SKILL.md +56 -0
- package/.claude/skills/standardized-error-handling/capture-agent-error.sh +87 -0
- package/.claude/skills/standardized-error-handling/test-error-handling.sh +166 -0
- package/.claude/skills/task-classifier/SKILL.md +94 -0
- package/.claude/skills/task-classifier/classify-task.sh +115 -0
- package/.claude/skills/validation-templates/SKILL.md +47 -0
- package/.claude/skills/validation-templates/content.json +38 -0
- package/.claude/skills/validation-templates/data.json +38 -0
- package/.claude/skills/validation-templates/design.json +38 -0
- package/.claude/skills/validation-templates/infrastructure.json +38 -0
- package/.claude/skills/validation-templates/research.json +38 -0
- package/.claude/skills/validation-templates/software.json +38 -0
- package/.claude/skills/webapp-testing/README.md +142 -0
- package/.claude/skills/webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
- package/.claude/skills/webapp-testing/SKILL.md +877 -0
- package/.claude/skills/webapp-testing/capture-screenshot.sh +238 -0
- package/.claude/skills/webapp-testing/cfn-loop-integration.sh +265 -0
- package/.claude/skills/webapp-testing/compare-screenshots.sh +199 -0
- package/.claude/skills/webapp-testing/init-storage.sh +150 -0
- package/.claude/skills/webapp-testing/set-baseline.sh +196 -0
- package/.claude/skills/webapp-testing/test-webapp-testing.sh +233 -0
- package/.claude/spawn-pattern-examples.md +3 -3
- package/CLAUDE.md +319 -45
- package/README.md +598 -251
- package/dist/agents/agent-loader.js +146 -165
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/cli/agent-command.js +2 -0
- package/dist/cli/agent-command.js.map +1 -1
- package/dist/cli/agent-definition-parser.js +7 -0
- package/dist/cli/agent-definition-parser.js.map +1 -1
- package/dist/cli/agent-executor.js +145 -11
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/agent-prompt-builder.js +81 -1
- package/dist/cli/agent-prompt-builder.js.map +1 -1
- package/dist/cli/agent-spawn.js +10 -1
- package/dist/cli/agent-spawn.js.map +1 -1
- package/dist/cli/anthropic-client.js +192 -13
- package/dist/cli/anthropic-client.js.map +1 -1
- package/dist/cli/cfn-context.js +150 -0
- package/dist/cli/cfn-context.js.map +1 -1
- package/dist/cli/cfn-fork.js +159 -0
- package/dist/cli/cfn-fork.js.map +1 -0
- package/dist/cli/cli-agent-context.js +8 -3
- package/dist/cli/cli-agent-context.js.map +1 -1
- package/dist/cli/config-manager.js +109 -91
- package/dist/cli/config-manager.js.map +1 -1
- package/dist/cli/conversation-fork.js +201 -0
- package/dist/cli/conversation-fork.js.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/tool-definitions.js +263 -0
- package/dist/cli/tool-definitions.js.map +1 -0
- package/dist/cli/tool-executor.js +247 -0
- package/dist/cli/tool-executor.js.map +1 -0
- package/dist/hello.js +8 -0
- package/dist/hello.js.map +1 -0
- package/package.json +14 -6
- package/scripts/README.md +68 -0
- package/scripts/cfn-intervention-example.sh +21 -0
- package/scripts/migrate-test-infrastructure.sh +40 -0
- package/scripts/validate-test-migration.sh +49 -0
- package/scripts/verify-no-secrets.sh +55 -0
- package/.claude/agents/architecture/system-architect.md.backup +0 -603
- package/.claude/agents/code-booster.md +0 -131
- package/.claude/agents/consensus/performance-benchmarker.md +0 -101
- package/.claude/agents/consensus/security-manager.md +0 -107
- package/.claude/agents/context-curator.md +0 -167
- package/.claude/agents/context-reflector.md +0 -65
- package/.claude/agents/core-agents/cfn-loop-coordinator.md +0 -134
- package/.claude/agents/core-agents/code-quality-validator.md +0 -149
- package/.claude/agents/core-agents/context-curator.md +0 -452
- package/.claude/agents/core-agents/context-reflector.md +0 -273
- package/.claude/agents/core-agents/cost-savings-cfn-loop-coordinator.md +0 -235
- package/.claude/agents/core-agents/tester.md +0 -170
- package/.claude/agents/development/backend-dev.md +0 -165
- package/.claude/agents/devops/devops-engineer.md +0 -148
- package/.claude/agents/frontend/interaction-tester.md +0 -139
- package/.claude/agents/frontend/react-frontend-engineer.md +0 -9
- package/.claude/agents/personas/accessibility-advocate-persona.md +0 -107
- package/.claude/agents/testing/production-validator.md +0 -179
- package/.claude/agents/testing/tdd-london-swarm.md +0 -209
- package/.claude/agents/testing/unit/tdd-london-swarm.md +0 -43
- package/.claude/agents/testing/validation/production-validator.md +0 -43
- package/.claude/api-configs/config-current-zai-config.env +0 -62
- package/.claude/api-configs/config-test-zai-config.env +0 -62
- package/.claude/api-configs/env-backups/before-anthropic-20251020-025404.env +0 -62
- package/.claude/api-configs/env-backups/before-restore-20251020-025431.env +0 -62
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1760949407 +0 -933
- package/dist/cli/cli-agent-context.test.js +0 -451
- package/dist/cli/cli-agent-context.test.js.map +0 -1
- package/dist/coordination/fleet-manager.test.js +0 -141
- package/dist/coordination/fleet-manager.test.js.map +0 -1
- package/dist/middleware/transparency-middleware.test.js +0 -184
- package/dist/middleware/transparency-middleware.test.js.map +0 -1
- /package/.claude/agents/{core-agents → developers}/researcher.md +0 -0
- /package/.claude/agents/{consensus → specialists}/crdt-synchronizer.md +0 -0
- /package/.claude/agents/{consensus → specialists}/quorum-manager.md +0 -0
- /package/.claude/agents/{consensus → specialists}/raft-manager.md +0 -0
- /package/.claude/{agents/core-agents → agents-ignore}/coordinator.md +0 -0
- /package/.claude/{agents/core-agents/cost-savings-coordinator.md → agents-ignore/cost-savings-coordinator.md.backup} +0 -0
- /package/.claude/skills/redis-coordination/{phase4-wake-queue-test-report.md → demos/phase4-wake-queue-test-report.md} +0 -0
- /package/.claude/skills/redis-coordination/{test-bzpopmin-fix.sh → demos/test-bzpopmin-fix.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-cancel-swarm.sh → demos/test-cancel-swarm.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-dlq.sh → demos/test-dlq.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-iteration-feedback.sh → demos/test-iteration-feedback.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-priority-wake-phase4-unix.sh → demos/test-priority-wake-phase4-unix.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-priority-wake-phase4.sh → demos/test-priority-wake-phase4.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-priority-wake.sh → demos/test-priority-wake.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-quick-fix.sh → demos/test-quick-fix.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-quorum-absolute.sh → demos/test-quorum-absolute.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-quorum-fallback.sh → demos/test-quorum-fallback.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-quorum-percentage.sh → demos/test-quorum-percentage.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-quorum-with-retry.sh → demos/test-quorum-with-retry.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-quorum.sh → demos/test-quorum.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-shutdown-handling.sh → demos/test-shutdown-handling.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-shutdown.sh → demos/test-shutdown.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-utils-unix.sh → demos/test-utils-unix.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-utils.sh → demos/test-utils.sh} +0 -0
- /package/.claude/skills/redis-coordination/{test-waiting-mode.sh → demos/test-waiting-mode.sh} +0 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Auto-Tune Timeouts Helper
|
|
4
|
+
#
|
|
5
|
+
# Dynamically calculates optimal timeouts for CFN Loop agents based on:
|
|
6
|
+
# - Historical performance data
|
|
7
|
+
# - Agent type (implementer vs validator)
|
|
8
|
+
# - Task complexity
|
|
9
|
+
# - Current system load
|
|
10
|
+
#
|
|
11
|
+
# Usage:
|
|
12
|
+
# auto-tune-timeouts.sh --agent-type <type> --task-complexity <low|medium|high> [--history-file <file>]
|
|
13
|
+
#
|
|
14
|
+
# Returns: Recommended timeout in seconds
|
|
15
|
+
|
|
16
|
+
set -euo pipefail
|
|
17
|
+
|
|
18
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
19
|
+
|
|
20
|
+
# Default configuration
|
|
21
|
+
DEFAULT_TIMEOUT=300
|
|
22
|
+
MIN_TIMEOUT=60
|
|
23
|
+
MAX_TIMEOUT=1800
|
|
24
|
+
HISTORY_FILE="/tmp/cfn-agent-performance-history.json"
|
|
25
|
+
|
|
26
|
+
# Baseline timeouts by agent type (seconds)
|
|
27
|
+
declare -A BASELINE_TIMEOUTS=(
|
|
28
|
+
["implementer"]=300
|
|
29
|
+
["validator"]=180
|
|
30
|
+
["coordinator"]=600
|
|
31
|
+
["product-owner"]=120
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# Complexity multipliers
|
|
35
|
+
declare -A COMPLEXITY_MULTIPLIERS=(
|
|
36
|
+
["low"]=0.7
|
|
37
|
+
["medium"]=1.0
|
|
38
|
+
["high"]=1.5
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# Parse arguments
|
|
42
|
+
AGENT_TYPE=""
|
|
43
|
+
TASK_COMPLEXITY="medium"
|
|
44
|
+
CUSTOM_HISTORY_FILE=""
|
|
45
|
+
|
|
46
|
+
while [[ $# -gt 0 ]]; do
|
|
47
|
+
case $1 in
|
|
48
|
+
--agent-type)
|
|
49
|
+
AGENT_TYPE="$2"
|
|
50
|
+
shift 2
|
|
51
|
+
;;
|
|
52
|
+
--task-complexity)
|
|
53
|
+
TASK_COMPLEXITY="$2"
|
|
54
|
+
shift 2
|
|
55
|
+
;;
|
|
56
|
+
--history-file)
|
|
57
|
+
CUSTOM_HISTORY_FILE="$2"
|
|
58
|
+
shift 2
|
|
59
|
+
;;
|
|
60
|
+
--help)
|
|
61
|
+
echo "Usage: auto-tune-timeouts.sh --agent-type <type> --task-complexity <low|medium|high> [--history-file <file>]"
|
|
62
|
+
echo ""
|
|
63
|
+
echo "Agent Types: implementer, validator, coordinator, product-owner"
|
|
64
|
+
echo "Task Complexity: low, medium, high"
|
|
65
|
+
echo ""
|
|
66
|
+
echo "Returns: Recommended timeout in seconds"
|
|
67
|
+
exit 0
|
|
68
|
+
;;
|
|
69
|
+
*)
|
|
70
|
+
echo "Unknown argument: $1"
|
|
71
|
+
exit 1
|
|
72
|
+
;;
|
|
73
|
+
esac
|
|
74
|
+
done
|
|
75
|
+
|
|
76
|
+
# Validation
|
|
77
|
+
if [ -z "$AGENT_TYPE" ]; then
|
|
78
|
+
echo "Error: --agent-type is required"
|
|
79
|
+
exit 1
|
|
80
|
+
fi
|
|
81
|
+
|
|
82
|
+
if [[ ! "${BASELINE_TIMEOUTS[$AGENT_TYPE]+isset}" ]]; then
|
|
83
|
+
echo "Error: Unknown agent type '$AGENT_TYPE'"
|
|
84
|
+
echo "Valid types: ${!BASELINE_TIMEOUTS[@]}"
|
|
85
|
+
exit 1
|
|
86
|
+
fi
|
|
87
|
+
|
|
88
|
+
if [[ ! "${COMPLEXITY_MULTIPLIERS[$TASK_COMPLEXITY]+isset}" ]]; then
|
|
89
|
+
echo "Error: Unknown task complexity '$TASK_COMPLEXITY'"
|
|
90
|
+
echo "Valid complexities: ${!COMPLEXITY_MULTIPLIERS[@]}"
|
|
91
|
+
exit 1
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
# Use custom history file if provided
|
|
95
|
+
if [ -n "$CUSTOM_HISTORY_FILE" ]; then
|
|
96
|
+
HISTORY_FILE="$CUSTOM_HISTORY_FILE"
|
|
97
|
+
fi
|
|
98
|
+
|
|
99
|
+
# Function to get historical average execution time
|
|
100
|
+
get_historical_avg() {
|
|
101
|
+
local agent_type=$1
|
|
102
|
+
|
|
103
|
+
if [ ! -f "$HISTORY_FILE" ]; then
|
|
104
|
+
echo "$DEFAULT_TIMEOUT"
|
|
105
|
+
return
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
# Extract average execution time for this agent type
|
|
109
|
+
local avg_time=$(jq -r --arg type "$agent_type" \
|
|
110
|
+
'.history[]
|
|
111
|
+
| select(.agentType == $type)
|
|
112
|
+
| .executionTime
|
|
113
|
+
| select(. != null)' "$HISTORY_FILE" 2>/dev/null | \
|
|
114
|
+
awk '{ sum += $1; count++ } END { if (count > 0) print sum/count; else print 0 }')
|
|
115
|
+
|
|
116
|
+
if [ -z "$avg_time" ] || [ "$avg_time" = "0" ]; then
|
|
117
|
+
echo "$DEFAULT_TIMEOUT"
|
|
118
|
+
else
|
|
119
|
+
echo "$avg_time"
|
|
120
|
+
fi
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
# Function to get system load factor
|
|
124
|
+
get_load_factor() {
|
|
125
|
+
# Check if on Linux
|
|
126
|
+
if [ -f /proc/loadavg ]; then
|
|
127
|
+
local load_1min=$(cat /proc/loadavg | awk '{print $1}')
|
|
128
|
+
local cpu_count=$(nproc 2>/dev/null || echo 1)
|
|
129
|
+
|
|
130
|
+
# Calculate load factor (load per CPU)
|
|
131
|
+
local load_factor=$(echo "scale=2; $load_1min / $cpu_count" | bc)
|
|
132
|
+
|
|
133
|
+
# Return multiplier (1.0 baseline, increase if high load)
|
|
134
|
+
if (( $(echo "$load_factor > 2.0" | bc -l) )); then
|
|
135
|
+
echo "1.5" # High load, increase timeout by 50%
|
|
136
|
+
elif (( $(echo "$load_factor > 1.0" | bc -l) )); then
|
|
137
|
+
echo "1.2" # Moderate load, increase timeout by 20%
|
|
138
|
+
else
|
|
139
|
+
echo "1.0" # Normal load
|
|
140
|
+
fi
|
|
141
|
+
else
|
|
142
|
+
# Non-Linux or can't determine load
|
|
143
|
+
echo "1.0"
|
|
144
|
+
fi
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
# Function to get Redis latency factor
|
|
148
|
+
get_redis_latency_factor() {
|
|
149
|
+
# Measure Redis ping latency
|
|
150
|
+
local start_ns=$(date +%s%N)
|
|
151
|
+
redis-cli PING >/dev/null 2>&1 || return
|
|
152
|
+
local end_ns=$(date +%s%N)
|
|
153
|
+
|
|
154
|
+
local latency_ns=$((end_ns - start_ns))
|
|
155
|
+
local latency_ms=$(echo "scale=2; $latency_ns / 1000000" | bc)
|
|
156
|
+
|
|
157
|
+
# If Redis is slow, increase timeout
|
|
158
|
+
if (( $(echo "$latency_ms > 100" | bc -l) )); then
|
|
159
|
+
echo "1.3" # Very slow Redis, increase timeout by 30%
|
|
160
|
+
elif (( $(echo "$latency_ms > 50" | bc -l) )); then
|
|
161
|
+
echo "1.1" # Slow Redis, increase timeout by 10%
|
|
162
|
+
else
|
|
163
|
+
echo "1.0" # Normal Redis performance
|
|
164
|
+
fi
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
# Calculate base timeout
|
|
168
|
+
baseline_timeout=${BASELINE_TIMEOUTS[$AGENT_TYPE]}
|
|
169
|
+
|
|
170
|
+
# Get historical average
|
|
171
|
+
historical_avg=$(get_historical_avg "$AGENT_TYPE")
|
|
172
|
+
|
|
173
|
+
# If we have historical data, use weighted average
|
|
174
|
+
if [ "$historical_avg" != "$DEFAULT_TIMEOUT" ]; then
|
|
175
|
+
# 70% historical, 30% baseline
|
|
176
|
+
base_timeout=$(echo "scale=0; ($historical_avg * 0.7) + ($baseline_timeout * 0.3)" | bc)
|
|
177
|
+
else
|
|
178
|
+
base_timeout=$baseline_timeout
|
|
179
|
+
fi
|
|
180
|
+
|
|
181
|
+
# Apply complexity multiplier
|
|
182
|
+
complexity_multiplier=${COMPLEXITY_MULTIPLIERS[$TASK_COMPLEXITY]}
|
|
183
|
+
timeout_after_complexity=$(echo "scale=0; $base_timeout * $complexity_multiplier" | bc)
|
|
184
|
+
|
|
185
|
+
# Apply system load factor
|
|
186
|
+
load_factor=$(get_load_factor)
|
|
187
|
+
timeout_after_load=$(echo "scale=0; $timeout_after_complexity * $load_factor" | bc)
|
|
188
|
+
|
|
189
|
+
# Apply Redis latency factor
|
|
190
|
+
redis_factor=$(get_redis_latency_factor)
|
|
191
|
+
final_timeout=$(echo "scale=0; $timeout_after_load * $redis_factor" | bc)
|
|
192
|
+
|
|
193
|
+
# Ensure timeout is within bounds
|
|
194
|
+
if (( $(echo "$final_timeout < $MIN_TIMEOUT" | bc -l) )); then
|
|
195
|
+
final_timeout=$MIN_TIMEOUT
|
|
196
|
+
fi
|
|
197
|
+
|
|
198
|
+
if (( $(echo "$final_timeout > $MAX_TIMEOUT" | bc -l) )); then
|
|
199
|
+
final_timeout=$MAX_TIMEOUT
|
|
200
|
+
fi
|
|
201
|
+
|
|
202
|
+
# Round to integer
|
|
203
|
+
final_timeout=$(printf "%.0f" "$final_timeout")
|
|
204
|
+
|
|
205
|
+
# Output result (JSON format for easy parsing)
|
|
206
|
+
cat <<EOF
|
|
207
|
+
{
|
|
208
|
+
"agentType": "$AGENT_TYPE",
|
|
209
|
+
"taskComplexity": "$TASK_COMPLEXITY",
|
|
210
|
+
"recommendedTimeout": $final_timeout,
|
|
211
|
+
"calculation": {
|
|
212
|
+
"baselineTimeout": $baseline_timeout,
|
|
213
|
+
"historicalAverage": $historical_avg,
|
|
214
|
+
"complexityMultiplier": $complexity_multiplier,
|
|
215
|
+
"loadFactor": $load_factor,
|
|
216
|
+
"redisLatencyFactor": $redis_factor
|
|
217
|
+
},
|
|
218
|
+
"bounds": {
|
|
219
|
+
"min": $MIN_TIMEOUT,
|
|
220
|
+
"max": $MAX_TIMEOUT
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
EOF
|
|
224
|
+
|
|
225
|
+
# Also output just the timeout value to stderr for easy shell capture
|
|
226
|
+
echo "$final_timeout" >&2
|
|
227
|
+
|
|
228
|
+
exit 0
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Consensus Checker
|
|
5
|
+
# Collects and validates Loop 2 consensus scores
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# consensus.sh --task-id <id> \
|
|
9
|
+
# --agents <agent1,agent2,...> \
|
|
10
|
+
# --threshold <0.0-1.0> \
|
|
11
|
+
# --min-quorum <n|n%|0.n>
|
|
12
|
+
#
|
|
13
|
+
# Returns:
|
|
14
|
+
# Exit 0: Consensus reached
|
|
15
|
+
# Exit 1: Consensus failed
|
|
16
|
+
##############################################################################
|
|
17
|
+
|
|
18
|
+
set -euo pipefail
|
|
19
|
+
|
|
20
|
+
# Parameters
|
|
21
|
+
TASK_ID=""
|
|
22
|
+
AGENTS=""
|
|
23
|
+
THRESHOLD=""
|
|
24
|
+
MIN_QUORUM=""
|
|
25
|
+
|
|
26
|
+
# Parse arguments
|
|
27
|
+
while [[ $# -gt 0 ]]; do
|
|
28
|
+
case $1 in
|
|
29
|
+
--task-id) TASK_ID="$2"; shift 2 ;;
|
|
30
|
+
--agents) AGENTS="$2"; shift 2 ;;
|
|
31
|
+
--threshold) THRESHOLD="$2"; shift 2 ;;
|
|
32
|
+
--min-quorum) MIN_QUORUM="$2"; shift 2 ;;
|
|
33
|
+
*) echo "Unknown option: $1"; exit 1 ;;
|
|
34
|
+
esac
|
|
35
|
+
done
|
|
36
|
+
|
|
37
|
+
# Validation
|
|
38
|
+
if [ -z "$TASK_ID" ] || [ -z "$AGENTS" ] || [ -z "$THRESHOLD" ] || [ -z "$MIN_QUORUM" ]; then
|
|
39
|
+
echo "Error: Missing required parameters"
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# Use Redis Coordination skill to collect consensus scores
|
|
44
|
+
SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
45
|
+
REDIS_COORD_SKILL="$SKILL_DIR/redis-coordination"
|
|
46
|
+
|
|
47
|
+
echo "Consensus Check Configuration:"
|
|
48
|
+
echo " Task ID: $TASK_ID"
|
|
49
|
+
echo " Agent IDs: $AGENTS"
|
|
50
|
+
echo " Min Quorum: $MIN_QUORUM"
|
|
51
|
+
echo ""
|
|
52
|
+
|
|
53
|
+
# Collect Loop 2 consensus scores
|
|
54
|
+
CONSENSUS=$("$REDIS_COORD_SKILL/invoke-waiting-mode.sh" collect \
|
|
55
|
+
--task-id "$TASK_ID" \
|
|
56
|
+
--agent-ids "$AGENTS" \
|
|
57
|
+
--min-quorum "$MIN_QUORUM" 2>&1) || {
|
|
58
|
+
echo "❌ Error: Failed to collect Loop 2 consensus scores"
|
|
59
|
+
echo " Agent IDs: $AGENTS"
|
|
60
|
+
echo " Output: $CONSENSUS"
|
|
61
|
+
exit 1
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# Validate consensus is a valid number
|
|
65
|
+
if ! [[ "$CONSENSUS" =~ ^[0-9]+\.?[0-9]*$ ]]; then
|
|
66
|
+
echo "⚠️ WARNING: Invalid consensus value: $CONSENSUS (expected numeric)"
|
|
67
|
+
echo " Defaulting to 0.0"
|
|
68
|
+
CONSENSUS="0.0"
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
echo "Loop 2 Consensus Check:"
|
|
72
|
+
echo " Consensus: $CONSENSUS"
|
|
73
|
+
echo " Threshold: $THRESHOLD"
|
|
74
|
+
echo " Required: >= $THRESHOLD"
|
|
75
|
+
|
|
76
|
+
# Compare consensus to threshold
|
|
77
|
+
if (( $(echo "$CONSENSUS >= $THRESHOLD" | bc -l) )); then
|
|
78
|
+
echo "✅ Consensus REACHED - Loop 2 validation successful"
|
|
79
|
+
exit 0
|
|
80
|
+
else
|
|
81
|
+
echo "❌ Consensus FAILED - Iteration required"
|
|
82
|
+
echo " Gap: $(echo "$THRESHOLD - $CONSENSUS" | bc -l)"
|
|
83
|
+
exit 1
|
|
84
|
+
fi
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Deliverable Verifier
|
|
5
|
+
# Verifies expected deliverables were created (prevents "consensus on vapor")
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# deliverable-verifier.sh --expected-files <file1,file2,...> \
|
|
9
|
+
# --task-type <keyword-detection>
|
|
10
|
+
#
|
|
11
|
+
# Returns:
|
|
12
|
+
# Exit 0: Deliverables verified
|
|
13
|
+
# Exit 1: Missing deliverables
|
|
14
|
+
##############################################################################
|
|
15
|
+
|
|
16
|
+
set -euo pipefail
|
|
17
|
+
|
|
18
|
+
# Parameters
|
|
19
|
+
EXPECTED_FILES=""
|
|
20
|
+
TASK_TYPE=""
|
|
21
|
+
|
|
22
|
+
# Parse arguments
|
|
23
|
+
while [[ $# -gt 0 ]]; do
|
|
24
|
+
case $1 in
|
|
25
|
+
--expected-files) EXPECTED_FILES="$2"; shift 2 ;;
|
|
26
|
+
--task-type) TASK_TYPE="$2"; shift 2 ;;
|
|
27
|
+
*) echo "Unknown option: $1"; exit 1 ;;
|
|
28
|
+
esac
|
|
29
|
+
done
|
|
30
|
+
|
|
31
|
+
# Check git status for file changes
|
|
32
|
+
GIT_CHANGES=$(git status --short | wc -l)
|
|
33
|
+
|
|
34
|
+
echo "Deliverable Verification:"
|
|
35
|
+
echo " Git changes detected: $GIT_CHANGES files"
|
|
36
|
+
|
|
37
|
+
# If expected files specified, check them explicitly
|
|
38
|
+
if [ -n "$EXPECTED_FILES" ]; then
|
|
39
|
+
IFS=',' read -ra FILE_ARRAY <<< "$EXPECTED_FILES"
|
|
40
|
+
MISSING_COUNT=0
|
|
41
|
+
|
|
42
|
+
for file in "${FILE_ARRAY[@]}"; do
|
|
43
|
+
if [ -f "$file" ]; then
|
|
44
|
+
echo " ✅ Found: $file"
|
|
45
|
+
else
|
|
46
|
+
echo " ❌ Missing: $file"
|
|
47
|
+
MISSING_COUNT=$((MISSING_COUNT + 1))
|
|
48
|
+
fi
|
|
49
|
+
done
|
|
50
|
+
|
|
51
|
+
if [ $MISSING_COUNT -gt 0 ]; then
|
|
52
|
+
echo "❌ Deliverable verification FAILED: $MISSING_COUNT missing files"
|
|
53
|
+
exit 1
|
|
54
|
+
fi
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# Keyword-based task type detection
|
|
58
|
+
if [ -n "$TASK_TYPE" ]; then
|
|
59
|
+
if [[ "$TASK_TYPE" =~ (create|build|implement|add|generate) ]]; then
|
|
60
|
+
# Implementation tasks require file changes
|
|
61
|
+
if [ $GIT_CHANGES -eq 0 ]; then
|
|
62
|
+
echo "❌ Implementation task detected but no files created"
|
|
63
|
+
echo " Task type: $TASK_TYPE"
|
|
64
|
+
echo " This is 'consensus on vapor' - forcing iteration"
|
|
65
|
+
exit 1
|
|
66
|
+
fi
|
|
67
|
+
fi
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
echo "✅ Deliverable verification PASSED"
|
|
71
|
+
exit 0
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Gate Check Helper
|
|
5
|
+
# Validates Loop 3 self-assessment against gate threshold
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# gate-check.sh --task-id <id> \
|
|
9
|
+
# --agents <agent1,agent2,...> \
|
|
10
|
+
# --threshold <0.0-1.0> \
|
|
11
|
+
# --min-quorum <n|n%|0.n>
|
|
12
|
+
#
|
|
13
|
+
# Returns:
|
|
14
|
+
# Exit 0: Gate passed (Loop 3 meets threshold)
|
|
15
|
+
# Exit 1: Gate failed (Loop 3 needs iteration)
|
|
16
|
+
##############################################################################
|
|
17
|
+
|
|
18
|
+
set -euo pipefail
|
|
19
|
+
|
|
20
|
+
# Parameters
|
|
21
|
+
TASK_ID=""
|
|
22
|
+
AGENTS=""
|
|
23
|
+
THRESHOLD=""
|
|
24
|
+
MIN_QUORUM=""
|
|
25
|
+
|
|
26
|
+
# Parse arguments
|
|
27
|
+
while [[ $# -gt 0 ]]; do
|
|
28
|
+
case $1 in
|
|
29
|
+
--task-id) TASK_ID="$2"; shift 2 ;;
|
|
30
|
+
--agents) AGENTS="$2"; shift 2 ;;
|
|
31
|
+
--threshold) THRESHOLD="$2"; shift 2 ;;
|
|
32
|
+
--min-quorum) MIN_QUORUM="$2"; shift 2 ;;
|
|
33
|
+
*) echo "Unknown option: $1"; exit 1 ;;
|
|
34
|
+
esac
|
|
35
|
+
done
|
|
36
|
+
|
|
37
|
+
# Validation
|
|
38
|
+
if [ -z "$TASK_ID" ] || [ -z "$AGENTS" ] || [ -z "$THRESHOLD" ] || [ -z "$MIN_QUORUM" ]; then
|
|
39
|
+
echo "Error: Missing required parameters"
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# Use Redis Coordination skill to collect confidence scores
|
|
44
|
+
SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
45
|
+
REDIS_COORD_SKILL="$SKILL_DIR/redis-coordination"
|
|
46
|
+
|
|
47
|
+
echo "Gate Check Configuration:"
|
|
48
|
+
echo " Task ID: $TASK_ID"
|
|
49
|
+
echo " Agent IDs: $AGENTS"
|
|
50
|
+
echo " Min Quorum: $MIN_QUORUM"
|
|
51
|
+
echo ""
|
|
52
|
+
|
|
53
|
+
# Collect Loop 3 confidence scores
|
|
54
|
+
# Note: invoke-waiting-mode.sh outputs consensus to stdout and verbose messages to stderr
|
|
55
|
+
# We capture only stdout to get the numeric consensus value
|
|
56
|
+
CONSENSUS=$("$REDIS_COORD_SKILL/invoke-waiting-mode.sh" collect \
|
|
57
|
+
--task-id "$TASK_ID" \
|
|
58
|
+
--agent-ids "$AGENTS" \
|
|
59
|
+
--min-quorum "$MIN_QUORUM") || {
|
|
60
|
+
echo "❌ Error: Failed to collect Loop 3 confidence scores"
|
|
61
|
+
echo " Agent IDs: $AGENTS"
|
|
62
|
+
echo " Output: $CONSENSUS"
|
|
63
|
+
exit 1
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
# Validate consensus is a valid number
|
|
67
|
+
if ! [[ "$CONSENSUS" =~ ^[0-9]+\.?[0-9]*$ ]]; then
|
|
68
|
+
echo "⚠️ WARNING: Invalid consensus value: $CONSENSUS (expected numeric)"
|
|
69
|
+
echo " Defaulting to 0.0"
|
|
70
|
+
CONSENSUS="0.0"
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
echo "Loop 3 Gate Check:"
|
|
74
|
+
echo " Consensus: $CONSENSUS"
|
|
75
|
+
echo " Threshold: $THRESHOLD"
|
|
76
|
+
echo " Required: >= $THRESHOLD"
|
|
77
|
+
|
|
78
|
+
# Compare consensus to gate threshold
|
|
79
|
+
if (( $(echo "$CONSENSUS >= $THRESHOLD" | bc -l) )); then
|
|
80
|
+
echo "✅ Gate PASSED - Loop 3 self-validation successful"
|
|
81
|
+
|
|
82
|
+
# NOTE: Orchestrator controls Loop 2 spawn timing directly (orchestrate.sh line 520)
|
|
83
|
+
# No signal broadcast needed - Loop 2 agents spawn after this helper returns 0
|
|
84
|
+
|
|
85
|
+
exit 0
|
|
86
|
+
else
|
|
87
|
+
echo "❌ Gate FAILED - Loop 3 needs improvement"
|
|
88
|
+
echo " Gap: $(echo "$THRESHOLD - $CONSENSUS" | bc -l)"
|
|
89
|
+
exit 1
|
|
90
|
+
fi
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Iteration Manager
|
|
5
|
+
# Manages iteration cycles and feedback injection
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# iteration-manager.sh --task-id <id> \
|
|
9
|
+
# --iteration <n> \
|
|
10
|
+
# --agents <agent1,agent2,...> \
|
|
11
|
+
# --feedback-source <redis-key-prefix>
|
|
12
|
+
#
|
|
13
|
+
# Returns:
|
|
14
|
+
# Exit 0: Agents awakened for next iteration
|
|
15
|
+
# Exit 1: Error during wake process
|
|
16
|
+
##############################################################################
|
|
17
|
+
|
|
18
|
+
set -euo pipefail
|
|
19
|
+
|
|
20
|
+
# Parameters
|
|
21
|
+
TASK_ID=""
|
|
22
|
+
ITERATION=""
|
|
23
|
+
AGENTS=""
|
|
24
|
+
FEEDBACK_SOURCE=""
|
|
25
|
+
|
|
26
|
+
# Parse arguments
|
|
27
|
+
while [[ $# -gt 0 ]]; do
|
|
28
|
+
case $1 in
|
|
29
|
+
--task-id) TASK_ID="$2"; shift 2 ;;
|
|
30
|
+
--iteration) ITERATION="$2"; shift 2 ;;
|
|
31
|
+
--agents) AGENTS="$2"; shift 2 ;;
|
|
32
|
+
--feedback-source) FEEDBACK_SOURCE="$2"; shift 2 ;;
|
|
33
|
+
*) echo "Unknown option: $1"; exit 1 ;;
|
|
34
|
+
esac
|
|
35
|
+
done
|
|
36
|
+
|
|
37
|
+
# Validation
|
|
38
|
+
if [ -z "$TASK_ID" ] || [ -z "$ITERATION" ] || [ -z "$AGENTS" ]; then
|
|
39
|
+
echo "Error: Missing required parameters"
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# Use Redis Coordination skill for wake operations
|
|
44
|
+
SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
45
|
+
REDIS_COORD_SKILL="$SKILL_DIR/redis-coordination"
|
|
46
|
+
|
|
47
|
+
echo "Starting Iteration $ITERATION"
|
|
48
|
+
echo "Agents to wake: $AGENTS"
|
|
49
|
+
|
|
50
|
+
# Convert comma-separated agents to array
|
|
51
|
+
IFS=',' read -ra AGENT_ARRAY <<< "$AGENTS"
|
|
52
|
+
|
|
53
|
+
# Wake each agent with feedback
|
|
54
|
+
for agent_id in "${AGENT_ARRAY[@]}"; do
|
|
55
|
+
# Retrieve agent-specific feedback if feedback source provided using Redis coordination primitive
|
|
56
|
+
FEEDBACK=""
|
|
57
|
+
if [ -n "$FEEDBACK_SOURCE" ]; then
|
|
58
|
+
# Retrieve context from Redis using primitive
|
|
59
|
+
FEEDBACK_JSON=$("$REDIS_COORD_SKILL/retrieve-context.sh" \
|
|
60
|
+
--task-id "$TASK_ID" \
|
|
61
|
+
--key "$agent_id" \
|
|
62
|
+
--namespace "$FEEDBACK_SOURCE" 2>/dev/null || echo "{}")
|
|
63
|
+
|
|
64
|
+
# Extract feedback message from JSON (try multiple field names)
|
|
65
|
+
FEEDBACK=$(echo "$FEEDBACK_JSON" | jq -r '.message // .feedback // .data // ""' 2>/dev/null || echo "")
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
# Default feedback if none exists
|
|
69
|
+
if [ -z "$FEEDBACK" ]; then
|
|
70
|
+
FEEDBACK="Continue iteration $ITERATION with quality improvements"
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
echo "Waking $agent_id with feedback: ${FEEDBACK:0:80}..."
|
|
74
|
+
|
|
75
|
+
# Wake agent using Redis Coordination skill
|
|
76
|
+
"$REDIS_COORD_SKILL/invoke-waiting-mode.sh" wake \
|
|
77
|
+
--task-id "$TASK_ID" \
|
|
78
|
+
--agent-id "$agent_id" \
|
|
79
|
+
--reason "cfn_loop_iteration" \
|
|
80
|
+
--iteration "$ITERATION" \
|
|
81
|
+
--feedback "$FEEDBACK" || {
|
|
82
|
+
echo "Warning: Failed to wake $agent_id"
|
|
83
|
+
}
|
|
84
|
+
done
|
|
85
|
+
|
|
86
|
+
echo "✅ All agents awakened for iteration $ITERATION"
|
|
87
|
+
exit 0
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Timeout Calculator
|
|
5
|
+
# Calculates phase-specific timeouts for agent execution
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# timeout-calculator.sh --phase-id <phase-identifier>
|
|
9
|
+
#
|
|
10
|
+
# Returns:
|
|
11
|
+
# Timeout value in seconds (stdout)
|
|
12
|
+
##############################################################################
|
|
13
|
+
|
|
14
|
+
set -euo pipefail
|
|
15
|
+
|
|
16
|
+
# Parameters
|
|
17
|
+
PHASE_ID=""
|
|
18
|
+
DEFAULT_TIMEOUT=3600 # 60 minutes
|
|
19
|
+
|
|
20
|
+
# Parse arguments
|
|
21
|
+
while [[ $# -gt 0 ]]; do
|
|
22
|
+
case $1 in
|
|
23
|
+
--phase-id) PHASE_ID="$2"; shift 2 ;;
|
|
24
|
+
*) echo "Unknown option: $1"; exit 1 ;;
|
|
25
|
+
esac
|
|
26
|
+
done
|
|
27
|
+
|
|
28
|
+
# Phase-specific timeout configuration
|
|
29
|
+
# Based on empirical data from Sprint 6
|
|
30
|
+
case "$PHASE_ID" in
|
|
31
|
+
phase-1)
|
|
32
|
+
# Backend work - relatively fast
|
|
33
|
+
echo 900 # 15 minutes
|
|
34
|
+
;;
|
|
35
|
+
phase-2)
|
|
36
|
+
# React components - more complex
|
|
37
|
+
echo 3600 # 60 minutes
|
|
38
|
+
;;
|
|
39
|
+
phase-3)
|
|
40
|
+
# Advanced components - complex
|
|
41
|
+
echo 3600 # 60 minutes
|
|
42
|
+
;;
|
|
43
|
+
phase-4)
|
|
44
|
+
# Testing/integration - moderate
|
|
45
|
+
echo 1800 # 30 minutes
|
|
46
|
+
;;
|
|
47
|
+
*)
|
|
48
|
+
# Unknown phase - use default
|
|
49
|
+
echo $DEFAULT_TIMEOUT
|
|
50
|
+
;;
|
|
51
|
+
esac
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# inject-loop-context.sh - Inject loop-specific context into agent prompts
|
|
3
|
+
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
LOOP_TYPE="$1" # loop3, loop2, loop4, loop1
|
|
7
|
+
AGENT_CONTEXT="$2" # Original agent context
|
|
8
|
+
|
|
9
|
+
# Use absolute path from current working directory
|
|
10
|
+
PROJECT_ROOT="/mnt/c/Users/masha/Documents/claude-flow-novice"
|
|
11
|
+
|
|
12
|
+
# Load base CFN Loop context
|
|
13
|
+
BASE_CONTEXT_FILE="$PROJECT_ROOT/.claude/prompts/cfn-loop-context.md"
|
|
14
|
+
if [[ ! -f "$BASE_CONTEXT_FILE" ]]; then
|
|
15
|
+
echo "ERROR: Base context file not found: $BASE_CONTEXT_FILE" >&2
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
BASE_CONTEXT=$(cat "$BASE_CONTEXT_FILE")
|
|
19
|
+
|
|
20
|
+
# Load loop-specific context (optional)
|
|
21
|
+
LOOP_CONTEXT_FILE="$PROJECT_ROOT/.claude/prompts/loop-specific/${LOOP_TYPE}.md"
|
|
22
|
+
if [[ -f "$LOOP_CONTEXT_FILE" ]]; then
|
|
23
|
+
LOOP_CONTEXT=$(cat "$LOOP_CONTEXT_FILE")
|
|
24
|
+
else
|
|
25
|
+
LOOP_CONTEXT=""
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# Combine contexts
|
|
29
|
+
cat <<EOF
|
|
30
|
+
$BASE_CONTEXT
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
$LOOP_CONTEXT
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
# Your Task
|
|
39
|
+
|
|
40
|
+
$AGENT_CONTEXT
|
|
41
|
+
EOF
|