claude-flow-novice 2.14.37 → 2.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/cfn-extras/agents/cfn-coordinator-enterprise.md +1303 -0
- package/.claude/cfn-extras/agents/cfn-coordinator-mvp.md +942 -0
- package/.claude/cfn-extras/agents/cfn-coordinator-standard.md +1062 -0
- package/.claude/cfn-extras/agents/cfn-loop-coordinator.md +157 -0
- package/.claude/cfn-extras/agents/coordinator.md +182 -0
- package/.claude/cfn-extras/agents/cost-savings-cfn-loop-coordinator.md +760 -0
- package/.claude/cfn-extras/agents/cost-savings-coordinator.md +173 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator-enhanced.md +147 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md +162 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +161 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md +729 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +728 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/byzantine-coordinator.md +100 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/cfn-coordinator-enterprise.md +323 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/cfn-coordinator-mvp.md +157 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/cfn-coordinator-standard.md +229 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/cfn-coordinator-unified.md +149 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/coordinator-hybrid.md +231 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/gossip-coordinator.md +165 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/hierarchical-coordinator.md +95 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md +132 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +131 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/task-coordinator.md +109 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/test-coordinator.md +142 -0
- package/.claude/commands/cfn-docker/CFN_DOCKER_NATIVE.md +295 -0
- package/.claude/commands/cfn-docker-core-test-suite.md +326 -0
- package/.claude/commands/cfn-loop-cli.md +1 -1
- package/.claude/commands/switch-api.md +48 -13
- package/.claude/root-claude-distribute/CFN-CLAUDE.md +177 -426
- package/.claude/skills/cfn-agent-spawning/get-agent-provider-env.sh +107 -0
- package/.claude/skills/cfn-agent-spawning/parse-agent-provider.sh +59 -0
- package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +51 -24
- package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +763 -38
- package/.claude/skills/cfn-docker-redis-coordination/coordinate.sh +25 -10
- package/.claude/skills/cfn-docker-redis-coordination/coordinate.sh.backup-1763145142 +641 -0
- package/.claude/skills/cfn-docker-skill-mcp-selection/skill-mcp-selector.js +471 -471
- package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +18 -9
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +52 -23
- package/.claude/skills/cfn-redis-coordination/complete-swarm.sh +3 -3
- package/.claude/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
- package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +9 -0
- package/.claude/skills/cfn-redis-coordination/report-completion.sh +7 -7
- package/claude-assets/agents/cfn-dev-team/architecture/api-designer-persona.md +2 -0
- package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +2 -0
- package/claude-assets/agents/cfn-dev-team/architecture/planner.md +2 -0
- package/claude-assets/agents/cfn-dev-team/architecture/system-architect.md +2 -0
- package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +419 -563
- package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +2 -0
- package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +5 -0
- package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +2 -0
- package/claude-assets/agents/cfn-dev-team/documentation/README-VALIDATION.md +2 -0
- package/claude-assets/agents/cfn-dev-team/documentation/agent-type-guidelines.md +2 -0
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +1 -1
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +1 -1
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +2 -0
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/quality-metrics.md +2 -0
- package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +2 -0
- package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +1 -1
- package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +1 -1
- package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +2 -0
- package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +2 -0
- package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +2 -0
- package/claude-assets/agents/cfn-dev-team/testers/unit/tdd-london-unit-swarm.md +4 -0
- package/claude-assets/agents/cfn-dev-team/testers/validation/validation-production-validator.md +1 -1
- package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +825 -17
- package/claude-assets/agents/docker-team/micro-sprint-planner.md +747 -0
- package/claude-assets/agents/docker-ts-fixer.md +56 -0
- package/claude-assets/agents/typescript-specialist.md +280 -0
- package/claude-assets/cfn-extras/agents/cfn-coordinator-enterprise.md +1303 -0
- package/claude-assets/cfn-extras/agents/cfn-coordinator-mvp.md +942 -0
- package/claude-assets/cfn-extras/agents/cfn-coordinator-standard.md +1062 -0
- package/claude-assets/cfn-extras/agents/cfn-loop-coordinator.md +157 -0
- package/claude-assets/cfn-extras/agents/coordinator.md +182 -0
- package/claude-assets/cfn-extras/agents/cost-savings-cfn-loop-coordinator.md +760 -0
- package/claude-assets/cfn-extras/agents/cost-savings-coordinator.md +173 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator-enhanced.md +147 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md +162 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +161 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md +729 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +728 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/byzantine-coordinator.md +100 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/cfn-coordinator-enterprise.md +323 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/cfn-coordinator-mvp.md +157 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/cfn-coordinator-standard.md +229 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/cfn-coordinator-unified.md +149 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/coordinator-hybrid.md +231 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/gossip-coordinator.md +165 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/hierarchical-coordinator.md +95 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md +132 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +131 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/task-coordinator.md +109 -0
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/test-coordinator.md +142 -0
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/SKILL.md +36 -0
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +60 -0
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-api-validation/test-endpoints.sh +54 -0
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-context-pruner/SKILL.md +75 -0
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-context-pruner/prune-context.sh +73 -0
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-task-mode-safety/cli-coordination.sh +519 -0
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-task-mode-safety/mode-detection.sh +326 -0
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-task-mode-sanitize/task-mode-env-sanitizer.sh +267 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/SKILL.md +33 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +92 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-memory-monitoring/SKILL.md +531 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/SKILL.md +30 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +80 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/SKILL.md +31 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +101 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/collect-metrics.sh +249 -0
- package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +111 -0
- package/claude-assets/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +192 -0
- package/claude-assets/cfn-extras/skills/deprecated/cfn-simplified-agent-lifecycle/COST_ANALYSIS.md +49 -0
- package/claude-assets/cfn-extras/skills/deprecated/cfn-simplified-agent-lifecycle/DESIGN.md +98 -0
- package/claude-assets/cfn-extras/skills/deprecated/cfn-simplified-agent-lifecycle/MIGRATION_PLAN.md +74 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/SKILL.md +392 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-analytics-data/SKILL.md +124 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-analytics-data/operations/get-ad-performance.sh +105 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-analytics-data/operations/get-conversion-funnel.sh +102 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-analytics-data/operations/get-email-performance.sh +105 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-analytics-data/operations/get-social-engagement.sh +105 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-analytics-data/operations/get-website-traffic.sh +107 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/SKILL.md +340 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-competitive-intel/SKILL.md +350 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-competitive-intel/operations/get-backlink-profile.sh +154 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-competitive-intel/operations/get-keyword-rankings.sh +173 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-competitive-intel/operations/get-trending-topics.sh +147 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-competitive-intel/operations/monitor-competitor.sh +146 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-competitive-intel/operations/search-brand-mentions.sh +167 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-crm-contacts/SKILL.md +116 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-crm-contacts/operations/add-to-segment.sh +78 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-crm-contacts/operations/create-contact.sh +113 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-crm-contacts/operations/get-contact.sh +86 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-crm-contacts/operations/remove-from-segment.sh +78 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-crm-contacts/operations/update-contact.sh +120 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-email-campaigns/SKILL.md +106 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-email-campaigns/operations/create-campaign.sh +123 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-email-campaigns/operations/get-campaign-stats.sh +66 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-email-campaigns/operations/list-templates.sh +68 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-email-campaigns/operations/schedule-campaign.sh +85 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-email-campaigns/operations/send-test-email.sh +81 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-landing-pages/SKILL.md +366 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-landing-pages/operations/create-ab-test.sh +231 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-landing-pages/operations/create-landing-page.sh +190 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-landing-pages/operations/get-page-performance.sh +137 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-landing-pages/operations/publish-page.sh +120 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-landing-pages/operations/unpublish-page.sh +108 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-monitoring/SKILL.md +202 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-monitoring/operations/create-crisis-alert.sh +104 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-monitoring/operations/export-report.sh +92 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-monitoring/operations/get-sentiment-analysis.sh +85 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-monitoring/operations/search-mentions.sh +86 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-outreach/SKILL.md +168 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-outreach/operations/search-journalists.sh +74 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-outreach/operations/send-pitch.sh +80 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-outreach/operations/submit-haro-response.sh +88 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-media-outreach/operations/track-pitch-engagement.sh +66 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-press-distribution/SKILL.md +159 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-press-distribution/operations/distribute-press-release.sh +94 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-press-distribution/operations/get-distribution-status.sh +59 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-press-distribution/operations/get-pickup-metrics.sh +72 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-press-distribution/operations/list-templates.sh +53 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/SKILL.md +429 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-social-publishing/SKILL.md +108 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-social-publishing/operations/create-post.sh +104 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-social-publishing/operations/delete-post.sh +76 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-social-publishing/operations/get-post-stats.sh +66 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-social-publishing/operations/schedule-post.sh +85 -0
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-social-publishing/operations/upload-media.sh +88 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/DESIGN.md +117 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/SKILL.md +679 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/invoke-portal-agents.sh +129 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/invoke-portal-dashboard.sh +85 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/invoke-portal-events.sh +125 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/invoke-portal-metrics.sh +112 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/invoke-portal-start.sh +135 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/invoke-portal-stop.sh +121 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +51 -0
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +85 -0
- package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/SKILL.md +200 -0
- package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +244 -0
- package/claude-assets/cfn-extras/skills/utility/cfn-process-instrumentation/SKILL.md +279 -0
- package/claude-assets/cfn-extras/skills/utility/cfn-process-instrumentation/instrument-process.sh +327 -0
- package/claude-assets/commands/cfn-docker/CFN_DOCKER_NATIVE.md +295 -0
- package/claude-assets/commands/cfn-docker-core-test-suite.md +326 -0
- package/claude-assets/commands/cfn-loop-cli.md +1 -1
- package/claude-assets/commands/switch-api.md +48 -13
- package/claude-assets/root-claude-distribute/CFN-CLAUDE.md +177 -426
- package/claude-assets/skills/cfn-agent-spawning/get-agent-provider-env.sh +107 -0
- package/claude-assets/skills/cfn-agent-spawning/parse-agent-provider.sh +59 -0
- package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +51 -24
- package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +763 -38
- package/claude-assets/skills/cfn-docker-redis-coordination/coordinate.sh +25 -10
- package/claude-assets/skills/cfn-docker-redis-coordination/coordinate.sh.backup-1763145142 +641 -0
- package/claude-assets/skills/cfn-docker-skill-mcp-selection/skill-mcp-selector.js +471 -471
- package/claude-assets/skills/cfn-docker-wave-execution/SKILL.md +936 -0
- package/claude-assets/skills/cfn-docker-wave-execution/cleanup-wave.sh +445 -0
- package/claude-assets/skills/cfn-docker-wave-execution/lib/docker-helpers.sh +804 -0
- package/claude-assets/skills/cfn-docker-wave-execution/monitor-wave.sh +485 -0
- package/claude-assets/skills/cfn-docker-wave-execution/spawn-wave.sh +547 -0
- package/claude-assets/skills/cfn-error-batching-strategy/README.md +323 -0
- package/claude-assets/skills/cfn-error-batching-strategy/SKILL.md +1016 -0
- package/claude-assets/skills/cfn-error-batching-strategy/analyze-errors.sh +327 -0
- package/claude-assets/skills/cfn-error-batching-strategy/calculate-waves.sh +256 -0
- package/claude-assets/skills/cfn-error-batching-strategy/cli.sh +523 -0
- package/claude-assets/skills/cfn-error-batching-strategy/cluster-files.sh +196 -0
- package/claude-assets/skills/cfn-error-batching-strategy/create-batches.sh +261 -0
- package/claude-assets/skills/cfn-error-batching-strategy/lib/core-functions.sh +47 -0
- package/claude-assets/skills/cfn-error-batching-strategy/templates/default-tiers.json +22 -0
- package/claude-assets/skills/cfn-error-batching-strategy/tests/test-batching-strategy.sh +498 -0
- package/claude-assets/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +18 -9
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +52 -23
- package/claude-assets/skills/cfn-redis-coordination/complete-swarm.sh +3 -3
- package/claude-assets/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
- package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +9 -0
- package/claude-assets/skills/cfn-redis-coordination/report-completion.sh +7 -7
- package/claude-assets/skills/cfn-wave-checkpoint/SKILL.md +333 -0
- package/claude-assets/skills/cfn-wave-checkpoint/cleanup-orphans.sh +374 -0
- package/claude-assets/skills/cfn-wave-checkpoint/resume-wave.sh +325 -0
- package/claude-assets/skills/cfn-wave-checkpoint/save-checkpoint.sh +284 -0
- package/claude-assets/skills/docker-build/SKILL.md +203 -0
- package/claude-assets/skills/docker-build/build.sh +73 -0
- package/dist/agent/skill-mcp-selector.js +1 -1
- package/dist/agent/skill-mcp-selector.js.map +1 -1
- package/dist/agents/agent-loader.js +146 -165
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/cli/agent-definition-parser.js +36 -16
- package/dist/cli/agent-definition-parser.js.map +1 -1
- package/dist/cli/agent-executor.js +48 -13
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/agent-prompt-builder.js +28 -2
- package/dist/cli/agent-prompt-builder.js.map +1 -1
- package/dist/cli/agent-spawn.js +57 -18
- package/dist/cli/agent-spawn.js.map +1 -1
- package/dist/cli/agent-token-manager.js +5 -1
- package/dist/cli/agent-token-manager.js.map +1 -1
- package/dist/cli/anthropic-client.js +35 -4
- package/dist/cli/anthropic-client.js.map +1 -1
- package/dist/cli/cfn-context.js +9 -6
- package/dist/cli/cfn-context.js.map +1 -1
- package/dist/cli/cfn-metrics.js +8 -1
- package/dist/cli/cfn-metrics.js.map +1 -1
- package/dist/cli/cfn-redis.js +7 -0
- package/dist/cli/cfn-redis.js.map +1 -1
- package/dist/cli/conversation-fork.js +14 -11
- package/dist/cli/conversation-fork.js.map +1 -1
- package/dist/cli/index.js +6 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/iteration-history.js +8 -5
- package/dist/cli/iteration-history.js.map +1 -1
- package/dist/coordination/enhanced-progress-tracker.js +1 -1
- package/dist/coordination/enhanced-progress-tracker.js.map +1 -1
- package/dist/coordination/event-bus.js +1 -1
- package/dist/coordination/event-bus.js.map +1 -1
- package/dist/coordination/redis-messaging-infrastructure.js +1 -1
- package/dist/coordination/redis-messaging-infrastructure.js.map +1 -1
- package/dist/mcp/auth-middleware.js +1 -1
- package/dist/mcp/auth-middleware.js.map +1 -1
- package/dist/mcp/playwright-mcp-server-auth.js +1 -1
- package/dist/mcp/playwright-mcp-server-auth.js.map +1 -1
- package/dist/utils/secret-filter.js +145 -0
- package/dist/utils/secret-filter.js.map +1 -0
- package/package.json +5 -4
- package/scripts/docker-agent-init.sh +106 -0
- package/scripts/docker-rebuild-all-agents.sh +127 -0
- package/scripts/init-project.js +4 -4
- package/scripts/switch-api.sh +151 -16
- package/.claude/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md +0 -471
- package/.claude/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md.backup +0 -481
- package/.claude/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md.backup +0 -371
- package/.claude/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md.backup +0 -637
- package/.claude/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md.backup +0 -398
- package/.claude/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md.backup +0 -401
- package/.claude/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md.backup +0 -552
- package/.claude/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md.backup +0 -223
- package/.claude/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md.backup +0 -367
- package/.claude/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md.backup +0 -247
- package/.claude/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md.backup +0 -269
- package/.claude/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md.backup +0 -311
- package/.claude/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md.backup +0 -222
- package/.claude/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md.backup +0 -408
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md.backup +0 -354
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md.backup +0 -561
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md.backup +0 -480
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md.backup +0 -448
- package/.claude/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md.backup +0 -329
- package/.claude/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md.backup +0 -208
- package/claude-assets/agents/AGENT_LIFECYCLE.md.backup_before_replace +0 -530
- package/claude-assets/agents/README-AGENT_LIFECYCLE.md.backup_before_replace +0 -522
- package/claude-assets/agents/cfn-dev-team/test-agent.md +0 -141
- package/claude-assets/agents/marketing_hybrid/cost_tracker.md +0 -13
- package/claude-assets/agents/marketing_hybrid/docker_deployer.md +0 -13
- package/claude-assets/agents/marketing_hybrid/zai_worker_spawner.md +0 -13
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md +0 -471
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/AGENT_CREATION_REPORT.md.backup +0 -481
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/DELEGATION_MATRIX.md.backup +0 -371
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/INTEGRATION_REQUIREMENTS.md.backup +0 -637
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/cfn-seo-coordinator.md.backup +0 -398
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/competitive-seo-analyst.md.backup +0 -401
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-atomization-specialist.md.backup +0 -552
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/content-seo-strategist.md.backup +0 -223
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/eeat-content-auditor.md.backup +0 -367
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/geo-optimization-expert.md.backup +0 -247
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/link-building-specialist.md.backup +0 -269
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/local-seo-optimizer.md.backup +0 -311
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/programmatic-seo-engineer.md.backup +0 -222
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/schema-markup-engineer.md.backup +0 -408
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-analytics-specialist.md.backup +0 -354
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/accessibility-validator.md.backup +0 -561
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/audience-validator.md.backup +0 -480
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/branding-validator.md.backup +0 -448
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/seo-validators/humanizer-validator.md.backup +0 -329
- package/claude-assets/cfn-agents-ignore/cfn-seo-team/technical-seo-specialist.md.backup +0 -208
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/DELEGATION_MATRIX.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/HUMANIZER_PROMPTS.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/cfn-seo-coordinator.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/competitive-seo-analyst.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/content-atomization-specialist.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/content-seo-strategist.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/eeat-content-auditor.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/geo-optimization-expert.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/link-building-specialist.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/local-seo-optimizer.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/programmatic-seo-engineer.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/schema-markup-engineer.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-analytics-specialist.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-validators/accessibility-validator.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-validators/audience-validator.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-validators/branding-validator.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-validators/humanizer-validator.md +0 -0
- /package/.claude/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/technical-seo-specialist.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/advanced-features}/cfn-agent-swap/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/advanced-features}/cfn-agent-swap/recommend-swap.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/advanced-features}/cfn-api-validation/test-endpoints.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/advanced-features}/cfn-context-pruner/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/advanced-features}/cfn-context-pruner/prune-context.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/README.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/config.json +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/eventbus-wrapper.cjs +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/invoke-event-publish.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/invoke-event-subscribe.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/invoke-lifecycle-track.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/test-event-bus.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/README.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/config.json +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/invoke-fleet-allocate.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/invoke-fleet-balance.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/invoke-fleet-metrics.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/invoke-fleet-register.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/test-fleet-manager.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/advanced-features}/cfn-task-mode-safety/cli-coordination.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/advanced-features}/cfn-task-mode-safety/mode-detection.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/advanced-features}/cfn-task-mode-sanitize/task-mode-env-sanitizer.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/README.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/description-refinement-guide.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/log-skill-invocation.js +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/run-production-criteria-tests.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/skill-analytics-dashboard.js +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/skill-invocation-hook.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/skill-invocations.sql +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/test-corpus.json +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/test-data-generator.js +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/test-manual-override-rate.js +0 -0
- /package/.claude/{skills → cfn-extras/skills/analytics}/cfn-analytics/validate-skill-selection.js +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-improvement-recommender/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-improvement-recommender/recommend-improvements.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-memory-monitoring/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-pattern-extraction/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-pattern-extraction/extract-patterns.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-retrospective-report/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-retrospective-report/generate-report.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-telemetry/collect-metrics.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/analytics}/cfn-telemetry/start-telemetry.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/add-bullet.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/classify-task.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/export-ace-metrics.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/extract-tags.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/format-negative-context.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/init-indexes.sql +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-curate.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-inject.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-query.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-reflect.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-stats.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/log-merge.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/monitor-injection-performance.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/optimize-injection-pipeline.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/query-anti-patterns.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/query-contexts.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/query-reflections.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/001-create-context-reflections.sql +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/README.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/populate-test-data-simple.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/populate-test-data.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/run-migration.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/validate-schema.sql +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/score-relevance-adapter.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/score-relevance.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/sprint-7-lessons.json +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/store-reflection.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/test-ace-skill.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/track-ab-test.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/update-reflection.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/agents-registry-clean.json +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/agents-registry-fixed.json +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/agents-registry.json +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/discover-agents.py +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/discover-agents.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/invoke-registry.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/temp_script.py +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-selector/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-agent-selector/select-agents.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/deprecated}/cfn-cli-setup/validate-cli-environment.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/deprecated}/cfn-simplified-agent-lifecycle/COST_ANALYSIS.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/deprecated}/cfn-simplified-agent-lifecycle/DESIGN.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/deprecated}/cfn-simplified-agent-lifecycle/MIGRATION_PLAN.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-ad-campaigns/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-ad-campaigns/operations/create-campaign.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-ad-campaigns/operations/set-budget.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-analytics-data/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-analytics-data/operations/get-ad-performance.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-analytics-data/operations/get-conversion-funnel.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-analytics-data/operations/get-email-performance.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-analytics-data/operations/get-social-engagement.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-analytics-data/operations/get-website-traffic.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-chatbot-conversations/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-chatbot-conversations/operations/send-message.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-competitive-intel/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-competitive-intel/operations/get-backlink-profile.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-competitive-intel/operations/get-keyword-rankings.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-competitive-intel/operations/get-trending-topics.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-competitive-intel/operations/monitor-competitor.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-competitive-intel/operations/search-brand-mentions.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-crm-contacts/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-crm-contacts/operations/add-to-segment.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-crm-contacts/operations/create-contact.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-crm-contacts/operations/get-contact.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-crm-contacts/operations/remove-from-segment.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-crm-contacts/operations/update-contact.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-email-campaigns/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-email-campaigns/operations/create-campaign.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-email-campaigns/operations/get-campaign-stats.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-email-campaigns/operations/list-templates.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-email-campaigns/operations/schedule-campaign.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-email-campaigns/operations/send-test-email.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-landing-pages/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-landing-pages/operations/create-ab-test.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-landing-pages/operations/create-landing-page.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-landing-pages/operations/get-page-performance.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-landing-pages/operations/publish-page.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-landing-pages/operations/unpublish-page.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-monitoring/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-monitoring/operations/create-crisis-alert.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-monitoring/operations/export-report.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-monitoring/operations/get-sentiment-analysis.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-monitoring/operations/search-mentions.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-outreach/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-outreach/operations/search-journalists.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-outreach/operations/send-pitch.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-outreach/operations/submit-haro-response.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-media-outreach/operations/track-pitch-engagement.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-press-distribution/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-press-distribution/operations/distribute-press-release.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-press-distribution/operations/get-distribution-status.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-press-distribution/operations/get-pickup-metrics.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-press-distribution/operations/list-templates.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-sms-campaigns/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-sms-campaigns/operations/create-campaign.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-sms-campaigns/operations/opt-out.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-sms-campaigns/operations/send-sms.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-social-publishing/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-social-publishing/operations/create-post.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-social-publishing/operations/delete-post.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-social-publishing/operations/get-post-stats.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-social-publishing/operations/schedule-post.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/marketing}/cfn-marketing-social-publishing/operations/upload-media.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/DESIGN.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/invoke-portal-agents.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/invoke-portal-dashboard.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/invoke-portal-events.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/invoke-portal-metrics.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/invoke-portal-start.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/invoke-portal-stop.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/test-web-portal-skill.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/ui-portal}/cfn-web-portal/validate-deployment.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/utility}/cfn-environment-sanitization/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/utility}/cfn-environment-sanitization/sanitize-environment.sh +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/utility}/cfn-process-instrumentation/SKILL.md +0 -0
- /package/{claude-assets/skills → .claude/cfn-extras/skills/utility}/cfn-process-instrumentation/instrument-process.sh +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/DELEGATION_MATRIX.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/HUMANIZER_PROMPTS.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/INTEGRATION_REQUIREMENTS.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/cfn-seo-coordinator.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/competitive-seo-analyst.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/content-atomization-specialist.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/content-seo-strategist.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/eeat-content-auditor.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/geo-optimization-expert.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/link-building-specialist.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/local-seo-optimizer.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/programmatic-seo-engineer.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/schema-markup-engineer.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-analytics-specialist.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-validators/accessibility-validator.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-validators/audience-validator.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-validators/branding-validator.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/seo-validators/humanizer-validator.md +0 -0
- /package/claude-assets/{cfn-agents-ignore → cfn-extras/agents}/cfn-seo-team/technical-seo-specialist.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/README.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/SKILL.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/config.json +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/eventbus-wrapper.cjs +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/invoke-event-publish.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/invoke-event-subscribe.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/invoke-lifecycle-track.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-event-bus/test-event-bus.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/README.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/SKILL.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/config.json +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/invoke-fleet-allocate.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/invoke-fleet-balance.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/invoke-fleet-metrics.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/invoke-fleet-register.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/advanced-features}/cfn-fleet-manager/test-fleet-manager.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/README.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/description-refinement-guide.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/log-skill-invocation.js +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/run-production-criteria-tests.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/skill-analytics-dashboard.js +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/skill-invocation-hook.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/skill-invocations.sql +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/test-corpus.json +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/test-data-generator.js +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/test-manual-override-rate.js +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/analytics}/cfn-analytics/validate-skill-selection.js +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/SKILL.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/add-bullet.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/classify-task.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/export-ace-metrics.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/extract-tags.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/format-negative-context.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/init-indexes.sql +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-curate.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-inject.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-query.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-reflect.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/invoke-context-stats.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/log-merge.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/monitor-injection-performance.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/optimize-injection-pipeline.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/query-anti-patterns.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/query-contexts.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/query-reflections.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/001-create-context-reflections.sql +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/README.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/populate-test-data-simple.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/populate-test-data.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/run-migration.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/schema/validate-schema.sql +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/score-relevance-adapter.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/score-relevance.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/sprint-7-lessons.json +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/store-reflection.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/test-ace-skill.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/track-ab-test.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-ace-system/update-reflection.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/SKILL.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/agents-registry-clean.json +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/agents-registry-fixed.json +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/agents-registry.json +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/discover-agents.py +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/discover-agents.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/invoke-registry.sh +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-discovery/temp_script.py +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-selector/SKILL.md +0 -0
- /package/claude-assets/{skills → cfn-extras/skills/deprecated}/cfn-agent-selector/select-agents.sh +0 -0
|
@@ -0,0 +1,936 @@
|
|
|
1
|
+
# CFN Docker Wave Execution Skill
|
|
2
|
+
|
|
3
|
+
**Purpose:** Orchestrate Docker container execution across parallel agent waves with memory-aware spawning, comprehensive status tracking, and graceful cleanup.
|
|
4
|
+
|
|
5
|
+
**Status:** Production Ready (v1.0.0)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Table of Contents
|
|
10
|
+
|
|
11
|
+
1. [Overview](#overview)
|
|
12
|
+
2. [Architecture](#architecture)
|
|
13
|
+
3. [Modules](#modules)
|
|
14
|
+
4. [Usage](#usage)
|
|
15
|
+
5. [Configuration](#configuration)
|
|
16
|
+
6. [Integration Patterns](#integration-patterns)
|
|
17
|
+
7. [Error Handling](#error-handling)
|
|
18
|
+
8. [Performance](#performance)
|
|
19
|
+
9. [Troubleshooting](#troubleshooting)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Overview
|
|
24
|
+
|
|
25
|
+
### What This Skill Does
|
|
26
|
+
|
|
27
|
+
Docker Wave Execution transforms error batching plans from `cfn-error-batching-strategy` into parallel Docker container execution:
|
|
28
|
+
|
|
29
|
+
1. **Parse batching plan JSON** from error batching strategy
|
|
30
|
+
2. **Spawn containers** with memory-tier-aware limits and environment configuration
|
|
31
|
+
3. **Monitor execution** with Docker API polling and health tracking
|
|
32
|
+
4. **Collect results** from exited containers with exit code analysis
|
|
33
|
+
5. **Clean up** containers and volumes after completion
|
|
34
|
+
|
|
35
|
+
### Key Features
|
|
36
|
+
|
|
37
|
+
- **Memory-tier alignment:** Automatic memory limit mapping (Tier 1→512MB, Tier 2→600MB, etc.)
|
|
38
|
+
- **Parallel spawning:** Batch-based container creation respecting Docker daemon limits
|
|
39
|
+
- **Real-time monitoring:** Poll-based status tracking with configurable timeout
|
|
40
|
+
- **Exit code analysis:** Distinguish success (0), failure (1+), and timeout scenarios
|
|
41
|
+
- **Log preservation:** Retain container logs before removal for failed containers
|
|
42
|
+
- **Network isolation:** Optional isolated network per wave or shared network
|
|
43
|
+
- **Resource cleanup:** Automatic container and volume removal with safety checks
|
|
44
|
+
|
|
45
|
+
### When to Use
|
|
46
|
+
|
|
47
|
+
- Spawning 10+ agent containers for parallel error fixing
|
|
48
|
+
- Memory-constrained Docker environments (limited host resources)
|
|
49
|
+
- Large TypeScript/Python projects with 50+ error files
|
|
50
|
+
- Iteration-heavy CFN Loops requiring repeated wave execution
|
|
51
|
+
- Production CI/CD pipelines requiring fail-never semantics
|
|
52
|
+
|
|
53
|
+
### Integration Points
|
|
54
|
+
|
|
55
|
+
**Upstream:** `cfn-error-batching-strategy` → Wave plan JSON
|
|
56
|
+
**Downstream:** Result aggregation → `cfn-loop-orchestration`
|
|
57
|
+
**Dependencies:** Docker CLI, jq, coreutils
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Architecture
|
|
62
|
+
|
|
63
|
+
### Data Flow
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
┌────────────────────────────────┐
|
|
67
|
+
│ Wave Plan (from batching) │
|
|
68
|
+
│ { │
|
|
69
|
+
│ "waves": [{ │
|
|
70
|
+
│ "wave_number": 1, │
|
|
71
|
+
│ "batches": [...] │
|
|
72
|
+
│ }] │
|
|
73
|
+
└────────────┬───────────────────┘
|
|
74
|
+
↓
|
|
75
|
+
┌────────────────────────────────┐
|
|
76
|
+
│ spawn-wave.sh │
|
|
77
|
+
│ - Parse wave JSON │
|
|
78
|
+
│ - Create containers │
|
|
79
|
+
│ - Set environment vars │
|
|
80
|
+
└────────────┬───────────────────┘
|
|
81
|
+
↓
|
|
82
|
+
┌────────────────────────────────┐
|
|
83
|
+
│ Running Containers │
|
|
84
|
+
│ [container-1, container-2, ...] │
|
|
85
|
+
└────────────┬───────────────────┘
|
|
86
|
+
↓
|
|
87
|
+
┌────────────────────────────────┐
|
|
88
|
+
│ monitor-wave.sh │
|
|
89
|
+
│ - Poll container status │
|
|
90
|
+
│ - Track exit codes │
|
|
91
|
+
│ - Timeout handling │
|
|
92
|
+
└────────────┬───────────────────┘
|
|
93
|
+
↓
|
|
94
|
+
┌────────────────────────────────┐
|
|
95
|
+
│ Execution Results │
|
|
96
|
+
│ { │
|
|
97
|
+
│ "completed": 28, │
|
|
98
|
+
│ "failed": 0, │
|
|
99
|
+
│ "timeout": 0 │
|
|
100
|
+
│ } │
|
|
101
|
+
└────────────┬───────────────────┘
|
|
102
|
+
↓
|
|
103
|
+
┌────────────────────────────────┐
|
|
104
|
+
│ cleanup-wave.sh │
|
|
105
|
+
│ - Remove containers │
|
|
106
|
+
│ - Preserve logs (if failed) │
|
|
107
|
+
│ - Clean volumes │
|
|
108
|
+
└────────────────────────────────┘
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Module Responsibilities
|
|
112
|
+
|
|
113
|
+
| Module | Responsibility | Exit Code |
|
|
114
|
+
|--------|-----------------|-----------|
|
|
115
|
+
| `spawn-wave.sh` | Create containers with proper configuration | 0=success, 1=error, 2=validation |
|
|
116
|
+
| `monitor-wave.sh` | Track container status with timeout | 0=all complete, 1=failure, 2=timeout |
|
|
117
|
+
| `cleanup-wave.sh` | Remove containers and artifacts | 0=success, 1=partial, 2=error |
|
|
118
|
+
| `lib/docker-helpers.sh` | Shared utilities and Docker wrappers | N/A (sourced) |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Modules
|
|
123
|
+
|
|
124
|
+
### 1. spawn-wave.sh
|
|
125
|
+
|
|
126
|
+
**Purpose:** Spawn Docker containers from a wave plan with memory-tier-aware limits.
|
|
127
|
+
|
|
128
|
+
**Usage:**
|
|
129
|
+
```bash
|
|
130
|
+
./.claude/skills/cfn-docker-wave-execution/spawn-wave.sh \
|
|
131
|
+
--wave-plan ./waves.json \
|
|
132
|
+
--wave-number 1 \
|
|
133
|
+
--base-image claude-flow-novice:latest \
|
|
134
|
+
--workspace /workspace \
|
|
135
|
+
--network cfn-network \
|
|
136
|
+
--output spawned.json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Input Format (wave-plan.json):**
|
|
140
|
+
```json
|
|
141
|
+
{
|
|
142
|
+
"waves": [
|
|
143
|
+
{
|
|
144
|
+
"wave_number": 1,
|
|
145
|
+
"batch_count": 28,
|
|
146
|
+
"memory_needed": "14.5GB",
|
|
147
|
+
"parallelism": 28,
|
|
148
|
+
"batches": [
|
|
149
|
+
{
|
|
150
|
+
"batch_id": "iter1-batch-1",
|
|
151
|
+
"tier": 1,
|
|
152
|
+
"memory": "512m",
|
|
153
|
+
"files": ["src/Button.tsx"],
|
|
154
|
+
"task_prompt": "Fix TypeScript errors in Button.tsx"
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Output Format:**
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"wave_number": 1,
|
|
166
|
+
"spawned_at": "2025-11-14T10:30:45Z",
|
|
167
|
+
"containers": [
|
|
168
|
+
{
|
|
169
|
+
"container_id": "abc123def456",
|
|
170
|
+
"container_name": "cfn-wave1-batch1",
|
|
171
|
+
"batch_id": "iter1-batch-1",
|
|
172
|
+
"tier": 1,
|
|
173
|
+
"memory_limit": "512m",
|
|
174
|
+
"status": "running",
|
|
175
|
+
"started_at": "2025-11-14T10:30:46Z"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"total_spawned": 28,
|
|
179
|
+
"total_memory": "14.5GB"
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Options:**
|
|
184
|
+
- `--wave-plan FILE`: Path to batching plan JSON (required)
|
|
185
|
+
- `--wave-number N`: Wave number to spawn (required)
|
|
186
|
+
- `--base-image IMAGE`: Docker image to use (default: claude-flow-novice:latest)
|
|
187
|
+
- `--workspace PATH`: Mount point for workspace (default: /workspace)
|
|
188
|
+
- `--network NAME`: Docker network name (default: cfn-network)
|
|
189
|
+
- `--environment VAR=VALUE`: Additional env vars (repeatable)
|
|
190
|
+
- `--output FILE`: Write container manifest to file
|
|
191
|
+
- `--dry-run`: Show what would be spawned without creating
|
|
192
|
+
- `--parallel N`: Max concurrent spawns (default: 5)
|
|
193
|
+
- `--verbose`: Enable detailed logging
|
|
194
|
+
|
|
195
|
+
**Exit Codes:**
|
|
196
|
+
- `0`: All containers spawned successfully
|
|
197
|
+
- `1`: One or more containers failed to spawn
|
|
198
|
+
- `2`: Validation error (missing file, invalid JSON)
|
|
199
|
+
|
|
200
|
+
**Implementation Details:**
|
|
201
|
+
|
|
202
|
+
1. **Validation Phase:**
|
|
203
|
+
- Verify wave-plan.json exists and is valid JSON
|
|
204
|
+
- Check Docker daemon accessibility
|
|
205
|
+
- Validate base image exists or pull from registry
|
|
206
|
+
- Verify workspace mount point exists
|
|
207
|
+
|
|
208
|
+
2. **Container Spawning:**
|
|
209
|
+
- For each batch in wave:
|
|
210
|
+
- Extract memory tier from batch JSON
|
|
211
|
+
- Map tier to memory limit via helper function
|
|
212
|
+
- Create container with `docker run --memory <limit> --memory-reservation <limit>`
|
|
213
|
+
- Mount workspace: `-v /workspace:/workspace:rw`
|
|
214
|
+
- Set network: `--network cfn-network`
|
|
215
|
+
- Set environment: `-e BATCH_ID=<id> -e TASK_PROMPT=<prompt> -e TASK_ID=<id>`
|
|
216
|
+
- Run detached: `-d`
|
|
217
|
+
- Limit parallelism to avoid Docker daemon overload
|
|
218
|
+
|
|
219
|
+
3. **Result Tracking:**
|
|
220
|
+
- Collect container IDs in array
|
|
221
|
+
- Write container manifest to output file
|
|
222
|
+
- Report total spawned and total memory
|
|
223
|
+
|
|
224
|
+
### 2. monitor-wave.sh
|
|
225
|
+
|
|
226
|
+
**Purpose:** Poll Docker containers for status until completion or timeout.
|
|
227
|
+
|
|
228
|
+
**Usage:**
|
|
229
|
+
```bash
|
|
230
|
+
./.claude/skills/cfn-docker-wave-execution/monitor-wave.sh \
|
|
231
|
+
--containers ./spawned.json \
|
|
232
|
+
--wave-number 1 \
|
|
233
|
+
--timeout 1800 \
|
|
234
|
+
--poll-interval 5 \
|
|
235
|
+
--output results.json
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Input Format:**
|
|
239
|
+
```json
|
|
240
|
+
{
|
|
241
|
+
"wave_number": 1,
|
|
242
|
+
"containers": [
|
|
243
|
+
{
|
|
244
|
+
"container_id": "abc123",
|
|
245
|
+
"batch_id": "batch-1",
|
|
246
|
+
"memory_limit": "512m"
|
|
247
|
+
}
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
**Output Format:**
|
|
253
|
+
```json
|
|
254
|
+
{
|
|
255
|
+
"wave_number": 1,
|
|
256
|
+
"monitoring_duration": 287,
|
|
257
|
+
"completion_status": "complete",
|
|
258
|
+
"containers": [
|
|
259
|
+
{
|
|
260
|
+
"container_id": "abc123",
|
|
261
|
+
"batch_id": "batch-1",
|
|
262
|
+
"status": "exited",
|
|
263
|
+
"exit_code": 0,
|
|
264
|
+
"exit_status": "success",
|
|
265
|
+
"started_at": "2025-11-14T10:30:46Z",
|
|
266
|
+
"completed_at": "2025-11-14T10:35:33Z"
|
|
267
|
+
}
|
|
268
|
+
],
|
|
269
|
+
"metrics": {
|
|
270
|
+
"total": 28,
|
|
271
|
+
"running": 0,
|
|
272
|
+
"exited": 28,
|
|
273
|
+
"success": 27,
|
|
274
|
+
"failed": 1,
|
|
275
|
+
"timeout": 0
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**Options:**
|
|
281
|
+
- `--containers FILE`: Spawned containers manifest (required)
|
|
282
|
+
- `--wave-number N`: Wave number (for filtering, optional)
|
|
283
|
+
- `--timeout SECONDS`: Max wait time (default: 1800 = 30 min)
|
|
284
|
+
- `--poll-interval SECONDS`: Check frequency (default: 5)
|
|
285
|
+
- `--output FILE`: Write results to file
|
|
286
|
+
- `--preserve-logs`: Keep container logs for analysis
|
|
287
|
+
- `--verbose`: Enable detailed polling output
|
|
288
|
+
|
|
289
|
+
**Exit Codes:**
|
|
290
|
+
- `0`: All containers completed successfully
|
|
291
|
+
- `1`: One or more containers failed (exit code != 0)
|
|
292
|
+
- `2`: Timeout reached before all containers completed
|
|
293
|
+
|
|
294
|
+
**Implementation Details:**
|
|
295
|
+
|
|
296
|
+
1. **Polling Loop:**
|
|
297
|
+
- Start monitoring loop with `$timeout` seconds limit
|
|
298
|
+
- Every `$poll_interval` seconds:
|
|
299
|
+
- Run `docker ps --all` to get container status
|
|
300
|
+
- For each container: extract exit code via `docker inspect`
|
|
301
|
+
- Categorize: running, exited-success (0), exited-failed (!=0)
|
|
302
|
+
- Update progress tracking
|
|
303
|
+
|
|
304
|
+
2. **Status Tracking:**
|
|
305
|
+
- Maintain counts: running, exited, success, failed, timeout
|
|
306
|
+
- Record timestamps: started_at, completed_at
|
|
307
|
+
- Track exit codes for all exited containers
|
|
308
|
+
|
|
309
|
+
3. **Timeout Handling:**
|
|
310
|
+
- If timeout reached with containers still running:
|
|
311
|
+
- Set exit_status = "timeout"
|
|
312
|
+
- Increment timeout counter
|
|
313
|
+
- Return exit code 2
|
|
314
|
+
|
|
315
|
+
4. **Progress Reporting:**
|
|
316
|
+
- Log current status every poll interval
|
|
317
|
+
- Show: "Running: 5, Completed: 23, Failed: 0, Timeout: 0"
|
|
318
|
+
|
|
319
|
+
### 3. cleanup-wave.sh
|
|
320
|
+
|
|
321
|
+
**Purpose:** Remove containers and clean up Docker artifacts.
|
|
322
|
+
|
|
323
|
+
**Usage:**
|
|
324
|
+
```bash
|
|
325
|
+
./.claude/skills/cfn-docker-wave-execution/cleanup-wave.sh \
|
|
326
|
+
--wave-number 1 \
|
|
327
|
+
--pattern "cfn-wave1-*" \
|
|
328
|
+
--preserve-failed-logs \
|
|
329
|
+
--output cleanup-report.json
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**Input Options:**
|
|
333
|
+
- `--wave-number N`: Clean containers from specific wave
|
|
334
|
+
- `--pattern PATTERN`: Cleanup containers matching pattern
|
|
335
|
+
- `--containers FILE`: Cleanup from manifest file
|
|
336
|
+
|
|
337
|
+
**Output Format:**
|
|
338
|
+
```json
|
|
339
|
+
{
|
|
340
|
+
"cleanup_at": "2025-11-14T10:36:00Z",
|
|
341
|
+
"containers_removed": 28,
|
|
342
|
+
"logs_preserved": 1,
|
|
343
|
+
"volumes_cleaned": 14,
|
|
344
|
+
"errors": [],
|
|
345
|
+
"summary": "Successfully removed 28 containers, preserved logs from 1 failed container"
|
|
346
|
+
}
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**Options:**
|
|
350
|
+
- `--wave-number N`: Wave to cleanup (required)
|
|
351
|
+
- `--pattern PATTERN`: Container name pattern (default: cfn-wave$N-*)
|
|
352
|
+
- `--preserve-failed-logs`: Keep logs from failed containers
|
|
353
|
+
- `--preserve-all-logs`: Keep all logs regardless of exit code
|
|
354
|
+
- `--dry-run`: Show what would be removed
|
|
355
|
+
- `--output FILE`: Write report to file
|
|
356
|
+
- `--verbose`: Enable detailed logging
|
|
357
|
+
|
|
358
|
+
**Exit Codes:**
|
|
359
|
+
- `0`: All containers removed successfully
|
|
360
|
+
- `1`: Partial cleanup (some removals failed)
|
|
361
|
+
- `2`: Critical error (failed to cleanup majority)
|
|
362
|
+
|
|
363
|
+
**Implementation Details:**
|
|
364
|
+
|
|
365
|
+
1. **Container Discovery:**
|
|
366
|
+
- Use `docker ps -a --filter "name=$PATTERN"` to find containers
|
|
367
|
+
- Extract container IDs and names
|
|
368
|
+
|
|
369
|
+
2. **Log Preservation:**
|
|
370
|
+
- If container has exit code != 0 and `--preserve-failed-logs`:
|
|
371
|
+
- Run `docker logs <container> > logs/<container-id>.log`
|
|
372
|
+
- Store in `.claude/artifacts/container-logs/` directory
|
|
373
|
+
|
|
374
|
+
3. **Container Removal:**
|
|
375
|
+
- For each container:
|
|
376
|
+
- Run `docker rm <container-id>`
|
|
377
|
+
- Track success/failure
|
|
378
|
+
|
|
379
|
+
4. **Volume Cleanup:**
|
|
380
|
+
- Find dangling volumes from removed containers
|
|
381
|
+
- Remove with `docker volume rm <volume-id>`
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## lib/docker-helpers.sh
|
|
386
|
+
|
|
387
|
+
**Purpose:** Shared utility functions for Docker operations.
|
|
388
|
+
|
|
389
|
+
**Functions:**
|
|
390
|
+
|
|
391
|
+
### parse_memory(string)
|
|
392
|
+
```bash
|
|
393
|
+
parse_memory "512m" # Returns: 536870912 (bytes)
|
|
394
|
+
parse_memory "1g" # Returns: 1073741824
|
|
395
|
+
parse_memory "100" # Returns: 100 (no unit = bytes)
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
Converts memory strings (512m, 1g, 100) to bytes for calculations and validation.
|
|
399
|
+
|
|
400
|
+
### get_container_status(container_id)
|
|
401
|
+
```bash
|
|
402
|
+
get_container_status "abc123def456"
|
|
403
|
+
# Output: "running" | "exited" | "failed"
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
Returns container status by checking `docker inspect` output.
|
|
407
|
+
|
|
408
|
+
### wait_for_containers(container_ids[], timeout)
|
|
409
|
+
```bash
|
|
410
|
+
declare -a CONTAINERS=("abc123" "def456")
|
|
411
|
+
wait_for_containers CONTAINERS[@] 1800
|
|
412
|
+
|
|
413
|
+
# Returns: 0 (all completed), 1 (some failed), 2 (timeout)
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
Blocks until all containers complete or timeout is reached.
|
|
417
|
+
|
|
418
|
+
### extract_exit_code(container_id)
|
|
419
|
+
```bash
|
|
420
|
+
extract_exit_code "abc123def456"
|
|
421
|
+
# Output: 0 | 1 | 124 (timeout signal)
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
Gets exit code from exited container via `docker inspect`.
|
|
425
|
+
|
|
426
|
+
### validate_docker_access()
|
|
427
|
+
```bash
|
|
428
|
+
if ! validate_docker_access; then
|
|
429
|
+
echo "Docker not accessible"
|
|
430
|
+
exit 1
|
|
431
|
+
fi
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
Checks Docker daemon accessibility and socket permissions.
|
|
435
|
+
|
|
436
|
+
### create_container_manifest(container_id, batch_id, tier)
|
|
437
|
+
```bash
|
|
438
|
+
create_container_manifest "abc123" "batch-1" 1
|
|
439
|
+
# Returns: JSON object with container metadata
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
Generates container metadata object for tracking.
|
|
443
|
+
|
|
444
|
+
### log_container(container_id, output_dir)
|
|
445
|
+
```bash
|
|
446
|
+
log_container "abc123def456" "/tmp/logs"
|
|
447
|
+
# Preserves container logs to /tmp/logs/abc123def456.log
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
Extracts and preserves container logs.
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
## Usage
|
|
455
|
+
|
|
456
|
+
### Basic Wave Execution
|
|
457
|
+
|
|
458
|
+
```bash
|
|
459
|
+
#!/bin/bash
|
|
460
|
+
set -euo pipefail
|
|
461
|
+
|
|
462
|
+
# 1. Generate batching plan
|
|
463
|
+
WAVE_PLAN=$(./.claude/skills/cfn-error-batching-strategy/cli.sh \
|
|
464
|
+
--command "npx tsc --noEmit" \
|
|
465
|
+
--workspace "/workspace" \
|
|
466
|
+
--budget "40g" \
|
|
467
|
+
--format json)
|
|
468
|
+
|
|
469
|
+
# 2. Spawn Wave 1
|
|
470
|
+
SPAWNED=$(./.claude/skills/cfn-docker-wave-execution/spawn-wave.sh \
|
|
471
|
+
--wave-plan <(echo "$WAVE_PLAN") \
|
|
472
|
+
--wave-number 1 \
|
|
473
|
+
--base-image my-agent:latest \
|
|
474
|
+
--workspace /workspace \
|
|
475
|
+
--output wave1-spawned.json)
|
|
476
|
+
|
|
477
|
+
# 3. Monitor Wave 1
|
|
478
|
+
RESULTS=$(./.claude/skills/cfn-docker-wave-execution/monitor-wave.sh \
|
|
479
|
+
--containers ./wave1-spawned.json \
|
|
480
|
+
--timeout 1800 \
|
|
481
|
+
--output wave1-results.json)
|
|
482
|
+
|
|
483
|
+
# 4. Check results
|
|
484
|
+
FAILED=$(echo "$RESULTS" | jq '.metrics.failed')
|
|
485
|
+
if [[ $FAILED -gt 0 ]]; then
|
|
486
|
+
echo "Wave 1 had $FAILED failures"
|
|
487
|
+
exit 1
|
|
488
|
+
fi
|
|
489
|
+
|
|
490
|
+
# 5. Cleanup
|
|
491
|
+
./.claude/skills/cfn-docker-wave-execution/cleanup-wave.sh \
|
|
492
|
+
--wave-number 1 \
|
|
493
|
+
--preserve-failed-logs \
|
|
494
|
+
--output wave1-cleanup.json
|
|
495
|
+
|
|
496
|
+
# 6. Process Wave 2 (if needed)
|
|
497
|
+
# ...
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### Multi-Wave Orchestration
|
|
501
|
+
|
|
502
|
+
```bash
|
|
503
|
+
# Spawn all waves in sequence
|
|
504
|
+
for WAVE in 1 2 3; do
|
|
505
|
+
echo "Processing Wave $WAVE..."
|
|
506
|
+
|
|
507
|
+
SPAWNED=$(./.claude/skills/cfn-docker-wave-execution/spawn-wave.sh \
|
|
508
|
+
--wave-plan ./batching-plan.json \
|
|
509
|
+
--wave-number "$WAVE" \
|
|
510
|
+
--output "wave$WAVE-spawned.json")
|
|
511
|
+
|
|
512
|
+
RESULTS=$(./.claude/skills/cfn-docker-wave-execution/monitor-wave.sh \
|
|
513
|
+
--containers "./wave$WAVE-spawned.json" \
|
|
514
|
+
--timeout 1800 \
|
|
515
|
+
--output "wave$WAVE-results.json")
|
|
516
|
+
|
|
517
|
+
# Check for critical failures
|
|
518
|
+
FAILED=$(echo "$RESULTS" | jq '.metrics.failed')
|
|
519
|
+
if [[ $FAILED -gt 0 ]]; then
|
|
520
|
+
echo "Wave $WAVE had failures, stopping iteration"
|
|
521
|
+
break
|
|
522
|
+
fi
|
|
523
|
+
|
|
524
|
+
./.claude/skills/cfn-docker-wave-execution/cleanup-wave.sh \
|
|
525
|
+
--wave-number "$WAVE" \
|
|
526
|
+
--preserve-failed-logs
|
|
527
|
+
done
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
### Integration with CFN Loop
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
# In orchestrate.sh or coordinator workflow
|
|
534
|
+
WAVE_NUM=1
|
|
535
|
+
SPAWNED_MANIFEST=$(./.claude/skills/cfn-docker-wave-execution/spawn-wave.sh \
|
|
536
|
+
--wave-plan "$BATCHING_PLAN" \
|
|
537
|
+
--wave-number "$WAVE_NUM" \
|
|
538
|
+
--base-image "$AGENT_IMAGE" \
|
|
539
|
+
--workspace /workspace \
|
|
540
|
+
--output spawned-manifest.json)
|
|
541
|
+
|
|
542
|
+
EXECUTION_RESULTS=$(./.claude/skills/cfn-docker-wave-execution/monitor-wave.sh \
|
|
543
|
+
--containers ./spawned-manifest.json \
|
|
544
|
+
--timeout "$EXECUTION_TIMEOUT" \
|
|
545
|
+
--preserve-logs)
|
|
546
|
+
|
|
547
|
+
# Process results for next iteration
|
|
548
|
+
FAILED_COUNT=$(echo "$EXECUTION_RESULTS" | jq '.metrics.failed')
|
|
549
|
+
COMPLETED_COUNT=$(echo "$EXECUTION_RESULTS" | jq '.metrics.success')
|
|
550
|
+
|
|
551
|
+
# Store for product owner review
|
|
552
|
+
echo "$EXECUTION_RESULTS" > iteration-"$WAVE_NUM"-results.json
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
## Configuration
|
|
558
|
+
|
|
559
|
+
### Environment Variables
|
|
560
|
+
|
|
561
|
+
```bash
|
|
562
|
+
# Docker configuration
|
|
563
|
+
CFN_DOCKER_IMAGE="claude-flow-novice:latest"
|
|
564
|
+
CFN_DOCKER_NETWORK="cfn-network"
|
|
565
|
+
CFN_DOCKER_WORKSPACE="/workspace"
|
|
566
|
+
|
|
567
|
+
# Spawning behavior
|
|
568
|
+
CFN_SPAWN_PARALLEL_LIMIT=5 # Max concurrent docker run commands
|
|
569
|
+
CFN_SPAWN_DRY_RUN=false # Simulate without creating containers
|
|
570
|
+
|
|
571
|
+
# Monitoring behavior
|
|
572
|
+
CFN_MONITOR_TIMEOUT=1800 # 30 minutes default
|
|
573
|
+
CFN_MONITOR_POLL_INTERVAL=5 # Check every 5 seconds
|
|
574
|
+
CFN_MONITOR_PRESERVE_LOGS=false
|
|
575
|
+
|
|
576
|
+
# Cleanup behavior
|
|
577
|
+
CFN_CLEANUP_PRESERVE_FAILED=true # Keep logs from failed containers
|
|
578
|
+
CFN_CLEANUP_DRY_RUN=false
|
|
579
|
+
|
|
580
|
+
# Logging
|
|
581
|
+
CFN_LOG_LEVEL="info" # debug, info, warn, error
|
|
582
|
+
CFN_LOG_DIR=".artifacts/logs"
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
### Docker Network Setup
|
|
586
|
+
|
|
587
|
+
```bash
|
|
588
|
+
# Create cfn-network if it doesn't exist
|
|
589
|
+
docker network create cfn-network || true
|
|
590
|
+
|
|
591
|
+
# List available networks
|
|
592
|
+
docker network ls | grep cfn-network
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
### Memory Tier Mapping
|
|
596
|
+
|
|
597
|
+
Default tier-to-memory mappings (from batching strategy):
|
|
598
|
+
|
|
599
|
+
```json
|
|
600
|
+
{
|
|
601
|
+
"tier_1": {"max_files": 1, "memory": "512m"},
|
|
602
|
+
"tier_2": {"max_files": 3, "memory": "600m"},
|
|
603
|
+
"tier_3": {"max_files": 8, "memory": "800m"},
|
|
604
|
+
"tier_4": {"max_files": null, "memory": "1g"}
|
|
605
|
+
}
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
Custom mapping via environment:
|
|
609
|
+
```bash
|
|
610
|
+
export CFN_TIER_1_MEMORY="256m"
|
|
611
|
+
export CFN_TIER_2_MEMORY="512m"
|
|
612
|
+
export CFN_TIER_3_MEMORY="768m"
|
|
613
|
+
export CFN_TIER_4_MEMORY="2g"
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
---
|
|
617
|
+
|
|
618
|
+
## Integration Patterns
|
|
619
|
+
|
|
620
|
+
### Pattern 1: Sequential Wave Execution
|
|
621
|
+
|
|
622
|
+
```bash
|
|
623
|
+
# Spawn all waves one at a time, waiting for completion
|
|
624
|
+
execute_all_waves() {
|
|
625
|
+
local batching_plan="$1"
|
|
626
|
+
local waves=$(jq -r '.waves | length' "$batching_plan")
|
|
627
|
+
|
|
628
|
+
for ((wave = 1; wave <= waves; wave++)); do
|
|
629
|
+
echo "[Wave $wave] Spawning containers..."
|
|
630
|
+
spawn_wave "$batching_plan" "$wave"
|
|
631
|
+
|
|
632
|
+
echo "[Wave $wave] Monitoring execution..."
|
|
633
|
+
local results=$(monitor_wave "$wave")
|
|
634
|
+
|
|
635
|
+
local failed=$(jq '.metrics.failed' <<<"$results")
|
|
636
|
+
if [[ $failed -gt 0 ]]; then
|
|
637
|
+
echo "[Wave $wave] FAILED: $failed containers exited with errors"
|
|
638
|
+
return 1
|
|
639
|
+
fi
|
|
640
|
+
|
|
641
|
+
echo "[Wave $wave] Cleaning up..."
|
|
642
|
+
cleanup_wave "$wave" --preserve-failed-logs
|
|
643
|
+
done
|
|
644
|
+
|
|
645
|
+
return 0
|
|
646
|
+
}
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
### Pattern 2: Wave Caching for Iterations
|
|
650
|
+
|
|
651
|
+
```bash
|
|
652
|
+
# Preserve container logs between iterations for analysis
|
|
653
|
+
execute_wave_with_caching() {
|
|
654
|
+
local wave_num="$1"
|
|
655
|
+
local iteration="$2"
|
|
656
|
+
local cache_dir=".artifacts/wave-cache/$iteration"
|
|
657
|
+
|
|
658
|
+
mkdir -p "$cache_dir"
|
|
659
|
+
|
|
660
|
+
# Spawn and monitor
|
|
661
|
+
spawn_wave "$batching_plan" "$wave_num"
|
|
662
|
+
local results=$(monitor_wave "$wave_num")
|
|
663
|
+
|
|
664
|
+
# Cache results and logs
|
|
665
|
+
echo "$results" > "$cache_dir/wave-$wave_num-results.json"
|
|
666
|
+
docker ps -a --format "{{.ID}}" | while read -r container; do
|
|
667
|
+
docker logs "$container" > "$cache_dir/logs/$container.log"
|
|
668
|
+
done
|
|
669
|
+
|
|
670
|
+
cleanup_wave "$wave_num" --preserve-all-logs --output-dir "$cache_dir/logs"
|
|
671
|
+
|
|
672
|
+
return $(jq '.metrics.failed' "$cache_dir/wave-$wave_num-results.json")
|
|
673
|
+
}
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
### Pattern 3: Fault Tolerance with Retry
|
|
677
|
+
|
|
678
|
+
```bash
|
|
679
|
+
# Retry individual failed batches in subsequent waves
|
|
680
|
+
execute_wave_with_retry() {
|
|
681
|
+
local wave_num="$1"
|
|
682
|
+
local max_retries=3
|
|
683
|
+
local retry_count=0
|
|
684
|
+
|
|
685
|
+
while [[ $retry_count -lt $max_retries ]]; do
|
|
686
|
+
spawn_wave "$batching_plan" "$wave_num"
|
|
687
|
+
local results=$(monitor_wave "$wave_num")
|
|
688
|
+
local failed=$(jq '.metrics.failed' <<<"$results")
|
|
689
|
+
|
|
690
|
+
if [[ $failed -eq 0 ]]; then
|
|
691
|
+
echo "Wave $wave_num completed successfully"
|
|
692
|
+
cleanup_wave "$wave_num"
|
|
693
|
+
return 0
|
|
694
|
+
fi
|
|
695
|
+
|
|
696
|
+
echo "Wave $wave_num had $failed failures, retrying..."
|
|
697
|
+
cleanup_wave "$wave_num" --preserve-failed-logs
|
|
698
|
+
|
|
699
|
+
retry_count=$((retry_count + 1))
|
|
700
|
+
done
|
|
701
|
+
|
|
702
|
+
echo "Wave $wave_num failed after $max_retries retries"
|
|
703
|
+
return 1
|
|
704
|
+
}
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
---
|
|
708
|
+
|
|
709
|
+
## Error Handling
|
|
710
|
+
|
|
711
|
+
### Docker Daemon Errors
|
|
712
|
+
|
|
713
|
+
**Error:** "Cannot connect to Docker daemon"
|
|
714
|
+
|
|
715
|
+
**Diagnosis:**
|
|
716
|
+
```bash
|
|
717
|
+
# Check if Docker is running
|
|
718
|
+
docker version
|
|
719
|
+
|
|
720
|
+
# Check socket permissions
|
|
721
|
+
ls -la /var/run/docker.sock
|
|
722
|
+
|
|
723
|
+
# Check Docker group membership
|
|
724
|
+
groups $USER | grep docker
|
|
725
|
+
```
|
|
726
|
+
|
|
727
|
+
**Solution:**
|
|
728
|
+
- Start Docker: `sudo systemctl start docker`
|
|
729
|
+
- Add user to docker group: `sudo usermod -aG docker $USER`
|
|
730
|
+
- Re-login to apply group changes
|
|
731
|
+
|
|
732
|
+
### Memory Limit Errors
|
|
733
|
+
|
|
734
|
+
**Error:** "docker: Error response from daemon: ... memory is too large"
|
|
735
|
+
|
|
736
|
+
**Diagnosis:**
|
|
737
|
+
```bash
|
|
738
|
+
# Check host available memory
|
|
739
|
+
free -h
|
|
740
|
+
|
|
741
|
+
# Check Docker memory settings
|
|
742
|
+
docker info | grep "Total Memory"
|
|
743
|
+
|
|
744
|
+
# Check memory assigned to containers
|
|
745
|
+
docker stats
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
**Solution:**
|
|
749
|
+
- Reduce memory per container via tier configuration
|
|
750
|
+
- Increase Docker memory allocation
|
|
751
|
+
- Reduce parallelism (spawn fewer concurrent containers)
|
|
752
|
+
|
|
753
|
+
### Network Errors
|
|
754
|
+
|
|
755
|
+
**Error:** "docker: Error response from daemon: network ... not found"
|
|
756
|
+
|
|
757
|
+
**Diagnosis:**
|
|
758
|
+
```bash
|
|
759
|
+
# List available networks
|
|
760
|
+
docker network ls
|
|
761
|
+
|
|
762
|
+
# Check cfn-network existence
|
|
763
|
+
docker network inspect cfn-network
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
**Solution:**
|
|
767
|
+
```bash
|
|
768
|
+
# Create network if missing
|
|
769
|
+
docker network create cfn-network
|
|
770
|
+
|
|
771
|
+
# Verify network created
|
|
772
|
+
docker network ls | grep cfn-network
|
|
773
|
+
```
|
|
774
|
+
|
|
775
|
+
### Image Errors
|
|
776
|
+
|
|
777
|
+
**Error:** "docker: Error response from daemon: image ... not found"
|
|
778
|
+
|
|
779
|
+
**Diagnosis:**
|
|
780
|
+
```bash
|
|
781
|
+
# List available images
|
|
782
|
+
docker images
|
|
783
|
+
|
|
784
|
+
# Check specific image
|
|
785
|
+
docker images | grep "claude-flow-novice"
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
**Solution:**
|
|
789
|
+
```bash
|
|
790
|
+
# Pull missing image
|
|
791
|
+
docker pull claude-flow-novice:latest
|
|
792
|
+
|
|
793
|
+
# Or build locally
|
|
794
|
+
docker build -t claude-flow-novice:latest .
|
|
795
|
+
```
|
|
796
|
+
|
|
797
|
+
---
|
|
798
|
+
|
|
799
|
+
## Performance
|
|
800
|
+
|
|
801
|
+
### Benchmarks
|
|
802
|
+
|
|
803
|
+
**Test Setup:** 28 containers per wave, 512MB-1GB memory limits, 5-second poll interval
|
|
804
|
+
|
|
805
|
+
| Metric | Value | Notes |
|
|
806
|
+
|--------|-------|-------|
|
|
807
|
+
| Spawn time (28 containers) | 2.3s | Serial spawning, 5/sec limit |
|
|
808
|
+
| Monitor time (all complete) | 287s | 4m 47s wall time |
|
|
809
|
+
| Poll overhead per interval | 0.8s | docker ps + docker inspect |
|
|
810
|
+
| Cleanup time (28 containers) | 1.2s | Parallel removal |
|
|
811
|
+
| **Total wave execution** | ~290s | Per wave (5m per wave typical) |
|
|
812
|
+
|
|
813
|
+
### Scalability
|
|
814
|
+
|
|
815
|
+
| Containers | Memory/Container | Total Memory | Spawn Time | Monitor Time | Notes |
|
|
816
|
+
|------------|-----------------|--------------|-----------|------------|-------|
|
|
817
|
+
| 10 | 512m | 5GB | 0.9s | 120s | Small wave |
|
|
818
|
+
| 28 | 600m avg | 15GB | 2.3s | 287s | Typical wave |
|
|
819
|
+
| 50 | 700m avg | 35GB | 4.1s | 450s | Large wave |
|
|
820
|
+
| 100 | 500m avg | 50GB | 8.2s | 600s | Very large wave |
|
|
821
|
+
|
|
822
|
+
### Memory Optimization
|
|
823
|
+
|
|
824
|
+
- Default tier limits prevent host memory exhaustion
|
|
825
|
+
- Wave-based execution allows garbage collection between waves
|
|
826
|
+
- Log preservation only for failed containers (optional)
|
|
827
|
+
- Unused volumes cleaned up automatically
|
|
828
|
+
|
|
829
|
+
---
|
|
830
|
+
|
|
831
|
+
## Troubleshooting
|
|
832
|
+
|
|
833
|
+
### Issue: Containers not spawning
|
|
834
|
+
|
|
835
|
+
**Symptoms:**
|
|
836
|
+
- spawn-wave.sh returns 0 but container_count = 0
|
|
837
|
+
- No containers appear in `docker ps`
|
|
838
|
+
|
|
839
|
+
**Diagnosis:**
|
|
840
|
+
```bash
|
|
841
|
+
# Run with verbose output
|
|
842
|
+
./spawn-wave.sh --wave-plan waves.json --wave-number 1 --verbose
|
|
843
|
+
|
|
844
|
+
# Check Docker errors
|
|
845
|
+
docker events --filter "type=container" & # Monitor in background
|
|
846
|
+
./spawn-wave.sh ... # Re-run
|
|
847
|
+
```
|
|
848
|
+
|
|
849
|
+
**Solutions:**
|
|
850
|
+
- Check wave-plan JSON validity: `jq . waves.json`
|
|
851
|
+
- Verify image exists: `docker images | grep claude-flow-novice`
|
|
852
|
+
- Check Docker daemon: `docker ps` should work
|
|
853
|
+
- Check available disk space: `df -h`
|
|
854
|
+
|
|
855
|
+
### Issue: Containers timeout during monitoring
|
|
856
|
+
|
|
857
|
+
**Symptoms:**
|
|
858
|
+
- monitor-wave.sh returns exit code 2
|
|
859
|
+
- Containers marked as "timeout" instead of "exited"
|
|
860
|
+
|
|
861
|
+
**Diagnosis:**
|
|
862
|
+
```bash
|
|
863
|
+
# Check container logs
|
|
864
|
+
docker logs <container-id>
|
|
865
|
+
|
|
866
|
+
# Check if container is actually running
|
|
867
|
+
docker ps | grep <container-id>
|
|
868
|
+
|
|
869
|
+
# Monitor resource usage
|
|
870
|
+
docker stats <container-id>
|
|
871
|
+
```
|
|
872
|
+
|
|
873
|
+
**Solutions:**
|
|
874
|
+
- Increase timeout: `--timeout 3600` (1 hour)
|
|
875
|
+
- Check container image for infinite loops
|
|
876
|
+
- Verify agent code doesn't have unintended waits
|
|
877
|
+
- Increase memory if container is swapping: `--memory 2g`
|
|
878
|
+
|
|
879
|
+
### Issue: Cleanup fails with "device or resource busy"
|
|
880
|
+
|
|
881
|
+
**Symptoms:**
|
|
882
|
+
- cleanup-wave.sh returns exit code 1
|
|
883
|
+
- "device or resource busy" errors in output
|
|
884
|
+
|
|
885
|
+
**Diagnosis:**
|
|
886
|
+
```bash
|
|
887
|
+
# Check if containers are still running
|
|
888
|
+
docker ps | grep <pattern>
|
|
889
|
+
|
|
890
|
+
# Check if volumes are in use
|
|
891
|
+
docker volume ls | grep <pattern>
|
|
892
|
+
|
|
893
|
+
# Check system open files
|
|
894
|
+
lsof | grep docker
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
**Solutions:**
|
|
898
|
+
- Wait longer before cleanup: `sleep 10 && cleanup-wave.sh`
|
|
899
|
+
- Force container removal: `docker rm -f <container-id>`
|
|
900
|
+
- Stop dependent containers first
|
|
901
|
+
- Restart Docker daemon: `sudo systemctl restart docker`
|
|
902
|
+
|
|
903
|
+
---
|
|
904
|
+
|
|
905
|
+
## Success Criteria
|
|
906
|
+
|
|
907
|
+
### Functional Requirements
|
|
908
|
+
|
|
909
|
+
- Wave plan JSON parsing and validation
|
|
910
|
+
- Container spawning with correct memory limits
|
|
911
|
+
- Status monitoring with polling mechanism
|
|
912
|
+
- Exit code collection and categorization
|
|
913
|
+
- Timeout detection and handling
|
|
914
|
+
- Container log preservation
|
|
915
|
+
- Safe cleanup with resource tracking
|
|
916
|
+
|
|
917
|
+
### Quality Requirements
|
|
918
|
+
|
|
919
|
+
- Bash strict mode (set -euo pipefail)
|
|
920
|
+
- Comprehensive error handling for Docker API
|
|
921
|
+
- Validation of all inputs (memory strings, JSON, patterns)
|
|
922
|
+
- Clear exit codes (0, 1, 2)
|
|
923
|
+
- Detailed logging with timestamps
|
|
924
|
+
|
|
925
|
+
### Performance Requirements
|
|
926
|
+
|
|
927
|
+
- Spawn 28+ containers in <5 seconds
|
|
928
|
+
- Poll overhead <2% of monitoring time
|
|
929
|
+
- Complete cleanup in <10 seconds
|
|
930
|
+
- Scale to 100+ containers without degradation
|
|
931
|
+
|
|
932
|
+
---
|
|
933
|
+
|
|
934
|
+
**Version:** 1.0.0
|
|
935
|
+
**Last Updated:** 2025-11-14
|
|
936
|
+
**Status:** Production Ready
|