claude-flow-novice 2.15.3 → 2.15.5

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.
Files changed (473) hide show
  1. package/.claude/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
  2. package/.claude/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
  3. package/.claude/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
  4. package/.claude/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
  5. package/.claude/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
  6. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
  7. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
  8. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
  9. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
  10. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
  11. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
  12. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
  13. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
  14. package/.claude/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
  15. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
  16. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
  17. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
  18. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
  19. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
  20. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
  21. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
  22. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
  23. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
  24. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
  25. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
  26. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
  27. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
  28. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
  29. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
  30. package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
  31. package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
  32. package/.claude/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
  33. package/.claude/commands/cfn-loop-cli.md +29 -6
  34. package/.claude/commands/switch-api.md +31 -10
  35. package/.claude/hooks/cfn-lint-sql-injection.sh +61 -0
  36. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +33 -2
  37. package/.claude/hooks/cfn-pre-edit-security-warning.sh +40 -0
  38. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
  39. package/.claude/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
  40. package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
  41. package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
  42. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
  43. package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
  44. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +238 -29
  45. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +24 -0
  46. package/.claude/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
  47. package/.claude/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
  48. package/.claude/skills/cfn-redis-coordination/agent-log.sh +4 -0
  49. package/.claude/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
  50. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +2 -2
  51. package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
  52. package/.claude/skills/cfn-redis-coordination/get-context.sh +33 -0
  53. package/.claude/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
  54. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +6 -2
  55. package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
  56. package/.claude/skills/cfn-redis-coordination/redis-functions.sh +34 -0
  57. package/.claude/skills/cfn-redis-coordination/report-completion.sh +24 -31
  58. package/.claude/skills/cfn-redis-coordination/store-context.sh +4 -0
  59. package/.claude/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
  60. package/.claude/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
  61. package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
  62. package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
  63. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +15 -0
  64. package/README.md +116 -475
  65. package/claude-assets/agents/cfn-dev-team/README.md +103 -0
  66. package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +1 -1
  67. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +77 -15
  68. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +355 -6
  69. package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +82 -1
  70. package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +82 -1
  71. package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +77 -15
  72. package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +99 -12
  73. package/claude-assets/agents/cfn-dev-team/dev-ops/github-commit-agent.md +1 -1
  74. package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +97 -0
  75. package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +20 -1
  76. package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +97 -0
  77. package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +110 -13
  78. package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +106 -15
  79. package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +115 -11
  80. package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +94 -7
  81. package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +87 -9
  82. package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +85 -7
  83. package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +160 -28
  84. package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +101 -19
  85. package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +108 -14
  86. package/claude-assets/agents/cfn-dev-team/reviewers/{reviewer.md → code-reviewer.md} +95 -8
  87. package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +107 -7
  88. package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +98 -7
  89. package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +95 -7
  90. package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +136 -9
  91. package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +108 -1
  92. package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +107 -13
  93. package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +737 -0
  94. package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +1 -1
  95. package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +828 -0
  96. package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +106 -7
  97. package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +77 -0
  98. package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +684 -0
  99. package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +110 -1
  100. package/claude-assets/agents/cfn-dev-team/testers/tester.md +94 -7
  101. package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +1 -3
  102. package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +87 -13
  103. package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +103 -7
  104. package/claude-assets/agents/cfn-dev-team/utility/researcher.md +1 -3
  105. package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +94 -7
  106. package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +46 -0
  107. package/claude-assets/agents/project-only-agents/npm-package-specialist.md +1 -1
  108. package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
  109. package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
  110. package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
  111. package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
  112. package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
  113. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
  114. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
  115. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
  116. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
  117. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
  118. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
  119. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
  120. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
  121. package/claude-assets/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
  122. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
  123. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
  124. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
  125. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
  126. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
  127. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
  128. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
  129. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
  130. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
  131. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
  132. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
  133. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
  134. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
  135. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
  136. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
  137. package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
  138. package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
  139. package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
  140. package/claude-assets/commands/cfn-loop-cli.md +29 -6
  141. package/claude-assets/commands/switch-api.md +31 -10
  142. package/claude-assets/hooks/cfn-lint-sql-injection.sh +61 -0
  143. package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +33 -2
  144. package/claude-assets/hooks/cfn-pre-edit-security-warning.sh +40 -0
  145. package/claude-assets/hooks/detect-hardcoded-credentials.sh +212 -0
  146. package/claude-assets/skills/SKILL_TEMPLATE.md +774 -0
  147. package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +84 -113
  148. package/claude-assets/skills/agent-lifecycle/simple-audit.sh +33 -6
  149. package/claude-assets/skills/agent-template-generator/SKILL.md +440 -0
  150. package/claude-assets/skills/agent-template-generator/generate-agent.sh +405 -0
  151. package/claude-assets/skills/agent-validation-linter/SKILL.md +589 -0
  152. package/claude-assets/skills/agent-validation-linter/lint-agents.sh +271 -0
  153. package/claude-assets/skills/bootstrap/bash-fundamentals.md +786 -0
  154. package/claude-assets/skills/bootstrap/database-connection.md +464 -0
  155. package/claude-assets/skills/bootstrap/error-handling.md +580 -0
  156. package/claude-assets/skills/bootstrap/file-operations.md +699 -0
  157. package/claude-assets/skills/bootstrap/skill-loader.md +616 -0
  158. package/claude-assets/skills/bootstrap/sqlite-params.sh +287 -0
  159. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
  160. package/claude-assets/skills/cfn-automatic-memory-persistence/test-memory-persistence.sh +17 -16
  161. package/claude-assets/skills/cfn-deployment/SKILL.md +293 -0
  162. package/claude-assets/skills/cfn-deployment/execute.sh +21 -0
  163. package/claude-assets/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
  164. package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
  165. package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
  166. package/claude-assets/skills/cfn-environment-sanitization/sanitize-environment.sh +38 -0
  167. package/claude-assets/skills/cfn-error-batching-strategy/lib/core-functions.sh +47 -47
  168. package/claude-assets/skills/cfn-file-operations/SKILL.md +290 -0
  169. package/claude-assets/skills/cfn-file-operations/execute.sh +129 -0
  170. package/claude-assets/skills/cfn-file-operations/lib/atomic-write.sh +294 -0
  171. package/claude-assets/skills/cfn-file-operations/lib/lock.sh +361 -0
  172. package/claude-assets/skills/cfn-file-operations/test.sh +369 -0
  173. package/claude-assets/skills/cfn-log-operations/SKILL.md +308 -0
  174. package/claude-assets/skills/cfn-log-operations/execute.sh +420 -0
  175. package/claude-assets/skills/cfn-log-operations/lib/rotate.sh +406 -0
  176. package/claude-assets/skills/cfn-log-operations/lib/search.sh +448 -0
  177. package/claude-assets/skills/cfn-log-operations/test.sh +394 -0
  178. package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
  179. package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
  180. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +238 -29
  181. package/claude-assets/skills/cfn-loop-orchestration/security_utils.sh +24 -0
  182. package/claude-assets/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
  183. package/claude-assets/skills/cfn-parameterized-queries/SKILL.md +339 -0
  184. package/claude-assets/skills/cfn-playbook/query-playbook.sh +19 -15
  185. package/claude-assets/skills/cfn-playbook/update-playbook.sh +25 -14
  186. package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +44 -0
  187. package/claude-assets/skills/cfn-promotion/SKILL.md +305 -0
  188. package/claude-assets/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
  189. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh +4 -0
  190. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
  191. package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +2 -2
  192. package/claude-assets/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
  193. package/claude-assets/skills/cfn-redis-coordination/get-context.sh +33 -0
  194. package/claude-assets/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
  195. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +6 -2
  196. package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
  197. package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +34 -0
  198. package/claude-assets/skills/cfn-redis-coordination/report-completion.sh +24 -31
  199. package/claude-assets/skills/cfn-redis-coordination/store-context.sh +4 -0
  200. package/claude-assets/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
  201. package/claude-assets/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
  202. package/claude-assets/skills/cfn-skill-loader/SKILL.md +466 -0
  203. package/claude-assets/skills/cfn-skill-loader/execute.sh +344 -0
  204. package/claude-assets/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
  205. package/claude-assets/skills/cfn-task-audit/get-audit-data.sh +42 -21
  206. package/claude-assets/skills/cfn-task-audit/store-task-audit.sh +17 -10
  207. package/claude-assets/skills/cfn-test-runner/detect-regressions.sh +17 -14
  208. package/claude-assets/skills/cfn-test-runner/detect-regressions.sh.backup-1763392821 +55 -0
  209. package/claude-assets/skills/cfn-test-runner/store-benchmarks.sh +17 -19
  210. package/claude-assets/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
  211. package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +15 -0
  212. package/claude-assets/skills/cfn-utilities/SKILL.md +237 -0
  213. package/claude-assets/skills/cfn-utilities/execute.sh +32 -0
  214. package/claude-assets/skills/cfn-utilities/lib/errors.sh +56 -0
  215. package/claude-assets/skills/cfn-utilities/lib/file-ops.sh +164 -0
  216. package/claude-assets/skills/cfn-utilities/lib/logging.sh +77 -0
  217. package/claude-assets/skills/cfn-utilities/lib/retry.sh +127 -0
  218. package/claude-assets/skills/cfn-utilities/test.sh +317 -0
  219. package/claude-assets/skills/integration/agent-handoff.sh +62 -64
  220. package/claude-assets/skills/json-validation/SKILL.md +431 -0
  221. package/claude-assets/skills/json-validation/test-validate-success-criteria.sh +421 -0
  222. package/claude-assets/skills/json-validation/validate-success-criteria.sh +197 -0
  223. package/claude-assets/skills/redis-coordination/validate-parameters.sh +34 -0
  224. package/claude-assets/skills/workflow-codification/DEPLOY_QUICK_REFERENCE.md +106 -0
  225. package/claude-assets/skills/workflow-codification/PROPAGATE_UPDATE_QUICK_REFERENCE.md +366 -0
  226. package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh +481 -0
  227. package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh.backup-1763392820 +512 -0
  228. package/claude-assets/skills/workflow-codification/lib/security-utils.sh +204 -0
  229. package/claude-assets/skills/workflow-codification/propagate-skill-update.sh +648 -0
  230. package/claude-assets/skills/workflow-codification/propagate-skill-update.sh.backup-1763392820 +664 -0
  231. package/claude-assets/skills/workflow-codification/test-integration.sh +15 -0
  232. package/claude-assets/skills/workflow-codification/test-metadata-update.sh +350 -0
  233. package/claude-assets/skills/workflow-codification/track-cost-savings.sh +55 -14
  234. package/claude-assets/skills/workflow-codification/track-cost-savings.sh.backup-1763392821 +445 -0
  235. package/claude-assets/skills/workflow-codification/track-edge-case.sh +27 -60
  236. package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
  237. package/dist/ace/ace-curator.js +10 -2
  238. package/dist/ace/ace-curator.js.map +1 -1
  239. package/dist/ace/ace-generator.js +4 -0
  240. package/dist/ace/ace-generator.js.map +1 -1
  241. package/dist/ace/ace-reflector.js +1 -1
  242. package/dist/ace/ace-reflector.js.map +1 -1
  243. package/dist/ace/context-injection.js +24 -2
  244. package/dist/ace/context-injection.js.map +1 -1
  245. package/dist/agents/task-agent-integration.js +1 -1
  246. package/dist/agents/task-agent-integration.js.map +1 -1
  247. package/dist/api/health-endpoints.js +390 -0
  248. package/dist/api/health-endpoints.js.map +1 -0
  249. package/dist/cli/agent-executor.js +4 -1
  250. package/dist/cli/agent-executor.js.map +1 -1
  251. package/dist/cli/agent-prompt-builder.js +89 -1
  252. package/dist/cli/agent-prompt-builder.js.map +1 -1
  253. package/dist/cli/agent-spawn.js +130 -37
  254. package/dist/cli/agent-spawn.js.map +1 -1
  255. package/dist/cli/config-manager.js +109 -91
  256. package/dist/cli/config-manager.js.map +1 -1
  257. package/dist/cli/conversation-fork-cleanup.js +201 -0
  258. package/dist/cli/conversation-fork-cleanup.js.map +1 -0
  259. package/dist/cli/conversation-fork.js +16 -3
  260. package/dist/cli/conversation-fork.js.map +1 -1
  261. package/dist/cli/skill-cache-validator.js +412 -0
  262. package/dist/cli/skill-cache-validator.js.map +1 -0
  263. package/dist/cli/skill-cli.js +991 -0
  264. package/dist/cli/skill-cli.js.map +1 -0
  265. package/dist/cli/skill-execution-logger.js +284 -0
  266. package/dist/cli/skill-execution-logger.js.map +1 -0
  267. package/dist/cli/skill-loader.js +457 -0
  268. package/dist/cli/skill-loader.js.map +1 -0
  269. package/dist/coordination/event-bus.js +2 -2
  270. package/dist/coordination/event-bus.js.map +1 -1
  271. package/dist/coordination/fleet-manager.js +1 -1
  272. package/dist/coordination/fleet-manager.js.map +1 -1
  273. package/dist/coordination/index.js +23 -9
  274. package/dist/coordination/index.js.map +1 -1
  275. package/dist/coordination/types/fleet-manager.types.js.map +1 -1
  276. package/dist/db/migration-manager.js +483 -0
  277. package/dist/db/migration-manager.js.map +1 -0
  278. package/dist/db/skills-query.js +535 -0
  279. package/dist/db/skills-query.js.map +1 -0
  280. package/dist/integration/DatabaseHandoff.js +1 -1
  281. package/dist/integration/DatabaseHandoff.js.map +1 -1
  282. package/dist/jobs/edge-case-analyzer.js +367 -0
  283. package/dist/jobs/edge-case-analyzer.js.map +1 -0
  284. package/dist/jobs/promotion-sla-enforcer.js +288 -0
  285. package/dist/jobs/promotion-sla-enforcer.js.map +1 -0
  286. package/dist/lib/agent-output-parser.js.map +1 -1
  287. package/dist/lib/agent-output-validator.js.map +1 -1
  288. package/dist/lib/agent-workspace.js +281 -0
  289. package/dist/lib/agent-workspace.js.map +1 -0
  290. package/dist/lib/atomic-file-writer.js +377 -0
  291. package/dist/lib/atomic-file-writer.js.map +1 -0
  292. package/dist/lib/backup-manager.js +779 -0
  293. package/dist/lib/backup-manager.js.map +1 -0
  294. package/dist/lib/checkpoint-manager.js +837 -0
  295. package/dist/lib/checkpoint-manager.js.map +1 -0
  296. package/dist/lib/circuit-breaker.js +340 -0
  297. package/dist/lib/circuit-breaker.js.map +1 -0
  298. package/dist/lib/completion-signal-handler.js +243 -0
  299. package/dist/lib/completion-signal-handler.js.map +1 -0
  300. package/dist/lib/config-manager.js +312 -0
  301. package/dist/lib/config-manager.js.map +1 -0
  302. package/dist/lib/config-migrator.js +386 -0
  303. package/dist/lib/config-migrator.js.map +1 -0
  304. package/dist/lib/config-validator.js.map +1 -1
  305. package/dist/lib/correlation-cache.js +311 -0
  306. package/dist/lib/correlation-cache.js.map +1 -0
  307. package/dist/lib/correlation.js +263 -0
  308. package/dist/lib/correlation.js.map +1 -0
  309. package/dist/lib/database-service/connection-pool-manager.js +520 -0
  310. package/dist/lib/database-service/connection-pool-manager.js.map +1 -0
  311. package/dist/lib/database-service/correlation.js +329 -0
  312. package/dist/lib/database-service/correlation.js.map +1 -0
  313. package/dist/lib/database-service/errors.js +120 -0
  314. package/dist/lib/database-service/errors.js.map +1 -0
  315. package/dist/lib/database-service/index.js +168 -0
  316. package/dist/lib/database-service/index.js.map +1 -0
  317. package/dist/lib/database-service/postgres-adapter.js +526 -0
  318. package/dist/lib/database-service/postgres-adapter.js.map +1 -0
  319. package/dist/lib/database-service/redis-adapter.js +360 -0
  320. package/dist/lib/database-service/redis-adapter.js.map +1 -0
  321. package/dist/lib/database-service/sqlite-adapter.js +544 -0
  322. package/dist/lib/database-service/sqlite-adapter.js.map +1 -0
  323. package/dist/lib/database-service/transaction-manager.js +773 -0
  324. package/dist/lib/database-service/transaction-manager.js.map +1 -0
  325. package/dist/lib/database-service/types.js +23 -0
  326. package/dist/lib/database-service/types.js.map +1 -0
  327. package/dist/lib/deadlock-resolver.js +292 -0
  328. package/dist/lib/deadlock-resolver.js.map +1 -0
  329. package/dist/lib/distributed-lock.js +451 -0
  330. package/dist/lib/distributed-lock.js.map +1 -0
  331. package/dist/lib/edge-case-deduplicator.js +227 -0
  332. package/dist/lib/edge-case-deduplicator.js.map +1 -0
  333. package/dist/lib/encryption-manager.js +322 -0
  334. package/dist/lib/encryption-manager.js.map +1 -0
  335. package/dist/lib/error-aggregator.js +234 -0
  336. package/dist/lib/error-aggregator.js.map +1 -0
  337. package/dist/lib/errors.js +287 -0
  338. package/dist/lib/errors.js.map +1 -0
  339. package/dist/lib/file-lock-manager.js +578 -0
  340. package/dist/lib/file-lock-manager.js.map +1 -0
  341. package/dist/lib/file-operations.js +367 -0
  342. package/dist/lib/file-operations.js.map +1 -0
  343. package/dist/lib/idempotent-write.js +237 -0
  344. package/dist/lib/idempotent-write.js.map +1 -0
  345. package/dist/lib/integration-schema-validator.js +522 -0
  346. package/dist/lib/integration-schema-validator.js.map +1 -0
  347. package/dist/lib/lock-health-monitor.js +298 -0
  348. package/dist/lib/lock-health-monitor.js.map +1 -0
  349. package/dist/lib/log-shipper.js +422 -0
  350. package/dist/lib/log-shipper.js.map +1 -0
  351. package/dist/lib/logging.js +146 -0
  352. package/dist/lib/logging.js.map +1 -0
  353. package/dist/lib/message-deduplicator.js +439 -0
  354. package/dist/lib/message-deduplicator.js.map +1 -0
  355. package/dist/lib/multi-system-query.js +604 -0
  356. package/dist/lib/multi-system-query.js.map +1 -0
  357. package/dist/lib/orphan-detector.js +332 -0
  358. package/dist/lib/orphan-detector.js.map +1 -0
  359. package/dist/lib/password-generator.js +166 -0
  360. package/dist/lib/password-generator.js.map +1 -0
  361. package/dist/lib/path-validator.js +429 -0
  362. package/dist/lib/path-validator.js.map +1 -0
  363. package/dist/lib/query-translator.js +905 -0
  364. package/dist/lib/query-translator.js.map +1 -0
  365. package/dist/lib/queue-recovery.js +469 -0
  366. package/dist/lib/queue-recovery.js.map +1 -0
  367. package/dist/lib/redis-queue-manager.js +512 -0
  368. package/dist/lib/redis-queue-manager.js.map +1 -0
  369. package/dist/lib/reflection-archiver.js +272 -0
  370. package/dist/lib/reflection-archiver.js.map +1 -0
  371. package/dist/lib/retry-manager.js +453 -0
  372. package/dist/lib/retry-manager.js.map +1 -0
  373. package/dist/lib/retry.js +262 -0
  374. package/dist/lib/retry.js.map +1 -0
  375. package/dist/lib/schema-transform.js +695 -0
  376. package/dist/lib/schema-transform.js.map +1 -0
  377. package/dist/lib/schema-validator.js +491 -0
  378. package/dist/lib/schema-validator.js.map +1 -0
  379. package/dist/lib/skill-cache.js +297 -0
  380. package/dist/lib/skill-cache.js.map +1 -0
  381. package/dist/lib/skill-content-manager.js +337 -0
  382. package/dist/lib/skill-content-manager.js.map +1 -0
  383. package/dist/lib/skill-frontmatter-parser.js +237 -0
  384. package/dist/lib/skill-frontmatter-parser.js.map +1 -0
  385. package/dist/lib/skill-git-integration.js +275 -0
  386. package/dist/lib/skill-git-integration.js.map +1 -0
  387. package/dist/lib/skill-markdown-validator.js +396 -0
  388. package/dist/lib/skill-markdown-validator.js.map +1 -0
  389. package/dist/lib/skill-output-parser.js +312 -0
  390. package/dist/lib/skill-output-parser.js.map +1 -0
  391. package/dist/lib/unified-query-api.js +467 -0
  392. package/dist/lib/unified-query-api.js.map +1 -0
  393. package/dist/middleware/auth-middleware.js +350 -0
  394. package/dist/middleware/auth-middleware.js.map +1 -0
  395. package/dist/middleware/schema-validation.js +347 -0
  396. package/dist/middleware/schema-validation.js.map +1 -0
  397. package/dist/providers/anthropic-provider.js +1 -1
  398. package/dist/providers/anthropic-provider.js.map +1 -1
  399. package/dist/providers/provider-factory.js +2 -2
  400. package/dist/providers/provider-factory.js.map +1 -1
  401. package/dist/services/edge-case-analyzer.js +321 -0
  402. package/dist/services/edge-case-analyzer.js.map +1 -0
  403. package/dist/services/edge-case-deduplicator.js +266 -0
  404. package/dist/services/edge-case-deduplicator.js.map +1 -0
  405. package/dist/services/edge-case-detector.js +337 -0
  406. package/dist/services/edge-case-detector.js.map +1 -0
  407. package/dist/services/edge-case-tracker.js +547 -0
  408. package/dist/services/edge-case-tracker.js.map +1 -0
  409. package/dist/services/health-check-system.js +586 -0
  410. package/dist/services/health-check-system.js.map +1 -0
  411. package/dist/services/metrics-logger.js +412 -0
  412. package/dist/services/metrics-logger.js.map +1 -0
  413. package/dist/services/patch-generator.js +378 -0
  414. package/dist/services/patch-generator.js.map +1 -0
  415. package/dist/services/patch-validator.js +337 -0
  416. package/dist/services/patch-validator.js.map +1 -0
  417. package/dist/services/performance-monitor.js +811 -0
  418. package/dist/services/performance-monitor.js.map +1 -0
  419. package/dist/services/promotion-pipeline.js +918 -0
  420. package/dist/services/promotion-pipeline.js.map +1 -0
  421. package/dist/services/promotion-validator.js +394 -0
  422. package/dist/services/promotion-validator.js.map +1 -0
  423. package/dist/services/reflection-logger.js +388 -0
  424. package/dist/services/reflection-logger.js.map +1 -0
  425. package/dist/services/skill-deployment.js +472 -0
  426. package/dist/services/skill-deployment.js.map +1 -0
  427. package/dist/services/skill-loader.js +427 -0
  428. package/dist/services/skill-loader.js.map +1 -0
  429. package/dist/services/skill-promotion.js +372 -0
  430. package/dist/services/skill-promotion.js.map +1 -0
  431. package/dist/services/skill-validator.js +454 -0
  432. package/dist/services/skill-validator.js.map +1 -0
  433. package/dist/services/skill-versioning.js +244 -0
  434. package/dist/services/skill-versioning.js.map +1 -0
  435. package/dist/services/workspace-supervisor.js +597 -0
  436. package/dist/services/workspace-supervisor.js.map +1 -0
  437. package/dist/types/edge-case.js +45 -0
  438. package/dist/types/edge-case.js.map +1 -0
  439. package/docs/BUG_19_MEMORY_LEAK_TASK_MODE.md +405 -0
  440. package/docs/MEMORY_CLEANUP_GUIDE.md +358 -0
  441. package/docs/MEMORY_LEAK_FIX_SUMMARY.md +322 -0
  442. package/docs/REDIS_CLEANUP_EXECUTIVE_SUMMARY.md +319 -0
  443. package/docs/REDIS_CLEANUP_VERIFICATION_REPORT.md +574 -0
  444. package/package.json +35 -4
  445. package/readme/README.md +53 -5
  446. package/scripts/backup-cleanup.sh +627 -0
  447. package/scripts/cleanup-workspaces.sh +412 -0
  448. package/scripts/cleanup-yaml-configs.sh +141 -0
  449. package/scripts/deploy-approved-skills.sh +263 -0
  450. package/scripts/health-check.sh +447 -0
  451. package/scripts/log-aggregator.sh +554 -0
  452. package/scripts/log-monitor.sh +629 -0
  453. package/scripts/manage-agent-workspaces.sh +434 -0
  454. package/scripts/migrate-schema.sh +533 -0
  455. package/scripts/promote-staged-skills.sh +423 -0
  456. package/scripts/verify-no-secrets.sh +88 -35
  457. package/scripts/verify-redis-cleanup.sh +173 -0
  458. package/tests/README.md +84 -0
  459. package/tests/test-memory-leak-task-mode.sh +435 -0
  460. package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
  461. package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
  462. package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
  463. package/.claude/skills/agent-lifecycle/SKILL.md +0 -60
  464. package/.claude/skills/agent-lifecycle/execute-lifecycle-hook.sh +0 -573
  465. package/.claude/skills/agent-lifecycle/simple-audit.sh +0 -31
  466. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
  467. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
  468. package/README.md.backup_before_replace +0 -781
  469. package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
  470. package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
  471. package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
  472. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
  473. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
