claude-flow-novice 2.9.1 → 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/cli/agent-executor.js +1 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/package.json +43 -7
- package/readme/README.md +15 -4
- package/scripts/init-project.js +39 -2
- 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,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]}")/.claude/skills/cfn-cfn-.." && 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,271 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# Agent Spawning Helper with Context Injection - ACE System Phase 1.4
|
|
5
|
+
# Spawns Loop 3 agents with enriched historical context from Redis
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# ./spawn-agents.sh --task-id TASK_ID --iteration N --agents AGENTS --original-context '{...}'
|
|
9
|
+
#
|
|
10
|
+
# Arguments:
|
|
11
|
+
# --task-id Unique task identifier (required)
|
|
12
|
+
# --iteration Current iteration number (required)
|
|
13
|
+
# --agents Comma-separated list of agent types (required)
|
|
14
|
+
# --original-context Original task context string (required)
|
|
15
|
+
#
|
|
16
|
+
# Output:
|
|
17
|
+
# Spawns agents in background with enriched context
|
|
18
|
+
# Returns: 0 on success, 1 on failure
|
|
19
|
+
# Logs to: .artifacts/logs/spawn-agents-{TASK_ID}.log
|
|
20
|
+
#
|
|
21
|
+
# Performance:
|
|
22
|
+
# - Target injection overhead: < 200ms per agent
|
|
23
|
+
# - Graceful fallback to original context on injection failure
|
|
24
|
+
##############################################################################
|
|
25
|
+
|
|
26
|
+
set -euo pipefail
|
|
27
|
+
|
|
28
|
+
# Script directory and project root
|
|
29
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
30
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../../.." && pwd)"
|
|
31
|
+
|
|
32
|
+
# Default values
|
|
33
|
+
TASK_ID=""
|
|
34
|
+
ITERATION=""
|
|
35
|
+
AGENTS=""
|
|
36
|
+
ORIGINAL_CONTEXT=""
|
|
37
|
+
LOG_DIR="$PROJECT_ROOT/.artifacts/logs"
|
|
38
|
+
REDIS_COORD_SKILL="$PROJECT_ROOT/.claude/skills/cfn-redis-coordination"
|
|
39
|
+
|
|
40
|
+
# Ensure log directory exists
|
|
41
|
+
mkdir -p "$LOG_DIR"
|
|
42
|
+
|
|
43
|
+
##############################################################################
|
|
44
|
+
# Logging Functions
|
|
45
|
+
##############################################################################
|
|
46
|
+
|
|
47
|
+
log_info() {
|
|
48
|
+
local message="$1"
|
|
49
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [INFO] $message" | tee -a "$LOG_DIR/spawn-agents-${TASK_ID}.log"
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
log_warn() {
|
|
53
|
+
local message="$1"
|
|
54
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [WARN] $message" | tee -a "$LOG_DIR/spawn-agents-${TASK_ID}.log"
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
log_error() {
|
|
58
|
+
local message="$1"
|
|
59
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [ERROR] $message" | tee -a "$LOG_DIR/spawn-agents-${TASK_ID}.log"
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
##############################################################################
|
|
63
|
+
# Helper Functions
|
|
64
|
+
##############################################################################
|
|
65
|
+
|
|
66
|
+
sanitize_input() {
|
|
67
|
+
local input="$1"
|
|
68
|
+
# Remove dangerous characters (only allow alphanumeric, dash, underscore, dot, comma, colon)
|
|
69
|
+
echo "$input" | sed 's/[^a-zA-Z0-9._:,-]//g'
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
enrich_context_for_agent() {
|
|
73
|
+
local task_id="$1"
|
|
74
|
+
local agent_type="$2"
|
|
75
|
+
local original_context="$3"
|
|
76
|
+
|
|
77
|
+
# Measure injection time
|
|
78
|
+
local start_time=$(date +%s%3N)
|
|
79
|
+
|
|
80
|
+
# Call context-injection.sh
|
|
81
|
+
local enriched_context
|
|
82
|
+
enriched_context=$("$SCRIPT_DIR/context-injection.sh" \
|
|
83
|
+
--task-id "$task_id" \
|
|
84
|
+
--agent-type "$agent_type" \
|
|
85
|
+
--original-context "$original_context" 2>&1)
|
|
86
|
+
|
|
87
|
+
local exit_code=$?
|
|
88
|
+
local end_time=$(date +%s%3N)
|
|
89
|
+
local duration=$((end_time - start_time))
|
|
90
|
+
|
|
91
|
+
# Check if injection succeeded
|
|
92
|
+
if [ $exit_code -eq 0 ] && echo "$enriched_context" | jq . >/dev/null 2>&1; then
|
|
93
|
+
# Validate JSON structure
|
|
94
|
+
if echo "$enriched_context" | jq -e '.historical_context' >/dev/null 2>&1; then
|
|
95
|
+
log_info "Context injection successful for $agent_type: ${duration}ms"
|
|
96
|
+
|
|
97
|
+
# Log context size
|
|
98
|
+
local hist_size=$(echo "$enriched_context" | jq -r '.historical_context' | wc -c)
|
|
99
|
+
log_injection_metrics "$agent_type" "$duration" "$hist_size"
|
|
100
|
+
|
|
101
|
+
# Warn if injection is slow
|
|
102
|
+
if [ "$duration" -gt 200 ]; then
|
|
103
|
+
log_warn "Context injection exceeded 200ms threshold: ${duration}ms"
|
|
104
|
+
fi
|
|
105
|
+
|
|
106
|
+
echo "$enriched_context"
|
|
107
|
+
return 0
|
|
108
|
+
fi
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
# Injection failed - log and return original context
|
|
112
|
+
log_warn "Context injection failed for $agent_type, using original context"
|
|
113
|
+
echo "$original_context"
|
|
114
|
+
return 1
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
log_injection_metrics() {
|
|
118
|
+
local agent="$1"
|
|
119
|
+
local duration_ms="$2"
|
|
120
|
+
local context_size="$3"
|
|
121
|
+
|
|
122
|
+
log_info "Agent $agent metrics: injection ${duration_ms}ms, historical ${context_size} chars"
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
##############################################################################
|
|
126
|
+
# Main Spawning Function
|
|
127
|
+
##############################################################################
|
|
128
|
+
|
|
129
|
+
spawn_agents_with_context() {
|
|
130
|
+
local task_id="$1"
|
|
131
|
+
local iteration="$2"
|
|
132
|
+
local agents="$3"
|
|
133
|
+
local original_context="$4"
|
|
134
|
+
|
|
135
|
+
log_info "Starting agent spawning with context injection"
|
|
136
|
+
log_info "Task ID: $task_id, Iteration: $iteration"
|
|
137
|
+
|
|
138
|
+
# Convert comma-separated agents to array
|
|
139
|
+
IFS=',' read -ra AGENT_ARRAY <<< "$agents"
|
|
140
|
+
|
|
141
|
+
# Track agent instance counts for unique ID generation
|
|
142
|
+
declare -A AGENT_INSTANCE_COUNTS
|
|
143
|
+
|
|
144
|
+
# Spawn each agent
|
|
145
|
+
local spawned_count=0
|
|
146
|
+
local injection_success_count=0
|
|
147
|
+
|
|
148
|
+
for agent_type in "${AGENT_ARRAY[@]}"; do
|
|
149
|
+
# Trim whitespace
|
|
150
|
+
agent_type=$(echo "$agent_type" | xargs)
|
|
151
|
+
|
|
152
|
+
# Generate unique agent ID (agent-type-iteration-instance)
|
|
153
|
+
AGENT_INSTANCE_COUNTS["$agent_type"]=$((${AGENT_INSTANCE_COUNTS["$agent_type"]:-0} + 1))
|
|
154
|
+
INSTANCE_NUM="${AGENT_INSTANCE_COUNTS["$agent_type"]}"
|
|
155
|
+
UNIQUE_AGENT_ID="${agent_type}-${iteration}-${INSTANCE_NUM}"
|
|
156
|
+
|
|
157
|
+
log_info "Spawning agent: $agent_type (ID: $UNIQUE_AGENT_ID)"
|
|
158
|
+
|
|
159
|
+
# Sanitize inputs
|
|
160
|
+
local safe_agent_type safe_task_id safe_agent_id
|
|
161
|
+
safe_agent_type=$(sanitize_input "$agent_type") || {
|
|
162
|
+
log_error "Failed to sanitize agent type: $agent_type"
|
|
163
|
+
continue
|
|
164
|
+
}
|
|
165
|
+
safe_task_id=$(sanitize_input "$task_id") || {
|
|
166
|
+
log_error "Failed to sanitize task ID: $task_id"
|
|
167
|
+
continue
|
|
168
|
+
}
|
|
169
|
+
safe_agent_id=$(sanitize_input "$UNIQUE_AGENT_ID") || {
|
|
170
|
+
log_error "Failed to sanitize agent ID: $UNIQUE_AGENT_ID"
|
|
171
|
+
continue
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
# Enrich context with historical data
|
|
175
|
+
local context_to_use
|
|
176
|
+
context_to_use=$(enrich_context_for_agent "$safe_task_id" "$safe_agent_type" "$original_context")
|
|
177
|
+
local injection_status=$?
|
|
178
|
+
|
|
179
|
+
if [ $injection_status -eq 0 ]; then
|
|
180
|
+
((injection_success_count++))
|
|
181
|
+
fi
|
|
182
|
+
|
|
183
|
+
# Spawn agent in background with enriched context
|
|
184
|
+
npx claude-flow-novice agent "$safe_agent_type" \
|
|
185
|
+
--task-id "$safe_task_id" \
|
|
186
|
+
--agent-id "$safe_agent_id" \
|
|
187
|
+
--iteration "$iteration" \
|
|
188
|
+
--context "$context_to_use" &
|
|
189
|
+
|
|
190
|
+
# Store PID for monitoring
|
|
191
|
+
AGENT_PID=$!
|
|
192
|
+
"$REDIS_COORD_SKILL/store-context.sh" \
|
|
193
|
+
--task-id "$task_id" \
|
|
194
|
+
--key "${UNIQUE_AGENT_ID}:pid" \
|
|
195
|
+
--value "{\"pid\": $AGENT_PID}" \
|
|
196
|
+
--namespace "swarm" >/dev/null
|
|
197
|
+
|
|
198
|
+
# Store agent ID mapping for later retrieval
|
|
199
|
+
redis-cli SADD "swarm:${task_id}:loop3:agent_ids:iteration${iteration}" "$UNIQUE_AGENT_ID" >/dev/null
|
|
200
|
+
|
|
201
|
+
log_info "Agent $safe_agent_type spawned (PID: $AGENT_PID)"
|
|
202
|
+
((spawned_count++))
|
|
203
|
+
done
|
|
204
|
+
|
|
205
|
+
# Log summary
|
|
206
|
+
log_info "Agent spawning complete: $spawned_count agents spawned"
|
|
207
|
+
log_info "Context injection success rate: $injection_success_count/$spawned_count"
|
|
208
|
+
|
|
209
|
+
if [ "$spawned_count" -eq 0 ]; then
|
|
210
|
+
log_error "No agents were spawned"
|
|
211
|
+
return 1
|
|
212
|
+
fi
|
|
213
|
+
|
|
214
|
+
return 0
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
##############################################################################
|
|
218
|
+
# Argument Parsing
|
|
219
|
+
##############################################################################
|
|
220
|
+
|
|
221
|
+
parse_arguments() {
|
|
222
|
+
while [[ $# -gt 0 ]]; do
|
|
223
|
+
case "$1" in
|
|
224
|
+
--task-id)
|
|
225
|
+
TASK_ID="$2"
|
|
226
|
+
shift 2
|
|
227
|
+
;;
|
|
228
|
+
--iteration)
|
|
229
|
+
ITERATION="$2"
|
|
230
|
+
shift 2
|
|
231
|
+
;;
|
|
232
|
+
--agents)
|
|
233
|
+
AGENTS="$2"
|
|
234
|
+
shift 2
|
|
235
|
+
;;
|
|
236
|
+
--original-context)
|
|
237
|
+
ORIGINAL_CONTEXT="$2"
|
|
238
|
+
shift 2
|
|
239
|
+
;;
|
|
240
|
+
*)
|
|
241
|
+
echo "Unknown argument: $1"
|
|
242
|
+
exit 1
|
|
243
|
+
;;
|
|
244
|
+
esac
|
|
245
|
+
done
|
|
246
|
+
|
|
247
|
+
# Validate required arguments
|
|
248
|
+
if [ -z "$TASK_ID" ] || [ -z "$ITERATION" ] || [ -z "$AGENTS" ] || [ -z "$ORIGINAL_CONTEXT" ]; then
|
|
249
|
+
echo "Error: Missing required arguments"
|
|
250
|
+
echo "Usage: $0 --task-id TASK_ID --iteration N --agents AGENTS --original-context CONTEXT"
|
|
251
|
+
exit 1
|
|
252
|
+
fi
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
##############################################################################
|
|
256
|
+
# Main Execution
|
|
257
|
+
##############################################################################
|
|
258
|
+
|
|
259
|
+
main() {
|
|
260
|
+
parse_arguments "$@"
|
|
261
|
+
|
|
262
|
+
# Execute spawning with context injection
|
|
263
|
+
spawn_agents_with_context "$TASK_ID" "$ITERATION" "$AGENTS" "$ORIGINAL_CONTEXT"
|
|
264
|
+
|
|
265
|
+
exit $?
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
# Run main function if script is executed directly
|
|
269
|
+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
|
270
|
+
main "$@"
|
|
271
|
+
fi
|
|
@@ -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
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# CFN Loop Execution Monitoring Script
|
|
4
|
+
# Version: 1.0.0
|
|
5
|
+
# Purpose: Real-time monitoring and metrics collection for CFN Loop orchestration
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
# Logging and output configuration
|
|
10
|
+
LOG_DIR="/tmp/cfn-loop-monitoring"
|
|
11
|
+
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
|
|
12
|
+
METRICS_FILE="${LOG_DIR}/metrics_${TIMESTAMP}.json"
|
|
13
|
+
|
|
14
|
+
# Dependency checks
|
|
15
|
+
command -v redis-cli >/dev/null 2>&1 || {
|
|
16
|
+
echo "Error: redis-cli is required but not installed." >&2
|
|
17
|
+
exit 1
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
# Configuration and argument parsing
|
|
21
|
+
TASK_ID=""
|
|
22
|
+
EXPORT_PATH=""
|
|
23
|
+
INTERVAL=5 # Default monitoring interval (seconds)
|
|
24
|
+
TIMEOUT=3600 # Default timeout (1 hour)
|
|
25
|
+
|
|
26
|
+
usage() {
|
|
27
|
+
echo "Usage: $0 --task-id <task_id> [--export <export_path>] [--interval <seconds>] [--timeout <seconds>]"
|
|
28
|
+
exit 1
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
# Parse command line arguments
|
|
32
|
+
while [[ $# -gt 0 ]]; do
|
|
33
|
+
case $1 in
|
|
34
|
+
--task-id)
|
|
35
|
+
TASK_ID="$2"
|
|
36
|
+
shift 2
|
|
37
|
+
;;
|
|
38
|
+
--export)
|
|
39
|
+
EXPORT_PATH="$2"
|
|
40
|
+
shift 2
|
|
41
|
+
;;
|
|
42
|
+
--interval)
|
|
43
|
+
INTERVAL="$2"
|
|
44
|
+
shift 2
|
|
45
|
+
;;
|
|
46
|
+
--timeout)
|
|
47
|
+
TIMEOUT="$2"
|
|
48
|
+
shift 2
|
|
49
|
+
;;
|
|
50
|
+
*)
|
|
51
|
+
usage
|
|
52
|
+
;;
|
|
53
|
+
esac
|
|
54
|
+
done
|
|
55
|
+
|
|
56
|
+
[[ -z "$TASK_ID" ]] && { echo "Error: task-id is required"; usage; }
|
|
57
|
+
|
|
58
|
+
# Create log directory
|
|
59
|
+
mkdir -p "$LOG_DIR"
|
|
60
|
+
|
|
61
|
+
# Monitoring function
|
|
62
|
+
monitor_cfn_loop() {
|
|
63
|
+
local start_time=$(date +%s)
|
|
64
|
+
local metrics=()
|
|
65
|
+
local current_iteration=1
|
|
66
|
+
local total_iterations=0
|
|
67
|
+
local gate_check_passed=false
|
|
68
|
+
local consensus_achieved=false
|
|
69
|
+
|
|
70
|
+
# Initialize metrics JSON structure
|
|
71
|
+
local metrics_json=$(jq -n \
|
|
72
|
+
--arg task_id "$TASK_ID" \
|
|
73
|
+
--arg start_time "$(date -Iseconds)" \
|
|
74
|
+
'{
|
|
75
|
+
task_id: $task_id,
|
|
76
|
+
start_time: $start_time,
|
|
77
|
+
iterations: [],
|
|
78
|
+
performance: {},
|
|
79
|
+
status: "in_progress"
|
|
80
|
+
}')
|
|
81
|
+
|
|
82
|
+
echo "Starting monitoring for CFN Loop Task ID: $TASK_ID"
|
|
83
|
+
echo "Monitoring interval: $INTERVAL seconds"
|
|
84
|
+
echo "Timeout: $TIMEOUT seconds"
|
|
85
|
+
|
|
86
|
+
while true; do
|
|
87
|
+
# Track iteration metrics
|
|
88
|
+
local iteration_start=$(date +%s)
|
|
89
|
+
|
|
90
|
+
# Check Loop 3 completion
|
|
91
|
+
local loop3_agents=$(redis-cli smembers "cfn_loop:${TASK_ID}:loop3_agents")
|
|
92
|
+
local loop3_completed=$(redis-cli scard "cfn_loop:${TASK_ID}:loop3_completed")
|
|
93
|
+
local loop3_total=$(echo "$loop3_agents" | wc -l)
|
|
94
|
+
|
|
95
|
+
# Check Gate Check
|
|
96
|
+
local gate_confidence=$(redis-cli get "cfn_loop:${TASK_ID}:gate_confidence")
|
|
97
|
+
if [[ -n "$gate_confidence" && $(echo "$gate_confidence >= 0.75" | bc) -eq 1 ]]; then
|
|
98
|
+
gate_check_passed=true
|
|
99
|
+
echo "✅ Gate Check Passed (Confidence: $gate_confidence)"
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
# Check Loop 2 Consensus
|
|
103
|
+
local consensus_score=$(redis-cli get "cfn_loop:${TASK_ID}:consensus_score")
|
|
104
|
+
if [[ -n "$consensus_score" && $(echo "$consensus_score >= 0.90" | bc) -eq 1 ]]; then
|
|
105
|
+
consensus_achieved=true
|
|
106
|
+
echo "✅ Consensus Achieved (Score: $consensus_score)"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Collect performance metrics
|
|
110
|
+
local iteration_end=$(date +%s)
|
|
111
|
+
local iteration_duration=$((iteration_end - iteration_start))
|
|
112
|
+
|
|
113
|
+
# Update metrics JSON
|
|
114
|
+
metrics_json=$(echo "$metrics_json" | jq --arg iteration "$current_iteration" \
|
|
115
|
+
--arg duration "$iteration_duration" \
|
|
116
|
+
--arg loop3_completed "$loop3_completed" \
|
|
117
|
+
--arg loop3_total "$loop3_total" \
|
|
118
|
+
'.iterations += [{
|
|
119
|
+
number: $iteration,
|
|
120
|
+
duration: $duration,
|
|
121
|
+
loop3_completed: $loop3_completed,
|
|
122
|
+
loop3_total: $loop3_total
|
|
123
|
+
}]')
|
|
124
|
+
|
|
125
|
+
# Exit conditions
|
|
126
|
+
if [[ "$gate_check_passed" == "true" && "$consensus_achieved" == "true" ]]; then
|
|
127
|
+
metrics_json=$(echo "$metrics_json" | jq '.status = "success"')
|
|
128
|
+
break
|
|
129
|
+
fi
|
|
130
|
+
|
|
131
|
+
# Check for timeout
|
|
132
|
+
local current_time=$(date +%s)
|
|
133
|
+
local total_runtime=$((current_time - start_time))
|
|
134
|
+
if [[ $total_runtime -ge $TIMEOUT ]]; then
|
|
135
|
+
metrics_json=$(echo "$metrics_json" | jq '.status = "timeout"')
|
|
136
|
+
echo "❌ Monitoring timed out after $TIMEOUT seconds"
|
|
137
|
+
break
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
current_iteration=$((current_iteration + 1))
|
|
141
|
+
sleep "$INTERVAL"
|
|
142
|
+
done
|
|
143
|
+
|
|
144
|
+
# Export metrics if export path provided
|
|
145
|
+
if [[ -n "$EXPORT_PATH" ]]; then
|
|
146
|
+
echo "$metrics_json" > "$EXPORT_PATH"
|
|
147
|
+
echo "Metrics exported to $EXPORT_PATH"
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
# Final status report
|
|
151
|
+
local status=$(echo "$metrics_json" | jq -r '.status')
|
|
152
|
+
echo "CFN Loop Execution Monitoring Complete. Status: $status"
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
# Execute monitoring
|
|
156
|
+
monitor_cfn_loop
|