claude-flow-novice 2.9.0 → 2.10.0
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/agents/cfn-dev-team/CLAUDE.md +1086 -0
- package/.claude/agents/cfn-dev-team/README.md +116 -0
- package/.claude/agents/cfn-dev-team/architecture/api-designer-persona.md +149 -0
- package/.claude/agents/cfn-dev-team/architecture/base-template-generator.md +196 -0
- package/.claude/agents/cfn-dev-team/architecture/goal-planner.md +183 -0
- package/.claude/agents/cfn-dev-team/architecture/planner.md +182 -0
- package/.claude/agents/cfn-dev-team/architecture/system-architect.md +162 -0
- package/.claude/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +540 -0
- package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +20 -14
- package/.claude/agents/cfn-dev-team/coordinators/consensus-builder.md +167 -0
- package/.claude/agents/cfn-dev-team/dev-ops/devops-engineer.md +148 -0
- package/.claude/agents/cfn-dev-team/dev-ops/github-commit-agent.md +118 -0
- package/.claude/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +540 -0
- package/.claude/agents/cfn-dev-team/developers/backend-dev.md +20 -0
- package/.claude/agents/cfn-dev-team/developers/data/data-engineer.md +585 -0
- package/.claude/agents/cfn-dev-team/developers/database/database-architect.md +276 -0
- package/.claude/agents/cfn-dev-team/developers/dev-backend-api.md +147 -0
- package/.claude/agents/cfn-dev-team/developers/frontend/mobile-dev.md +218 -0
- package/.claude/agents/cfn-dev-team/developers/{react-frontend-engineer.md → frontend/react-frontend-engineer.md} +53 -5
- package/.claude/agents/cfn-dev-team/developers/frontend/spec-mobile-react-native.md +199 -0
- package/.claude/agents/cfn-dev-team/developers/graphql-specialist.md +615 -0
- package/.claude/agents/cfn-dev-team/developers/rust-developer.md +174 -0
- package/.claude/agents/cfn-dev-team/documentation/README-VALIDATION.md +243 -0
- package/.claude/agents/cfn-dev-team/documentation/agent-type-guidelines.md +465 -0
- package/.claude/agents/cfn-dev-team/documentation/api-docs.md +103 -0
- package/.claude/agents/cfn-dev-team/documentation/docs-api-openapi.md +98 -0
- package/.claude/agents/cfn-dev-team/documentation/pseudocode.md +159 -0
- package/.claude/agents/cfn-dev-team/documentation/specification.md +157 -0
- package/.claude/agents/cfn-dev-team/product-owners/accessibility-advocate-persona.md +109 -0
- package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/cto-agent.md +8 -6
- package/.claude/agents/cfn-dev-team/product-owners/power-user-persona.md +190 -0
- package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner.md +85 -59
- package/.claude/agents/cfn-dev-team/reviewers/quality/analyze-code-quality.md +141 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/code-analyzer.md +200 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +321 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +238 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +101 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/quality-metrics.md +375 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/security-specialist.md +193 -0
- package/.claude/agents/cfn-dev-team/reviewers/reviewer.md +39 -0
- package/.claude/agents/cfn-dev-team/testers/interaction-tester.md +31 -0
- package/.claude/agents/cfn-dev-team/testers/load-testing-specialist.md +469 -0
- package/.claude/agents/cfn-dev-team/testers/playwright-tester.md +24 -0
- package/.claude/agents/cfn-dev-team/testers/tester.md +20 -0
- package/.claude/agents/cfn-dev-team/utility/agent-builder.md +151 -0
- package/.claude/agents/cfn-dev-team/utility/analyst.md +178 -0
- package/.claude/agents/cfn-dev-team/utility/claude-code-expert.md +1043 -0
- package/.claude/agents/cfn-dev-team/utility/code-booster.md +139 -0
- package/.claude/agents/cfn-dev-team/utility/context-curator.md +99 -0
- package/.claude/agents/cfn-dev-team/{developers → utility}/researcher.md +6 -4
- package/.claude/commands/cfn/CFN_LOOP_FRONTEND.md +741 -0
- package/.claude/commands/cfn/CFN_LOOP_TASK_MODE.md +353 -0
- package/.claude/commands/cfn/cfn-loop-frontend.md +555 -0
- package/.claude/commands/cfn/cfn-loop.md +168 -7
- package/{CFN-CLAUDE.md → .claude/root-claude-distribute/CFN-CLAUDE.md} +23 -3
- package/.claude/skills/cfn-ace-system/SKILL.md +364 -0
- package/.claude/skills/cfn-ace-system/add-bullet.sh +145 -0
- package/.claude/skills/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +56 -0
- package/.claude/skills/cfn-ace-system/classify-task.sh +18 -0
- package/.claude/skills/cfn-ace-system/export-ace-metrics.sh +48 -0
- package/.claude/skills/cfn-ace-system/extract-tags.sh +385 -0
- package/.claude/skills/cfn-ace-system/format-negative-context.sh +180 -0
- package/.claude/skills/cfn-ace-system/init-indexes.sql +160 -0
- package/.claude/skills/cfn-ace-system/invoke-context-curate.sh +192 -0
- package/.claude/skills/cfn-ace-system/invoke-context-inject.sh +361 -0
- package/.claude/skills/cfn-ace-system/invoke-context-query.sh +139 -0
- package/.claude/skills/cfn-ace-system/invoke-context-reflect.sh +343 -0
- package/.claude/skills/cfn-ace-system/invoke-context-stats.sh +227 -0
- package/.claude/skills/cfn-ace-system/log-merge.sh +67 -0
- package/.claude/skills/cfn-ace-system/monitor-injection-performance.sh +138 -0
- package/.claude/skills/cfn-ace-system/optimize-injection-pipeline.sh +169 -0
- package/.claude/skills/cfn-ace-system/query-anti-patterns.sh +276 -0
- package/.claude/skills/cfn-ace-system/query-contexts.sh +150 -0
- package/.claude/skills/cfn-ace-system/query-reflections.sh +35 -0
- package/.claude/skills/cfn-ace-system/schema/001-create-context-reflections.sql +237 -0
- package/.claude/skills/cfn-ace-system/schema/README.md +723 -0
- package/.claude/skills/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +564 -0
- package/.claude/skills/cfn-ace-system/schema/populate-test-data-simple.sh +62 -0
- package/.claude/skills/cfn-ace-system/schema/populate-test-data.sh +247 -0
- package/.claude/skills/cfn-ace-system/schema/run-migration.sh +231 -0
- package/.claude/skills/cfn-ace-system/schema/validate-schema.sql +280 -0
- package/.claude/skills/cfn-ace-system/score-relevance-adapter.sh +138 -0
- package/.claude/skills/cfn-ace-system/score-relevance.sh +253 -0
- package/.claude/skills/cfn-ace-system/sprint-7-lessons.json +46 -0
- package/.claude/skills/cfn-ace-system/store-reflection.sh +46 -0
- package/.claude/skills/cfn-ace-system/test-ace-skill.sh +312 -0
- package/.claude/skills/cfn-ace-system/track-ab-test.sh +42 -0
- package/.claude/skills/cfn-ace-system/update-reflection.sh +41 -0
- package/.claude/skills/cfn-agent-discovery/SKILL.md +40 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry-clean.json +0 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry-fixed.json +19 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry.json +718 -0
- package/.claude/skills/cfn-agent-discovery/discover-agents.py +184 -0
- package/.claude/skills/cfn-agent-discovery/discover-agents.sh +87 -0
- package/.claude/skills/cfn-agent-discovery/invoke-registry.sh +11 -0
- package/.claude/skills/cfn-agent-discovery/temp_script.py +0 -0
- package/.claude/skills/cfn-agent-execution/execute-agent.sh +126 -0
- package/.claude/skills/cfn-agent-output-processing/SKILL.md +359 -0
- package/.claude/skills/cfn-agent-selector/SKILL.md +90 -0
- package/.claude/skills/cfn-agent-selector/select-agents.sh +112 -0
- package/.claude/skills/cfn-agent-spawning/SKILL.md +135 -0
- package/.claude/skills/cfn-agent-spawning/agent-selection-guide.md +814 -0
- package/.claude/skills/cfn-agent-spawning/check-dependencies.sh +30 -0
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +263 -0
- package/.claude/skills/cfn-agent-spawning/spawn-templates.sh +613 -0
- package/.claude/skills/cfn-analytics/description-refinement-guide.md +164 -0
- package/.claude/skills/cfn-analytics/log-skill-invocation.js +122 -0
- package/.claude/skills/cfn-analytics/run-production-criteria-tests.sh +126 -0
- package/.claude/skills/cfn-analytics/skill-analytics-dashboard.js +113 -0
- package/.claude/skills/cfn-analytics/skill-invocation-hook.sh +28 -0
- package/.claude/skills/cfn-analytics/skill-invocations.sql +58 -0
- package/.claude/skills/cfn-analytics/test-corpus.json +32 -0
- package/.claude/skills/cfn-analytics/test-data-generator.js +115 -0
- package/.claude/skills/cfn-analytics/test-manual-override-rate.js +285 -0
- package/.claude/skills/cfn-analytics/validate-skill-selection.js +188 -0
- package/.claude/skills/cfn-config-management/SKILL.md +34 -0
- package/.claude/skills/cfn-config-management/check-dependencies.sh +56 -0
- package/.claude/skills/cfn-config-management/config.json +32 -0
- package/.claude/skills/cfn-config-management/manage-config.sh +113 -0
- package/.claude/skills/cfn-event-bus/SKILL.md +412 -0
- package/.claude/skills/cfn-event-bus/config.json +111 -0
- package/.claude/skills/cfn-event-bus/eventbus-wrapper.cjs +69 -0
- package/.claude/skills/cfn-event-bus/invoke-event-publish.sh +147 -0
- package/.claude/skills/cfn-event-bus/invoke-event-subscribe.sh +171 -0
- package/.claude/skills/cfn-event-bus/invoke-lifecycle-track.sh +201 -0
- package/.claude/skills/cfn-event-bus/test-event-bus.sh +280 -0
- package/.claude/skills/cfn-fleet-manager/SKILL.md +412 -0
- package/.claude/skills/cfn-fleet-manager/config.json +60 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-allocate.sh +182 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-balance.sh +239 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-metrics.sh +193 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-register.sh +124 -0
- package/.claude/skills/cfn-fleet-manager/test-fleet-manager.sh +345 -0
- package/.claude/skills/cfn-hook-pipeline/SKILL.md +148 -0
- package/.claude/skills/cfn-hook-pipeline/auto-resolve.sh +66 -0
- package/.claude/skills/cfn-hook-pipeline/check-dependencies.sh +40 -0
- package/.claude/skills/cfn-hook-pipeline/feedback-resolver.sh +452 -0
- package/.claude/skills/cfn-hook-pipeline/post-edit-handler.sh +154 -0
- package/.claude/skills/cfn-hook-pipeline/security-scan.json +60 -0
- package/.claude/skills/cfn-hook-pipeline/security-scanner.sh +121 -0
- package/.claude/skills/cfn-hook-pipeline/test-root-warning-resolution.sh +148 -0
- package/.claude/skills/cfn-hybrid-routing/SKILL.md +46 -0
- package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +52 -0
- package/.claude/skills/cfn-hybrid-routing/config.json +26 -0
- package/.claude/skills/cfn-hybrid-routing/spawn-worker.sh +44 -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/context-injection.sh +142 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/context-lookup.sh +359 -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/spawn-agents.sh +271 -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 +884 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +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 +353 -0
- package/.claude/skills/cfn-loop-validation/check-dependencies.sh +31 -0
- package/.claude/skills/cfn-loop-validation/config.json +161 -0
- package/.claude/skills/cfn-loop-validation/consensus-calculator.js +477 -0
- package/.claude/skills/cfn-loop-validation/evidence-chain.sql +163 -0
- package/.claude/skills/cfn-loop-validation/examples/README.md +453 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +234 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +132 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +115 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +186 -0
- package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -0
- package/.claude/skills/cfn-loop-validation/validate-iteration.sh +134 -0
- package/.claude/skills/cfn-process-lifecycle/SKILL.md +39 -0
- package/.claude/skills/cfn-process-lifecycle/check-dependencies.sh +58 -0
- package/.claude/skills/cfn-process-lifecycle/config.json +39 -0
- package/.claude/skills/cfn-process-lifecycle/process-manager.sh +144 -0
- package/.claude/skills/cfn-product-owner-decision/SKILL.md +332 -0
- package/.claude/skills/cfn-product-owner-decision/execute-decision.sh +176 -0
- package/.claude/skills/cfn-product-owner-decision/parse-decision.sh +66 -0
- package/.claude/skills/cfn-product-owner-decision/validate-deliverables.sh +82 -0
- package/.claude/skills/cfn-redis-coordination/AGENT_LOGGING.md +280 -0
- package/.claude/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +209 -0
- package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +57 -0
- package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +267 -0
- package/.claude/skills/cfn-redis-coordination/LOGGING.md +260 -0
- package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +25 -0
- package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +164 -0
- package/.claude/skills/cfn-redis-coordination/SKILL.md +720 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh +124 -0
- package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/analyze-task-complexity.sh +277 -0
- package/.claude/skills/cfn-redis-coordination/cancel-swarm.sh +221 -0
- package/.claude/skills/cfn-redis-coordination/cfn-loop-exec.sh +468 -0
- package/.claude/skills/cfn-redis-coordination/cfn-loop-relaunch.sh +29 -0
- package/.claude/skills/cfn-redis-coordination/check-dependencies.sh +32 -0
- package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +179 -0
- package/.claude/skills/cfn-redis-coordination/collect-results.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/complete-swarm.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/config.json +61 -0
- package/.claude/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
- package/.claude/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +82 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +274 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +276 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +129 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +320 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +249 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +148 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +163 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +138 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +81 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +45 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +68 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +56 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +81 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +57 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +187 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +160 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +97 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +97 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +59 -0
- package/.claude/skills/cfn-redis-coordination/examples/README.md +73 -0
- package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +352 -0
- package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +127 -0
- package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +171 -0
- package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +227 -0
- package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +239 -0
- package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +258 -0
- package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +177 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +137 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +106 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat.sh +126 -0
- package/.claude/skills/cfn-redis-coordination/init-swarm.sh +148 -0
- package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +220 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +283 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
- package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +147 -0
- package/.claude/skills/cfn-redis-coordination/log-event.sh +109 -0
- package/.claude/skills/cfn-redis-coordination/metrics-export.sh +674 -0
- package/.claude/skills/cfn-redis-coordination/metrics-schema.json +66 -0
- package/.claude/skills/cfn-redis-coordination/metrics-storage.md +31 -0
- package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +391 -0
- package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +101 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +31 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
- package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +75 -0
- package/.claude/skills/cfn-redis-coordination/priority_wake.py +134 -0
- package/.claude/skills/cfn-redis-coordination/query-dlq.sh +162 -0
- package/.claude/skills/cfn-redis-coordination/query-logs.sh +103 -0
- package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +619 -0
- package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +58 -0
- package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +371 -0
- package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +252 -0
- package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +165 -0
- package/.claude/skills/cfn-redis-coordination/signal.sh +38 -0
- package/.claude/skills/cfn-redis-coordination/store-context.sh +86 -0
- package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +123 -0
- package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +354 -0
- package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +513 -0
- package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +15 -0
- package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +102 -0
- package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +99 -0
- package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +170 -0
- package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +82 -0
- package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +92 -0
- package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +418 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +124 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +166 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +54 -0
- package/.claude/skills/cfn-redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
- package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +49 -0
- package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +76 -0
- package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +492 -0
- package/.claude/skills/cfn-sqlite-memory/IMPLEMENTATION_REPORT.md +393 -0
- package/.claude/skills/cfn-sqlite-memory/QUICK_REFERENCE.md +204 -0
- package/.claude/skills/cfn-sqlite-memory/SKILL.md +415 -0
- package/.claude/skills/cfn-sqlite-memory/acl-queries.sql +452 -0
- package/.claude/skills/cfn-sqlite-memory/check-dependencies.sh +36 -0
- package/.claude/skills/cfn-sqlite-memory/config.json +45 -0
- package/.claude/skills/cfn-sqlite-memory/memory-cli.sh +88 -0
- package/.claude/skills/cfn-sqlite-memory/test-state-persistence.js +187 -0
- package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +274 -0
- package/.claude/skills/cfn-test-execution/SKILL.md +128 -0
- package/.claude/skills/cfn-test-execution/check-dependencies.sh +36 -0
- package/.claude/skills/cfn-test-execution/test-cache-reader.sh +134 -0
- package/.claude/skills/cfn-test-execution/test-concurrent-conflicts.sh +115 -0
- package/.claude/skills/cfn-test-execution/test-coordinator-pattern.sh +109 -0
- package/.claude/skills/cfn-transparency-middleware/Cargo.toml +18 -0
- package/.claude/skills/cfn-transparency-middleware/SECURITY.md +41 -0
- package/.claude/skills/cfn-transparency-middleware/SKILL.md +91 -0
- package/.claude/skills/cfn-transparency-middleware/TEST_RESULTS.md +174 -0
- package/.claude/skills/cfn-transparency-middleware/config.json +31 -0
- package/.claude/skills/cfn-transparency-middleware/examples/basic-usage.ts +39 -0
- package/.claude/skills/cfn-transparency-middleware/examples/batch-processing.ts +52 -0
- package/.claude/skills/cfn-transparency-middleware/examples/custom-filtering.ts +61 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-filter.sh +98 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-init.sh +224 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-level.sh +333 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-metrics.sh +345 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-observe.sh +140 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-stop.sh +235 -0
- package/.claude/skills/cfn-transparency-middleware/memory_query.rs +85 -0
- package/.claude/skills/cfn-transparency-middleware/memory_repository.rs +140 -0
- package/.claude/skills/cfn-transparency-middleware/memory_schema.rs +64 -0
- package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +29 -0
- package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +79 -0
- package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +406 -0
- package/.claude/skills/cfn-transparency-middleware/test-integration.sh +162 -0
- package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +368 -0
- package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh.unix +126 -0
- package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +93 -0
- package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +132 -0
- package/.claude/skills/cfn-webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
- package/.claude/skills/cfn-webapp-testing/SKILL.md +877 -0
- package/.claude/skills/cfn-webapp-testing/capture-screenshot.sh +238 -0
- package/.claude/skills/cfn-webapp-testing/cfn-loop-integration.sh +265 -0
- package/.claude/skills/cfn-webapp-testing/compare-screenshots.sh +199 -0
- package/.claude/skills/cfn-webapp-testing/init-storage.sh +150 -0
- package/.claude/skills/cfn-webapp-testing/set-baseline.sh +196 -0
- package/.claude/skills/cfn-webapp-testing/test-webapp-testing.sh +233 -0
- package/README.md +51 -2
- package/dist/ace/ace-reflector.js +109 -10
- package/dist/ace/ace-reflector.js.map +1 -1
- package/dist/agents/agent-loader.js +165 -146
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/cli/agent-executor.js +1 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/config-manager.js +109 -91
- package/dist/cli/config-manager.js.map +1 -1
- package/package.json +43 -7
- package/readme/README.md +15 -4
- package/scripts/init-project.js +84 -29
- package/scripts/run-marketing-tests.sh +43 -0
- package/scripts/update_paths.sh +47 -0
- package/tools/install-lizard.sh +37 -0
- package/tools/simple-complexity.sh +44 -0
- package/.claude/agents/cfn-dev-team/developers/coder.md +0 -270
- package/.claude/agents/cfn-dev-team/developers/state-architect.md +0 -127
- package/.claude/agents/cfn-dev-team/reviewers/code-quality-validator.md +0 -128
- /package/.claude/agents/cfn-dev-team/developers/{ui-designer.md → frontend/ui-designer.md} +0 -0
- /package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner-agent.md +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Example: Loop 2 Consensus Validation
|
|
5
|
+
#
|
|
6
|
+
# Scenario: Coordinator validates consensus from validator swarm
|
|
7
|
+
# Use Case: Validators (reviewer, security, tester, analyst) complete review,
|
|
8
|
+
# coordinator checks if consensus is strong enough for product owner
|
|
9
|
+
##############################################################################
|
|
10
|
+
|
|
11
|
+
set -euo pipefail
|
|
12
|
+
|
|
13
|
+
# Get script directory for relative path to validator
|
|
14
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
15
|
+
VALIDATOR="${SCRIPT_DIR}/.claude/skills/cfn-cfn-validate-iteration.sh"
|
|
16
|
+
|
|
17
|
+
# Configuration
|
|
18
|
+
MODE="enterprise"
|
|
19
|
+
TASK_ID="compliance-gdpr-implementation"
|
|
20
|
+
AGENT_ID="coordinator-loop2"
|
|
21
|
+
|
|
22
|
+
echo "=== Loop 2: Consensus Validation ==="
|
|
23
|
+
echo "Task: $TASK_ID"
|
|
24
|
+
echo "Mode: $MODE"
|
|
25
|
+
echo ""
|
|
26
|
+
|
|
27
|
+
# Simulated validator execution
|
|
28
|
+
echo "Spawning validator swarm..."
|
|
29
|
+
echo " - Validator 1: reviewer (confidence: 0.92)"
|
|
30
|
+
echo " - Validator 2: security-specialist (confidence: 0.95)"
|
|
31
|
+
echo " - Validator 3: tester (confidence: 0.88)"
|
|
32
|
+
echo " - Validator 4: analyst (confidence: 0.91)"
|
|
33
|
+
echo " - Validator 5: architect (confidence: 0.93)"
|
|
34
|
+
echo ""
|
|
35
|
+
|
|
36
|
+
sleep 1
|
|
37
|
+
|
|
38
|
+
# Aggregate scores from validators
|
|
39
|
+
AGENT_CONFIDENCE=0.918 # Average of validator confidences
|
|
40
|
+
CONSENSUS_SCORE=0.952 # Byzantine consensus algorithm result
|
|
41
|
+
|
|
42
|
+
echo "Consensus Results:"
|
|
43
|
+
echo " Average Confidence: $AGENT_CONFIDENCE"
|
|
44
|
+
echo " Consensus Score: $CONSENSUS_SCORE"
|
|
45
|
+
echo ""
|
|
46
|
+
|
|
47
|
+
# Validate consensus
|
|
48
|
+
echo "=== Validating Loop 2 Consensus Threshold ==="
|
|
49
|
+
ITERATION=1
|
|
50
|
+
|
|
51
|
+
VALIDATION_RESULT=$("$VALIDATOR" \
|
|
52
|
+
--mode "$MODE" \
|
|
53
|
+
--iteration "$ITERATION" \
|
|
54
|
+
--confidence "$AGENT_CONFIDENCE" \
|
|
55
|
+
--consensus "$CONSENSUS_SCORE" \
|
|
56
|
+
--task-id "$TASK_ID" \
|
|
57
|
+
--agent-id "$AGENT_ID" \
|
|
58
|
+
--json)
|
|
59
|
+
|
|
60
|
+
# Parse validation result
|
|
61
|
+
PASSED=$(echo "$VALIDATION_RESULT" | jq -r '.passed')
|
|
62
|
+
STATUS=$(echo "$VALIDATION_RESULT" | jq -r '.status')
|
|
63
|
+
VALIDATION_TYPE=$(echo "$VALIDATION_RESULT" | jq -r '.validationType')
|
|
64
|
+
THRESHOLD=$(echo "$VALIDATION_RESULT" | jq -r '.threshold')
|
|
65
|
+
CODE=$(echo "$VALIDATION_RESULT" | jq -r '.code')
|
|
66
|
+
|
|
67
|
+
echo ""
|
|
68
|
+
echo "Validation Result:"
|
|
69
|
+
echo " Type: $VALIDATION_TYPE"
|
|
70
|
+
echo " Status: $STATUS"
|
|
71
|
+
echo " Passed: $PASSED"
|
|
72
|
+
echo " Consensus: $CONSENSUS_SCORE"
|
|
73
|
+
echo " Threshold: $THRESHOLD"
|
|
74
|
+
echo " Exit Code: $CODE"
|
|
75
|
+
echo ""
|
|
76
|
+
|
|
77
|
+
# Decision logic
|
|
78
|
+
case "$CODE" in
|
|
79
|
+
0)
|
|
80
|
+
echo "✓ Consensus ACHIEVED"
|
|
81
|
+
echo " → Proceeding to Loop 4 (Product Owner Decision Gate)"
|
|
82
|
+
echo ""
|
|
83
|
+
|
|
84
|
+
echo "Next Action: Invoke product owner decision"
|
|
85
|
+
echo " - Enterprise mode: Stakeholder board decision"
|
|
86
|
+
echo " - CTO vote (weight: 0.35)"
|
|
87
|
+
echo " - Product Owner vote (weight: 0.30)"
|
|
88
|
+
echo " - User Power vote (weight: 0.20)"
|
|
89
|
+
echo " - User Accessibility vote (weight: 0.15)"
|
|
90
|
+
|
|
91
|
+
# Example: Invoke product owner team decision
|
|
92
|
+
# The board will decide: PROCEED | LOOP | DEFER | ESCALATE
|
|
93
|
+
|
|
94
|
+
exit 0
|
|
95
|
+
;;
|
|
96
|
+
|
|
97
|
+
1)
|
|
98
|
+
echo "✗ Consensus BELOW THRESHOLD"
|
|
99
|
+
echo " → Retrying validators with targeted feedback"
|
|
100
|
+
echo ""
|
|
101
|
+
|
|
102
|
+
# Analyze which validators had low confidence
|
|
103
|
+
echo "Analysis: Validators with concerns"
|
|
104
|
+
echo " - tester: 0.88 (concerns about edge cases)"
|
|
105
|
+
echo ""
|
|
106
|
+
|
|
107
|
+
echo "Feedback injection strategy:"
|
|
108
|
+
echo " 1. Add edge case tests for identified gaps"
|
|
109
|
+
echo " 2. Re-run tester validator with enhanced test suite"
|
|
110
|
+
echo " 3. Validate consensus again"
|
|
111
|
+
|
|
112
|
+
exit 1
|
|
113
|
+
;;
|
|
114
|
+
|
|
115
|
+
2)
|
|
116
|
+
echo "✗ MAX ITERATIONS REACHED"
|
|
117
|
+
echo " → Escalating to human review"
|
|
118
|
+
echo ""
|
|
119
|
+
|
|
120
|
+
echo "Escalation reason:"
|
|
121
|
+
echo " - Unable to achieve consensus after $ITERATION attempts"
|
|
122
|
+
echo " - Fundamental disagreement among validators"
|
|
123
|
+
echo " - Requires human architectural decision"
|
|
124
|
+
|
|
125
|
+
exit 2
|
|
126
|
+
;;
|
|
127
|
+
|
|
128
|
+
*)
|
|
129
|
+
echo "Unexpected error: Code $CODE"
|
|
130
|
+
exit "$CODE"
|
|
131
|
+
;;
|
|
132
|
+
esac
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Example: Loop 3 Confidence Gate Validation
|
|
5
|
+
#
|
|
6
|
+
# Scenario: Coordinator validates agent confidence before proceeding to Loop 2
|
|
7
|
+
# Use Case: Primary swarm (coder, tester) completes work, coordinator checks
|
|
8
|
+
# if confidence is high enough to spawn validators
|
|
9
|
+
##############################################################################
|
|
10
|
+
|
|
11
|
+
set -euo pipefail
|
|
12
|
+
|
|
13
|
+
# Get script directory for relative path to validator
|
|
14
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
15
|
+
VALIDATOR="${SCRIPT_DIR}/.claude/skills/cfn-cfn-validate-iteration.sh"
|
|
16
|
+
|
|
17
|
+
# Configuration
|
|
18
|
+
MODE="standard"
|
|
19
|
+
TASK_ID="feature-user-authentication"
|
|
20
|
+
AGENT_ID="coordinator-loop3"
|
|
21
|
+
|
|
22
|
+
# Simulated agent execution with confidence score
|
|
23
|
+
echo "=== Loop 3: Primary Swarm Execution ==="
|
|
24
|
+
echo "Task: $TASK_ID"
|
|
25
|
+
echo "Mode: $MODE"
|
|
26
|
+
echo ""
|
|
27
|
+
|
|
28
|
+
# Simulate agent work (in real scenario, this would be actual agent execution)
|
|
29
|
+
echo "Executing primary swarm (coder + tester)..."
|
|
30
|
+
sleep 1
|
|
31
|
+
|
|
32
|
+
# Agent self-assessment confidence score (from agent's own evaluation)
|
|
33
|
+
AGENT_CONFIDENCE=0.85
|
|
34
|
+
echo "Agent reported confidence: $AGENT_CONFIDENCE"
|
|
35
|
+
echo ""
|
|
36
|
+
|
|
37
|
+
# Validate confidence gate
|
|
38
|
+
echo "=== Validating Loop 3 Confidence Gate ==="
|
|
39
|
+
ITERATION=1
|
|
40
|
+
|
|
41
|
+
VALIDATION_RESULT=$("$VALIDATOR" \
|
|
42
|
+
--mode "$MODE" \
|
|
43
|
+
--iteration "$ITERATION" \
|
|
44
|
+
--confidence "$AGENT_CONFIDENCE" \
|
|
45
|
+
--task-id "$TASK_ID" \
|
|
46
|
+
--agent-id "$AGENT_ID" \
|
|
47
|
+
--json)
|
|
48
|
+
|
|
49
|
+
# Parse validation result
|
|
50
|
+
PASSED=$(echo "$VALIDATION_RESULT" | jq -r '.passed')
|
|
51
|
+
STATUS=$(echo "$VALIDATION_RESULT" | jq -r '.status')
|
|
52
|
+
THRESHOLD=$(echo "$VALIDATION_RESULT" | jq -r '.threshold')
|
|
53
|
+
CODE=$(echo "$VALIDATION_RESULT" | jq -r '.code')
|
|
54
|
+
|
|
55
|
+
echo ""
|
|
56
|
+
echo "Validation Result:"
|
|
57
|
+
echo " Status: $STATUS"
|
|
58
|
+
echo " Passed: $PASSED"
|
|
59
|
+
echo " Confidence: $AGENT_CONFIDENCE"
|
|
60
|
+
echo " Threshold: $THRESHOLD"
|
|
61
|
+
echo " Exit Code: $CODE"
|
|
62
|
+
echo ""
|
|
63
|
+
|
|
64
|
+
# Decision logic based on validation
|
|
65
|
+
if [[ "$PASSED" == "true" ]]; then
|
|
66
|
+
echo "✓ Confidence gate PASSED"
|
|
67
|
+
echo " → Proceeding to Loop 2 (spawning validators)"
|
|
68
|
+
echo ""
|
|
69
|
+
|
|
70
|
+
# Next step: Spawn validator swarm for consensus
|
|
71
|
+
echo "Next Action: Spawn validators for consensus validation"
|
|
72
|
+
# Example: npx claude-flow-novice swarm "validate feature-user-authentication" \
|
|
73
|
+
# --agents reviewer,security-specialist,tester,analyst
|
|
74
|
+
|
|
75
|
+
exit 0
|
|
76
|
+
|
|
77
|
+
else
|
|
78
|
+
echo "✗ Confidence gate FAILED"
|
|
79
|
+
echo " → Status: $STATUS"
|
|
80
|
+
echo ""
|
|
81
|
+
|
|
82
|
+
case "$CODE" in
|
|
83
|
+
1)
|
|
84
|
+
echo "Reason: Confidence below threshold"
|
|
85
|
+
echo "Action: Injecting feedback and retrying Loop 3"
|
|
86
|
+
echo ""
|
|
87
|
+
|
|
88
|
+
# Extract feedback from agent reasoning
|
|
89
|
+
echo "Suggested improvements:"
|
|
90
|
+
echo " - Review agent's reasoning for low confidence"
|
|
91
|
+
echo " - Inject targeted feedback"
|
|
92
|
+
echo " - Retry primary swarm execution"
|
|
93
|
+
|
|
94
|
+
exit 1
|
|
95
|
+
;;
|
|
96
|
+
|
|
97
|
+
2)
|
|
98
|
+
echo "Reason: Maximum iterations exceeded"
|
|
99
|
+
echo "Action: Escalating to human review"
|
|
100
|
+
echo ""
|
|
101
|
+
|
|
102
|
+
echo "Escalation details:"
|
|
103
|
+
echo " - Task attempted $ITERATION times"
|
|
104
|
+
echo " - Confidence never reached threshold"
|
|
105
|
+
echo " - Manual intervention required"
|
|
106
|
+
|
|
107
|
+
exit 2
|
|
108
|
+
;;
|
|
109
|
+
|
|
110
|
+
*)
|
|
111
|
+
echo "Unexpected error: Code $CODE"
|
|
112
|
+
exit "$CODE"
|
|
113
|
+
;;
|
|
114
|
+
esac
|
|
115
|
+
fi
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Example: Redis Integration for Async Validation
|
|
5
|
+
#
|
|
6
|
+
# Scenario: Coordinator publishes validation results to Redis for distributed
|
|
7
|
+
# agent coordination and event-driven workflows
|
|
8
|
+
##############################################################################
|
|
9
|
+
|
|
10
|
+
set -euo pipefail
|
|
11
|
+
|
|
12
|
+
# Get script directory
|
|
13
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
14
|
+
VALIDATOR="${SCRIPT_DIR}/.claude/skills/cfn-cfn-validate-iteration.sh"
|
|
15
|
+
|
|
16
|
+
# Configuration
|
|
17
|
+
TASK_ID="distributed-task-microservices"
|
|
18
|
+
MODE="enterprise"
|
|
19
|
+
ITERATION=2
|
|
20
|
+
CONFIDENCE=0.88
|
|
21
|
+
CONSENSUS=0.94
|
|
22
|
+
AGENT_ID="coordinator-redis"
|
|
23
|
+
|
|
24
|
+
# Redis configuration
|
|
25
|
+
REDIS_HOST="${REDIS_HOST:-localhost}"
|
|
26
|
+
REDIS_PORT="${REDIS_PORT:-6379}"
|
|
27
|
+
REDIS_VALIDATION_LIST="cfn:validation:${TASK_ID}"
|
|
28
|
+
REDIS_EVENT_CHANNEL="cfn:events"
|
|
29
|
+
|
|
30
|
+
echo "═══════════════════════════════════════════════════════════"
|
|
31
|
+
echo " CFN Loop Validation with Redis Integration"
|
|
32
|
+
echo "═══════════════════════════════════════════════════════════"
|
|
33
|
+
echo ""
|
|
34
|
+
echo "Task: $TASK_ID"
|
|
35
|
+
echo "Mode: $MODE"
|
|
36
|
+
echo "Iteration: $ITERATION"
|
|
37
|
+
echo "Redis: ${REDIS_HOST}:${REDIS_PORT}"
|
|
38
|
+
echo ""
|
|
39
|
+
|
|
40
|
+
# Check Redis connectivity
|
|
41
|
+
echo "Checking Redis connectivity..."
|
|
42
|
+
if command -v redis-cli &>/dev/null; then
|
|
43
|
+
if redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ping &>/dev/null; then
|
|
44
|
+
echo "✓ Redis connection successful"
|
|
45
|
+
else
|
|
46
|
+
echo "✗ Redis connection failed"
|
|
47
|
+
echo " Continuing without Redis persistence (validation only)"
|
|
48
|
+
fi
|
|
49
|
+
else
|
|
50
|
+
echo "⚠ redis-cli not found"
|
|
51
|
+
echo " Install: sudo apt-get install redis-tools"
|
|
52
|
+
echo " Continuing without Redis persistence (validation only)"
|
|
53
|
+
fi
|
|
54
|
+
echo ""
|
|
55
|
+
|
|
56
|
+
# Run validation
|
|
57
|
+
echo "Running CFN Loop validation..."
|
|
58
|
+
VALIDATION_RESULT=$("$VALIDATOR" \
|
|
59
|
+
--mode "$MODE" \
|
|
60
|
+
--iteration "$ITERATION" \
|
|
61
|
+
--confidence "$CONFIDENCE" \
|
|
62
|
+
--consensus "$CONSENSUS" \
|
|
63
|
+
--task-id "$TASK_ID" \
|
|
64
|
+
--agent-id "$AGENT_ID" \
|
|
65
|
+
--json)
|
|
66
|
+
|
|
67
|
+
# Parse result
|
|
68
|
+
PASSED=$(echo "$VALIDATION_RESULT" | jq -r '.passed')
|
|
69
|
+
STATUS=$(echo "$VALIDATION_RESULT" | jq -r '.status')
|
|
70
|
+
CODE=$(echo "$VALIDATION_RESULT" | jq -r '.code')
|
|
71
|
+
|
|
72
|
+
echo "Validation Result:"
|
|
73
|
+
echo " Status: $STATUS"
|
|
74
|
+
echo " Passed: $PASSED"
|
|
75
|
+
echo " Code: $CODE"
|
|
76
|
+
echo ""
|
|
77
|
+
|
|
78
|
+
# Publish to Redis (if available)
|
|
79
|
+
if command -v redis-cli &>/dev/null && \
|
|
80
|
+
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ping &>/dev/null; then
|
|
81
|
+
|
|
82
|
+
echo "Publishing validation result to Redis..."
|
|
83
|
+
|
|
84
|
+
# 1. Store full validation result in list
|
|
85
|
+
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" lpush "$REDIS_VALIDATION_LIST" "$VALIDATION_RESULT" >/dev/null
|
|
86
|
+
echo "✓ Stored in list: $REDIS_VALIDATION_LIST"
|
|
87
|
+
|
|
88
|
+
# 2. Set validation status with TTL (1 hour)
|
|
89
|
+
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" setex \
|
|
90
|
+
"cfn:validation:${TASK_ID}:status" 3600 "$STATUS" >/dev/null
|
|
91
|
+
echo "✓ Set status key (TTL: 1 hour)"
|
|
92
|
+
|
|
93
|
+
# 3. Publish event to channel
|
|
94
|
+
if [[ "$PASSED" == "true" ]]; then
|
|
95
|
+
EVENT_PAYLOAD=$(jq -n \
|
|
96
|
+
--arg type "validation_passed" \
|
|
97
|
+
--arg taskId "$TASK_ID" \
|
|
98
|
+
--arg mode "$MODE" \
|
|
99
|
+
--argjson iteration "$ITERATION" \
|
|
100
|
+
--argjson confidence "$CONFIDENCE" \
|
|
101
|
+
--argjson consensus "$CONSENSUS" \
|
|
102
|
+
'{
|
|
103
|
+
type: $type,
|
|
104
|
+
taskId: $taskId,
|
|
105
|
+
mode: $mode,
|
|
106
|
+
iteration: $iteration,
|
|
107
|
+
confidence: $confidence,
|
|
108
|
+
consensus: $consensus,
|
|
109
|
+
timestamp: now
|
|
110
|
+
}')
|
|
111
|
+
|
|
112
|
+
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" publish "$REDIS_EVENT_CHANNEL" "$EVENT_PAYLOAD" >/dev/null
|
|
113
|
+
echo "✓ Published event: validation_passed"
|
|
114
|
+
|
|
115
|
+
else
|
|
116
|
+
EVENT_PAYLOAD=$(jq -n \
|
|
117
|
+
--arg type "validation_failed" \
|
|
118
|
+
--arg taskId "$TASK_ID" \
|
|
119
|
+
--arg mode "$MODE" \
|
|
120
|
+
--arg status "$STATUS" \
|
|
121
|
+
--argjson code "$CODE" \
|
|
122
|
+
'{
|
|
123
|
+
type: $type,
|
|
124
|
+
taskId: $taskId,
|
|
125
|
+
mode: $mode,
|
|
126
|
+
status: $status,
|
|
127
|
+
code: $code,
|
|
128
|
+
timestamp: now
|
|
129
|
+
}')
|
|
130
|
+
|
|
131
|
+
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" publish "$REDIS_EVENT_CHANNEL" "$EVENT_PAYLOAD" >/dev/null
|
|
132
|
+
echo "✓ Published event: validation_failed"
|
|
133
|
+
fi
|
|
134
|
+
|
|
135
|
+
# 4. Update task metadata
|
|
136
|
+
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" hset \
|
|
137
|
+
"cfn:task:${TASK_ID}:metadata" \
|
|
138
|
+
"last_validation_status" "$STATUS" \
|
|
139
|
+
"last_validation_timestamp" "$(date +%s)" \
|
|
140
|
+
"validation_iteration" "$ITERATION" >/dev/null
|
|
141
|
+
echo "✓ Updated task metadata"
|
|
142
|
+
|
|
143
|
+
echo ""
|
|
144
|
+
echo "Redis Integration Summary:"
|
|
145
|
+
echo " List: $REDIS_VALIDATION_LIST (validation history)"
|
|
146
|
+
echo " Key: cfn:validation:${TASK_ID}:status (current status)"
|
|
147
|
+
echo " Channel: $REDIS_EVENT_CHANNEL (event stream)"
|
|
148
|
+
echo " Hash: cfn:task:${TASK_ID}:metadata (task metadata)"
|
|
149
|
+
echo ""
|
|
150
|
+
|
|
151
|
+
# Example: Other agents can listen for events
|
|
152
|
+
echo "Other agents can subscribe to events:"
|
|
153
|
+
echo " redis-cli -h $REDIS_HOST -p $REDIS_PORT subscribe $REDIS_EVENT_CHANNEL"
|
|
154
|
+
echo ""
|
|
155
|
+
|
|
156
|
+
echo "Query validation history:"
|
|
157
|
+
echo " redis-cli -h $REDIS_HOST -p $REDIS_PORT lrange $REDIS_VALIDATION_LIST 0 -1"
|
|
158
|
+
echo ""
|
|
159
|
+
|
|
160
|
+
fi
|
|
161
|
+
|
|
162
|
+
# Decision logic based on validation
|
|
163
|
+
case "$CODE" in
|
|
164
|
+
0)
|
|
165
|
+
echo "✓ VALIDATION PASSED"
|
|
166
|
+
echo " → Proceeding to next phase"
|
|
167
|
+
exit 0
|
|
168
|
+
;;
|
|
169
|
+
|
|
170
|
+
1)
|
|
171
|
+
echo "✗ VALIDATION FAILED"
|
|
172
|
+
echo " → Retrying with feedback"
|
|
173
|
+
exit 1
|
|
174
|
+
;;
|
|
175
|
+
|
|
176
|
+
2)
|
|
177
|
+
echo "✗ MAX ITERATIONS EXCEEDED"
|
|
178
|
+
echo " → Escalating to human"
|
|
179
|
+
exit 2
|
|
180
|
+
;;
|
|
181
|
+
|
|
182
|
+
*)
|
|
183
|
+
echo "✗ UNEXPECTED ERROR"
|
|
184
|
+
exit "$CODE"
|
|
185
|
+
;;
|
|
186
|
+
esac
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# CFN Loop Orchestration v1.0.0
|
|
5
|
+
# Manages multi-loop CFN execution with dependency tracking and consensus
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# ./orchestrate-cfn-loop.sh --task-id <id> \
|
|
9
|
+
# --mode <mvp|standard|enterprise> \
|
|
10
|
+
# --loop3-agents <agent1,agent2,...> \
|
|
11
|
+
# --loop2-agents <agent1,agent2,...> \
|
|
12
|
+
# --product-owner <agent-id> \
|
|
13
|
+
# [--max-iterations <n>]
|
|
14
|
+
#
|
|
15
|
+
# CFN Loop Structure:
|
|
16
|
+
# Loop 3 (Primary Swarm) → Loop 2 (Consensus) → Product Owner Decision
|
|
17
|
+
#
|
|
18
|
+
# Dependency Enforcement:
|
|
19
|
+
# - Loop 2 agents BLOCK until all Loop 3 agents signal completion
|
|
20
|
+
# - Product Owner BLOCKS until all Loop 2 agents signal completion
|
|
21
|
+
# - Uses Redis BLPOP for zero-token waiting
|
|
22
|
+
##############################################################################
|
|
23
|
+
|
|
24
|
+
set -euo pipefail
|
|
25
|
+
|
|
26
|
+
# Configuration
|
|
27
|
+
TASK_ID=""
|
|
28
|
+
MODE="standard"
|
|
29
|
+
LOOP3_AGENTS=""
|
|
30
|
+
LOOP2_AGENTS=""
|
|
31
|
+
PRODUCT_OWNER=""
|
|
32
|
+
MAX_ITERATIONS=10
|
|
33
|
+
TIMEOUT=3600 # 1 hour timeout for agent completion
|
|
34
|
+
|
|
35
|
+
# Thresholds by mode
|
|
36
|
+
declare -A GATE_THRESHOLD=(
|
|
37
|
+
[mvp]=0.70
|
|
38
|
+
[standard]=0.75
|
|
39
|
+
[enterprise]=0.75
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
declare -A CONSENSUS_THRESHOLD=(
|
|
43
|
+
[mvp]=0.80
|
|
44
|
+
[standard]=0.90
|
|
45
|
+
[enterprise]=0.95
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
# Parse arguments
|
|
49
|
+
while [[ $# -gt 0 ]]; do
|
|
50
|
+
case $1 in
|
|
51
|
+
--task-id)
|
|
52
|
+
TASK_ID="$2"
|
|
53
|
+
shift 2
|
|
54
|
+
;;
|
|
55
|
+
--mode)
|
|
56
|
+
MODE="$2"
|
|
57
|
+
shift 2
|
|
58
|
+
;;
|
|
59
|
+
--loop3-agents)
|
|
60
|
+
LOOP3_AGENTS="$2"
|
|
61
|
+
shift 2
|
|
62
|
+
;;
|
|
63
|
+
--loop2-agents)
|
|
64
|
+
LOOP2_AGENTS="$2"
|
|
65
|
+
shift 2
|
|
66
|
+
;;
|
|
67
|
+
--product-owner)
|
|
68
|
+
PRODUCT_OWNER="$2"
|
|
69
|
+
shift 2
|
|
70
|
+
;;
|
|
71
|
+
--max-iterations)
|
|
72
|
+
MAX_ITERATIONS="$2"
|
|
73
|
+
shift 2
|
|
74
|
+
;;
|
|
75
|
+
*)
|
|
76
|
+
echo "Unknown option: $1"
|
|
77
|
+
exit 1
|
|
78
|
+
;;
|
|
79
|
+
esac
|
|
80
|
+
done
|
|
81
|
+
|
|
82
|
+
# Validation
|
|
83
|
+
if [ -z "$TASK_ID" ] || [ -z "$LOOP3_AGENTS" ] || [ -z "$LOOP2_AGENTS" ] || [ -z "$PRODUCT_OWNER" ]; then
|
|
84
|
+
echo "Error: Required parameters missing"
|
|
85
|
+
echo "Usage: $0 --task-id <id> --mode <mode> --loop3-agents <agents> --loop2-agents <agents> --product-owner <agent>"
|
|
86
|
+
exit 1
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
GATE=${GATE_THRESHOLD[$MODE]}
|
|
90
|
+
CONSENSUS=${CONSENSUS_THRESHOLD[$MODE]}
|
|
91
|
+
|
|
92
|
+
echo "=== CFN Loop Orchestration ==="
|
|
93
|
+
echo "Task ID: $TASK_ID"
|
|
94
|
+
echo "Mode: $MODE (Gate: $GATE, Consensus: $CONSENSUS)"
|
|
95
|
+
echo "Max Iterations: $MAX_ITERATIONS"
|
|
96
|
+
echo ""
|
|
97
|
+
|
|
98
|
+
# Iteration loop
|
|
99
|
+
for ITERATION in $(seq 1 $MAX_ITERATIONS); do
|
|
100
|
+
echo "=== Iteration $ITERATION/$MAX_ITERATIONS ==="
|
|
101
|
+
|
|
102
|
+
# Step 1: Wait for Loop 3 agents to complete
|
|
103
|
+
echo "[Loop 3] Waiting for implementers to complete..."
|
|
104
|
+
IFS=',' read -ra AGENTS <<< "$LOOP3_AGENTS"
|
|
105
|
+
|
|
106
|
+
for AGENT in "${AGENTS[@]}"; do
|
|
107
|
+
DONE_KEY="swarm:${TASK_ID}:${AGENT}:done"
|
|
108
|
+
echo " Waiting for $AGENT..."
|
|
109
|
+
|
|
110
|
+
# BLPOP with timeout (blocks until agent signals done)
|
|
111
|
+
RESULT=$(timeout $TIMEOUT redis-cli blpop "$DONE_KEY" 0 2>/dev/null || echo "")
|
|
112
|
+
|
|
113
|
+
if [ -z "$RESULT" ]; then
|
|
114
|
+
echo " ❌ ERROR: $AGENT timeout after ${TIMEOUT}s"
|
|
115
|
+
exit 1
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
echo " ✅ $AGENT complete"
|
|
119
|
+
done
|
|
120
|
+
|
|
121
|
+
echo "[Loop 3] All implementers complete!"
|
|
122
|
+
echo ""
|
|
123
|
+
|
|
124
|
+
# Step 2: Collect Loop 3 confidence scores
|
|
125
|
+
echo "[Loop 3] Collecting confidence scores..."
|
|
126
|
+
LOOP3_CONSENSUS=$(./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh collect \
|
|
127
|
+
--task-id "$TASK_ID" \
|
|
128
|
+
--agent-ids "$LOOP3_AGENTS" | tail -1)
|
|
129
|
+
|
|
130
|
+
echo "[Loop 3] Average confidence: $LOOP3_CONSENSUS"
|
|
131
|
+
|
|
132
|
+
# Gate check
|
|
133
|
+
if (( $(echo "$LOOP3_CONSENSUS < $GATE" | bc -l) )); then
|
|
134
|
+
echo "❌ Gate FAILED ($LOOP3_CONSENSUS < $GATE)"
|
|
135
|
+
echo "Decision: RELAUNCH iteration $((ITERATION + 1))"
|
|
136
|
+
|
|
137
|
+
# Wake Loop 3 agents for next iteration
|
|
138
|
+
IFS=',' read -ra AGENTS <<< "$LOOP3_AGENTS"
|
|
139
|
+
for AGENT in "${AGENTS[@]}"; do
|
|
140
|
+
./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh wake \
|
|
141
|
+
--task-id "$TASK_ID" \
|
|
142
|
+
--agent-id "$AGENT" \
|
|
143
|
+
--reason "gate_failed" \
|
|
144
|
+
--iteration $((ITERATION + 1)) \
|
|
145
|
+
--feedback "Improve confidence from $LOOP3_CONSENSUS to >$GATE"
|
|
146
|
+
done
|
|
147
|
+
|
|
148
|
+
continue # Next iteration
|
|
149
|
+
fi
|
|
150
|
+
|
|
151
|
+
echo "✅ Gate PASSED ($LOOP3_CONSENSUS >= $GATE)"
|
|
152
|
+
echo ""
|
|
153
|
+
|
|
154
|
+
# Step 3: Wait for Loop 2 validators to complete
|
|
155
|
+
echo "[Loop 2] Waiting for validators to complete..."
|
|
156
|
+
IFS=',' read -ra VALIDATORS <<< "$LOOP2_AGENTS"
|
|
157
|
+
|
|
158
|
+
for VALIDATOR in "${VALIDATORS[@]}"; do
|
|
159
|
+
DONE_KEY="swarm:${TASK_ID}:${VALIDATOR}:done"
|
|
160
|
+
echo " Waiting for $VALIDATOR..."
|
|
161
|
+
|
|
162
|
+
RESULT=$(timeout $TIMEOUT redis-cli blpop "$DONE_KEY" 0 2>/dev/null || echo "")
|
|
163
|
+
|
|
164
|
+
if [ -z "$RESULT" ]; then
|
|
165
|
+
echo " ❌ ERROR: $VALIDATOR timeout after ${TIMEOUT}s"
|
|
166
|
+
exit 1
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
echo " ✅ $VALIDATOR complete"
|
|
170
|
+
done
|
|
171
|
+
|
|
172
|
+
echo "[Loop 2] All validators complete!"
|
|
173
|
+
echo ""
|
|
174
|
+
|
|
175
|
+
# Step 4: Collect Loop 2 consensus scores
|
|
176
|
+
echo "[Loop 2] Collecting consensus scores..."
|
|
177
|
+
LOOP2_CONSENSUS=$(./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh collect \
|
|
178
|
+
--task-id "$TASK_ID" \
|
|
179
|
+
--agent-ids "$LOOP2_AGENTS" | tail -1)
|
|
180
|
+
|
|
181
|
+
echo "[Loop 2] Average consensus: $LOOP2_CONSENSUS"
|
|
182
|
+
|
|
183
|
+
# Consensus check
|
|
184
|
+
if (( $(echo "$LOOP2_CONSENSUS >= $CONSENSUS" | bc -l) )); then
|
|
185
|
+
echo "✅ CONSENSUS REACHED ($LOOP2_CONSENSUS >= $CONSENSUS)"
|
|
186
|
+
echo ""
|
|
187
|
+
|
|
188
|
+
# Signal Product Owner that consensus is ready
|
|
189
|
+
DECISION_KEY="swarm:${TASK_ID}:${PRODUCT_OWNER}:consensus-ready"
|
|
190
|
+
redis-cli lpush "$DECISION_KEY" "{\"iteration\": $ITERATION, \"consensus\": $LOOP2_CONSENSUS}" > /dev/null
|
|
191
|
+
|
|
192
|
+
# Wait for Product Owner decision
|
|
193
|
+
echo "[Product Owner] Waiting for GOAP decision..."
|
|
194
|
+
DECISION_KEY="swarm:${TASK_ID}:${PRODUCT_OWNER}:decision"
|
|
195
|
+
DECISION=$(timeout $TIMEOUT redis-cli blpop "$DECISION_KEY" 0 2>/dev/null | tail -1)
|
|
196
|
+
|
|
197
|
+
if [ -z "$DECISION" ]; then
|
|
198
|
+
echo "❌ ERROR: Product Owner timeout"
|
|
199
|
+
exit 1
|
|
200
|
+
fi
|
|
201
|
+
|
|
202
|
+
DECISION_TYPE=$(echo "$DECISION" | jq -r '.decision')
|
|
203
|
+
|
|
204
|
+
echo "[Product Owner] Decision: $DECISION_TYPE"
|
|
205
|
+
|
|
206
|
+
if [ "$DECISION_TYPE" = "PROCEED" ]; then
|
|
207
|
+
echo ""
|
|
208
|
+
echo "🎉 CFN Loop Complete!"
|
|
209
|
+
echo "Final Consensus: $LOOP2_CONSENSUS (Iteration $ITERATION)"
|
|
210
|
+
|
|
211
|
+
# Wake all agents with completion signal
|
|
212
|
+
IFS=',' read -ra ALL_AGENTS <<< "$LOOP3_AGENTS,$LOOP2_AGENTS"
|
|
213
|
+
for AGENT in "${ALL_AGENTS[@]}"; do
|
|
214
|
+
./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh wake \
|
|
215
|
+
--task-id "$TASK_ID" \
|
|
216
|
+
--agent-id "$AGENT" \
|
|
217
|
+
--reason "cfn_complete" \
|
|
218
|
+
--iteration "$ITERATION"
|
|
219
|
+
done
|
|
220
|
+
|
|
221
|
+
exit 0
|
|
222
|
+
fi
|
|
223
|
+
|
|
224
|
+
else
|
|
225
|
+
echo "⚠️ CONSENSUS NOT REACHED ($LOOP2_CONSENSUS < $CONSENSUS)"
|
|
226
|
+
echo "Decision: RELAUNCH iteration $((ITERATION + 1))"
|
|
227
|
+
echo ""
|
|
228
|
+
fi
|
|
229
|
+
|
|
230
|
+
# Relaunch next iteration
|
|
231
|
+
if [ $ITERATION -eq $MAX_ITERATIONS ]; then
|
|
232
|
+
echo "❌ Maximum iterations ($MAX_ITERATIONS) reached without consensus"
|
|
233
|
+
exit 1
|
|
234
|
+
fi
|
|
235
|
+
|
|
236
|
+
# Wake all agents for next iteration
|
|
237
|
+
echo "[Coordinator] Waking agents for iteration $((ITERATION + 1))..."
|
|
238
|
+
IFS=',' read -ra ALL_AGENTS <<< "$LOOP3_AGENTS,$LOOP2_AGENTS"
|
|
239
|
+
for AGENT in "${ALL_AGENTS[@]}"; do
|
|
240
|
+
./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh wake \
|
|
241
|
+
--task-id "$TASK_ID" \
|
|
242
|
+
--agent-id "$AGENT" \
|
|
243
|
+
--reason "cfn_loop_iteration" \
|
|
244
|
+
--iteration $((ITERATION + 1)) \
|
|
245
|
+
--feedback "Improve consensus from $LOOP2_CONSENSUS to >=$CONSENSUS"
|
|
246
|
+
done
|
|
247
|
+
|
|
248
|
+
echo ""
|
|
249
|
+
done
|
|
250
|
+
|
|
251
|
+
echo "❌ CFN Loop failed after $MAX_ITERATIONS iterations"
|
|
252
|
+
exit 1
|