claude-flow-novice 2.9.1 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/.claude/agents/cfn-dev-team/CLAUDE.md +1086 -0
  2. package/.claude/agents/cfn-dev-team/README.md +116 -0
  3. package/.claude/agents/cfn-dev-team/architecture/api-designer-persona.md +149 -0
  4. package/.claude/agents/cfn-dev-team/architecture/base-template-generator.md +196 -0
  5. package/.claude/agents/cfn-dev-team/architecture/goal-planner.md +183 -0
  6. package/.claude/agents/cfn-dev-team/architecture/planner.md +182 -0
  7. package/.claude/agents/cfn-dev-team/architecture/system-architect.md +162 -0
  8. package/.claude/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +540 -0
  9. package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +20 -14
  10. package/.claude/agents/cfn-dev-team/coordinators/consensus-builder.md +167 -0
  11. package/.claude/agents/cfn-dev-team/dev-ops/devops-engineer.md +148 -0
  12. package/.claude/agents/cfn-dev-team/dev-ops/github-commit-agent.md +118 -0
  13. package/.claude/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +540 -0
  14. package/.claude/agents/cfn-dev-team/developers/backend-dev.md +20 -0
  15. package/.claude/agents/cfn-dev-team/developers/data/data-engineer.md +585 -0
  16. package/.claude/agents/cfn-dev-team/developers/database/database-architect.md +276 -0
  17. package/.claude/agents/cfn-dev-team/developers/dev-backend-api.md +147 -0
  18. package/.claude/agents/cfn-dev-team/developers/frontend/mobile-dev.md +218 -0
  19. package/.claude/agents/cfn-dev-team/developers/{react-frontend-engineer.md → frontend/react-frontend-engineer.md} +53 -5
  20. package/.claude/agents/cfn-dev-team/developers/frontend/spec-mobile-react-native.md +199 -0
  21. package/.claude/agents/cfn-dev-team/developers/graphql-specialist.md +615 -0
  22. package/.claude/agents/cfn-dev-team/developers/rust-developer.md +174 -0
  23. package/.claude/agents/cfn-dev-team/documentation/README-VALIDATION.md +243 -0
  24. package/.claude/agents/cfn-dev-team/documentation/agent-type-guidelines.md +465 -0
  25. package/.claude/agents/cfn-dev-team/documentation/api-docs.md +103 -0
  26. package/.claude/agents/cfn-dev-team/documentation/docs-api-openapi.md +98 -0
  27. package/.claude/agents/cfn-dev-team/documentation/pseudocode.md +159 -0
  28. package/.claude/agents/cfn-dev-team/documentation/specification.md +157 -0
  29. package/.claude/agents/cfn-dev-team/product-owners/accessibility-advocate-persona.md +109 -0
  30. package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/cto-agent.md +8 -6
  31. package/.claude/agents/cfn-dev-team/product-owners/power-user-persona.md +190 -0
  32. package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner.md +85 -59
  33. package/.claude/agents/cfn-dev-team/reviewers/quality/analyze-code-quality.md +141 -0
  34. package/.claude/agents/cfn-dev-team/reviewers/quality/code-analyzer.md +200 -0
  35. package/.claude/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +321 -0
  36. package/.claude/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +238 -0
  37. package/.claude/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +101 -0
  38. package/.claude/agents/cfn-dev-team/reviewers/quality/quality-metrics.md +375 -0
  39. package/.claude/agents/cfn-dev-team/reviewers/quality/security-specialist.md +193 -0
  40. package/.claude/agents/cfn-dev-team/reviewers/reviewer.md +39 -0
  41. package/.claude/agents/cfn-dev-team/testers/interaction-tester.md +31 -0
  42. package/.claude/agents/cfn-dev-team/testers/load-testing-specialist.md +469 -0
  43. package/.claude/agents/cfn-dev-team/testers/playwright-tester.md +24 -0
  44. package/.claude/agents/cfn-dev-team/testers/tester.md +20 -0
  45. package/.claude/agents/cfn-dev-team/utility/agent-builder.md +151 -0
  46. package/.claude/agents/cfn-dev-team/utility/analyst.md +178 -0
  47. package/.claude/agents/cfn-dev-team/utility/claude-code-expert.md +1043 -0
  48. package/.claude/agents/cfn-dev-team/utility/code-booster.md +139 -0
  49. package/.claude/agents/cfn-dev-team/utility/context-curator.md +99 -0
  50. package/.claude/agents/cfn-dev-team/{developers → utility}/researcher.md +6 -4
  51. package/.claude/commands/cfn/CFN_LOOP_FRONTEND.md +741 -0
  52. package/.claude/commands/cfn/CFN_LOOP_TASK_MODE.md +353 -0
  53. package/.claude/commands/cfn/cfn-loop-frontend.md +555 -0
  54. package/.claude/commands/cfn/cfn-loop.md +168 -7
  55. package/{CFN-CLAUDE.md → .claude/root-claude-distribute/CFN-CLAUDE.md} +23 -3
  56. package/.claude/skills/cfn-ace-system/SKILL.md +364 -0
  57. package/.claude/skills/cfn-ace-system/add-bullet.sh +145 -0
  58. package/.claude/skills/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +56 -0
  59. package/.claude/skills/cfn-ace-system/classify-task.sh +18 -0
  60. package/.claude/skills/cfn-ace-system/export-ace-metrics.sh +48 -0
  61. package/.claude/skills/cfn-ace-system/extract-tags.sh +385 -0
  62. package/.claude/skills/cfn-ace-system/format-negative-context.sh +180 -0
  63. package/.claude/skills/cfn-ace-system/init-indexes.sql +160 -0
  64. package/.claude/skills/cfn-ace-system/invoke-context-curate.sh +192 -0
  65. package/.claude/skills/cfn-ace-system/invoke-context-inject.sh +361 -0
  66. package/.claude/skills/cfn-ace-system/invoke-context-query.sh +139 -0
  67. package/.claude/skills/cfn-ace-system/invoke-context-reflect.sh +343 -0
  68. package/.claude/skills/cfn-ace-system/invoke-context-stats.sh +227 -0
  69. package/.claude/skills/cfn-ace-system/log-merge.sh +67 -0
  70. package/.claude/skills/cfn-ace-system/monitor-injection-performance.sh +138 -0
  71. package/.claude/skills/cfn-ace-system/optimize-injection-pipeline.sh +169 -0
  72. package/.claude/skills/cfn-ace-system/query-anti-patterns.sh +276 -0
  73. package/.claude/skills/cfn-ace-system/query-contexts.sh +150 -0
  74. package/.claude/skills/cfn-ace-system/query-reflections.sh +35 -0
  75. package/.claude/skills/cfn-ace-system/schema/001-create-context-reflections.sql +237 -0
  76. package/.claude/skills/cfn-ace-system/schema/README.md +723 -0
  77. package/.claude/skills/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +564 -0
  78. package/.claude/skills/cfn-ace-system/schema/populate-test-data-simple.sh +62 -0
  79. package/.claude/skills/cfn-ace-system/schema/populate-test-data.sh +247 -0
  80. package/.claude/skills/cfn-ace-system/schema/run-migration.sh +231 -0
  81. package/.claude/skills/cfn-ace-system/schema/validate-schema.sql +280 -0
  82. package/.claude/skills/cfn-ace-system/score-relevance-adapter.sh +138 -0
  83. package/.claude/skills/cfn-ace-system/score-relevance.sh +253 -0
  84. package/.claude/skills/cfn-ace-system/sprint-7-lessons.json +46 -0
  85. package/.claude/skills/cfn-ace-system/store-reflection.sh +46 -0
  86. package/.claude/skills/cfn-ace-system/test-ace-skill.sh +312 -0
  87. package/.claude/skills/cfn-ace-system/track-ab-test.sh +42 -0
  88. package/.claude/skills/cfn-ace-system/update-reflection.sh +41 -0
  89. package/.claude/skills/cfn-agent-discovery/SKILL.md +40 -0
  90. package/.claude/skills/cfn-agent-discovery/agents-registry-clean.json +0 -0
  91. package/.claude/skills/cfn-agent-discovery/agents-registry-fixed.json +19 -0
  92. package/.claude/skills/cfn-agent-discovery/agents-registry.json +718 -0
  93. package/.claude/skills/cfn-agent-discovery/discover-agents.py +184 -0
  94. package/.claude/skills/cfn-agent-discovery/discover-agents.sh +87 -0
  95. package/.claude/skills/cfn-agent-discovery/invoke-registry.sh +11 -0
  96. package/.claude/skills/cfn-agent-discovery/temp_script.py +0 -0
  97. package/.claude/skills/cfn-agent-execution/execute-agent.sh +126 -0
  98. package/.claude/skills/cfn-agent-output-processing/SKILL.md +359 -0
  99. package/.claude/skills/cfn-agent-selector/SKILL.md +90 -0
  100. package/.claude/skills/cfn-agent-selector/select-agents.sh +112 -0
  101. package/.claude/skills/cfn-agent-spawning/SKILL.md +135 -0
  102. package/.claude/skills/cfn-agent-spawning/agent-selection-guide.md +814 -0
  103. package/.claude/skills/cfn-agent-spawning/check-dependencies.sh +30 -0
  104. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +263 -0
  105. package/.claude/skills/cfn-agent-spawning/spawn-templates.sh +613 -0
  106. package/.claude/skills/cfn-analytics/description-refinement-guide.md +164 -0
  107. package/.claude/skills/cfn-analytics/log-skill-invocation.js +122 -0
  108. package/.claude/skills/cfn-analytics/run-production-criteria-tests.sh +126 -0
  109. package/.claude/skills/cfn-analytics/skill-analytics-dashboard.js +113 -0
  110. package/.claude/skills/cfn-analytics/skill-invocation-hook.sh +28 -0
  111. package/.claude/skills/cfn-analytics/skill-invocations.sql +58 -0
  112. package/.claude/skills/cfn-analytics/test-corpus.json +32 -0
  113. package/.claude/skills/cfn-analytics/test-data-generator.js +115 -0
  114. package/.claude/skills/cfn-analytics/test-manual-override-rate.js +285 -0
  115. package/.claude/skills/cfn-analytics/validate-skill-selection.js +188 -0
  116. package/.claude/skills/cfn-config-management/SKILL.md +34 -0
  117. package/.claude/skills/cfn-config-management/check-dependencies.sh +56 -0
  118. package/.claude/skills/cfn-config-management/config.json +32 -0
  119. package/.claude/skills/cfn-config-management/manage-config.sh +113 -0
  120. package/.claude/skills/cfn-event-bus/SKILL.md +412 -0
  121. package/.claude/skills/cfn-event-bus/config.json +111 -0
  122. package/.claude/skills/cfn-event-bus/eventbus-wrapper.cjs +69 -0
  123. package/.claude/skills/cfn-event-bus/invoke-event-publish.sh +147 -0
  124. package/.claude/skills/cfn-event-bus/invoke-event-subscribe.sh +171 -0
  125. package/.claude/skills/cfn-event-bus/invoke-lifecycle-track.sh +201 -0
  126. package/.claude/skills/cfn-event-bus/test-event-bus.sh +280 -0
  127. package/.claude/skills/cfn-fleet-manager/SKILL.md +412 -0
  128. package/.claude/skills/cfn-fleet-manager/config.json +60 -0
  129. package/.claude/skills/cfn-fleet-manager/invoke-fleet-allocate.sh +182 -0
  130. package/.claude/skills/cfn-fleet-manager/invoke-fleet-balance.sh +239 -0
  131. package/.claude/skills/cfn-fleet-manager/invoke-fleet-metrics.sh +193 -0
  132. package/.claude/skills/cfn-fleet-manager/invoke-fleet-register.sh +124 -0
  133. package/.claude/skills/cfn-fleet-manager/test-fleet-manager.sh +345 -0
  134. package/.claude/skills/cfn-hook-pipeline/SKILL.md +148 -0
  135. package/.claude/skills/cfn-hook-pipeline/auto-resolve.sh +66 -0
  136. package/.claude/skills/cfn-hook-pipeline/check-dependencies.sh +40 -0
  137. package/.claude/skills/cfn-hook-pipeline/feedback-resolver.sh +452 -0
  138. package/.claude/skills/cfn-hook-pipeline/post-edit-handler.sh +154 -0
  139. package/.claude/skills/cfn-hook-pipeline/security-scan.json +60 -0
  140. package/.claude/skills/cfn-hook-pipeline/security-scanner.sh +121 -0
  141. package/.claude/skills/cfn-hook-pipeline/test-root-warning-resolution.sh +148 -0
  142. package/.claude/skills/cfn-hybrid-routing/SKILL.md +46 -0
  143. package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +52 -0
  144. package/.claude/skills/cfn-hybrid-routing/config.json +26 -0
  145. package/.claude/skills/cfn-hybrid-routing/spawn-worker.sh +44 -0
  146. package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
  147. package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
  148. package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
  149. package/.claude/skills/cfn-loop-orchestration/helpers/context-injection.sh +142 -0
  150. package/.claude/skills/cfn-loop-orchestration/helpers/context-lookup.sh +359 -0
  151. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
  152. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
  153. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
  154. package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +271 -0
  155. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
  156. package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
  157. package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
  158. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +884 -0
  159. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +840 -0
  160. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
  161. package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
  162. package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
  163. package/.claude/skills/cfn-loop-validation/SKILL.md +353 -0
  164. package/.claude/skills/cfn-loop-validation/check-dependencies.sh +31 -0
  165. package/.claude/skills/cfn-loop-validation/config.json +161 -0
  166. package/.claude/skills/cfn-loop-validation/consensus-calculator.js +477 -0
  167. package/.claude/skills/cfn-loop-validation/evidence-chain.sql +163 -0
  168. package/.claude/skills/cfn-loop-validation/examples/README.md +453 -0
  169. package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +234 -0
  170. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +132 -0
  171. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +115 -0
  172. package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +186 -0
  173. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -0
  174. package/.claude/skills/cfn-loop-validation/validate-iteration.sh +134 -0
  175. package/.claude/skills/cfn-process-lifecycle/SKILL.md +39 -0
  176. package/.claude/skills/cfn-process-lifecycle/check-dependencies.sh +58 -0
  177. package/.claude/skills/cfn-process-lifecycle/config.json +39 -0
  178. package/.claude/skills/cfn-process-lifecycle/process-manager.sh +144 -0
  179. package/.claude/skills/cfn-product-owner-decision/SKILL.md +332 -0
  180. package/.claude/skills/cfn-product-owner-decision/execute-decision.sh +176 -0
  181. package/.claude/skills/cfn-product-owner-decision/parse-decision.sh +66 -0
  182. package/.claude/skills/cfn-product-owner-decision/validate-deliverables.sh +82 -0
  183. package/.claude/skills/cfn-redis-coordination/AGENT_LOGGING.md +280 -0
  184. package/.claude/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +209 -0
  185. package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +57 -0
  186. package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +267 -0
  187. package/.claude/skills/cfn-redis-coordination/LOGGING.md +260 -0
  188. package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +25 -0
  189. package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +164 -0
  190. package/.claude/skills/cfn-redis-coordination/SKILL.md +720 -0
  191. package/.claude/skills/cfn-redis-coordination/agent-log.sh +124 -0
  192. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +75 -0
  193. package/.claude/skills/cfn-redis-coordination/analyze-task-complexity.sh +277 -0
  194. package/.claude/skills/cfn-redis-coordination/cancel-swarm.sh +221 -0
  195. package/.claude/skills/cfn-redis-coordination/cfn-loop-exec.sh +468 -0
  196. package/.claude/skills/cfn-redis-coordination/cfn-loop-relaunch.sh +29 -0
  197. package/.claude/skills/cfn-redis-coordination/check-dependencies.sh +32 -0
  198. package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +179 -0
  199. package/.claude/skills/cfn-redis-coordination/collect-results.sh +75 -0
  200. package/.claude/skills/cfn-redis-coordination/complete-swarm.sh +75 -0
  201. package/.claude/skills/cfn-redis-coordination/config.json +61 -0
  202. package/.claude/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
  203. package/.claude/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +82 -0
  204. package/.claude/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +274 -0
  205. package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +276 -0
  206. package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +129 -0
  207. package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +320 -0
  208. package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +249 -0
  209. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +148 -0
  210. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +163 -0
  211. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +138 -0
  212. package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +81 -0
  213. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +45 -0
  214. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +68 -0
  215. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +56 -0
  216. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +81 -0
  217. package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +57 -0
  218. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +187 -0
  219. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +160 -0
  220. package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +97 -0
  221. package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +97 -0
  222. package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +59 -0
  223. package/.claude/skills/cfn-redis-coordination/examples/README.md +73 -0
  224. package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +352 -0
  225. package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +127 -0
  226. package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +171 -0
  227. package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +227 -0
  228. package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +239 -0
  229. package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +258 -0
  230. package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +177 -0
  231. package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +137 -0
  232. package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +106 -0
  233. package/.claude/skills/cfn-redis-coordination/heartbeat.sh +126 -0
  234. package/.claude/skills/cfn-redis-coordination/init-swarm.sh +148 -0
  235. package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +220 -0
  236. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +283 -0
  237. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
  238. package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +147 -0
  239. package/.claude/skills/cfn-redis-coordination/log-event.sh +109 -0
  240. package/.claude/skills/cfn-redis-coordination/metrics-export.sh +674 -0
  241. package/.claude/skills/cfn-redis-coordination/metrics-schema.json +66 -0
  242. package/.claude/skills/cfn-redis-coordination/metrics-storage.md +31 -0
  243. package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +391 -0
  244. package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +101 -0
  245. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
  246. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +31 -0
  247. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
  248. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
  249. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
  250. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
  251. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
  252. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
  253. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  254. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
  255. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
  256. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
  257. package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +75 -0
  258. package/.claude/skills/cfn-redis-coordination/priority_wake.py +134 -0
  259. package/.claude/skills/cfn-redis-coordination/query-dlq.sh +162 -0
  260. package/.claude/skills/cfn-redis-coordination/query-logs.sh +103 -0
  261. package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +619 -0
  262. package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +58 -0
  263. package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +371 -0
  264. package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +252 -0
  265. package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +165 -0
  266. package/.claude/skills/cfn-redis-coordination/signal.sh +38 -0
  267. package/.claude/skills/cfn-redis-coordination/store-context.sh +86 -0
  268. package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +123 -0
  269. package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +354 -0
  270. package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +513 -0
  271. package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +15 -0
  272. package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +102 -0
  273. package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +99 -0
  274. package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +170 -0
  275. package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +82 -0
  276. package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +92 -0
  277. package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +4 -0
  278. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +418 -0
  279. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +124 -0
  280. package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +166 -0
  281. package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +54 -0
  282. package/.claude/skills/cfn-redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
  283. package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +49 -0
  284. package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +76 -0
  285. package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +492 -0
  286. package/.claude/skills/cfn-sqlite-memory/IMPLEMENTATION_REPORT.md +393 -0
  287. package/.claude/skills/cfn-sqlite-memory/QUICK_REFERENCE.md +204 -0
  288. package/.claude/skills/cfn-sqlite-memory/SKILL.md +415 -0
  289. package/.claude/skills/cfn-sqlite-memory/acl-queries.sql +452 -0
  290. package/.claude/skills/cfn-sqlite-memory/check-dependencies.sh +36 -0
  291. package/.claude/skills/cfn-sqlite-memory/config.json +45 -0
  292. package/.claude/skills/cfn-sqlite-memory/memory-cli.sh +88 -0
  293. package/.claude/skills/cfn-sqlite-memory/test-state-persistence.js +187 -0
  294. package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +274 -0
  295. package/.claude/skills/cfn-test-execution/SKILL.md +128 -0
  296. package/.claude/skills/cfn-test-execution/check-dependencies.sh +36 -0
  297. package/.claude/skills/cfn-test-execution/test-cache-reader.sh +134 -0
  298. package/.claude/skills/cfn-test-execution/test-concurrent-conflicts.sh +115 -0
  299. package/.claude/skills/cfn-test-execution/test-coordinator-pattern.sh +109 -0
  300. package/.claude/skills/cfn-transparency-middleware/Cargo.toml +18 -0
  301. package/.claude/skills/cfn-transparency-middleware/SECURITY.md +41 -0
  302. package/.claude/skills/cfn-transparency-middleware/SKILL.md +91 -0
  303. package/.claude/skills/cfn-transparency-middleware/TEST_RESULTS.md +174 -0
  304. package/.claude/skills/cfn-transparency-middleware/config.json +31 -0
  305. package/.claude/skills/cfn-transparency-middleware/examples/basic-usage.ts +39 -0
  306. package/.claude/skills/cfn-transparency-middleware/examples/batch-processing.ts +52 -0
  307. package/.claude/skills/cfn-transparency-middleware/examples/custom-filtering.ts +61 -0
  308. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-filter.sh +98 -0
  309. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-init.sh +224 -0
  310. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-level.sh +333 -0
  311. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-metrics.sh +345 -0
  312. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-observe.sh +140 -0
  313. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-stop.sh +235 -0
  314. package/.claude/skills/cfn-transparency-middleware/memory_query.rs +85 -0
  315. package/.claude/skills/cfn-transparency-middleware/memory_repository.rs +140 -0
  316. package/.claude/skills/cfn-transparency-middleware/memory_schema.rs +64 -0
  317. package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +29 -0
  318. package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +79 -0
  319. package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +406 -0
  320. package/.claude/skills/cfn-transparency-middleware/test-integration.sh +162 -0
  321. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +368 -0
  322. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh.unix +126 -0
  323. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +93 -0
  324. package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +132 -0
  325. package/.claude/skills/cfn-webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
  326. package/.claude/skills/cfn-webapp-testing/SKILL.md +877 -0
  327. package/.claude/skills/cfn-webapp-testing/capture-screenshot.sh +238 -0
  328. package/.claude/skills/cfn-webapp-testing/cfn-loop-integration.sh +265 -0
  329. package/.claude/skills/cfn-webapp-testing/compare-screenshots.sh +199 -0
  330. package/.claude/skills/cfn-webapp-testing/init-storage.sh +150 -0
  331. package/.claude/skills/cfn-webapp-testing/set-baseline.sh +196 -0
  332. package/.claude/skills/cfn-webapp-testing/test-webapp-testing.sh +233 -0
  333. package/README.md +51 -2
  334. package/dist/ace/ace-reflector.js +109 -10
  335. package/dist/ace/ace-reflector.js.map +1 -1
  336. package/dist/cli/agent-executor.js +1 -1
  337. package/dist/cli/agent-executor.js.map +1 -1
  338. package/package.json +43 -7
  339. package/readme/README.md +15 -4
  340. package/scripts/init-project.js +39 -2
  341. package/scripts/run-marketing-tests.sh +43 -0
  342. package/scripts/update_paths.sh +47 -0
  343. package/tools/install-lizard.sh +37 -0
  344. package/tools/simple-complexity.sh +44 -0
  345. package/.claude/agents/cfn-dev-team/developers/coder.md +0 -270
  346. package/.claude/agents/cfn-dev-team/developers/state-architect.md +0 -127
  347. package/.claude/agents/cfn-dev-team/reviewers/code-quality-validator.md +0 -128
  348. /package/.claude/agents/cfn-dev-team/developers/{ui-designer.md → frontend/ui-designer.md} +0 -0
  349. /package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner-agent.md +0 -0