@@ -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`
@@ -0,0 +1,319 @@
1
+ # Centralized Redis Wrapper - Graceful Fallback for Task Mode
2
+
3
+ **Version:** 1.0
4
+ **Date:** 2025-11-16
5
+ **Status:** Production Ready
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ This document describes the centralized Redis wrapper implementation that provides graceful fallback for Task mode execution, solving the ANTI-023 memory leak issue without requiring mode detection.
12
+
13
+ ## Problem Statement
14
+
15
+ **Original Issue:**
16
+ - CLI mode agents (spawned via `npx claude-flow-novice`) need Redis for coordination
17
+ - Task mode agents (spawned via `Task()` tool) should NOT use Redis (causes memory leaks)
18
+ - Mode detection was unreliable (both modes could have TASK_ID/AGENT_ID)
19
+
20
+ **Solution:**
21
+ Instead of trying to detect mode, **make Redis commands fail gracefully** when Redis is unavailable.
22
+
23
+ ## Architecture
24
+
25
+ ### Components
26
+
27
+ **1. redis-cli-wrapper.sh** (Centralized wrapper)
28
+ - Checks if Redis is available (1 second timeout)
29
+ - If available → execute command normally (CLI/Docker mode)
30
+ - If unavailable → soft fail with informative message (Task mode)
31
+
32
+ **2. redis-functions.sh** (Function override)
33
+ - Sources the wrapper
34
+ - Exports `redis-cli()` function that overrides the system command
35
+ - All scripts using redis-cli automatically get graceful fallback
36
+
37
+ **3. Coordination scripts** (Updated to source redis-functions.sh)
38
+ - `report-completion.sh` - Main agent completion protocol
39
+ - Other scripts can be updated as needed
40
+
41
+ ### How It Works
42
+
43
+ ```bash
44
+ # Script sources redis-functions.sh
45
+ source ./.claude/skills/cfn-redis-coordination/redis-functions.sh
46
+
47
+ # All redis-cli calls now use the wrapper
48
+ redis-cli LPUSH "key" "value" # Fails gracefully if Redis unavailable
49
+ ```
50
+
51
+ **Execution Flow:**
52
+
53
+ ```text
54
+ 1. Script calls redis-cli LPUSH "key" "value"
55
+ 2. redis-functions.sh overrides redis-cli → calls wrapper
56
+ 3. Wrapper checks: timeout 1 redis-cli ping
57
+ ├─ Success? → Execute command (CLI/Docker mode)
58
+ └─ Timeout? → Print warning, exit 0 (Task mode)
59
+ 4. Script continues (no fatal error)
60
+ ```
61
+
62
+ ## Benefits
63
+
64
+ ✅ **No mode detection needed** - Just check if Redis responds
65
+ ✅ **Simpler** - One code path, graceful degradation
66
+ ✅ **Self-healing** - Works in both Task mode (no Redis) AND CLI mode (has Redis)
67
+ ✅ **No memory leak** - If Redis isn't available, commands fail fast (exit 0)
68
+ ✅ **Clear feedback** - Informative messages explain what's happening
69
+ ✅ **Centralized** - One place to change behavior (redis-cli-wrapper.sh)
70
+ ✅ **Backward compatible** - Scripts without redis-functions.sh still work (use system redis-cli)
71
+
72
+ ## Usage
73
+
74
+ ### For New Scripts
75
+
76
+ Add this at the top of any script that uses Redis:
77
+
78
+ ```bash
79
+ #!/bin/bash
80
+ set -euo pipefail
81
+
82
+ # Source centralized Redis functions (provides graceful fallback for Task mode)
83
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
84
+ source "${SCRIPT_DIR}/redis-functions.sh"
85
+
86
+ # Now use redis-cli normally
87
+ redis-cli LPUSH "swarm:task-123:done" "complete"
88
+ redis-cli SET "key" "value" EX 3600
89
+ ```
90
+
91
+ ### For Existing Scripts
92
+
93
+ 1. Add the source block after `set -euo pipefail`
94
+ 2. Remove manual ANTI-023 checks (wrapper handles it)
95
+ 3. Simplify redis-cli calls (no need for `-h` / `-p` flags)
96
+
97
+ **Before:**
98
+ ```bash
99
+ if [[ -z "${TASK_ID:-}" || -z "${AGENT_ID:-}" ]]; then
100
+ echo "❌ TASK MODE DETECTED - Redis coordination forbidden" >&2
101
+ exit 1
102
+ fi
103
+
104
+ redis-cli -h "${REDIS_HOST:-localhost}" -p "${REDIS_PORT:-6379}" LPUSH "key" "value"
105
+ ```
106
+
107
+ **After:**
108
+ ```bash
109
+ source "${SCRIPT_DIR}/redis-functions.sh"
110
+
111
+ redis-cli LPUSH "key" "value"
112
+ ```
113
+
114
+ ### Testing Graceful Fallback
115
+
116
+ Test that your script handles Redis unavailability:
117
+
118
+ ```bash
119
+ # Simulate Task mode (Redis unavailable)
120
+ REDIS_HOST="nonexistent" bash your-script.sh --args
121
+
122
+ # Expected output:
123
+ ⚠️ Redis unavailable - command skipped (soft fail)
124
+ 💡 This is expected in Task mode (Main Chat coordination)
125
+ 🔧 Agents should output JSON directly instead of Redis coordination
126
+ ✅ Script completed successfully
127
+ ```
128
+
129
+ ## Implementation Details
130
+
131
+ ### redis-cli-wrapper.sh
132
+
133
+ ```bash
134
+ #!/bin/bash
135
+ set -euo pipefail
136
+
137
+ REDIS_HOST="${REDIS_HOST:-localhost}"
138
+ REDIS_PORT="${REDIS_PORT:-6379}"
139
+
140
+ # Graceful Redis availability check (1 second timeout)
141
+ if ! timeout 1 redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ping &>/dev/null; then
142
+ # Redis unavailable - likely Task mode
143
+ echo "⚠️ Redis unavailable - command skipped (soft fail)" >&2
144
+ echo "💡 This is expected in Task mode (Main Chat coordination)" >&2
145
+ echo "🔧 Agents should output JSON directly instead of Redis coordination" >&2
146
+ exit 0 # Soft fail - don't break agent execution
147
+ fi
148
+
149
+ # Redis available - execute command normally (CLI/Docker mode)
150
+ exec redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" "$@"
151
+ ```
152
+
153
+ **Key Features:**
154
+ - 1 second timeout (prevents hanging)
155
+ - Informative error messages
156
+ - Exit 0 (soft fail, agent continues)
157
+ - Respects REDIS_HOST/REDIS_PORT environment variables
158
+
159
+ ### redis-functions.sh
160
+
161
+ ```bash
162
+ #!/bin/bash
163
+
164
+ # Get the directory where this script is located
165
+ REDIS_FUNCTIONS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
166
+
167
+ # Override redis-cli to always use the wrapper
168
+ redis-cli() {
169
+ "${REDIS_FUNCTIONS_DIR}/redis-cli-wrapper.sh" "$@"
170
+ }
171
+
172
+ # Export the function so it's available in subshells
173
+ export -f redis-cli
174
+
175
+ # Helper: Check if Redis is available (useful for conditional logic)
176
+ is_redis_available() {
177
+ timeout 1 "${REDIS_FUNCTIONS_DIR}/redis-cli-wrapper.sh" ping &>/dev/null
178
+ return $?
179
+ }
180
+
181
+ export -f is_redis_available
182
+ ```
183
+
184
+ **Key Features:**
185
+ - Function override (all redis-cli calls use wrapper)
186
+ - Exported for subshells
187
+ - Helper function `is_redis_available()` for conditional logic
188
+
189
+ ## Migration Guide
190
+
191
+ ### Step 1: Update Core Scripts
192
+
193
+ Update the most critical coordination scripts first:
194
+
195
+ 1. `report-completion.sh` ✅ (Already updated)
196
+ 2. `collect-confidence-scores.sh`
197
+ 3. `invoke-waiting-mode.sh`
198
+ 4. `store-context.sh`
199
+ 5. `get-context.sh`
200
+
201
+ ### Step 2: Test Each Script
202
+
203
+ For each updated script:
204
+
205
+ ```bash
206
+ # Test with Redis available (CLI mode simulation)
207
+ bash script.sh --args
208
+
209
+ # Test with Redis unavailable (Task mode simulation)
210
+ REDIS_HOST="nonexistent" bash script.sh --args
211
+ ```
212
+
213
+ ### Step 3: Update Agent Profiles (Optional)
214
+
215
+ Agent profiles can now simplify their Redis usage examples:
216
+
217
+ **Before:**
218
+ ```markdown
219
+ redis-cli -h "${REDIS_HOST:-localhost}" -p "${REDIS_PORT:-6379}" LPUSH "key" "value"
220
+ ```
221
+
222
+ **After:**
223
+ ```markdown
224
+ # Redis coordination (automatically fails gracefully in Task mode)
225
+ redis-cli LPUSH "key" "value"
226
+ ```
227
+
228
+ ## Troubleshooting
229
+
230
+ ### Issue: "Permission denied" when running wrapper
231
+
232
+ **Solution:**
233
+ ```bash
234
+ chmod +x .claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh
235
+ chmod +x .claude/skills/cfn-redis-coordination/redis-functions.sh
236
+ ```
237
+
238
+ ### Issue: "$'\r': command not found" (CRLF line endings)
239
+
240
+ **Solution:**
241
+ ```bash
242
+ sed -i 's/\r$//' .claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh
243
+ sed -i 's/\r$//' .claude/skills/cfn-redis-coordination/redis-functions.sh
244
+ ```
245
+
246
+ ### Issue: Redis commands still hanging
247
+
248
+ **Cause:** Script not sourcing redis-functions.sh
249
+
250
+ **Solution:** Add source line at top of script:
251
+ ```bash
252
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
253
+ source "${SCRIPT_DIR}/redis-functions.sh"
254
+ ```
255
+
256
+ ## Performance Impact
257
+
258
+ **Redis Available (CLI/Docker mode):**
259
+ - Ping check: ~1-5ms overhead per script execution
260
+ - Command execution: No overhead (exec replaces process)
261
+
262
+ **Redis Unavailable (Task mode):**
263
+ - Ping timeout: 1 second (one-time per script, not per command)
264
+ - Total overhead: ~1 second per script execution
265
+ - Acceptable for Task mode (not performance-critical)
266
+
267
+ ## Security Considerations
268
+
269
+ **Timeout Protection:**
270
+ - 1 second timeout prevents indefinite hanging
271
+ - Protects against network issues
272
+
273
+ **Environment Variables:**
274
+ - Respects REDIS_HOST/REDIS_PORT for configuration
275
+ - No hardcoded credentials
276
+
277
+ **Soft Failure:**
278
+ - Exit 0 prevents cascade failures
279
+ - Agent can continue execution
280
+
281
+ ## Success Metrics
282
+
283
+ **Test Results:**
284
+ - ✅ report-completion.sh tested with nonexistent Redis host
285
+ - ✅ All 6 redis-cli calls failed gracefully (exit 0)
286
+ - ✅ Script completed successfully with informative warnings
287
+ - ✅ No memory leaks (commands timeout after 1 second)
288
+
289
+ **Expected Behavior:**
290
+ - CLI mode: Redis available → normal execution
291
+ - Docker mode: Redis available → normal execution
292
+ - Task mode: Redis unavailable → graceful fallback, agent continues
293
+
294
+ ## Conclusion
295
+
296
+ The centralized Redis wrapper provides a robust, simple solution to the ANTI-023 memory leak issue. By focusing on **graceful failure** instead of **mode detection**, we achieve:
297
+
298
+ 1. **Reliability** - Works regardless of mode detection accuracy
299
+ 2. **Simplicity** - One code path, clear behavior
300
+ 3. **Maintainability** - Centralized in one wrapper file
301
+ 4. **Safety** - No memory leaks, no hanging processes
302
+
303
+ This approach is **production-ready** and can be rolled out incrementally (script by script) without disrupting existing workflows.
304
+
305
+ ---
306
+
307
+ **See Also:**
308
+ - `docs/architecture/task-mode-redis-safety-patterns.md` - Original ANTI-023 analysis
309
+ - `CLAUDE.md` - CFN Loop execution modes
310
+ - `.claude/skills/cfn-redis-coordination/SKILL.md` - Coordination protocols
311
+
312
+ **Next Steps:**
313
+ 1. Update remaining coordination scripts
314
+ 2. Test in production CFN Loop execution
315
+ 3. Document in agent profiles
316
+ 4. Monitor for any edge cases
317
+
318
+ **Version History:**
319
+ - v1.0 (2025-11-16): Initial implementation with graceful fallback
@@ -12,6 +12,10 @@
12
12
 
13
13
  set -euo pipefail
14
14
 
15
+ # Source centralized Redis functions (provides graceful fallback for Task mode)
16
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
17
+ source "${SCRIPT_DIR}/redis-functions.sh"
18
+
15
19
  # Color codes for terminal output
16
20
  COLOR_RESET="\033[0m"
17
21
  COLOR_DEBUG="\033[0;36m" # Cyan