claude-flow-novice 2.15.3 → 2.15.4
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/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
- package/.claude/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
- package/.claude/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
- package/.claude/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
- package/.claude/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
- package/.claude/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
- package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
- package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
- package/.claude/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
- package/.claude/commands/cfn-loop-cli.md +16 -2
- package/.claude/commands/switch-api.md +31 -10
- package/.claude/hooks/cfn-lint-sql-injection.sh +61 -0
- package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +33 -2
- package/.claude/hooks/cfn-pre-edit-security-warning.sh +40 -0
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
- package/.claude/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
- package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
- package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
- package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
- package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
- package/.claude/skills/cfn-loop-orchestration/security_utils.sh +24 -0
- package/.claude/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
- package/.claude/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
- package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +2 -2
- package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
- package/.claude/skills/cfn-redis-coordination/get-context.sh +33 -0
- package/.claude/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
- package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
- package/.claude/skills/cfn-redis-coordination/redis-functions.sh +33 -0
- package/.claude/skills/cfn-redis-coordination/report-completion.sh +24 -31
- package/.claude/skills/cfn-redis-coordination/store-context.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
- package/.claude/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
- package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
- package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
- package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +15 -0
- package/README.md +116 -475
- package/claude-assets/agents/cfn-dev-team/README.md +103 -0
- package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +1 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +77 -15
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +355 -6
- package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +82 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +82 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +77 -15
- package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +99 -12
- package/claude-assets/agents/cfn-dev-team/dev-ops/github-commit-agent.md +1 -1
- package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +97 -0
- package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +20 -1
- package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +97 -0
- package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +110 -13
- package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +106 -15
- package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +115 -11
- package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +94 -7
- package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +87 -9
- package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +85 -7
- package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +160 -28
- package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +101 -19
- package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +108 -14
- package/claude-assets/agents/cfn-dev-team/reviewers/{reviewer.md → code-reviewer.md} +95 -8
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +107 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +98 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +95 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +136 -9
- package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +108 -1
- package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +107 -13
- package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +737 -0
- package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +1 -1
- package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +828 -0
- package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +106 -7
- package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +77 -0
- package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +684 -0
- package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +110 -1
- package/claude-assets/agents/cfn-dev-team/testers/tester.md +94 -7
- package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +1 -3
- package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +87 -13
- package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +103 -7
- package/claude-assets/agents/cfn-dev-team/utility/researcher.md +1 -3
- package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +94 -7
- package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +46 -0
- package/claude-assets/agents/project-only-agents/npm-package-specialist.md +1 -1
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
- package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
- package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
- package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
- package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
- package/claude-assets/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
- package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
- package/claude-assets/commands/cfn-loop-cli.md +16 -2
- package/claude-assets/commands/switch-api.md +31 -10
- package/claude-assets/hooks/cfn-lint-sql-injection.sh +61 -0
- package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +33 -2
- package/claude-assets/hooks/cfn-pre-edit-security-warning.sh +40 -0
- package/claude-assets/hooks/detect-hardcoded-credentials.sh +212 -0
- package/claude-assets/skills/SKILL_TEMPLATE.md +774 -0
- package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +84 -113
- package/claude-assets/skills/agent-lifecycle/simple-audit.sh +33 -6
- package/claude-assets/skills/agent-template-generator/SKILL.md +440 -0
- package/claude-assets/skills/agent-template-generator/generate-agent.sh +405 -0
- package/claude-assets/skills/agent-validation-linter/SKILL.md +589 -0
- package/claude-assets/skills/agent-validation-linter/lint-agents.sh +271 -0
- package/claude-assets/skills/bootstrap/bash-fundamentals.md +786 -0
- package/claude-assets/skills/bootstrap/database-connection.md +464 -0
- package/claude-assets/skills/bootstrap/error-handling.md +580 -0
- package/claude-assets/skills/bootstrap/file-operations.md +699 -0
- package/claude-assets/skills/bootstrap/skill-loader.md +616 -0
- package/claude-assets/skills/bootstrap/sqlite-params.sh +287 -0
- package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
- package/claude-assets/skills/cfn-automatic-memory-persistence/test-memory-persistence.sh +17 -16
- package/claude-assets/skills/cfn-deployment/SKILL.md +293 -0
- package/claude-assets/skills/cfn-deployment/execute.sh +21 -0
- package/claude-assets/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
- package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
- package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
- package/claude-assets/skills/cfn-environment-sanitization/sanitize-environment.sh +38 -0
- package/claude-assets/skills/cfn-error-batching-strategy/lib/core-functions.sh +47 -47
- package/claude-assets/skills/cfn-file-operations/SKILL.md +290 -0
- package/claude-assets/skills/cfn-file-operations/execute.sh +129 -0
- package/claude-assets/skills/cfn-file-operations/lib/atomic-write.sh +294 -0
- package/claude-assets/skills/cfn-file-operations/lib/lock.sh +361 -0
- package/claude-assets/skills/cfn-file-operations/test.sh +369 -0
- package/claude-assets/skills/cfn-log-operations/SKILL.md +308 -0
- package/claude-assets/skills/cfn-log-operations/execute.sh +420 -0
- package/claude-assets/skills/cfn-log-operations/lib/rotate.sh +406 -0
- package/claude-assets/skills/cfn-log-operations/lib/search.sh +448 -0
- package/claude-assets/skills/cfn-log-operations/test.sh +394 -0
- package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
- package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
- package/claude-assets/skills/cfn-loop-orchestration/security_utils.sh +24 -0
- package/claude-assets/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
- package/claude-assets/skills/cfn-parameterized-queries/SKILL.md +339 -0
- package/claude-assets/skills/cfn-playbook/query-playbook.sh +19 -15
- package/claude-assets/skills/cfn-playbook/update-playbook.sh +25 -14
- package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +44 -0
- package/claude-assets/skills/cfn-promotion/SKILL.md +305 -0
- package/claude-assets/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-log.sh +4 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +2 -2
- package/claude-assets/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
- package/claude-assets/skills/cfn-redis-coordination/get-context.sh +33 -0
- package/claude-assets/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
- package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
- package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
- package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +33 -0
- package/claude-assets/skills/cfn-redis-coordination/report-completion.sh +24 -31
- package/claude-assets/skills/cfn-redis-coordination/store-context.sh +4 -0
- package/claude-assets/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
- package/claude-assets/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
- package/claude-assets/skills/cfn-skill-loader/SKILL.md +466 -0
- package/claude-assets/skills/cfn-skill-loader/execute.sh +344 -0
- package/claude-assets/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
- package/claude-assets/skills/cfn-task-audit/get-audit-data.sh +42 -21
- package/claude-assets/skills/cfn-task-audit/store-task-audit.sh +17 -10
- package/claude-assets/skills/cfn-test-runner/detect-regressions.sh +17 -14
- package/claude-assets/skills/cfn-test-runner/detect-regressions.sh.backup-1763392821 +55 -0
- package/claude-assets/skills/cfn-test-runner/store-benchmarks.sh +17 -19
- package/claude-assets/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
- package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +15 -0
- package/claude-assets/skills/cfn-utilities/SKILL.md +237 -0
- package/claude-assets/skills/cfn-utilities/execute.sh +32 -0
- package/claude-assets/skills/cfn-utilities/lib/errors.sh +56 -0
- package/claude-assets/skills/cfn-utilities/lib/file-ops.sh +164 -0
- package/claude-assets/skills/cfn-utilities/lib/logging.sh +77 -0
- package/claude-assets/skills/cfn-utilities/lib/retry.sh +127 -0
- package/claude-assets/skills/cfn-utilities/test.sh +317 -0
- package/claude-assets/skills/integration/agent-handoff.sh +62 -64
- package/claude-assets/skills/json-validation/SKILL.md +431 -0
- package/claude-assets/skills/json-validation/test-validate-success-criteria.sh +421 -0
- package/claude-assets/skills/json-validation/validate-success-criteria.sh +197 -0
- package/claude-assets/skills/redis-coordination/validate-parameters.sh +34 -0
- package/claude-assets/skills/workflow-codification/DEPLOY_QUICK_REFERENCE.md +106 -0
- package/claude-assets/skills/workflow-codification/PROPAGATE_UPDATE_QUICK_REFERENCE.md +366 -0
- package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh +481 -0
- package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh.backup-1763392820 +512 -0
- package/claude-assets/skills/workflow-codification/lib/security-utils.sh +204 -0
- package/claude-assets/skills/workflow-codification/propagate-skill-update.sh +648 -0
- package/claude-assets/skills/workflow-codification/propagate-skill-update.sh.backup-1763392820 +664 -0
- package/claude-assets/skills/workflow-codification/test-integration.sh +15 -0
- package/claude-assets/skills/workflow-codification/test-metadata-update.sh +350 -0
- package/claude-assets/skills/workflow-codification/track-cost-savings.sh +55 -14
- package/claude-assets/skills/workflow-codification/track-cost-savings.sh.backup-1763392821 +445 -0
- package/claude-assets/skills/workflow-codification/track-edge-case.sh +27 -60
- package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
- package/dist/ace/ace-curator.js +10 -2
- package/dist/ace/ace-curator.js.map +1 -1
- package/dist/ace/ace-generator.js +4 -0
- package/dist/ace/ace-generator.js.map +1 -1
- package/dist/ace/ace-reflector.js +1 -1
- package/dist/ace/ace-reflector.js.map +1 -1
- package/dist/ace/context-injection.js +24 -2
- package/dist/ace/context-injection.js.map +1 -1
- package/dist/agents/agent-loader.js +146 -165
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/agents/task-agent-integration.js +1 -1
- package/dist/agents/task-agent-integration.js.map +1 -1
- package/dist/api/health-endpoints.js +390 -0
- package/dist/api/health-endpoints.js.map +1 -0
- package/dist/cli/agent-executor.js +4 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/agent-prompt-builder.js +89 -1
- package/dist/cli/agent-prompt-builder.js.map +1 -1
- package/dist/cli/agent-spawn.js +130 -37
- package/dist/cli/agent-spawn.js.map +1 -1
- package/dist/cli/skill-cache-validator.js +412 -0
- package/dist/cli/skill-cache-validator.js.map +1 -0
- package/dist/cli/skill-cli.js +991 -0
- package/dist/cli/skill-cli.js.map +1 -0
- package/dist/cli/skill-execution-logger.js +284 -0
- package/dist/cli/skill-execution-logger.js.map +1 -0
- package/dist/cli/skill-loader.js +457 -0
- package/dist/cli/skill-loader.js.map +1 -0
- package/dist/coordination/event-bus.js +2 -2
- package/dist/coordination/event-bus.js.map +1 -1
- package/dist/coordination/fleet-manager.js +1 -1
- package/dist/coordination/fleet-manager.js.map +1 -1
- package/dist/coordination/index.js +23 -9
- package/dist/coordination/index.js.map +1 -1
- package/dist/coordination/types/fleet-manager.types.js.map +1 -1
- package/dist/db/migration-manager.js +483 -0
- package/dist/db/migration-manager.js.map +1 -0
- package/dist/db/skills-query.js +535 -0
- package/dist/db/skills-query.js.map +1 -0
- package/dist/integration/DatabaseHandoff.js +1 -1
- package/dist/integration/DatabaseHandoff.js.map +1 -1
- package/dist/jobs/edge-case-analyzer.js +367 -0
- package/dist/jobs/edge-case-analyzer.js.map +1 -0
- package/dist/jobs/promotion-sla-enforcer.js +288 -0
- package/dist/jobs/promotion-sla-enforcer.js.map +1 -0
- package/dist/lib/agent-output-parser.js.map +1 -1
- package/dist/lib/agent-output-validator.js.map +1 -1
- package/dist/lib/agent-workspace.js +281 -0
- package/dist/lib/agent-workspace.js.map +1 -0
- package/dist/lib/atomic-file-writer.js +377 -0
- package/dist/lib/atomic-file-writer.js.map +1 -0
- package/dist/lib/backup-manager.js +779 -0
- package/dist/lib/backup-manager.js.map +1 -0
- package/dist/lib/checkpoint-manager.js +837 -0
- package/dist/lib/checkpoint-manager.js.map +1 -0
- package/dist/lib/circuit-breaker.js +340 -0
- package/dist/lib/circuit-breaker.js.map +1 -0
- package/dist/lib/completion-signal-handler.js +243 -0
- package/dist/lib/completion-signal-handler.js.map +1 -0
- package/dist/lib/config-manager.js +312 -0
- package/dist/lib/config-manager.js.map +1 -0
- package/dist/lib/config-migrator.js +386 -0
- package/dist/lib/config-migrator.js.map +1 -0
- package/dist/lib/config-validator.js.map +1 -1
- package/dist/lib/correlation-cache.js +311 -0
- package/dist/lib/correlation-cache.js.map +1 -0
- package/dist/lib/correlation.js +263 -0
- package/dist/lib/correlation.js.map +1 -0
- package/dist/lib/database-service/connection-pool-manager.js +520 -0
- package/dist/lib/database-service/connection-pool-manager.js.map +1 -0
- package/dist/lib/database-service/correlation.js +329 -0
- package/dist/lib/database-service/correlation.js.map +1 -0
- package/dist/lib/database-service/errors.js +120 -0
- package/dist/lib/database-service/errors.js.map +1 -0
- package/dist/lib/database-service/index.js +168 -0
- package/dist/lib/database-service/index.js.map +1 -0
- package/dist/lib/database-service/postgres-adapter.js +526 -0
- package/dist/lib/database-service/postgres-adapter.js.map +1 -0
- package/dist/lib/database-service/redis-adapter.js +360 -0
- package/dist/lib/database-service/redis-adapter.js.map +1 -0
- package/dist/lib/database-service/sqlite-adapter.js +544 -0
- package/dist/lib/database-service/sqlite-adapter.js.map +1 -0
- package/dist/lib/database-service/transaction-manager.js +773 -0
- package/dist/lib/database-service/transaction-manager.js.map +1 -0
- package/dist/lib/database-service/types.js +23 -0
- package/dist/lib/database-service/types.js.map +1 -0
- package/dist/lib/deadlock-resolver.js +292 -0
- package/dist/lib/deadlock-resolver.js.map +1 -0
- package/dist/lib/distributed-lock.js +451 -0
- package/dist/lib/distributed-lock.js.map +1 -0
- package/dist/lib/edge-case-deduplicator.js +227 -0
- package/dist/lib/edge-case-deduplicator.js.map +1 -0
- package/dist/lib/encryption-manager.js +322 -0
- package/dist/lib/encryption-manager.js.map +1 -0
- package/dist/lib/error-aggregator.js +234 -0
- package/dist/lib/error-aggregator.js.map +1 -0
- package/dist/lib/errors.js +287 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/file-lock-manager.js +578 -0
- package/dist/lib/file-lock-manager.js.map +1 -0
- package/dist/lib/file-operations.js +367 -0
- package/dist/lib/file-operations.js.map +1 -0
- package/dist/lib/idempotent-write.js +237 -0
- package/dist/lib/idempotent-write.js.map +1 -0
- package/dist/lib/integration-schema-validator.js +522 -0
- package/dist/lib/integration-schema-validator.js.map +1 -0
- package/dist/lib/lock-health-monitor.js +298 -0
- package/dist/lib/lock-health-monitor.js.map +1 -0
- package/dist/lib/log-shipper.js +422 -0
- package/dist/lib/log-shipper.js.map +1 -0
- package/dist/lib/logging.js +146 -0
- package/dist/lib/logging.js.map +1 -0
- package/dist/lib/message-deduplicator.js +439 -0
- package/dist/lib/message-deduplicator.js.map +1 -0
- package/dist/lib/multi-system-query.js +604 -0
- package/dist/lib/multi-system-query.js.map +1 -0
- package/dist/lib/orphan-detector.js +332 -0
- package/dist/lib/orphan-detector.js.map +1 -0
- package/dist/lib/password-generator.js +166 -0
- package/dist/lib/password-generator.js.map +1 -0
- package/dist/lib/path-validator.js +429 -0
- package/dist/lib/path-validator.js.map +1 -0
- package/dist/lib/query-translator.js +905 -0
- package/dist/lib/query-translator.js.map +1 -0
- package/dist/lib/queue-recovery.js +469 -0
- package/dist/lib/queue-recovery.js.map +1 -0
- package/dist/lib/redis-queue-manager.js +512 -0
- package/dist/lib/redis-queue-manager.js.map +1 -0
- package/dist/lib/reflection-archiver.js +272 -0
- package/dist/lib/reflection-archiver.js.map +1 -0
- package/dist/lib/retry-manager.js +453 -0
- package/dist/lib/retry-manager.js.map +1 -0
- package/dist/lib/retry.js +262 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/schema-transform.js +695 -0
- package/dist/lib/schema-transform.js.map +1 -0
- package/dist/lib/schema-validator.js +491 -0
- package/dist/lib/schema-validator.js.map +1 -0
- package/dist/lib/skill-cache.js +297 -0
- package/dist/lib/skill-cache.js.map +1 -0
- package/dist/lib/skill-content-manager.js +337 -0
- package/dist/lib/skill-content-manager.js.map +1 -0
- package/dist/lib/skill-frontmatter-parser.js +237 -0
- package/dist/lib/skill-frontmatter-parser.js.map +1 -0
- package/dist/lib/skill-git-integration.js +275 -0
- package/dist/lib/skill-git-integration.js.map +1 -0
- package/dist/lib/skill-markdown-validator.js +396 -0
- package/dist/lib/skill-markdown-validator.js.map +1 -0
- package/dist/lib/skill-output-parser.js +312 -0
- package/dist/lib/skill-output-parser.js.map +1 -0
- package/dist/lib/unified-query-api.js +467 -0
- package/dist/lib/unified-query-api.js.map +1 -0
- package/dist/middleware/auth-middleware.js +350 -0
- package/dist/middleware/auth-middleware.js.map +1 -0
- package/dist/middleware/schema-validation.js +347 -0
- package/dist/middleware/schema-validation.js.map +1 -0
- package/dist/providers/anthropic-provider.js +1 -1
- package/dist/providers/anthropic-provider.js.map +1 -1
- package/dist/providers/provider-factory.js +2 -2
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/services/edge-case-analyzer.js +321 -0
- package/dist/services/edge-case-analyzer.js.map +1 -0
- package/dist/services/edge-case-deduplicator.js +266 -0
- package/dist/services/edge-case-deduplicator.js.map +1 -0
- package/dist/services/edge-case-detector.js +337 -0
- package/dist/services/edge-case-detector.js.map +1 -0
- package/dist/services/edge-case-tracker.js +547 -0
- package/dist/services/edge-case-tracker.js.map +1 -0
- package/dist/services/health-check-system.js +586 -0
- package/dist/services/health-check-system.js.map +1 -0
- package/dist/services/metrics-logger.js +412 -0
- package/dist/services/metrics-logger.js.map +1 -0
- package/dist/services/patch-generator.js +378 -0
- package/dist/services/patch-generator.js.map +1 -0
- package/dist/services/patch-validator.js +337 -0
- package/dist/services/patch-validator.js.map +1 -0
- package/dist/services/performance-monitor.js +811 -0
- package/dist/services/performance-monitor.js.map +1 -0
- package/dist/services/promotion-pipeline.js +918 -0
- package/dist/services/promotion-pipeline.js.map +1 -0
- package/dist/services/promotion-validator.js +394 -0
- package/dist/services/promotion-validator.js.map +1 -0
- package/dist/services/reflection-logger.js +388 -0
- package/dist/services/reflection-logger.js.map +1 -0
- package/dist/services/skill-deployment.js +472 -0
- package/dist/services/skill-deployment.js.map +1 -0
- package/dist/services/skill-loader.js +427 -0
- package/dist/services/skill-loader.js.map +1 -0
- package/dist/services/skill-promotion.js +372 -0
- package/dist/services/skill-promotion.js.map +1 -0
- package/dist/services/skill-validator.js +454 -0
- package/dist/services/skill-validator.js.map +1 -0
- package/dist/services/skill-versioning.js +244 -0
- package/dist/services/skill-versioning.js.map +1 -0
- package/dist/services/workspace-supervisor.js +597 -0
- package/dist/services/workspace-supervisor.js.map +1 -0
- package/dist/types/edge-case.js +45 -0
- package/dist/types/edge-case.js.map +1 -0
- package/package.json +201 -177
- package/readme/README.md +19 -4
- package/scripts/backup-cleanup.sh +627 -0
- package/scripts/cleanup-workspaces.sh +412 -0
- package/scripts/cleanup-yaml-configs.sh +141 -0
- package/scripts/deploy-approved-skills.sh +263 -0
- package/scripts/health-check.sh +447 -0
- package/scripts/log-aggregator.sh +554 -0
- package/scripts/log-monitor.sh +629 -0
- package/scripts/manage-agent-workspaces.sh +434 -0
- package/scripts/migrate-schema.sh +533 -0
- package/scripts/promote-staged-skills.sh +423 -0
- package/scripts/verify-no-secrets.sh +88 -35
- package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
- package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
- package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
- package/.claude/skills/agent-lifecycle/SKILL.md +0 -60
- package/.claude/skills/agent-lifecycle/execute-lifecycle-hook.sh +0 -573
- package/.claude/skills/agent-lifecycle/simple-audit.sh +0 -31
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
- package/README.md.backup_before_replace +0 -781
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
- package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
|
@@ -3,7 +3,11 @@ set -euo pipefail
|
|
|
3
3
|
|
|
4
4
|
# Query Playbook for Similar Tasks
|
|
5
5
|
|
|
6
|
+
# Import SQLite parameterized query library for SQL injection prevention
|
|
6
7
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
|
|
9
|
+
source "${SCRIPT_DIR}/../bootstrap/sqlite-params.sh"
|
|
10
|
+
|
|
7
11
|
DB_PATH="$SCRIPT_DIR/playbook.db"
|
|
8
12
|
|
|
9
13
|
TASK_TYPE=""
|
|
@@ -30,21 +34,21 @@ fi
|
|
|
30
34
|
# Extract keywords from description (simple tokenization)
|
|
31
35
|
KEYWORDS=$(echo "$DESCRIPTION" | tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort -u | tr '\n' ',' | sed 's/,$//')
|
|
32
36
|
|
|
33
|
-
# Query for similar tasks (same task type)
|
|
34
|
-
SIMILAR=$(
|
|
35
|
-
SELECT
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
FROM playbook_entries
|
|
44
|
-
WHERE task_type =
|
|
45
|
-
ORDER BY final_confidence DESC, use_count DESC
|
|
46
|
-
LIMIT 3;
|
|
47
|
-
|
|
37
|
+
# Query for similar tasks (same task type) using parameterized query
|
|
38
|
+
SIMILAR=$(sqlite_select "$DB_PATH" \
|
|
39
|
+
"SELECT
|
|
40
|
+
task_pattern,
|
|
41
|
+
loop3_agents,
|
|
42
|
+
loop2_agents,
|
|
43
|
+
iterations_required,
|
|
44
|
+
final_confidence,
|
|
45
|
+
common_feedback,
|
|
46
|
+
use_count
|
|
47
|
+
FROM playbook_entries
|
|
48
|
+
WHERE task_type = ?1
|
|
49
|
+
ORDER BY final_confidence DESC, use_count DESC
|
|
50
|
+
LIMIT 3;" \
|
|
51
|
+
"$TASK_TYPE"
|
|
48
52
|
)
|
|
49
53
|
|
|
50
54
|
# If no results, return empty
|
|
@@ -6,6 +6,9 @@ set -euo pipefail
|
|
|
6
6
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
7
7
|
DB_PATH="$SCRIPT_DIR/playbook.db"
|
|
8
8
|
|
|
9
|
+
# Import parameterized query library
|
|
10
|
+
source "${SCRIPT_DIR}/../bootstrap/sqlite-params.sh"
|
|
11
|
+
|
|
9
12
|
TASK_ID=""
|
|
10
13
|
TASK_TYPE=""
|
|
11
14
|
DESCRIPTION=""
|
|
@@ -41,8 +44,8 @@ LOOP2_JSON=$(echo "$LOOP2_AGENTS" | jq -Rc 'split(",") | map(gsub("^\\s+|\\s+$";
|
|
|
41
44
|
# Extract keywords
|
|
42
45
|
KEYWORDS=$(echo "$DESCRIPTION" | tr '[:upper:]' '[:lower:]' | grep -oE '\w+' | sort -u | tr '\n' ',' | sed 's/,$//')
|
|
43
46
|
|
|
44
|
-
# Insert into playbook
|
|
45
|
-
|
|
47
|
+
# Insert into playbook using parameterized query
|
|
48
|
+
sqlite_exec "$DB_PATH" "
|
|
46
49
|
INSERT INTO playbook_entries (
|
|
47
50
|
task_pattern,
|
|
48
51
|
task_type,
|
|
@@ -54,16 +57,24 @@ INSERT INTO playbook_entries (
|
|
|
54
57
|
final_consensus,
|
|
55
58
|
actual_iterations
|
|
56
59
|
) VALUES (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
);
|
|
67
|
-
|
|
60
|
+
?1,
|
|
61
|
+
?2,
|
|
62
|
+
?3,
|
|
63
|
+
?4,
|
|
64
|
+
?5,
|
|
65
|
+
?6,
|
|
66
|
+
?7,
|
|
67
|
+
?8,
|
|
68
|
+
?9
|
|
69
|
+
);" \
|
|
70
|
+
"$DESCRIPTION" \
|
|
71
|
+
"$TASK_TYPE" \
|
|
72
|
+
"$KEYWORDS" \
|
|
73
|
+
"$LOOP3_JSON" \
|
|
74
|
+
"$LOOP2_JSON" \
|
|
75
|
+
"$ITERATIONS" \
|
|
76
|
+
"$FINAL_CONFIDENCE" \
|
|
77
|
+
"$FINAL_CONSENSUS" \
|
|
78
|
+
"$ITERATIONS"
|
|
68
79
|
|
|
69
|
-
echo "✅ Playbook updated with task execution pattern"
|
|
80
|
+
echo "✅ Playbook updated with task execution pattern"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# CFN Process Instrumentation
|
|
3
|
+
# Instruments processes with monitoring and tracking
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
# Function to instrument process
|
|
8
|
+
instrument_process() {
|
|
9
|
+
local process_id="${1:-$$}"
|
|
10
|
+
local agent_id="${2:-unknown}"
|
|
11
|
+
local task_id="${3:-unknown}"
|
|
12
|
+
|
|
13
|
+
# Record process start
|
|
14
|
+
echo "INSTRUMENTATION: Process $process_id started for agent $agent_id, task $task_id" >&2
|
|
15
|
+
|
|
16
|
+
# Set up monitoring
|
|
17
|
+
export CFN_PROCESS_ID="$process_id"
|
|
18
|
+
export CFN_AGENT_ID="$agent_id"
|
|
19
|
+
export CFN_TASK_ID="$task_id"
|
|
20
|
+
export CFN_START_TIME="$(date +%s)"
|
|
21
|
+
|
|
22
|
+
# Create monitoring directory
|
|
23
|
+
local monitor_dir="/tmp/cfn-monitoring-${task_id}"
|
|
24
|
+
mkdir -p "$monitor_dir"
|
|
25
|
+
|
|
26
|
+
# Record process info
|
|
27
|
+
cat > "$monitor_dir/${process_id}.json" <<EOF
|
|
28
|
+
{
|
|
29
|
+
"process_id": "$process_id",
|
|
30
|
+
"agent_id": "$agent_id",
|
|
31
|
+
"task_id": "$task_id",
|
|
32
|
+
"start_time": $(date +%s),
|
|
33
|
+
"hostname": "$(hostname)",
|
|
34
|
+
"user": "$(whoami)"
|
|
35
|
+
}
|
|
36
|
+
EOF
|
|
37
|
+
|
|
38
|
+
return 0
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
# Main execution
|
|
42
|
+
if [ "${BASH_SOURCE[0]}" = "${0}" ]; then
|
|
43
|
+
instrument_process "${1:-$$}" "${2:-}" "${3:-}"
|
|
44
|
+
fi
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cfn-promotion
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Skill Promotion Workflow - Atomic promotion from staging to production
|
|
5
|
+
author: CFN Integration Team
|
|
6
|
+
tags: [promotion, deployment, staging, production, sla]
|
|
7
|
+
dependencies: [cfn-coordination, cfn-deployment]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Skill Promotion Workflow
|
|
11
|
+
|
|
12
|
+
Manages atomic promotion of skills from staging directory to production with validation, SLA enforcement, and optional auto-deployment.
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
The skill promotion workflow automates the process of moving generated skills from the staging directory to production, ensuring:
|
|
17
|
+
|
|
18
|
+
- **Atomic Operations**: Skills are moved atomically to prevent partial promotions
|
|
19
|
+
- **Pre-Promotion Validation**: Content integrity, schema compliance, and test execution
|
|
20
|
+
- **SLA Enforcement**: Skills older than 48 hours in staging trigger alerts
|
|
21
|
+
- **Git Integration**: Optional automatic commit with promotion metadata
|
|
22
|
+
- **Auto-Deployment**: Optional integration with deployment pipeline (Task 1.1)
|
|
23
|
+
|
|
24
|
+
## Architecture
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
.claude/skills/
|
|
28
|
+
├── staging/ # Skills pending promotion (temporary)
|
|
29
|
+
│ ├── auth-v2/
|
|
30
|
+
│ │ ├── SKILL.md
|
|
31
|
+
│ │ ├── execute.sh
|
|
32
|
+
│ │ └── test.sh
|
|
33
|
+
│ └── logging-v3/
|
|
34
|
+
│ └── ...
|
|
35
|
+
└── [production]/ # Production skills (after promotion)
|
|
36
|
+
├── authentication/
|
|
37
|
+
├── logging/
|
|
38
|
+
└── ...
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
### CLI Script
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# List all staged skills
|
|
47
|
+
./scripts/promote-staged-skills.sh --list
|
|
48
|
+
|
|
49
|
+
# Check for stale skills (>48h)
|
|
50
|
+
./scripts/promote-staged-skills.sh --check-stale
|
|
51
|
+
|
|
52
|
+
# Promote a specific skill (with confirmation prompt)
|
|
53
|
+
./scripts/promote-staged-skills.sh .claude/skills/staging/auth-v2
|
|
54
|
+
|
|
55
|
+
# Auto-promote if validation passes (no prompt)
|
|
56
|
+
./scripts/promote-staged-skills.sh .claude/skills/staging/auth-v2 --auto
|
|
57
|
+
|
|
58
|
+
# Promote with git commit and deployment
|
|
59
|
+
./scripts/promote-staged-skills.sh .claude/skills/staging/auth-v2 --auto --git-commit --deploy
|
|
60
|
+
|
|
61
|
+
# Force promotion (skip validation - admin only)
|
|
62
|
+
./scripts/promote-staged-skills.sh .claude/skills/staging/auth-v2 --force --auto
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### TypeScript API
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { SkillPromotionService } from './src/services/skill-promotion';
|
|
69
|
+
import { DatabaseService } from './src/lib/database-service';
|
|
70
|
+
|
|
71
|
+
const dbService = new DatabaseService({ type: 'sqlite', path: './data/cfn.db' });
|
|
72
|
+
const promotionService = new SkillPromotionService(dbService);
|
|
73
|
+
|
|
74
|
+
// Promote a skill
|
|
75
|
+
const result = await promotionService.promoteSkill(
|
|
76
|
+
'.claude/skills/staging/auth-v2',
|
|
77
|
+
{
|
|
78
|
+
autoDeploy: true,
|
|
79
|
+
gitCommit: true,
|
|
80
|
+
notify: true,
|
|
81
|
+
promotedBy: 'admin@example.com'
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
if (result.success) {
|
|
86
|
+
console.log(`Skill promoted: ${result.skillName}`);
|
|
87
|
+
console.log(`Production path: ${result.productionPath}`);
|
|
88
|
+
console.log(`Deployment ID: ${result.deploymentId}`);
|
|
89
|
+
} else {
|
|
90
|
+
console.error(`Promotion failed: ${result.error}`);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// List staged skills
|
|
94
|
+
const stagedSkills = await promotionService.listStagedSkills();
|
|
95
|
+
console.log(`${stagedSkills.length} skills in staging`);
|
|
96
|
+
|
|
97
|
+
// Check for stale skills (>48h)
|
|
98
|
+
const staleSkills = await promotionService.checkStaleness();
|
|
99
|
+
if (staleSkills.length > 0) {
|
|
100
|
+
console.log(`WARNING: ${staleSkills.length} stale skills detected`);
|
|
101
|
+
for (const skill of staleSkills) {
|
|
102
|
+
console.log(` - ${skill.name} (${skill.ageHours}h, ${skill.slaBreachHours}h over SLA)`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Validation Checks
|
|
108
|
+
|
|
109
|
+
The promotion validator performs the following checks:
|
|
110
|
+
|
|
111
|
+
### 1. Content Integrity
|
|
112
|
+
- `SKILL.md` exists and is readable
|
|
113
|
+
- `execute.sh` exists and is executable
|
|
114
|
+
- Optional: `test.sh`, `README.md` (warnings if missing)
|
|
115
|
+
|
|
116
|
+
### 2. Schema Compliance
|
|
117
|
+
- Frontmatter is valid YAML
|
|
118
|
+
- Required fields: `name`, `description`, `version`
|
|
119
|
+
- Version follows semantic versioning (X.Y.Z)
|
|
120
|
+
- Optional fields: `author`, `tags`, `dependencies`
|
|
121
|
+
|
|
122
|
+
### 3. Test Execution
|
|
123
|
+
- If `test.sh` exists, it must be executable
|
|
124
|
+
- Tests run with 30-second timeout
|
|
125
|
+
- Test failures generate warnings (non-fatal, allow --force)
|
|
126
|
+
|
|
127
|
+
### 4. Conflict Detection
|
|
128
|
+
- Check if production skill already exists
|
|
129
|
+
- Compare versions (staging vs production)
|
|
130
|
+
- Warn if overwriting (require --overwrite flag)
|
|
131
|
+
|
|
132
|
+
## SLA Enforcement
|
|
133
|
+
|
|
134
|
+
Skills in staging for >48 hours trigger SLA breach alerts:
|
|
135
|
+
|
|
136
|
+
### Manual Checking
|
|
137
|
+
```bash
|
|
138
|
+
./scripts/promote-staged-skills.sh --check-stale
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Automated Checking (Cron Job)
|
|
142
|
+
```bash
|
|
143
|
+
# Run daily at 9am to check for stale skills
|
|
144
|
+
0 9 * * * cd /path/to/project && ./scripts/promote-staged-skills.sh --check-stale
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Background Job (TypeScript)
|
|
148
|
+
```typescript
|
|
149
|
+
import { PromotionSLAEnforcer } from './src/jobs/promotion-sla-enforcer';
|
|
150
|
+
|
|
151
|
+
const enforcer = new PromotionSLAEnforcer(dbService, {
|
|
152
|
+
autoPromote: true, // Auto-promote stale skills
|
|
153
|
+
notifyStale: true, // Send notifications
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
await enforcer.enforceSLA();
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Configuration
|
|
160
|
+
|
|
161
|
+
Environment variables:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# SLA threshold (hours)
|
|
165
|
+
CFN_PROMOTION_SLA_THRESHOLD=48
|
|
166
|
+
|
|
167
|
+
# Auto-promote stale skills
|
|
168
|
+
CFN_PROMOTION_AUTO_PROMOTE=true
|
|
169
|
+
|
|
170
|
+
# Enable git commits
|
|
171
|
+
CFN_PROMOTION_GIT_COMMIT=true
|
|
172
|
+
|
|
173
|
+
# Enable auto-deployment
|
|
174
|
+
CFN_PROMOTION_AUTO_DEPLOY=true
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Monitoring
|
|
178
|
+
|
|
179
|
+
### Database Queries
|
|
180
|
+
|
|
181
|
+
```sql
|
|
182
|
+
-- Skills currently in staging
|
|
183
|
+
SELECT name, created_at,
|
|
184
|
+
ROUND((julianday('now') - julianday(created_at)) * 24, 1) as age_hours
|
|
185
|
+
FROM staged_skills
|
|
186
|
+
WHERE promoted = 0
|
|
187
|
+
ORDER BY created_at ASC;
|
|
188
|
+
|
|
189
|
+
-- Promotion success rate (last 30 days)
|
|
190
|
+
SELECT
|
|
191
|
+
COUNT(*) as total_promotions,
|
|
192
|
+
SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) as successful,
|
|
193
|
+
ROUND(100.0 * SUM(success) / COUNT(*), 2) as success_rate
|
|
194
|
+
FROM skill_promotions
|
|
195
|
+
WHERE promoted_at > datetime('now', '-30 days');
|
|
196
|
+
|
|
197
|
+
-- SLA breaches (skills >48h in staging)
|
|
198
|
+
SELECT COUNT(*) as sla_breaches
|
|
199
|
+
FROM staged_skills
|
|
200
|
+
WHERE promoted = 0
|
|
201
|
+
AND created_at < datetime('now', '-48 hours');
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Dashboard Metrics
|
|
205
|
+
|
|
206
|
+
- **Staged Skills Count**: Number of skills awaiting promotion
|
|
207
|
+
- **Average Time in Staging**: Mean age of staged skills
|
|
208
|
+
- **SLA Breach Count**: Skills >48h in staging
|
|
209
|
+
- **Promotion Success Rate**: Successful promotions / total attempts
|
|
210
|
+
- **Auto-Deploy Success Rate**: Successful deployments / total promotions
|
|
211
|
+
|
|
212
|
+
## Integration Points
|
|
213
|
+
|
|
214
|
+
### Task 1.1: Skill Deployment Pipeline
|
|
215
|
+
After promotion, skills can be automatically deployed:
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
const result = await promotionService.promoteSkill(stagingPath, {
|
|
219
|
+
autoDeploy: true // Triggers SkillDeploymentPipeline
|
|
220
|
+
});
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Task 0.5: Utilities
|
|
224
|
+
- `file-operations.ts`: Atomic moves, file locking
|
|
225
|
+
- `logging.ts`: Structured logging
|
|
226
|
+
- `errors.ts`: Error handling
|
|
227
|
+
|
|
228
|
+
### Phase 4: Skill Generation
|
|
229
|
+
Generated skills are placed in staging directory:
|
|
230
|
+
|
|
231
|
+
```typescript
|
|
232
|
+
// Skill generator outputs to staging
|
|
233
|
+
const stagingPath = await skillGenerator.generate({
|
|
234
|
+
output: '.claude/skills/staging/new-skill'
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
// Later: promote to production
|
|
238
|
+
await promotionService.promoteSkill(stagingPath);
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Error Handling
|
|
242
|
+
|
|
243
|
+
### Promotion Failures
|
|
244
|
+
- Validation errors: Fix skill and retry
|
|
245
|
+
- Conflicts: Use `--overwrite` or resolve manually
|
|
246
|
+
- Test failures: Use `--force` (admin only) or fix tests
|
|
247
|
+
|
|
248
|
+
### Rollback
|
|
249
|
+
If promotion fails mid-operation:
|
|
250
|
+
|
|
251
|
+
1. Staging skill remains in staging (atomic move failed)
|
|
252
|
+
2. Production skill is unchanged (or restored from backup)
|
|
253
|
+
3. Database records rollback
|
|
254
|
+
4. Git commits are not created
|
|
255
|
+
|
|
256
|
+
### Manual Rollback
|
|
257
|
+
```bash
|
|
258
|
+
# If promotion succeeded but deployment failed
|
|
259
|
+
rm -rf .claude/skills/production-skill
|
|
260
|
+
mv .claude/skills/staging/backup-skill .claude/skills/staging/production-skill
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Troubleshooting
|
|
264
|
+
|
|
265
|
+
### "Validation failed: Missing required file: execute.sh"
|
|
266
|
+
**Solution**: Add execute.sh to staged skill
|
|
267
|
+
|
|
268
|
+
### "execute.sh is not executable"
|
|
269
|
+
**Solution**: Run `chmod +x execute.sh`
|
|
270
|
+
|
|
271
|
+
### "Tests failed (non-fatal)"
|
|
272
|
+
**Solution**: Fix tests or use `--force` to skip
|
|
273
|
+
|
|
274
|
+
### "Skill already exists in production"
|
|
275
|
+
**Solution**: Use `--overwrite` flag or choose different name
|
|
276
|
+
|
|
277
|
+
### "Git commit failed"
|
|
278
|
+
**Solution**: Ensure git repo is initialized and configured
|
|
279
|
+
|
|
280
|
+
## Best Practices
|
|
281
|
+
|
|
282
|
+
1. **Always validate before promotion** (don't use --force unless necessary)
|
|
283
|
+
2. **Run tests in staging** before promotion
|
|
284
|
+
3. **Monitor SLA breaches** (check stale skills daily)
|
|
285
|
+
4. **Use git commits** for audit trail
|
|
286
|
+
5. **Enable auto-deployment** for production readiness
|
|
287
|
+
6. **Backup production skills** before overwriting
|
|
288
|
+
7. **Test promotions in dev environment** first
|
|
289
|
+
|
|
290
|
+
## Future Enhancements
|
|
291
|
+
|
|
292
|
+
- [ ] Webhook notifications (Slack, email)
|
|
293
|
+
- [ ] Multi-stage promotion (staging → qa → production)
|
|
294
|
+
- [ ] Approval workflows (require manual approval for production)
|
|
295
|
+
- [ ] Promotion rollback automation
|
|
296
|
+
- [ ] Integration with CI/CD pipelines
|
|
297
|
+
- [ ] Promotion scheduling (promote at specific times)
|
|
298
|
+
- [ ] Batch promotion (promote multiple skills at once)
|
|
299
|
+
|
|
300
|
+
## Related Documentation
|
|
301
|
+
|
|
302
|
+
- **Task 1.1**: `.claude/skills/cfn-deployment/SKILL.md`
|
|
303
|
+
- **Task 0.5**: `docs/IMPLEMENTATION_UTILITIES.md`
|
|
304
|
+
- **Phase 4**: `docs/SKILL_GENERATION.md` (future)
|
|
305
|
+
- **Operational Guide**: `docs/SKILL_PROMOTION_WORKFLOW.md`
|