@@ -0,0 +1,171 @@
1
+ #!/bin/bash
2
+ # Mesh Pattern: Many:1 Aggregation Coordination
3
+ # Use Case: Multiple agents complete independently, one agent waits for ALL
4
+ # Pattern: Hybrid LPUSH (first waiter) + SET (additional readers)
5
+
6
+ set -e
7
+
8
+ TASK_ID="demo:mesh"
9
+ TIMEOUT=300 # 5 minutes
10
+
11
+ echo "=== Mesh Pattern Demo (Many:1 Aggregation) ==="
12
+ echo "Scenario: [Coder, Tester, Reviewer] → Validator"
13
+ echo ""
14
+
15
+ # Cleanup previous demo data
16
+ echo "Cleaning up previous demo data..."
17
+ redis-cli del "${TASK_ID}:coder:done" > /dev/null 2>&1 || true
18
+ redis-cli del "${TASK_ID}:coder:result" > /dev/null 2>&1 || true
19
+ redis-cli del "${TASK_ID}:tester:done" > /dev/null 2>&1 || true
20
+ redis-cli del "${TASK_ID}:tester:result" > /dev/null 2>&1 || true
21
+ redis-cli del "${TASK_ID}:reviewer:done" > /dev/null 2>&1 || true
22
+ redis-cli del "${TASK_ID}:reviewer:result" > /dev/null 2>&1 || true
23
+ redis-cli del "${TASK_ID}:validator:result" > /dev/null 2>&1 || true
24
+
25
+ # Simulate Coder Agent (runs in background)
26
+ (
27
+ echo "[Coder] Implementing authentication feature..."
28
+ sleep 2
29
+
30
+ RESULT='{
31
+ "agent": "coder",
32
+ "confidence": 0.86,
33
+ "filesModified": ["auth.js", "auth.test.js"],
34
+ "linesAdded": 245,
35
+ "status": "complete"
36
+ }'
37
+
38
+ # Hybrid pattern: LPUSH for first waiter, SET for additional readers
39
+ redis-cli lpush "${TASK_ID}:coder:done" "$RESULT" > /dev/null
40
+ redis-cli set "${TASK_ID}:coder:result" "$RESULT" > /dev/null
41
+ redis-cli expire "${TASK_ID}:coder:result" 3600 > /dev/null # 1 hour TTL
42
+
43
+ echo "[Coder] Implementation complete, published results"
44
+ ) &
45
+
46
+ # Simulate Tester Agent (runs in background)
47
+ (
48
+ echo "[Tester] Running test suite..."
49
+ sleep 3
50
+
51
+ RESULT='{
52
+ "agent": "tester",
53
+ "confidence": 0.92,
54
+ "testsRun": 45,
55
+ "testsPassed": 45,
56
+ "coverage": 0.94,
57
+ "status": "complete"
58
+ }'
59
+
60
+ # Hybrid pattern: LPUSH + SET
61
+ redis-cli lpush "${TASK_ID}:tester:done" "$RESULT" > /dev/null
62
+ redis-cli set "${TASK_ID}:tester:result" "$RESULT" > /dev/null
63
+ redis-cli expire "${TASK_ID}:tester:result" 3600 > /dev/null
64
+
65
+ echo "[Tester] Tests complete (45/45 passed, 94% coverage)"
66
+ ) &
67
+
68
+ # Simulate Reviewer Agent (runs in background)
69
+ (
70
+ echo "[Reviewer] Reviewing code quality..."
71
+ sleep 2.5
72
+
73
+ RESULT='{
74
+ "agent": "reviewer",
75
+ "confidence": 0.88,
76
+ "issuesFound": 2,
77
+ "severity": "low",
78
+ "recommendations": ["Add input validation", "Improve error messages"],
79
+ "status": "complete"
80
+ }'
81
+
82
+ # Hybrid pattern: LPUSH + SET
83
+ redis-cli lpush "${TASK_ID}:reviewer:done" "$RESULT" > /dev/null
84
+ redis-cli set "${TASK_ID}:reviewer:result" "$RESULT" > /dev/null
85
+ redis-cli expire "${TASK_ID}:reviewer:result" 3600 > /dev/null
86
+
87
+ echo "[Reviewer] Review complete (2 low-severity issues)"
88
+ ) &
89
+
90
+ # Validator: Wait for ALL three agents (first uses BLPOP, rest use GET)
91
+ echo "[Validator] Waiting for coder, tester, and reviewer to complete..."
92
+
93
+ # First agent: Use BLPOP (blocking wait)
94
+ CODER_DATA=$(timeout $TIMEOUT redis-cli --csv blpop "${TASK_ID}:coder:done" 0 2>/dev/null || echo "")
95
+ if [ -z "$CODER_DATA" ]; then
96
+ echo "[Validator] ERROR: Coder timeout after ${TIMEOUT}s"
97
+ exit 1
98
+ fi
99
+ echo "[Validator] ✓ Coder complete"
100
+
101
+ # Second agent: Use GET (non-blocking, from persistent SET)
102
+ TESTER_DATA=""
103
+ for i in {1..60}; do
104
+ TESTER_DATA=$(redis-cli get "${TASK_ID}:tester:result" 2>/dev/null || echo "")
105
+ if [ -n "$TESTER_DATA" ]; then
106
+ break
107
+ fi
108
+ sleep 1
109
+ done
110
+
111
+ if [ -z "$TESTER_DATA" ]; then
112
+ echo "[Validator] ERROR: Tester timeout after 60s"
113
+ exit 1
114
+ fi
115
+ echo "[Validator] ✓ Tester complete"
116
+
117
+ # Third agent: Use GET (non-blocking, from persistent SET)
118
+ REVIEWER_DATA=""
119
+ for i in {1..60}; do
120
+ REVIEWER_DATA=$(redis-cli get "${TASK_ID}:reviewer:result" 2>/dev/null || echo "")
121
+ if [ -n "$REVIEWER_DATA" ]; then
122
+ break
123
+ fi
124
+ sleep 1
125
+ done
126
+
127
+ if [ -z "$REVIEWER_DATA" ]; then
128
+ echo "[Validator] ERROR: Reviewer timeout after 60s"
129
+ exit 1
130
+ fi
131
+ echo "[Validator] ✓ Reviewer complete"
132
+
133
+ # Wait for all background jobs to complete
134
+ wait
135
+
136
+ echo ""
137
+ echo "[Validator] All agents complete, aggregating results..."
138
+
139
+ # Calculate aggregate confidence (simple average)
140
+ echo "[Validator] Aggregate confidence: ~0.89 (coder: 0.86, tester: 0.92, reviewer: 0.88)"
141
+
142
+ VALIDATION_RESULT='{
143
+ "agent": "validator",
144
+ "status": "validated",
145
+ "aggregateConfidence": 0.89,
146
+ "summary": "All components validated successfully"
147
+ }'
148
+
149
+ redis-cli set "${TASK_ID}:validator:result" "$VALIDATION_RESULT" > /dev/null
150
+ redis-cli expire "${TASK_ID}:validator:result" 3600 > /dev/null
151
+
152
+ echo ""
153
+ echo "=== Mesh Pattern Complete ==="
154
+ echo "✅ Three agents completed independently in parallel"
155
+ echo "✅ Validator successfully aggregated all results"
156
+ echo "✅ Hybrid LPUSH+SET pattern prevented BLPOP message loss"
157
+ echo ""
158
+ echo "Key Pattern:"
159
+ echo " 1. Each agent: LPUSH (for first waiter) + SET (for additional readers)"
160
+ echo " 2. Validator: BLPOP for first agent, GET for remaining agents"
161
+ echo " 3. SET keys have 1-hour expiry for cleanup"
162
+ echo ""
163
+
164
+ # Cleanup
165
+ redis-cli del "${TASK_ID}:coder:done" > /dev/null 2>&1 || true
166
+ redis-cli del "${TASK_ID}:coder:result" > /dev/null 2>&1 || true
167
+ redis-cli del "${TASK_ID}:tester:done" > /dev/null 2>&1 || true
168
+ redis-cli del "${TASK_ID}:tester:result" > /dev/null 2>&1 || true
169
+ redis-cli del "${TASK_ID}:reviewer:done" > /dev/null 2>&1 || true
170
+ redis-cli del "${TASK_ID}:reviewer:result" > /dev/null 2>&1 || true
171
+ redis-cli del "${TASK_ID}:validator:result" > /dev/null 2>&1 || true
@@ -0,0 +1,227 @@
1
+ #!/bin/bash
2
+ # Timeout Handling: Comprehensive timeout patterns for Redis coordination
3
+ # Demonstrates proper timeout handling, error reporting, and recovery strategies
4
+
5
+ set -e
6
+
7
+ TASK_ID="demo:timeout"
8
+ SHORT_TIMEOUT=5 # 5 seconds (for demo of timeout failure)
9
+ NORMAL_TIMEOUT=300 # 5 minutes (production default)
10
+
11
+ echo "=== Timeout Handling Demo ==="
12
+ echo ""
13
+
14
+ # Cleanup previous demo data
15
+ echo "Cleaning up previous demo data..."
16
+ redis-cli del "${TASK_ID}:slow-agent:done" > /dev/null 2>&1 || true
17
+ redis-cli del "${TASK_ID}:fast-agent:done" > /dev/null 2>&1 || true
18
+ redis-cli del "${TASK_ID}:coordinator:error" > /dev/null 2>&1 || true
19
+ redis-cli del "${TASK_ID}:coordinator:status" > /dev/null 2>&1 || true
20
+
21
+ echo "--- Scenario 1: Timeout Failure (Agent Too Slow) ---"
22
+ echo ""
23
+
24
+ # Simulate slow agent that exceeds timeout (runs in background)
25
+ (
26
+ echo "[Slow Agent] Starting work..."
27
+ sleep 10 # Takes 10s but timeout is 5s
28
+
29
+ RESULT='{"agent":"slow-agent","confidence":0.85,"status":"complete"}'
30
+ redis-cli lpush "${TASK_ID}:slow-agent:done" "$RESULT" > /dev/null
31
+ echo "[Slow Agent] Work complete (but too late...)"
32
+ ) &
33
+
34
+ SLOW_AGENT_PID=$!
35
+
36
+ # Coordinator waits with short timeout
37
+ echo "[Coordinator] Waiting for slow-agent with ${SHORT_TIMEOUT}s timeout..."
38
+ RESULT=$(timeout $SHORT_TIMEOUT redis-cli --csv blpop "${TASK_ID}:slow-agent:done" 0 2>/dev/null || echo "")
39
+ EXIT_CODE=$?
40
+
41
+ if [ $EXIT_CODE -eq 124 ]; then
42
+ echo "[Coordinator] ❌ ERROR: Slow agent timeout after ${SHORT_TIMEOUT}s"
43
+
44
+ # Report error to coordinator error channel
45
+ ERROR_REPORT='{
46
+ "agent": "slow-agent",
47
+ "error": "timeout",
48
+ "timeout": '${SHORT_TIMEOUT}',
49
+ "timestamp": "'$(date -u +"%Y-%m-%dT%H:%M:%SZ")'"
50
+ }'
51
+
52
+ redis-cli lpush "${TASK_ID}:coordinator:error" "$ERROR_REPORT" > /dev/null
53
+ echo "[Coordinator] Error reported to ${TASK_ID}:coordinator:error"
54
+
55
+ # Kill slow agent background process
56
+ kill $SLOW_AGENT_PID 2>/dev/null || true
57
+
58
+ echo "[Coordinator] Decision: Terminate slow agent and retry with different agent"
59
+ else
60
+ echo "[Coordinator] ✓ Slow agent completed within timeout"
61
+ fi
62
+
63
+ echo ""
64
+ echo "--- Scenario 2: Timeout Success (Agent Fast Enough) ---"
65
+ echo ""
66
+
67
+ # Simulate fast agent that completes within timeout (runs in background)
68
+ (
69
+ echo "[Fast Agent] Starting work..."
70
+ sleep 2 # Takes 2s, well within 5s timeout
71
+
72
+ RESULT='{"agent":"fast-agent","confidence":0.90,"status":"complete"}'
73
+ redis-cli lpush "${TASK_ID}:fast-agent:done" "$RESULT" > /dev/null
74
+ echo "[Fast Agent] Work complete"
75
+ ) &
76
+
77
+ # Coordinator waits with short timeout
78
+ echo "[Coordinator] Waiting for fast-agent with ${SHORT_TIMEOUT}s timeout..."
79
+ RESULT=$(timeout $SHORT_TIMEOUT redis-cli --csv blpop "${TASK_ID}:fast-agent:done" 0 2>/dev/null || echo "")
80
+ EXIT_CODE=$?
81
+
82
+ if [ $EXIT_CODE -eq 124 ]; then
83
+ echo "[Coordinator] ❌ ERROR: Fast agent timeout after ${SHORT_TIMEOUT}s"
84
+ else
85
+ echo "[Coordinator] ✓ Fast agent completed within timeout"
86
+ echo "[Coordinator] Result: ${RESULT:0:80}..."
87
+ fi
88
+
89
+ wait
90
+
91
+ echo ""
92
+ echo "--- Scenario 3: Multi-Agent Timeout with Recovery ---"
93
+ echo ""
94
+
95
+ # Cleanup
96
+ redis-cli del "${TASK_ID}:agent-1:done" > /dev/null 2>&1 || true
97
+ redis-cli del "${TASK_ID}:agent-2:done" > /dev/null 2>&1 || true
98
+ redis-cli del "${TASK_ID}:agent-3:done" > /dev/null 2>&1 || true
99
+
100
+ # Simulate 3 agents with varying completion times
101
+ (
102
+ sleep 1
103
+ redis-cli lpush "${TASK_ID}:agent-1:done" '{"agent":"agent-1","confidence":0.85}' > /dev/null
104
+ echo "[Agent 1] Complete (1s)"
105
+ ) &
106
+
107
+ (
108
+ sleep 2
109
+ redis-cli lpush "${TASK_ID}:agent-2:done" '{"agent":"agent-2","confidence":0.90}' > /dev/null
110
+ echo "[Agent 2] Complete (2s)"
111
+ ) &
112
+
113
+ (
114
+ sleep 15 # Too slow - exceeds 5s timeout
115
+ redis-cli lpush "${TASK_ID}:agent-3:done" '{"agent":"agent-3","confidence":0.88}' > /dev/null
116
+ echo "[Agent 3] Complete (15s - too late)"
117
+ ) &
118
+
119
+ AGENT_3_PID=$!
120
+
121
+ echo "[Coordinator] Waiting for 3 agents with ${SHORT_TIMEOUT}s timeout each..."
122
+
123
+ # Wait for agent 1
124
+ RESULT_1=$(timeout $SHORT_TIMEOUT redis-cli --csv blpop "${TASK_ID}:agent-1:done" 0 2>/dev/null || echo "")
125
+ if [ -z "$RESULT_1" ]; then
126
+ echo "[Coordinator] ❌ Agent 1 timeout"
127
+ AGENT_1_FAILED=1
128
+ else
129
+ echo "[Coordinator] ✓ Agent 1 complete"
130
+ AGENT_1_FAILED=0
131
+ fi
132
+
133
+ # Wait for agent 2
134
+ RESULT_2=$(timeout $SHORT_TIMEOUT redis-cli --csv blpop "${TASK_ID}:agent-2:done" 0 2>/dev/null || echo "")
135
+ if [ -z "$RESULT_2" ]; then
136
+ echo "[Coordinator] ❌ Agent 2 timeout"
137
+ AGENT_2_FAILED=1
138
+ else
139
+ echo "[Coordinator] ✓ Agent 2 complete"
140
+ AGENT_2_FAILED=0
141
+ fi
142
+
143
+ # Wait for agent 3
144
+ RESULT_3=$(timeout $SHORT_TIMEOUT redis-cli --csv blpop "${TASK_ID}:agent-3:done" 0 2>/dev/null || echo "")
145
+ if [ -z "$RESULT_3" ]; then
146
+ echo "[Coordinator] ❌ Agent 3 timeout"
147
+ AGENT_3_FAILED=1
148
+
149
+ # Kill agent 3 background process
150
+ kill $AGENT_3_PID 2>/dev/null || true
151
+ else
152
+ echo "[Coordinator] ✓ Agent 3 complete"
153
+ AGENT_3_FAILED=0
154
+ fi
155
+
156
+ # Calculate success rate
157
+ FAILED_COUNT=$((AGENT_1_FAILED + AGENT_2_FAILED + AGENT_3_FAILED))
158
+ SUCCESS_COUNT=$((3 - FAILED_COUNT))
159
+
160
+ echo ""
161
+ echo "[Coordinator] Results: $SUCCESS_COUNT/3 agents completed within timeout"
162
+
163
+ if [ $SUCCESS_COUNT -ge 2 ]; then
164
+ echo "[Coordinator] Decision: PROCEED with partial results (2/3 quorum met)"
165
+
166
+ STATUS='{"status":"partial_success","completed":'$SUCCESS_COUNT',"failed":'$FAILED_COUNT',"decision":"proceed"}'
167
+ redis-cli set "${TASK_ID}:coordinator:status" "$STATUS" > /dev/null
168
+ else
169
+ echo "[Coordinator] Decision: RETRY all agents (quorum not met)"
170
+
171
+ STATUS='{"status":"insufficient_quorum","completed":'$SUCCESS_COUNT',"failed":'$FAILED_COUNT',"decision":"retry"}'
172
+ redis-cli set "${TASK_ID}:coordinator:status" "$STATUS" > /dev/null
173
+ fi
174
+
175
+ wait
176
+
177
+ echo ""
178
+ echo "--- Scenario 4: Timeout Best Practices ---"
179
+ echo ""
180
+
181
+ echo "✓ Timeout Guidelines:"
182
+ echo " - Normal operations: 300s (5 minutes)"
183
+ echo " - Research tasks: 600s (10 minutes)"
184
+ echo " - Complex builds: 900s (15 minutes)"
185
+ echo " - Testing: 600s (10 minutes)"
186
+ echo ""
187
+
188
+ echo "✓ Timeout Handling Pattern:"
189
+ echo ' result=$(timeout 300 redis-cli --csv blpop "channel" 0 2>/dev/null || echo "")'
190
+ echo ' if [ $? -eq 124 ]; then'
191
+ echo ' echo "TIMEOUT"'
192
+ echo ' redis-cli lpush "coordinator:error" '"'"'{"error":"timeout"}'"'"
193
+ echo ' fi'
194
+ echo ""
195
+
196
+ echo "✓ Error Reporting:"
197
+ echo " - Always report timeout to coordinator:error channel"
198
+ echo " - Include agent ID, timeout duration, timestamp"
199
+ echo " - Coordinator decides: retry, skip, or escalate"
200
+ echo ""
201
+
202
+ echo "✓ Recovery Strategies:"
203
+ echo " - Single agent timeout: Retry once with extended timeout"
204
+ echo " - Multiple agent timeout: Check quorum (2/3 pass = proceed)"
205
+ echo " - Critical agent timeout: Escalate to main chat"
206
+ echo " - Repeated timeouts: Switch to different agent type"
207
+ echo ""
208
+
209
+ echo "=== Timeout Handling Demo Complete ==="
210
+ echo ""
211
+ echo "Key Takeaways:"
212
+ echo " 1. ALWAYS use timeout command with BLPOP"
213
+ echo " 2. Check exit code 124 for timeout detection"
214
+ echo " 3. Report timeouts to coordinator:error channel"
215
+ echo " 4. Implement recovery strategies (retry/skip/escalate)"
216
+ echo " 5. Use appropriate timeout values for task type"
217
+ echo " 6. Kill/cleanup timed-out background processes"
218
+ echo ""
219
+
220
+ # Cleanup
221
+ redis-cli del "${TASK_ID}:slow-agent:done" > /dev/null 2>&1 || true
222
+ redis-cli del "${TASK_ID}:fast-agent:done" > /dev/null 2>&1 || true
223
+ redis-cli del "${TASK_ID}:agent-1:done" > /dev/null 2>&1 || true
224
+ redis-cli del "${TASK_ID}:agent-2:done" > /dev/null 2>&1 || true
225
+ redis-cli del "${TASK_ID}:agent-3:done" > /dev/null 2>&1 || true
226
+ redis-cli del "${TASK_ID}:coordinator:error" > /dev/null 2>&1 || true
227
+ redis-cli del "${TASK_ID}:coordinator:status" > /dev/null 2>&1 || true
@@ -0,0 +1,239 @@
1
+ #!/bin/bash
2
+ # Waiting Mode + Coordinator Wake-Up Pattern
3
+ # Agents enter waiting mode, coordinator/peers wake them for iterations/fixes
4
+
5
+ set -euo pipefail
6
+
7
+ # Configuration
8
+ TASK_ID="auth-system"
9
+ ITERATION=1
10
+ MAX_ITERATIONS=10
11
+ CONSENSUS_THRESHOLD=0.90
12
+
13
+ echo "========================================="
14
+ echo "Waiting Mode + Coordinator Wake-Up Demo"
15
+ echo "========================================="
16
+ echo ""
17
+
18
+ # Simulate coordinator spawning agents in waiting mode
19
+ echo "Step 1: Coordinator spawns agents in waiting mode"
20
+ echo " Task: agent-coder, agent-reviewer, agent-tester, agent-security"
21
+ echo ""
22
+
23
+ # Agent Pattern: Enter waiting mode immediately after spawn
24
+ agent_enter_waiting_mode() {
25
+ local agent_id=$1
26
+ local context=$2
27
+
28
+ echo "[$agent_id] Entering waiting mode..."
29
+ redis-cli lpush "swarm:$TASK_ID:$agent_id:ready" "{
30
+ \"status\": \"waiting\",
31
+ \"context\": \"$context\",
32
+ \"timestamp\": $(date +%s)
33
+ }" > /dev/null
34
+
35
+ echo "[$agent_id] Blocked on swarm:$TASK_ID:$agent_id:wake (infinite timeout)"
36
+ echo "[$agent_id] Zero token cost while waiting..."
37
+ }
38
+
39
+ # Simulate 4 agents entering waiting mode
40
+ agent_enter_waiting_mode "agent-coder" "iteration-1"
41
+ agent_enter_waiting_mode "agent-reviewer" "iteration-1"
42
+ agent_enter_waiting_mode "agent-tester" "iteration-1"
43
+ agent_enter_waiting_mode "agent-security" "iteration-1"
44
+
45
+ echo ""
46
+ echo "========================================="
47
+ echo "CFN Loop Iteration 1: Wake agents"
48
+ echo "========================================="
49
+ echo ""
50
+
51
+ # Coordinator wakes agents for first iteration
52
+ wake_agent() {
53
+ local agent_id=$1
54
+ local iteration=$2
55
+ local task=$3
56
+
57
+ echo "[Coordinator] Waking $agent_id for iteration $iteration..."
58
+ redis-cli lpush "swarm:$TASK_ID:$agent_id:wake" "{
59
+ \"reason\": \"cfn_loop_iteration\",
60
+ \"iteration\": $iteration,
61
+ \"task\": \"$task\",
62
+ \"timestamp\": $(date +%s)
63
+ }" > /dev/null
64
+
65
+ echo "[Coordinator] Wake signal sent to $agent_id"
66
+ }
67
+
68
+ # Wake all agents for iteration 1
69
+ wake_agent "agent-coder" $ITERATION "Implement authentication logic"
70
+ wake_agent "agent-reviewer" $ITERATION "Review code quality"
71
+ wake_agent "agent-tester" $ITERATION "Write and run tests"
72
+ wake_agent "agent-security" $ITERATION "Security audit"
73
+
74
+ echo ""
75
+ echo "Agents process tasks..."
76
+ sleep 2
77
+
78
+ # Simulate agents reporting back
79
+ echo ""
80
+ echo "Agents report confidence and return to waiting mode:"
81
+ redis-cli lpush "swarm:$TASK_ID:agent-coder:result" '{"confidence":0.75,"iteration":1,"status":"needs_improvement"}' > /dev/null
82
+ echo " [agent-coder] Confidence: 0.75 (needs improvement)"
83
+
84
+ redis-cli lpush "swarm:$TASK_ID:agent-reviewer:result" '{"confidence":0.80,"iteration":1,"issues":["Missing error handling"]}' > /dev/null
85
+ echo " [agent-reviewer] Confidence: 0.80 (issues found)"
86
+
87
+ redis-cli lpush "swarm:$TASK_ID:agent-tester:result" '{"confidence":0.72,"iteration":1,"coverage":0.65}' > /dev/null
88
+ echo " [agent-tester] Confidence: 0.72 (low coverage)"
89
+
90
+ redis-cli lpush "swarm:$TASK_ID:agent-security:result" '{"confidence":0.85,"iteration":1}' > /dev/null
91
+ echo " [agent-security] Confidence: 0.85"
92
+
93
+ # Calculate consensus
94
+ echo ""
95
+ echo "[Coordinator] Calculating consensus..."
96
+ CONSENSUS=$(echo "scale=2; (0.75 + 0.80 + 0.72 + 0.85) / 4" | bc)
97
+ echo "[Coordinator] Iteration $ITERATION Consensus: $CONSENSUS"
98
+ echo "[Coordinator] Threshold: $CONSENSUS_THRESHOLD"
99
+
100
+ if (( $(echo "$CONSENSUS < $CONSENSUS_THRESHOLD" | bc -l) )); then
101
+ echo "[Coordinator] ⚠️ Consensus below threshold - triggering iteration 2"
102
+
103
+ # Agents automatically return to waiting mode
104
+ echo ""
105
+ echo "Agents return to waiting mode (context preserved):"
106
+ agent_enter_waiting_mode "agent-coder" "iteration-2"
107
+ agent_enter_waiting_mode "agent-reviewer" "iteration-2"
108
+ agent_enter_waiting_mode "agent-tester" "iteration-2"
109
+ agent_enter_waiting_mode "agent-security" "iteration-2"
110
+
111
+ echo ""
112
+ echo "========================================="
113
+ echo "CFN Loop Iteration 2: Wake with feedback"
114
+ echo "========================================="
115
+ echo ""
116
+
117
+ # Wake agents with feedback from previous iteration
118
+ echo "[Coordinator] Waking agents with feedback from iteration 1..."
119
+
120
+ redis-cli lpush "swarm:$TASK_ID:agent-coder:wake" "{
121
+ \"reason\": \"cfn_loop_iteration\",
122
+ \"iteration\": 2,
123
+ \"previous_consensus\": $CONSENSUS,
124
+ \"feedback\": [\"Add error handling\", \"Improve test coverage\"],
125
+ \"context_from_iteration_1\": \"maintained\"
126
+ }" > /dev/null
127
+ echo " [agent-coder] Woke with feedback: Add error handling"
128
+
129
+ redis-cli lpush "swarm:$TASK_ID:agent-reviewer:wake" "{
130
+ \"reason\": \"cfn_loop_iteration\",
131
+ \"iteration\": 2,
132
+ \"previous_consensus\": $CONSENSUS,
133
+ \"feedback\": [\"Validate error handling fixes\"]
134
+ }" > /dev/null
135
+ echo " [agent-reviewer] Woke with feedback: Validate fixes"
136
+
137
+ redis-cli lpush "swarm:$TASK_ID:agent-tester:wake" "{
138
+ \"reason\": \"cfn_loop_iteration\",
139
+ \"iteration\": 2,
140
+ \"previous_consensus\": $CONSENSUS,
141
+ \"feedback\": [\"Increase coverage to 85%\"]
142
+ }" > /dev/null
143
+ echo " [agent-tester] Woke with feedback: Increase coverage"
144
+
145
+ redis-cli lpush "swarm:$TASK_ID:agent-security:wake" "{
146
+ \"reason\": \"cfn_loop_iteration\",
147
+ \"iteration\": 2,
148
+ \"previous_consensus\": $CONSENSUS
149
+ }" > /dev/null
150
+ echo " [agent-security] Woke for re-validation"
151
+
152
+ echo ""
153
+ echo "Agents process iteration 2 tasks (with context from iteration 1)..."
154
+ sleep 2
155
+
156
+ # Simulate improved results
157
+ echo ""
158
+ echo "Agents report improved confidence:"
159
+ redis-cli lpush "swarm:$TASK_ID:agent-coder:result" '{"confidence":0.90,"iteration":2}' > /dev/null
160
+ echo " [agent-coder] Confidence: 0.90 ✅"
161
+
162
+ redis-cli lpush "swarm:$TASK_ID:agent-reviewer:result" '{"confidence":0.92,"iteration":2}' > /dev/null
163
+ echo " [agent-reviewer] Confidence: 0.92 ✅"
164
+
165
+ redis-cli lpush "swarm:$TASK_ID:agent-tester:result" '{"confidence":0.88,"iteration":2,"coverage":0.87}' > /dev/null
166
+ echo " [agent-tester] Confidence: 0.88 ✅"
167
+
168
+ redis-cli lpush "swarm:$TASK_ID:agent-security:result" '{"confidence":0.94,"iteration":2}' > /dev/null
169
+ echo " [agent-security] Confidence: 0.94 ✅"
170
+
171
+ CONSENSUS=$(echo "scale=2; (0.90 + 0.92 + 0.88 + 0.94) / 4" | bc)
172
+ echo ""
173
+ echo "[Coordinator] Iteration 2 Consensus: $CONSENSUS"
174
+ echo "[Coordinator] ✅ Consensus >= threshold - PROCEED"
175
+ fi
176
+
177
+ echo ""
178
+ echo "========================================="
179
+ echo "Example 2: Incomplete Work Wake-Up"
180
+ echo "========================================="
181
+ echo ""
182
+
183
+ # Simulate incomplete work detection
184
+ echo "[Coordinator] Detected incomplete work in agent-coder..."
185
+ redis-cli lpush "swarm:$TASK_ID:agent-coder:wake" '{
186
+ "reason": "incomplete_work",
187
+ "issues": ["Missing test coverage", "Type errors in auth.ts"],
188
+ "priority": "high"
189
+ }' > /dev/null
190
+
191
+ echo "[Coordinator] Woke agent-coder to fix issues"
192
+ echo " Issues: Missing test coverage, Type errors"
193
+ echo ""
194
+
195
+ echo "========================================="
196
+ echo "Example 3: Agent-to-Agent Clarification"
197
+ echo "========================================="
198
+ echo ""
199
+
200
+ # Simulate peer-to-peer clarification
201
+ echo "[agent-reviewer] Has question for agent-coder..."
202
+ redis-cli lpush "swarm:$TASK_ID:agent-coder:wake" '{
203
+ "reason": "clarification",
204
+ "from_agent": "reviewer",
205
+ "question": "Should we use JWT or session cookies for auth?",
206
+ "urgent": false
207
+ }' > /dev/null
208
+
209
+ echo "[agent-reviewer] Sent clarification question to agent-coder"
210
+ echo " Question: JWT or session cookies?"
211
+ echo ""
212
+
213
+ echo "========================================="
214
+ echo "Benefits Summary"
215
+ echo "========================================="
216
+ echo ""
217
+ echo "✅ Zero token cost while agents wait (BLPOP blocks, no API calls)"
218
+ echo "✅ Context preserved across iterations (agents remember previous work)"
219
+ echo "✅ Instant wake-up (<100ms latency)"
220
+ echo "✅ Scalable (10+ agents can cycle indefinitely)"
221
+ echo "✅ CFN Loop native (agents maintain state across consensus cycles)"
222
+ echo ""
223
+
224
+ # Cleanup
225
+ echo "Cleaning up Redis keys..."
226
+ redis-cli del "swarm:$TASK_ID:agent-coder:ready" > /dev/null
227
+ redis-cli del "swarm:$TASK_ID:agent-coder:wake" > /dev/null
228
+ redis-cli del "swarm:$TASK_ID:agent-coder:result" > /dev/null
229
+ redis-cli del "swarm:$TASK_ID:agent-reviewer:ready" > /dev/null
230
+ redis-cli del "swarm:$TASK_ID:agent-reviewer:wake" > /dev/null
231
+ redis-cli del "swarm:$TASK_ID:agent-reviewer:result" > /dev/null
232
+ redis-cli del "swarm:$TASK_ID:agent-tester:ready" > /dev/null
233
+ redis-cli del "swarm:$TASK_ID:agent-tester:wake" > /dev/null
234
+ redis-cli del "swarm:$TASK_ID:agent-tester:result" > /dev/null
235
+ redis-cli del "swarm:$TASK_ID:agent-security:ready" > /dev/null
236
+ redis-cli del "swarm:$TASK_ID:agent-security:wake" > /dev/null
237
+ redis-cli del "swarm:$TASK_ID:agent-security:result" > /dev/null
238
+
239
+ echo "Demo complete!"