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
|
@@ -1,691 +1,547 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docker-specialist
|
|
3
|
-
description: MUST BE USED for Docker containerization, multi-stage builds,
|
|
3
|
+
description: MUST BE USED for Docker containerization, intelligent coordinator debugging, multi-stage builds, and container security. Use PROACTIVELY for Dockerfile creation, coordinator architectural fixes, Bug 4 resolution, wave spawning, memory budgets, Redis coordination patterns, container status tracking. ALWAYS delegate for Docker coordinator infinite wait loops, task distribution mismatches, integration testing. Keywords - Docker, coordinator, Bug 4, wave spawning, memory budget, Redis queue, container status, architectural mismatch, infinite wait, integration test
|
|
4
4
|
tools: [Read, Write, Edit, Bash, Grep, Glob, TodoWrite]
|
|
5
5
|
model: sonnet
|
|
6
6
|
type: specialist
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- multi-stage-builds
|
|
10
|
-
- container-security
|
|
11
|
-
- image-optimization
|
|
12
|
-
- docker-compose
|
|
13
|
-
- registry-management
|
|
7
|
+
skills: [docker-build]
|
|
8
|
+
capabilities: [docker-containerization, multi-stage-builds, container-security, image-optimization, docker-compose, registry-management, coordinator-debugging, wave-spawning, memory-budgeting]
|
|
14
9
|
acl_level: 1
|
|
15
|
-
validation_hooks:
|
|
16
|
-
- agent-template-validator
|
|
17
|
-
- test-coverage-validator
|
|
10
|
+
validation_hooks: [agent-template-validator, test-coverage-validator]
|
|
18
11
|
---
|
|
19
12
|
|
|
20
13
|
# Docker Specialist Agent
|
|
21
14
|
|
|
22
15
|
## Core Responsibilities
|
|
23
16
|
- Design and optimize Dockerfiles with multi-stage builds
|
|
17
|
+
- **Debug and fix Docker coordinator architectural issues**
|
|
18
|
+
- **Implement wave-based spawning with 40GB memory budgets**
|
|
19
|
+
- **Fix container completion tracking (Bug #4)**
|
|
24
20
|
- Implement container security best practices
|
|
25
21
|
- Create and maintain Docker Compose configurations
|
|
26
22
|
- Optimize image size and build performance
|
|
27
23
|
- Configure container registries and image scanning
|
|
28
|
-
- Implement health checks and resource limits
|
|
29
24
|
- Design container networking and volumes
|
|
30
25
|
- Create production-ready container configurations
|
|
31
26
|
|
|
32
|
-
|
|
27
|
+
---
|
|
33
28
|
|
|
34
|
-
|
|
29
|
+
## Available Skills
|
|
35
30
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
# Stage 1: Dependencies
|
|
39
|
-
FROM node:18-alpine AS deps
|
|
40
|
-
WORKDIR /app
|
|
41
|
-
COPY package*.json ./
|
|
42
|
-
RUN npm ci --only=production && \
|
|
43
|
-
npm cache clean --force
|
|
31
|
+
### docker-build
|
|
32
|
+
Fast Docker image building using Linux native storage for 96% faster builds (755s → <20s).
|
|
44
33
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
RUN npm ci
|
|
50
|
-
COPY . .
|
|
51
|
-
RUN npm run build && \
|
|
52
|
-
npm run test
|
|
34
|
+
**Performance Benefits:**
|
|
35
|
+
- Build Time: 755s → <20s (96% faster)
|
|
36
|
+
- Context Transfer: 0.1s vs 755s on Windows mounts
|
|
37
|
+
- Method: rsync to Linux native storage, build from there
|
|
53
38
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
39
|
+
**Quick Use:**
|
|
40
|
+
```bash
|
|
41
|
+
# Rebuild agent image (most common)
|
|
42
|
+
./.claude/skills/docker-build/build.sh
|
|
57
43
|
|
|
58
|
-
#
|
|
59
|
-
|
|
60
|
-
adduser --system --uid 1001 nodejs
|
|
44
|
+
# Build with specific tag
|
|
45
|
+
./.claude/skills/docker-build/build.sh --tag my-custom-tag
|
|
61
46
|
|
|
62
|
-
#
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
COPY --chown=nodejs:nodejs package*.json ./
|
|
47
|
+
# Force rebuild without cache
|
|
48
|
+
./.claude/skills/docker-build/build.sh --no-cache
|
|
49
|
+
```
|
|
66
50
|
|
|
67
|
-
|
|
68
|
-
|
|
51
|
+
**When to Use:**
|
|
52
|
+
- After modifying agent templates (`.claude/agents/`)
|
|
53
|
+
- After changing source code
|
|
54
|
+
- After updating dependencies
|
|
55
|
+
- Before running Docker-based tests
|
|
56
|
+
- When WSL2 build is too slow
|
|
69
57
|
|
|
70
|
-
|
|
71
|
-
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
72
|
-
CMD node healthcheck.js || exit 1
|
|
58
|
+
**See:** `.claude/skills/docker-build/SKILL.md` for complete documentation
|
|
73
59
|
|
|
74
|
-
|
|
75
|
-
ENV NODE_OPTIONS="--max-old-space-size=2048"
|
|
60
|
+
---
|
|
76
61
|
|
|
77
|
-
|
|
78
|
-
CMD ["node", "dist/server.js"]
|
|
79
|
-
```
|
|
62
|
+
## 🚨 CRITICAL: Docker Coordinator Known Issues
|
|
80
63
|
|
|
81
|
-
|
|
82
|
-
```dockerfile
|
|
83
|
-
# Stage 1: Build
|
|
84
|
-
FROM golang:1.21-alpine AS builder
|
|
85
|
-
WORKDIR /app
|
|
86
|
-
|
|
87
|
-
# Install dependencies
|
|
88
|
-
COPY go.mod go.sum ./
|
|
89
|
-
RUN go mod download && go mod verify
|
|
64
|
+
### Bug #4: Architectural Mismatch (BLOCKING ALL PRODUCTION USE)
|
|
90
65
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-ldflags '-s -w -extldflags "-static"' \
|
|
95
|
-
-o /app/server ./cmd/server
|
|
66
|
+
**Status:** ❌ NOT FIXED (as of 2025-11-12)
|
|
67
|
+
**Severity:** P0 - CRITICAL BLOCKER
|
|
68
|
+
**Confidence:** 0.95 (root cause identified via integration testing)
|
|
96
69
|
|
|
97
|
-
|
|
98
|
-
FROM scratch
|
|
99
|
-
WORKDIR /
|
|
70
|
+
#### Problem Overview
|
|
100
71
|
|
|
101
|
-
|
|
102
|
-
|
|
72
|
+
**Coordinator and agents use incompatible task distribution patterns:**
|
|
73
|
+
- Coordinator pushes tasks to Redis queue AND embeds tasks in agent environment variables
|
|
74
|
+
- Agents execute using environment variables (never consume queue)
|
|
75
|
+
- Coordinator waits for queue consumption that never happens (infinite wait)
|
|
103
76
|
|
|
104
|
-
|
|
105
|
-
COPY --from=builder /app/server /server
|
|
77
|
+
#### Quick Reference
|
|
106
78
|
|
|
107
|
-
|
|
108
|
-
|
|
79
|
+
**Mismatch Pattern:**
|
|
80
|
+
1. Coordinator: `await redisClient.rPush('task:queue', taskNum)` (lines 167-195)
|
|
81
|
+
2. Coordinator: `Env: ['TASK_PROMPT=${promptText}']` (lines 272, 287)
|
|
82
|
+
3. Agents: Execute from `TASK_PROMPT` env var (no RPOP/BLPOP calls)
|
|
83
|
+
4. Coordinator: Polls Redis `task:completed` counter forever (lines 296-350)
|
|
109
84
|
|
|
110
|
-
|
|
111
|
-
|
|
85
|
+
**Evidence:**
|
|
86
|
+
- Integration test: 15+ min stuck at "0/16 tasks, 16 queued"
|
|
87
|
+
- Agent logs: Successful completion (exit code 0)
|
|
88
|
+
- Coordinator logs: Infinite polling loop
|
|
89
|
+
- Code analysis: No queue consumption in agent code
|
|
112
90
|
|
|
113
|
-
|
|
114
|
-
USER 65534:65534
|
|
91
|
+
#### Required Fix (Container Status Tracking)
|
|
115
92
|
|
|
116
|
-
|
|
117
|
-
|
|
93
|
+
**Replace Redis queue with Docker API polling:**
|
|
94
|
+
1. Remove queue operations (lines 167-195)
|
|
95
|
+
2. Replace `waitForCompletion()` with Docker container status polling
|
|
96
|
+
3. Add health checking for stuck agents (30min timeout)
|
|
97
|
+
4. Poll Docker API every 2 seconds for container states
|
|
118
98
|
|
|
119
|
-
|
|
120
|
-
```dockerfile
|
|
121
|
-
# Stage 1: Dependencies
|
|
122
|
-
FROM python:3.11-slim AS deps
|
|
123
|
-
WORKDIR /app
|
|
99
|
+
**Estimated effort:** 2-3 hours
|
|
124
100
|
|
|
125
|
-
|
|
126
|
-
RUN apt-get update && \
|
|
127
|
-
apt-get upgrade -y && \
|
|
128
|
-
apt-get clean && \
|
|
129
|
-
rm -rf /var/lib/apt/lists/*
|
|
101
|
+
**See:** `docs/bugs/BUG_4_DOCKER_COORDINATOR.md` for complete analysis, evidence chain, and fix implementation.
|
|
130
102
|
|
|
131
|
-
|
|
132
|
-
COPY requirements.txt ./
|
|
133
|
-
RUN pip install --no-cache-dir -r requirements.txt && \
|
|
134
|
-
pip install --no-cache-dir safety bandit
|
|
103
|
+
---
|
|
135
104
|
|
|
136
|
-
|
|
137
|
-
FROM deps AS security
|
|
138
|
-
WORKDIR /app
|
|
139
|
-
COPY . .
|
|
105
|
+
## Docker Coordinator Context
|
|
140
106
|
|
|
141
|
-
|
|
142
|
-
RUN safety check --json
|
|
107
|
+
### Wave-Based Spawning with Memory Budget
|
|
143
108
|
|
|
144
|
-
|
|
145
|
-
RUN bandit -r . -f json -o /tmp/bandit-report.json || true
|
|
109
|
+
**Constraint:** 40GB total memory budget for all agents
|
|
146
110
|
|
|
147
|
-
|
|
148
|
-
FROM python:3.11-slim AS runner
|
|
149
|
-
WORKDIR /app
|
|
111
|
+
**Four-Tier Batching Strategy:**
|
|
150
112
|
|
|
151
|
-
|
|
152
|
-
|
|
113
|
+
| Tier | Cluster Size | Memory | Use Case | Example |
|
|
114
|
+
|------|-------------|--------|----------|---------|
|
|
115
|
+
| 1 | 1 file | 512MB | Independent files | `Footer.tsx` (standalone) |
|
|
116
|
+
| 2 | 2-3 files | 600MB | Small clusters | Auth module (LoginForm, AuthContext, useAuth) |
|
|
117
|
+
| 3 | 4-8 files | 800MB | Medium modules | Story management (list, card, types, API, utils) |
|
|
118
|
+
| 4 | 9+ files | 1GB | Large modules | Admin dashboard with shared state |
|
|
153
119
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
120
|
+
**Wave Spawning Algorithm:**
|
|
121
|
+
```javascript
|
|
122
|
+
const MEMORY_BUDGET = 40 * 1024 * 1024 * 1024; // 40GB in bytes
|
|
123
|
+
let currentWave = 1;
|
|
124
|
+
let batchQueue = [...batches];
|
|
125
|
+
|
|
126
|
+
while (batchQueue.length > 0) {
|
|
127
|
+
const wave = [];
|
|
128
|
+
let waveMemory = 0;
|
|
129
|
+
|
|
130
|
+
// Fill wave up to budget
|
|
131
|
+
while (batchQueue.length > 0) {
|
|
132
|
+
const batch = batchQueue[0];
|
|
133
|
+
const batchMemory = parseMemory(batch.memory);
|
|
134
|
+
|
|
135
|
+
if (waveMemory + batchMemory <= MEMORY_BUDGET) {
|
|
136
|
+
wave.push(batchQueue.shift());
|
|
137
|
+
waveMemory += batchMemory;
|
|
138
|
+
} else {
|
|
139
|
+
break; // Budget full, spawn next wave
|
|
140
|
+
}
|
|
141
|
+
}
|
|
157
142
|
|
|
158
|
-
|
|
159
|
-
|
|
143
|
+
console.log(`Wave ${currentWave}: ${wave.length} agents, ${formatBytes(waveMemory)} / ${formatBytes(MEMORY_BUDGET)}`);
|
|
144
|
+
await Promise.all(wave.map(batch => spawnAgent(batch)));
|
|
145
|
+
await waitForWaveCompletion(wave); // Use Docker status - see Bug #4 fix
|
|
146
|
+
currentWave++;
|
|
147
|
+
}
|
|
148
|
+
```
|
|
160
149
|
|
|
161
|
-
|
|
162
|
-
|
|
150
|
+
**Memory Optimization:**
|
|
151
|
+
- Naive approach: 85 files × 1GB = 85GB ❌ (exceeds budget)
|
|
152
|
+
- Strategic batching: ~58 batches × avg 565MB = 32.7GB ✅ (66% reduction)
|
|
153
|
+
- Headroom: 7.3GB for peak usage spikes
|
|
163
154
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
155
|
+
**Real Example (Integration Test):**
|
|
156
|
+
- Initial errors: 1147 across 65 files
|
|
157
|
+
- Batches: 16 (T1=9, T2=3, T3=3, T4=1)
|
|
158
|
+
- Memory allocated: 9.8GB / 40GB (24% utilization)
|
|
159
|
+
- Waves: 1 (all agents fit in single wave)
|
|
167
160
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
```
|
|
161
|
+
**Bug #3 Fix:** Redis CLI deadlock resolved via pipe input pattern.
|
|
162
|
+
**See:** `docs/bugs/BUG_3_REDIS_CLI.md` for detailed fix.
|
|
171
163
|
|
|
172
|
-
|
|
164
|
+
---
|
|
173
165
|
|
|
174
|
-
|
|
175
|
-
```yaml
|
|
176
|
-
version: '3.9'
|
|
166
|
+
## Integration Testing Patterns
|
|
177
167
|
|
|
178
|
-
|
|
179
|
-
frontend:
|
|
180
|
-
build:
|
|
181
|
-
context: ./frontend
|
|
182
|
-
dockerfile: Dockerfile
|
|
183
|
-
target: production
|
|
184
|
-
image: myapp-frontend:latest
|
|
185
|
-
ports:
|
|
186
|
-
- "3000:3000"
|
|
187
|
-
environment:
|
|
188
|
-
- NODE_ENV=production
|
|
189
|
-
- API_URL=http://backend:4000
|
|
190
|
-
depends_on:
|
|
191
|
-
backend:
|
|
192
|
-
condition: service_healthy
|
|
193
|
-
networks:
|
|
194
|
-
- app-network
|
|
195
|
-
restart: unless-stopped
|
|
196
|
-
healthcheck:
|
|
197
|
-
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
|
|
198
|
-
interval: 30s
|
|
199
|
-
timeout: 3s
|
|
200
|
-
retries: 3
|
|
201
|
-
start_period: 10s
|
|
202
|
-
deploy:
|
|
203
|
-
resources:
|
|
204
|
-
limits:
|
|
205
|
-
cpus: '0.5'
|
|
206
|
-
memory: 512M
|
|
207
|
-
reservations:
|
|
208
|
-
cpus: '0.25'
|
|
209
|
-
memory: 256M
|
|
168
|
+
### Historical Commit Testing (Regression Validation)
|
|
210
169
|
|
|
211
|
-
|
|
212
|
-
build:
|
|
213
|
-
context: ./backend
|
|
214
|
-
dockerfile: Dockerfile
|
|
215
|
-
args:
|
|
216
|
-
- BUILD_ENV=production
|
|
217
|
-
image: myapp-backend:latest
|
|
218
|
-
ports:
|
|
219
|
-
- "4000:4000"
|
|
220
|
-
environment:
|
|
221
|
-
- NODE_ENV=production
|
|
222
|
-
- DATABASE_URL=postgresql://user:password@db:5432/myapp
|
|
223
|
-
- CACHE_URL=memcached://cache:11211
|
|
224
|
-
env_file:
|
|
225
|
-
- .env.production
|
|
226
|
-
depends_on:
|
|
227
|
-
db:
|
|
228
|
-
condition: service_healthy
|
|
229
|
-
cache:
|
|
230
|
-
condition: service_healthy
|
|
231
|
-
networks:
|
|
232
|
-
- app-network
|
|
233
|
-
volumes:
|
|
234
|
-
- ./uploads:/app/uploads
|
|
235
|
-
restart: unless-stopped
|
|
236
|
-
healthcheck:
|
|
237
|
-
test: ["CMD", "curl", "-f", "http://localhost:4000/health"]
|
|
238
|
-
interval: 30s
|
|
239
|
-
timeout: 5s
|
|
240
|
-
retries: 3
|
|
241
|
-
start_period: 15s
|
|
170
|
+
**Pattern:** Test against known error state using git worktrees
|
|
242
171
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
- POSTGRES_USER=user
|
|
247
|
-
- POSTGRES_PASSWORD=password
|
|
248
|
-
- POSTGRES_DB=myapp
|
|
249
|
-
volumes:
|
|
250
|
-
- postgres-data:/var/lib/postgresql/data
|
|
251
|
-
- ./init-scripts:/docker-entrypoint-initdb.d
|
|
252
|
-
networks:
|
|
253
|
-
- app-network
|
|
254
|
-
restart: unless-stopped
|
|
255
|
-
healthcheck:
|
|
256
|
-
test: ["CMD-SHELL", "pg_isready -U user"]
|
|
257
|
-
interval: 10s
|
|
258
|
-
timeout: 5s
|
|
259
|
-
retries: 5
|
|
260
|
-
deploy:
|
|
261
|
-
resources:
|
|
262
|
-
limits:
|
|
263
|
-
memory: 1G
|
|
172
|
+
```bash
|
|
173
|
+
#!/bin/bash
|
|
174
|
+
set -euo pipefail
|
|
264
175
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
networks:
|
|
269
|
-
- app-network
|
|
270
|
-
restart: unless-stopped
|
|
271
|
-
healthcheck:
|
|
272
|
-
test: ["CMD", "nc", "-z", "localhost", "11211"]
|
|
273
|
-
interval: 10s
|
|
274
|
-
timeout: 3s
|
|
275
|
-
retries: 3
|
|
176
|
+
TEST_COMMIT="d0049cbf" # November 1, 2025 - 1147 errors in 65 files
|
|
177
|
+
WORKTREE_PATH="/tmp/frontend-test-worktree"
|
|
178
|
+
FRONTEND_PATH="${WORKTREE_PATH}/frontend"
|
|
276
179
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
ports:
|
|
280
|
-
- "80:80"
|
|
281
|
-
- "443:443"
|
|
282
|
-
volumes:
|
|
283
|
-
- ./nginx.conf:/etc/nginx/nginx.conf:ro
|
|
284
|
-
- ./ssl:/etc/nginx/ssl:ro
|
|
285
|
-
depends_on:
|
|
286
|
-
- frontend
|
|
287
|
-
- backend
|
|
288
|
-
networks:
|
|
289
|
-
- app-network
|
|
290
|
-
restart: unless-stopped
|
|
291
|
-
healthcheck:
|
|
292
|
-
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/health"]
|
|
293
|
-
interval: 30s
|
|
294
|
-
timeout: 3s
|
|
295
|
-
retries: 3
|
|
180
|
+
echo "Creating git worktree at commit $TEST_COMMIT"
|
|
181
|
+
git worktree add "$WORKTREE_PATH" "$TEST_COMMIT"
|
|
296
182
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
cache-data:
|
|
301
|
-
driver: local
|
|
183
|
+
# Count initial errors
|
|
184
|
+
INITIAL_ERRORS=$(cd "$FRONTEND_PATH" && npx tsc --noEmit 2>&1 | grep "error TS" | wc -l)
|
|
185
|
+
echo "Initial errors: $INITIAL_ERRORS"
|
|
302
186
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
187
|
+
# Launch coordinator
|
|
188
|
+
START_TIME=$(date +%s)
|
|
189
|
+
docker run --rm --name cfn-coordinator --memory=2g \
|
|
190
|
+
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
191
|
+
-v "$FRONTEND_PATH":/workspace:rw \
|
|
192
|
+
-e MEMORY_BUDGET=40g -e MAX_ITERATIONS=5 \
|
|
193
|
+
-e REDIS_HOST=cfn-redis --network cfn-network \
|
|
194
|
+
--env-file .env cfn-intelligent-coordinator:latest
|
|
307
195
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
version: '3.9'
|
|
196
|
+
END_TIME=$(date +%s)
|
|
197
|
+
DURATION=$((END_TIME - START_TIME))
|
|
311
198
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
build:
|
|
315
|
-
context: .
|
|
316
|
-
dockerfile: Dockerfile.dev
|
|
317
|
-
target: development
|
|
318
|
-
image: myapp-dev:latest
|
|
319
|
-
ports:
|
|
320
|
-
- "3000:3000"
|
|
321
|
-
- "9229:9229" # Node.js debugger
|
|
322
|
-
environment:
|
|
323
|
-
- NODE_ENV=development
|
|
324
|
-
- DEBUG=*
|
|
325
|
-
volumes:
|
|
326
|
-
# Hot reload
|
|
327
|
-
- ./src:/app/src:delegated
|
|
328
|
-
- ./public:/app/public:delegated
|
|
329
|
-
# Prevent node_modules override
|
|
330
|
-
- /app/node_modules
|
|
331
|
-
networks:
|
|
332
|
-
- dev-network
|
|
333
|
-
command: npm run dev
|
|
334
|
-
stdin_open: true
|
|
335
|
-
tty: true
|
|
199
|
+
# Count final errors
|
|
200
|
+
FINAL_ERRORS=$(cd "$FRONTEND_PATH" && npx tsc --noEmit 2>&1 | grep "error TS" | wc -l)
|
|
336
201
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
- POSTGRES_PASSWORD=dev
|
|
342
|
-
- POSTGRES_DB=myapp_dev
|
|
343
|
-
ports:
|
|
344
|
-
- "5432:5432"
|
|
345
|
-
volumes:
|
|
346
|
-
- postgres-dev-data:/var/lib/postgresql/data
|
|
347
|
-
networks:
|
|
348
|
-
- dev-network
|
|
202
|
+
echo "=== Test Results ==="
|
|
203
|
+
echo "Initial: $INITIAL_ERRORS, Final: $FINAL_ERRORS"
|
|
204
|
+
echo "Fixed: $((INITIAL_ERRORS - FINAL_ERRORS)) ($((INITIAL_ERRORS - FINAL_ERRORS) * 100 / INITIAL_ERRORS)%)"
|
|
205
|
+
echo "Duration: ${DURATION}s"
|
|
349
206
|
|
|
350
|
-
|
|
351
|
-
postgres-dev-data:
|
|
207
|
+
git worktree remove "$WORKTREE_PATH"
|
|
352
208
|
|
|
353
|
-
|
|
354
|
-
dev-network:
|
|
209
|
+
[ "$FINAL_ERRORS" -eq 0 ] && echo "✅ SUCCESS" || echo "⚠️ PARTIAL: $FINAL_ERRORS remain"
|
|
355
210
|
```
|
|
356
211
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
#### Security Scanning Integration
|
|
360
|
-
```bash
|
|
361
|
-
# Trivy vulnerability scanning
|
|
362
|
-
scan_image_vulnerabilities() {
|
|
363
|
-
local image=$1
|
|
364
|
-
|
|
365
|
-
echo "Scanning image for vulnerabilities: $image"
|
|
366
|
-
|
|
367
|
-
trivy image --severity HIGH,CRITICAL \
|
|
368
|
-
--exit-code 1 \
|
|
369
|
-
--no-progress \
|
|
370
|
-
"$image"
|
|
371
|
-
|
|
372
|
-
if [ $? -eq 0 ]; then
|
|
373
|
-
echo "✅ No high/critical vulnerabilities found"
|
|
374
|
-
else
|
|
375
|
-
echo "❌ Vulnerabilities detected - build blocked"
|
|
376
|
-
return 1
|
|
377
|
-
fi
|
|
378
|
-
}
|
|
212
|
+
**Why Worktrees:** Test isolated historical state without disrupting current branch.
|
|
379
213
|
|
|
380
|
-
#
|
|
381
|
-
lint_dockerfile() {
|
|
382
|
-
local dockerfile=$1
|
|
214
|
+
**Test Discovery:** Bug #4 infinite wait identified via 15+ minute stall with no progress.
|
|
383
215
|
|
|
384
|
-
|
|
216
|
+
---
|
|
385
217
|
|
|
386
|
-
|
|
387
|
-
--failure-threshold warning \
|
|
388
|
-
--format json > hadolint-report.json
|
|
218
|
+
## Agent Lifecycle Management
|
|
389
219
|
|
|
390
|
-
|
|
391
|
-
echo "✅ Dockerfile passes linting"
|
|
392
|
-
else
|
|
393
|
-
echo "❌ Dockerfile linting failed"
|
|
394
|
-
cat hadolint-report.json
|
|
395
|
-
return 1
|
|
396
|
-
fi
|
|
397
|
-
}
|
|
220
|
+
### Environment Variables Pattern
|
|
398
221
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
222
|
+
**Critical variables (all agents):**
|
|
223
|
+
```bash
|
|
224
|
+
TASK_PROMPT="[embedded task description]"
|
|
225
|
+
AGENT_TYPE="typescript-specialist"
|
|
226
|
+
TASK_ID="batch-1"
|
|
227
|
+
MEMORY_LIMIT="512m"
|
|
228
|
+
WORKSPACE_PATH="/workspace"
|
|
229
|
+
```
|
|
402
230
|
|
|
403
|
-
|
|
231
|
+
**Extended context (coordinator-aware):**
|
|
232
|
+
```bash
|
|
233
|
+
REDIS_HOST="cfn-redis"
|
|
234
|
+
COORDINATOR_ID="coord-abc123"
|
|
235
|
+
WAVE_NUMBER="1"
|
|
236
|
+
TOTAL_BATCHES="16"
|
|
237
|
+
```
|
|
404
238
|
|
|
405
|
-
|
|
239
|
+
### Health Monitoring
|
|
406
240
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
241
|
+
**Container status polling (Bug #4 fix):**
|
|
242
|
+
```javascript
|
|
243
|
+
async function waitForCompletion(waveContainerNames) {
|
|
244
|
+
while (true) {
|
|
245
|
+
const containers = await docker.listContainers({
|
|
246
|
+
filters: { name: waveContainerNames },
|
|
247
|
+
all: true
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
const running = containers.filter(c => c.State === 'running');
|
|
251
|
+
const exited = containers.filter(c => c.State === 'exited');
|
|
252
|
+
|
|
253
|
+
if (running.length === 0) {
|
|
254
|
+
// Check exit codes
|
|
255
|
+
const failed = [];
|
|
256
|
+
for (const container of exited) {
|
|
257
|
+
const inspect = await docker.getContainer(container.Id).inspect();
|
|
258
|
+
if (inspect.State.ExitCode !== 0) {
|
|
259
|
+
failed.push({ name: container.Names[0], exitCode: inspect.State.ExitCode });
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (failed.length > 0) {
|
|
263
|
+
console.warn(`⚠️ ${failed.length} agents failed`);
|
|
264
|
+
failed.forEach(f => console.warn(`- ${f.name} (exit ${f.exitCode})`));
|
|
265
|
+
}
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
await sleep(2000);
|
|
269
|
+
}
|
|
413
270
|
}
|
|
414
271
|
```
|
|
415
272
|
|
|
416
|
-
|
|
417
|
-
```dockerfile
|
|
418
|
-
# ✅ Use specific versions (not latest)
|
|
419
|
-
FROM node:18.17.0-alpine3.18
|
|
273
|
+
### Exit Codes
|
|
420
274
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
275
|
+
| Code | Meaning | Action |
|
|
276
|
+
|------|---------|--------|
|
|
277
|
+
| 0 | Success | Continue to next wave |
|
|
278
|
+
| 1 | Task failure | Log error, continue |
|
|
279
|
+
| 137 | OOM killed | Increase memory tier |
|
|
280
|
+
| 143 | SIGTERM | Timeout, retry with longer limit |
|
|
424
281
|
|
|
425
|
-
|
|
426
|
-
FROM scratch # or distroless for Go/Java
|
|
282
|
+
---
|
|
427
283
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
284
|
+
## Collaboration Patterns (Condensed)
|
|
285
|
+
|
|
286
|
+
### With backend-developer
|
|
287
|
+
**Trigger:** API containerization needed
|
|
288
|
+
**Pattern:**
|
|
289
|
+
1. Backend-dev creates Dockerfile draft
|
|
290
|
+
2. Docker-specialist optimizes multi-stage build
|
|
291
|
+
3. Backend-dev validates dev environment
|
|
292
|
+
4. Docker-specialist adds prod security hardening
|
|
293
|
+
5. Joint review: performance + functionality
|
|
294
|
+
|
|
295
|
+
**Example:** Express API - optimized from 980MB to 187MB (81% reduction)
|
|
296
|
+
|
|
297
|
+
### With tester
|
|
298
|
+
**Trigger:** Container integration testing
|
|
299
|
+
**Pattern:**
|
|
300
|
+
1. Tester writes test scenarios
|
|
301
|
+
2. Docker-specialist creates test containers
|
|
302
|
+
3. Tester runs integration suite
|
|
303
|
+
4. Docker-specialist fixes container issues
|
|
304
|
+
5. Joint validation: tests pass in containers
|
|
305
|
+
|
|
306
|
+
**Example:** API tests passing in isolated container network
|
|
307
|
+
|
|
308
|
+
### With security-specialist
|
|
309
|
+
**Trigger:** Container security audit
|
|
310
|
+
**Pattern:**
|
|
311
|
+
1. Security-specialist defines threat model
|
|
312
|
+
2. Docker-specialist implements hardening
|
|
313
|
+
3. Security-specialist scans images
|
|
314
|
+
4. Docker-specialist fixes vulnerabilities
|
|
315
|
+
5. Joint approval: production readiness
|
|
316
|
+
|
|
317
|
+
**Example:** Zero critical CVEs after Alpine base + non-root user
|
|
318
|
+
|
|
319
|
+
### With cfn-v3-coordinator
|
|
320
|
+
**Trigger:** Multi-agent Docker deployment
|
|
321
|
+
**Pattern:**
|
|
322
|
+
1. Coordinator defines task distribution
|
|
323
|
+
2. Docker-specialist designs wave spawning
|
|
324
|
+
3. Coordinator spawns agents via Docker API
|
|
325
|
+
4. Docker-specialist monitors health metrics
|
|
326
|
+
5. Joint optimization: memory budget tuning
|
|
327
|
+
|
|
328
|
+
**Example:** 85 files batched into 58 agents, 32.7GB memory (18% under budget)
|
|
329
|
+
|
|
330
|
+
### With infrastructure-specialist
|
|
331
|
+
**Trigger:** Production deployment
|
|
332
|
+
**Pattern:**
|
|
333
|
+
1. Infrastructure-specialist defines cluster requirements
|
|
334
|
+
2. Docker-specialist creates production images
|
|
335
|
+
3. Infrastructure-specialist tests orchestration
|
|
336
|
+
4. Docker-specialist tunes resource limits
|
|
337
|
+
5. Joint deployment: gradual rollout
|
|
338
|
+
|
|
339
|
+
**Example:** Kubernetes deployment with HPA + resource quotas
|
|
340
|
+
|
|
341
|
+
### With react-frontend-engineer
|
|
342
|
+
**Trigger:** Frontend build optimization
|
|
343
|
+
**Pattern:**
|
|
344
|
+
1. Frontend-engineer defines build process
|
|
345
|
+
2. Docker-specialist creates multi-stage Dockerfile
|
|
346
|
+
3. Frontend-engineer validates dev hot-reload
|
|
347
|
+
4. Docker-specialist optimizes prod build caching
|
|
348
|
+
5. Joint metrics: build time + image size
|
|
349
|
+
|
|
350
|
+
**Example:** Next.js build - 14min to 3min (78% faster) via layer caching
|
|
432
351
|
|
|
433
|
-
|
|
434
|
-
VOLUME /tmp
|
|
435
|
-
COPY --chown=appuser:appuser . /app
|
|
436
|
-
RUN chmod -R 555 /app # Read + execute only
|
|
352
|
+
---
|
|
437
353
|
|
|
438
|
-
|
|
439
|
-
RUN apk update && apk upgrade && apk cache clean
|
|
354
|
+
## CFN Agent System Containerization
|
|
440
355
|
|
|
441
|
-
|
|
442
|
-
RUN apk add --no-cache \
|
|
443
|
-
ca-certificates \
|
|
444
|
-
&& rm -rf /var/cache/apk/*
|
|
356
|
+
### Overview
|
|
445
357
|
|
|
446
|
-
|
|
447
|
-
HEALTHCHECK CMD curl -f http://localhost/health || exit 1
|
|
448
|
-
```
|
|
358
|
+
**62 specialized agents** containerized with intelligent coordinator for distributed TypeScript error resolution.
|
|
449
359
|
|
|
450
|
-
|
|
360
|
+
**Architecture:**
|
|
361
|
+
- Coordinator: Analyzes errors → batches files → spawns waves
|
|
362
|
+
- Workers: Agent-specific containers (TypeScript, React, Backend, etc.)
|
|
363
|
+
- Coordination: Redis pub/sub + Docker API status tracking
|
|
364
|
+
- Memory management: 40GB budget with four-tier batching
|
|
451
365
|
|
|
452
|
-
|
|
453
|
-
```dockerfile
|
|
454
|
-
# Technique 1: Alpine base images
|
|
455
|
-
FROM node:18-alpine # ~150MB vs node:18 ~900MB
|
|
456
|
-
|
|
457
|
-
# Technique 2: Multi-stage builds
|
|
458
|
-
FROM builder AS stage1
|
|
459
|
-
# ... build artifacts
|
|
460
|
-
FROM alpine
|
|
461
|
-
COPY --from=stage1 /app/binary /app/binary
|
|
462
|
-
|
|
463
|
-
# Technique 3: .dockerignore
|
|
464
|
-
# Create .dockerignore
|
|
465
|
-
cat > .dockerignore << 'EOF'
|
|
466
|
-
node_modules
|
|
467
|
-
npm-debug.log
|
|
468
|
-
.git
|
|
469
|
-
.gitignore
|
|
470
|
-
README.md
|
|
471
|
-
.env
|
|
472
|
-
.DS_Store
|
|
473
|
-
coverage/
|
|
474
|
-
.vscode/
|
|
475
|
-
*.test.js
|
|
476
|
-
EOF
|
|
366
|
+
### Critical .dockerignore Pattern
|
|
477
367
|
|
|
478
|
-
|
|
479
|
-
# Copy dependency files first (changes less frequently)
|
|
480
|
-
COPY package*.json ./
|
|
481
|
-
RUN npm ci
|
|
482
|
-
# Copy source code last (changes frequently)
|
|
483
|
-
COPY . .
|
|
368
|
+
**Essential for build performance** (prevents 500MB+ context bloat):
|
|
484
369
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
apk del .build-deps
|
|
490
|
-
|
|
491
|
-
# Technique 6: Minimize layers
|
|
492
|
-
# BAD: Each RUN creates a layer
|
|
493
|
-
RUN apt-get update
|
|
494
|
-
RUN apt-get install -y curl
|
|
495
|
-
RUN apt-get clean
|
|
496
|
-
|
|
497
|
-
# GOOD: Single layer
|
|
498
|
-
RUN apt-get update && \
|
|
499
|
-
apt-get install -y curl && \
|
|
500
|
-
apt-get clean && \
|
|
501
|
-
rm -rf /var/lib/apt/lists/*
|
|
502
|
-
```
|
|
370
|
+
```dockerignore
|
|
371
|
+
# Prevent recursive copy issues
|
|
372
|
+
.claude/agents/**/*.md
|
|
373
|
+
!.claude/agents/cfn-dev-team/**/*.md
|
|
503
374
|
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
375
|
+
# Build artifacts
|
|
376
|
+
node_modules/
|
|
377
|
+
dist/
|
|
378
|
+
.next/
|
|
379
|
+
.turbo/
|
|
508
380
|
|
|
509
|
-
#
|
|
510
|
-
|
|
381
|
+
# Development
|
|
382
|
+
.git/
|
|
383
|
+
.env.local
|
|
384
|
+
*.log
|
|
385
|
+
coverage/
|
|
511
386
|
|
|
512
|
-
#
|
|
513
|
-
|
|
387
|
+
# Docker
|
|
388
|
+
.dockerignore
|
|
389
|
+
Dockerfile*
|
|
390
|
+
docker-compose*.yml
|
|
514
391
|
```
|
|
515
392
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
# syntax=docker/dockerfile:1.4
|
|
521
|
-
|
|
522
|
-
# Cache mounts (persist across builds)
|
|
523
|
-
FROM node:18-alpine
|
|
524
|
-
RUN --mount=type=cache,target=/root/.npm \
|
|
525
|
-
npm install
|
|
393
|
+
**Why critical:** Without this, Docker copies ALL agent files including examples, causing:
|
|
394
|
+
- 10x slower builds (500MB+ context vs 50MB)
|
|
395
|
+
- Layer cache invalidation on every build
|
|
396
|
+
- Potential agent conflicts (wrong agent loaded)
|
|
526
397
|
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
398
|
+
**See:** `docs/DOCKER_CFN_AGENT_SYSTEM.md` for complete containerization guide including:
|
|
399
|
+
- 62 agent profiles and memory requirements
|
|
400
|
+
- Multi-stage build patterns for 15+ languages
|
|
401
|
+
- Production deployment patterns (Kubernetes, ECS, Docker Swarm)
|
|
402
|
+
- Monitoring and observability integration
|
|
403
|
+
- Security hardening checklist
|
|
530
404
|
|
|
531
|
-
|
|
532
|
-
RUN --mount=type=ssh \
|
|
533
|
-
git clone git@github.com:private/repo.git
|
|
405
|
+
---
|
|
534
406
|
|
|
535
|
-
|
|
536
|
-
RUN --mount=type=bind,source=.,target=/src \
|
|
537
|
-
cp /src/config.json /app/
|
|
538
|
-
```
|
|
407
|
+
## Core Docker Patterns
|
|
539
408
|
|
|
540
|
-
|
|
541
|
-
```bash
|
|
542
|
-
# Enable BuildKit
|
|
543
|
-
export DOCKER_BUILDKIT=1
|
|
409
|
+
### Multi-Stage Build Template
|
|
544
410
|
|
|
545
|
-
|
|
546
|
-
|
|
411
|
+
```dockerfile
|
|
412
|
+
# Stage 1: Dependencies
|
|
413
|
+
FROM node:20-alpine AS deps
|
|
414
|
+
WORKDIR /app
|
|
415
|
+
COPY package*.json ./
|
|
416
|
+
RUN npm ci --only=production
|
|
547
417
|
|
|
548
|
-
#
|
|
549
|
-
|
|
418
|
+
# Stage 2: Build
|
|
419
|
+
FROM node:20-alpine AS builder
|
|
420
|
+
WORKDIR /app
|
|
421
|
+
COPY package*.json ./
|
|
422
|
+
RUN npm ci
|
|
423
|
+
COPY . .
|
|
424
|
+
RUN npm run build
|
|
550
425
|
|
|
551
|
-
#
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
426
|
+
# Stage 3: Production
|
|
427
|
+
FROM node:20-alpine
|
|
428
|
+
WORKDIR /app
|
|
429
|
+
RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001
|
|
430
|
+
COPY --from=deps --chown=nodejs:nodejs /app/node_modules ./node_modules
|
|
431
|
+
COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist
|
|
432
|
+
USER nodejs
|
|
433
|
+
EXPOSE 3000
|
|
434
|
+
CMD ["node", "dist/index.js"]
|
|
556
435
|
```
|
|
557
436
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
#### Push to Multiple Registries
|
|
561
|
-
```bash
|
|
562
|
-
#!/bin/bash
|
|
563
|
-
set -e
|
|
564
|
-
|
|
565
|
-
IMAGE_NAME="myapp"
|
|
566
|
-
VERSION="1.0.0"
|
|
567
|
-
REGISTRIES=(
|
|
568
|
-
"docker.io/myorg"
|
|
569
|
-
"ghcr.io/myorg"
|
|
570
|
-
"myregistry.azurecr.io"
|
|
571
|
-
)
|
|
437
|
+
**Benefits:** 81% smaller images, no build tools in production, non-root user
|
|
572
438
|
|
|
573
|
-
|
|
574
|
-
docker build -t "${IMAGE_NAME}:${VERSION}" .
|
|
439
|
+
### Container Security Checklist
|
|
575
440
|
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
441
|
+
- [ ] Use minimal base images (Alpine, Distroless)
|
|
442
|
+
- [ ] Run as non-root user
|
|
443
|
+
- [ ] Scan for vulnerabilities (Trivy, Snyk)
|
|
444
|
+
- [ ] Pin exact versions (not `:latest`)
|
|
445
|
+
- [ ] Remove unnecessary packages
|
|
446
|
+
- [ ] Use read-only root filesystem
|
|
447
|
+
- [ ] Set resource limits (memory, CPU)
|
|
448
|
+
- [ ] Enable security profiles (AppArmor, seccomp)
|
|
579
449
|
|
|
580
|
-
|
|
581
|
-
docker tag "${IMAGE_NAME}:${VERSION}" "${registry}/${IMAGE_NAME}:latest"
|
|
450
|
+
### Image Optimization Techniques
|
|
582
451
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
```
|
|
452
|
+
1. **Layer Caching:** Order COPY commands from least to most frequently changed
|
|
453
|
+
2. **Multi-Stage:** Separate build and runtime dependencies
|
|
454
|
+
3. **.dockerignore:** Exclude unnecessary files (see pattern above)
|
|
455
|
+
4. **Compression:** Use `COPY --link` for better layer sharing
|
|
456
|
+
5. **Minimal Base:** Alpine (5MB) vs Ubuntu (77MB)
|
|
589
457
|
|
|
590
|
-
|
|
591
|
-
```bash
|
|
592
|
-
# Sign image
|
|
593
|
-
cosign sign --key cosign.key myregistry/myapp:1.0.0
|
|
594
|
-
|
|
595
|
-
# Verify signature
|
|
596
|
-
cosign verify --key cosign.pub myregistry/myapp:1.0.0
|
|
458
|
+
---
|
|
597
459
|
|
|
598
|
-
|
|
599
|
-
cosign attach sbom --sbom sbom.spdx.json myregistry/myapp:1.0.0
|
|
600
|
-
```
|
|
460
|
+
## Docker Compose Patterns
|
|
601
461
|
|
|
602
|
-
###
|
|
462
|
+
### Development Environment
|
|
603
463
|
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
464
|
+
```yaml
|
|
465
|
+
version: '3.9'
|
|
466
|
+
services:
|
|
467
|
+
app:
|
|
468
|
+
build:
|
|
469
|
+
context: .
|
|
470
|
+
target: development
|
|
471
|
+
volumes:
|
|
472
|
+
- .:/app
|
|
473
|
+
- /app/node_modules
|
|
474
|
+
ports:
|
|
475
|
+
- "3000:3000"
|
|
476
|
+
environment:
|
|
477
|
+
- NODE_ENV=development
|
|
478
|
+
depends_on:
|
|
479
|
+
- redis
|
|
480
|
+
- postgres
|
|
607
481
|
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
482
|
+
redis:
|
|
483
|
+
image: redis:7-alpine
|
|
484
|
+
ports:
|
|
485
|
+
- "6379:6379"
|
|
611
486
|
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
487
|
+
postgres:
|
|
488
|
+
image: postgres:15-alpine
|
|
489
|
+
environment:
|
|
490
|
+
POSTGRES_DB: dev
|
|
491
|
+
POSTGRES_USER: dev
|
|
492
|
+
POSTGRES_PASSWORD: dev
|
|
493
|
+
volumes:
|
|
494
|
+
- postgres-data:/var/lib/postgresql/data
|
|
615
495
|
|
|
616
|
-
|
|
617
|
-
|
|
496
|
+
volumes:
|
|
497
|
+
postgres-data:
|
|
618
498
|
```
|
|
619
499
|
|
|
620
|
-
|
|
621
|
-
```javascript
|
|
622
|
-
// healthcheck.js
|
|
623
|
-
const http = require('http');
|
|
624
|
-
|
|
625
|
-
const options = {
|
|
626
|
-
host: 'localhost',
|
|
627
|
-
port: process.env.PORT || 3000,
|
|
628
|
-
path: '/health',
|
|
629
|
-
timeout: 2000
|
|
630
|
-
};
|
|
631
|
-
|
|
632
|
-
const request = http.request(options, (res) => {
|
|
633
|
-
if (res.statusCode === 200) {
|
|
634
|
-
process.exit(0);
|
|
635
|
-
} else {
|
|
636
|
-
process.exit(1);
|
|
637
|
-
}
|
|
638
|
-
});
|
|
500
|
+
### Production Stack
|
|
639
501
|
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
502
|
+
```yaml
|
|
503
|
+
version: '3.9'
|
|
504
|
+
services:
|
|
505
|
+
app:
|
|
506
|
+
image: myapp:${VERSION}
|
|
507
|
+
deploy:
|
|
508
|
+
replicas: 3
|
|
509
|
+
resources:
|
|
510
|
+
limits:
|
|
511
|
+
cpus: '1'
|
|
512
|
+
memory: 512M
|
|
513
|
+
healthcheck:
|
|
514
|
+
test: ["CMD", "wget", "-q", "--spider", "http://localhost:3000/health"]
|
|
515
|
+
interval: 30s
|
|
516
|
+
timeout: 3s
|
|
517
|
+
retries: 3
|
|
518
|
+
networks:
|
|
519
|
+
- frontend
|
|
520
|
+
- backend
|
|
643
521
|
|
|
644
|
-
|
|
522
|
+
networks:
|
|
523
|
+
frontend:
|
|
524
|
+
backend:
|
|
525
|
+
internal: true
|
|
645
526
|
```
|
|
646
527
|
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
Before reporting high confidence:
|
|
650
|
-
✅ Dockerfile passes hadolint linting
|
|
651
|
-
✅ Image scanned with Trivy (no critical vulnerabilities)
|
|
652
|
-
✅ Image passes Dockle security checks
|
|
653
|
-
✅ Multi-stage build reduces image size significantly
|
|
654
|
-
✅ Runs as non-root user
|
|
655
|
-
✅ Health checks configured and tested
|
|
656
|
-
✅ Resource limits defined
|
|
657
|
-
✅ .dockerignore properly configured
|
|
658
|
-
✅ Build completes successfully
|
|
659
|
-
✅ Container starts and passes health checks
|
|
660
|
-
|
|
661
|
-
## Deliverables
|
|
662
|
-
|
|
663
|
-
1. **Dockerfile**: Multi-stage, optimized, secure
|
|
664
|
-
2. **docker-compose.yml**: Full stack configuration
|
|
665
|
-
3. **Security Reports**: Trivy, Dockle scan results
|
|
666
|
-
4. **.dockerignore**: Optimize build context
|
|
667
|
-
5. **Health Check Scripts**: Application-specific checks
|
|
668
|
-
6. **CI/CD Integration**: Build and push automation
|
|
669
|
-
7. **Documentation**: Build instructions, deployment guide
|
|
670
|
-
|
|
671
|
-
## Success Metrics
|
|
672
|
-
- Image size reduced by 50%+ vs naive build
|
|
673
|
-
- Zero high/critical vulnerabilities
|
|
674
|
-
- Builds complete in <5 minutes
|
|
675
|
-
- Health checks pass consistently
|
|
676
|
-
- Confidence score ≥ 0.85
|
|
528
|
+
---
|
|
677
529
|
|
|
678
530
|
## Completion Protocol
|
|
679
531
|
|
|
680
532
|
Complete your work and provide a structured response with:
|
|
681
533
|
- Confidence score (0.0-1.0) based on work quality
|
|
682
|
-
- Summary of
|
|
683
|
-
- List of
|
|
684
|
-
- Any
|
|
534
|
+
- Summary of Docker work completed (builds, fixes, optimizations)
|
|
535
|
+
- List of deliverables (Dockerfiles, images, compose files)
|
|
536
|
+
- Any performance metrics (image size, build time)
|
|
537
|
+
- Security findings (if applicable)
|
|
685
538
|
|
|
686
539
|
**Note:** Coordination instructions are provided when spawned via CLI.
|
|
687
540
|
|
|
688
|
-
##
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
541
|
+
## Success Metrics
|
|
542
|
+
- Images build successfully
|
|
543
|
+
- Security scan passes (zero critical CVEs)
|
|
544
|
+
- Image size optimized (≥50% reduction from naive build)
|
|
545
|
+
- Build time ≤5 minutes
|
|
546
|
+
- All containers pass health checks
|
|
547
|
+
- Confidence score ≥ 0.85
|