claude-flow-novice 2.9.0 → 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 (353) 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/agents/agent-loader.js +165 -146
  337. package/dist/agents/agent-loader.js.map +1 -1
  338. package/dist/cli/agent-executor.js +1 -1
  339. package/dist/cli/agent-executor.js.map +1 -1
  340. package/dist/cli/config-manager.js +109 -91
  341. package/dist/cli/config-manager.js.map +1 -1
  342. package/package.json +43 -7
  343. package/readme/README.md +15 -4
  344. package/scripts/init-project.js +84 -29
  345. package/scripts/run-marketing-tests.sh +43 -0
  346. package/scripts/update_paths.sh +47 -0
  347. package/tools/install-lizard.sh +37 -0
  348. package/tools/simple-complexity.sh +44 -0
  349. package/.claude/agents/cfn-dev-team/developers/coder.md +0 -270
  350. package/.claude/agents/cfn-dev-team/developers/state-architect.md +0 -127
  351. package/.claude/agents/cfn-dev-team/reviewers/code-quality-validator.md +0 -128
  352. /package/.claude/agents/cfn-dev-team/developers/{ui-designer.md → frontend/ui-designer.md} +0 -0
  353. /package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner-agent.md +0 -0
@@ -0,0 +1,320 @@
1
+ #!/bin/bash
2
+ #
3
+ # Test Script: Iteration Feedback Mechanism
4
+ #
5
+ # Validates that:
6
+ # 1. Validators can report feedback with confidence scores
7
+ # 2. Orchestrator collects and aggregates feedback
8
+ # 3. Feedback is passed to Loop 3 agents via wake signal
9
+ # 4. Feedback is stored in Redis with TTL
10
+ # 5. Agents can read feedback for iteration N
11
+
12
+ set -euo pipefail
13
+
14
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
15
+ TASK_ID="test-feedback-$(date +%s)"
16
+
17
+ echo "=========================================="
18
+ echo "Iteration Feedback Mechanism Test"
19
+ echo "=========================================="
20
+ echo "Task ID: $TASK_ID"
21
+ echo ""
22
+
23
+ # Cleanup function
24
+ cleanup() {
25
+ echo ""
26
+ echo "Cleaning up Redis keys..."
27
+ redis-cli --scan --pattern "swarm:${TASK_ID}:*" | xargs -r redis-cli del >/dev/null 2>&1 || true
28
+ echo "✅ Cleanup complete"
29
+ }
30
+
31
+ # Register cleanup on exit
32
+ trap cleanup EXIT
33
+
34
+ # Test 1: Validators report confidence with feedback
35
+ echo "=== Test 1: Validators Report Feedback ==="
36
+ echo ""
37
+
38
+ VALIDATOR_1="reviewer-1"
39
+ VALIDATOR_2="tester-1"
40
+ VALIDATOR_3="security-1"
41
+
42
+ # Validator 1: Low confidence with specific feedback
43
+ echo "[$VALIDATOR_1] Reporting confidence 0.65 with 2 feedback items..."
44
+ $SCRIPT_DIR/invoke-waiting-mode.sh report \
45
+ --task-id "$TASK_ID" \
46
+ --agent-id "$VALIDATOR_1" \
47
+ --confidence 0.65 \
48
+ --iteration 1 \
49
+ --feedback "Add error handling for null inputs,Improve documentation for API endpoints"
50
+
51
+ echo ""
52
+
53
+ # Validator 2: Medium confidence with 3 feedback items
54
+ echo "[$VALIDATOR_2] Reporting confidence 0.72 with 3 feedback items..."
55
+ $SCRIPT_DIR/invoke-waiting-mode.sh report \
56
+ --task-id "$TASK_ID" \
57
+ --agent-id "$VALIDATOR_2" \
58
+ --confidence 0.72 \
59
+ --iteration 1 \
60
+ --feedback "Increase test coverage to 80%,Add edge case tests for empty arrays,Fix flaky timeout test"
61
+
62
+ echo ""
63
+
64
+ # Validator 3: Low confidence with security feedback
65
+ echo "[$VALIDATOR_3] Reporting confidence 0.60 with 2 feedback items..."
66
+ $SCRIPT_DIR/invoke-waiting-mode.sh report \
67
+ --task-id "$TASK_ID" \
68
+ --agent-id "$VALIDATOR_3" \
69
+ --confidence 0.60 \
70
+ --iteration 1 \
71
+ --feedback "Fix SQL injection vulnerability in query builder,Add rate limiting to API endpoints"
72
+
73
+ echo ""
74
+
75
+ # Test 2: Collect feedback from validators
76
+ echo "=== Test 2: Orchestrator Collects Feedback ==="
77
+ echo ""
78
+
79
+ COLLECT_OUTPUT=$($SCRIPT_DIR/invoke-waiting-mode.sh collect \
80
+ --task-id "$TASK_ID" \
81
+ --agent-ids "$VALIDATOR_1,$VALIDATOR_2,$VALIDATOR_3")
82
+
83
+ echo "$COLLECT_OUTPUT"
84
+ echo ""
85
+
86
+ # Extract consensus and feedback
87
+ CONSENSUS=$(echo "$COLLECT_OUTPUT" | tail -1)
88
+ echo "Calculated Consensus: $CONSENSUS"
89
+
90
+ # Verify feedback aggregation
91
+ if echo "$COLLECT_OUTPUT" | grep -q "Aggregated Feedback"; then
92
+ echo "✅ Feedback aggregated successfully"
93
+ FEEDBACK_COUNT=$(echo "$COLLECT_OUTPUT" | grep -c '^\s*-' || echo "0")
94
+ echo " Total feedback items: $FEEDBACK_COUNT"
95
+ else
96
+ echo "❌ No aggregated feedback found"
97
+ exit 1
98
+ fi
99
+
100
+ echo ""
101
+
102
+ # Test 3: Wake Loop 3 agent with validator feedback
103
+ echo "=== Test 3: Wake Loop 3 Agent with Feedback ==="
104
+ echo ""
105
+
106
+ LOOP3_AGENT="backend-dev"
107
+
108
+ # Extract aggregated feedback for passing to Loop 3
109
+ LOOP2_FEEDBACK=$(echo "$COLLECT_OUTPUT" | sed -n '/Aggregated Feedback/,/Consensus:/p' | grep '^\s*-' | sed 's/^\s*-\s*//' | paste -sd ',' -)
110
+
111
+ # Build full feedback message
112
+ FULL_FEEDBACK="Improve consensus from $CONSENSUS to >=0.90,$LOOP2_FEEDBACK"
113
+
114
+ echo "Waking $LOOP3_AGENT with comprehensive feedback..."
115
+ echo "Feedback items: $(echo "$FULL_FEEDBACK" | tr ',' '\n' | wc -l)"
116
+ echo ""
117
+
118
+ $SCRIPT_DIR/invoke-waiting-mode.sh wake \
119
+ --task-id "$TASK_ID" \
120
+ --agent-id "$LOOP3_AGENT" \
121
+ --reason "cfn_loop_iteration" \
122
+ --iteration 2 \
123
+ --priority 30 \
124
+ --feedback "$FULL_FEEDBACK"
125
+
126
+ echo ""
127
+
128
+ # Test 4: Verify feedback stored in Redis
129
+ echo "=== Test 4: Verify Feedback Storage ==="
130
+ echo ""
131
+
132
+ FEEDBACK_KEY="swarm:${TASK_ID}:${LOOP3_AGENT}:feedback:iteration-2"
133
+ echo "Checking Redis key: $FEEDBACK_KEY"
134
+
135
+ STORED_FEEDBACK=$(redis-cli get "$FEEDBACK_KEY")
136
+
137
+ if [ -n "$STORED_FEEDBACK" ] && [ "$STORED_FEEDBACK" != "(nil)" ]; then
138
+ echo "✅ Feedback stored successfully"
139
+ echo ""
140
+ echo "Stored feedback (JSON array):"
141
+ echo "$STORED_FEEDBACK" | jq '.'
142
+ echo ""
143
+
144
+ # Verify TTL
145
+ TTL=$(redis-cli ttl "$FEEDBACK_KEY")
146
+ echo "TTL: $TTL seconds ($(echo "scale=1; $TTL / 3600" | bc) hours)"
147
+
148
+ if [ "$TTL" -gt 0 ] && [ "$TTL" -le 86400 ]; then
149
+ echo "✅ TTL is correct (≤24 hours)"
150
+ else
151
+ echo "❌ TTL is incorrect: $TTL"
152
+ exit 1
153
+ fi
154
+ else
155
+ echo "❌ Feedback not found in Redis"
156
+ exit 1
157
+ fi
158
+
159
+ echo ""
160
+
161
+ # Test 5: Agent reads feedback
162
+ echo "=== Test 5: Agent Reads Feedback ==="
163
+ echo ""
164
+
165
+ echo "Simulating agent reading feedback from Redis..."
166
+ AGENT_FEEDBACK=$(redis-cli get "$FEEDBACK_KEY")
167
+
168
+ if [ -n "$AGENT_FEEDBACK" ] && [ "$AGENT_FEEDBACK" != "(nil)" ]; then
169
+ echo "✅ Agent successfully read feedback"
170
+ echo ""
171
+ echo "Feedback items available to agent:"
172
+ echo "$AGENT_FEEDBACK" | jq -r '.[]' | nl -w2 -s'. '
173
+ echo ""
174
+
175
+ ITEM_COUNT=$(echo "$AGENT_FEEDBACK" | jq '. | length')
176
+ echo "Total actionable items: $ITEM_COUNT"
177
+ else
178
+ echo "❌ Agent failed to read feedback"
179
+ exit 1
180
+ fi
181
+
182
+ echo ""
183
+
184
+ # Test 6: Wake queue contains feedback
185
+ echo "=== Test 6: Verify Wake Queue Feedback ==="
186
+ echo ""
187
+
188
+ WAKE_QUEUE="swarm:${TASK_ID}:${LOOP3_AGENT}:wake-queue"
189
+ echo "Checking wake queue: $WAKE_QUEUE"
190
+
191
+ # Pop wake message from queue
192
+ WAKE_MSG=$(redis-cli ZPOPMIN "$WAKE_QUEUE" 1 | sed -n '1p')
193
+
194
+ if [ -n "$WAKE_MSG" ] && [ "$WAKE_MSG" != "(nil)" ]; then
195
+ echo "✅ Wake message found in queue"
196
+ echo ""
197
+ echo "Wake message contents:"
198
+ echo "$WAKE_MSG" | jq '.'
199
+ echo ""
200
+
201
+ # Verify feedback in wake message
202
+ WAKE_FEEDBACK=$(echo "$WAKE_MSG" | jq -r '.feedback[]' 2>/dev/null | head -3)
203
+ if [ -n "$WAKE_FEEDBACK" ]; then
204
+ echo "✅ Feedback included in wake message"
205
+ echo ""
206
+ echo "First 3 feedback items:"
207
+ echo "$WAKE_MSG" | jq -r '.feedback[]' | head -3 | nl -w2 -s'. '
208
+ else
209
+ echo "❌ No feedback in wake message"
210
+ exit 1
211
+ fi
212
+ else
213
+ echo "❌ No wake message in queue"
214
+ exit 1
215
+ fi
216
+
217
+ echo ""
218
+
219
+ # Test 7: Multiple iterations
220
+ echo "=== Test 7: Multiple Iteration Feedback ==="
221
+ echo ""
222
+
223
+ echo "Simulating iteration 3 feedback..."
224
+ ITERATION_3_FEEDBACK="Address remaining issues from iteration 2,Add integration tests,Update changelog"
225
+
226
+ $SCRIPT_DIR/invoke-waiting-mode.sh wake \
227
+ --task-id "$TASK_ID" \
228
+ --agent-id "$LOOP3_AGENT" \
229
+ --reason "cfn_loop_iteration" \
230
+ --iteration 3 \
231
+ --priority 30 \
232
+ --feedback "$ITERATION_3_FEEDBACK"
233
+
234
+ echo ""
235
+
236
+ # Verify both iteration feedbacks are stored separately
237
+ FEEDBACK_KEY_2="swarm:${TASK_ID}:${LOOP3_AGENT}:feedback:iteration-2"
238
+ FEEDBACK_KEY_3="swarm:${TASK_ID}:${LOOP3_AGENT}:feedback:iteration-3"
239
+
240
+ FEEDBACK_2=$(redis-cli get "$FEEDBACK_KEY_2")
241
+ FEEDBACK_3=$(redis-cli get "$FEEDBACK_KEY_3")
242
+
243
+ if [ -n "$FEEDBACK_2" ] && [ "$FEEDBACK_2" != "(nil)" ]; then
244
+ echo "✅ Iteration 2 feedback persists"
245
+ echo " Items: $(echo "$FEEDBACK_2" | jq '. | length')"
246
+ fi
247
+
248
+ if [ -n "$FEEDBACK_3" ] && [ "$FEEDBACK_3" != "(nil)" ]; then
249
+ echo "✅ Iteration 3 feedback stored"
250
+ echo " Items: $(echo "$FEEDBACK_3" | jq '. | length')"
251
+ fi
252
+
253
+ echo ""
254
+
255
+ # Test 8: Edge cases
256
+ echo "=== Test 8: Edge Cases ==="
257
+ echo ""
258
+
259
+ # Empty feedback
260
+ echo "Testing wake with empty feedback..."
261
+ $SCRIPT_DIR/invoke-waiting-mode.sh wake \
262
+ --task-id "$TASK_ID" \
263
+ --agent-id "test-agent" \
264
+ --reason "test" \
265
+ --iteration 1 \
266
+ --priority 50 \
267
+ --feedback ""
268
+
269
+ EMPTY_FEEDBACK_KEY="swarm:${TASK_ID}:test-agent:feedback:iteration-1"
270
+ EMPTY_RESULT=$(redis-cli get "$EMPTY_FEEDBACK_KEY")
271
+
272
+ if [ -z "$EMPTY_RESULT" ] || [ "$EMPTY_RESULT" = "(nil)" ]; then
273
+ echo "✅ Empty feedback not stored (expected)"
274
+ else
275
+ echo "⚠️ Empty feedback stored: $EMPTY_RESULT"
276
+ fi
277
+
278
+ echo ""
279
+
280
+ # Iteration 0 (no feedback storage)
281
+ echo "Testing wake with iteration 0..."
282
+ $SCRIPT_DIR/invoke-waiting-mode.sh wake \
283
+ --task-id "$TASK_ID" \
284
+ --agent-id "test-agent-2" \
285
+ --reason "initial" \
286
+ --iteration 0 \
287
+ --priority 50 \
288
+ --feedback "This should not be stored"
289
+
290
+ ITER_0_KEY="swarm:${TASK_ID}:test-agent-2:feedback:iteration-0"
291
+ ITER_0_RESULT=$(redis-cli get "$ITER_0_KEY")
292
+
293
+ if [ -z "$ITER_0_RESULT" ] || [ "$ITER_0_RESULT" = "(nil)" ]; then
294
+ echo "✅ Iteration 0 feedback not stored (expected)"
295
+ else
296
+ echo "❌ Iteration 0 feedback should not be stored: '$ITER_0_RESULT'"
297
+ exit 1
298
+ fi
299
+
300
+ echo ""
301
+
302
+ # Summary
303
+ echo "=========================================="
304
+ echo "Test Summary"
305
+ echo "=========================================="
306
+ echo "✅ All tests passed!"
307
+ echo ""
308
+ echo "Validated:"
309
+ echo " 1. Validators can report feedback with confidence"
310
+ echo " 2. Orchestrator collects and aggregates feedback"
311
+ echo " 3. Feedback passed to Loop 3 agents via wake signal"
312
+ echo " 4. Feedback stored in Redis with 24-hour TTL"
313
+ echo " 5. Agents can read feedback for iteration N"
314
+ echo " 6. Wake queue contains feedback in message"
315
+ echo " 7. Multiple iterations maintain separate feedback"
316
+ echo " 8. Edge cases handled correctly"
317
+ echo ""
318
+ echo "Task ID: $TASK_ID"
319
+ echo "Feedback mechanism is fully operational!"
320
+ echo ""
@@ -0,0 +1,249 @@
1
+ #!/bin/bash
2
+
3
+ # Test Suite for orchestrate-cfn-loop.sh
4
+ # Tests dependency enforcement, BLPOP blocking, and agent completion protocol
5
+
6
+ set -e
7
+
8
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
+ ORCHESTRATOR="$SCRIPT_DIR/orchestrate-cfn-loop.sh"
10
+
11
+ # Colors for output
12
+ GREEN='\033[0;32m'
13
+ RED='\033[0;31m'
14
+ YELLOW='\033[1;33m'
15
+ NC='\033[0m' # No Color
16
+
17
+ # Test counters
18
+ TESTS_RUN=0
19
+ TESTS_PASSED=0
20
+ TESTS_FAILED=0
21
+
22
+ # Test helpers
23
+ function test_start() {
24
+ echo -e "${YELLOW}[TEST]${NC} $1"
25
+ TESTS_RUN=$((TESTS_RUN + 1))
26
+ }
27
+
28
+ function test_pass() {
29
+ echo -e "${GREEN} ✓ PASS${NC}"
30
+ TESTS_PASSED=$((TESTS_PASSED + 1))
31
+ }
32
+
33
+ function test_fail() {
34
+ echo -e "${RED} ✗ FAIL${NC} $1"
35
+ TESTS_FAILED=$((TESTS_FAILED + 1))
36
+ }
37
+
38
+ function cleanup_redis() {
39
+ local TASK_ID="$1"
40
+ redis-cli --scan --pattern "swarm:${TASK_ID}:*" | xargs -r redis-cli del > /dev/null 2>&1 || true
41
+ }
42
+
43
+ # ==============================================================================
44
+ # TEST 1: Orchestrator script exists and is executable
45
+ # ==============================================================================
46
+ test_start "Orchestrator script exists and is executable"
47
+
48
+ if [ -f "$ORCHESTRATOR" ] && [ -x "$ORCHESTRATOR" ]; then
49
+ test_pass
50
+ else
51
+ test_fail "Script not found or not executable: $ORCHESTRATOR"
52
+ fi
53
+
54
+ # ==============================================================================
55
+ # TEST 2: Redis connection available
56
+ # ==============================================================================
57
+ test_start "Redis connection available"
58
+
59
+ if redis-cli ping > /dev/null 2>&1; then
60
+ test_pass
61
+ else
62
+ test_fail "Redis not available. Start Redis server: redis-server"
63
+ exit 1
64
+ fi
65
+
66
+ # ==============================================================================
67
+ # TEST 3: Orchestrator script is a bash script
68
+ # ==============================================================================
69
+ test_start "Orchestrator script is a bash script"
70
+
71
+ # Check if orchestrator exists (validation will be added later)
72
+ if [ -f "$ORCHESTRATOR" ]; then
73
+ test_pass
74
+ else
75
+ test_fail "Orchestrator script not found"
76
+ fi
77
+
78
+ # ==============================================================================
79
+ # TEST 4: Agent completion protocol - Signal :done key
80
+ # ==============================================================================
81
+ test_start "Agent completion protocol - Signal :done key"
82
+
83
+ TASK_ID="test-completion-$(date +%s)"
84
+ AGENT_ID="test-agent-1"
85
+
86
+ cleanup_redis "$TASK_ID"
87
+
88
+ # Simulate agent completing work
89
+ redis-cli lpush "swarm:${TASK_ID}:${AGENT_ID}:done" "complete" > /dev/null
90
+
91
+ # Verify signal present
92
+ SIGNAL=$(redis-cli blpop "swarm:${TASK_ID}:${AGENT_ID}:done" 1 2>&1 | tail -n 1)
93
+ if [ "$SIGNAL" == "complete" ]; then
94
+ test_pass
95
+ else
96
+ test_fail "Signal not found in Redis"
97
+ fi
98
+
99
+ cleanup_redis "$TASK_ID"
100
+
101
+ # ==============================================================================
102
+ # TEST 5: BLPOP blocking behavior (timeout)
103
+ # ==============================================================================
104
+ test_start "BLPOP blocking behavior (timeout)"
105
+
106
+ TASK_ID="test-blocking-$(date +%s)"
107
+ AGENT_ID="nonexistent-agent"
108
+
109
+ cleanup_redis "$TASK_ID"
110
+
111
+ # BLPOP with 1 second timeout (should timeout since no agent signals)
112
+ START_TIME=$(date +%s)
113
+ redis-cli blpop "swarm:${TASK_ID}:${AGENT_ID}:done" 1 > /dev/null 2>&1
114
+ END_TIME=$(date +%s)
115
+ ELAPSED=$((END_TIME - START_TIME))
116
+
117
+ if [ "$ELAPSED" -ge 1 ] && [ "$ELAPSED" -le 2 ]; then
118
+ test_pass
119
+ else
120
+ test_fail "BLPOP timeout behavior incorrect (elapsed: ${ELAPSED}s, expected: 1-2s)"
121
+ fi
122
+
123
+ cleanup_redis "$TASK_ID"
124
+
125
+ # ==============================================================================
126
+ # TEST 6: Agent completion protocol - Report confidence
127
+ # ==============================================================================
128
+ test_start "Agent completion protocol - Report confidence"
129
+
130
+ TASK_ID="test-confidence-$(date +%s)"
131
+ AGENT_ID="test-agent-1"
132
+
133
+ cleanup_redis "$TASK_ID"
134
+
135
+ # Simulate agent reporting confidence
136
+ OUTPUT=$(./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh report \
137
+ --task-id "$TASK_ID" \
138
+ --agent-id "$AGENT_ID" \
139
+ --confidence 0.85 \
140
+ --iteration 1 2>&1)
141
+
142
+ # Check if report was successful
143
+ if echo "$OUTPUT" | grep -q "0.85" || redis-cli exists "swarm:${TASK_ID}:${AGENT_ID}:result" | grep -q "1"; then
144
+ test_pass
145
+ else
146
+ test_fail "Confidence not stored correctly"
147
+ fi
148
+
149
+ cleanup_redis "$TASK_ID"
150
+
151
+ # ==============================================================================
152
+ # TEST 7: Collect consensus from multiple agents
153
+ # ==============================================================================
154
+ test_start "Collect consensus from multiple agents"
155
+
156
+ TASK_ID="test-consensus-$(date +%s)"
157
+
158
+ cleanup_redis "$TASK_ID"
159
+
160
+ # Simulate 3 agents reporting confidence
161
+ ./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh report \
162
+ --task-id "$TASK_ID" \
163
+ --agent-id "agent-1" \
164
+ --confidence 0.85 \
165
+ --iteration 1 > /dev/null 2>&1
166
+
167
+ ./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh report \
168
+ --task-id "$TASK_ID" \
169
+ --agent-id "agent-2" \
170
+ --confidence 0.90 \
171
+ --iteration 1 > /dev/null 2>&1
172
+
173
+ ./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh report \
174
+ --task-id "$TASK_ID" \
175
+ --agent-id "agent-3" \
176
+ --confidence 0.78 \
177
+ --iteration 1 > /dev/null 2>&1
178
+
179
+ # Collect consensus
180
+ CONSENSUS=$(./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh collect \
181
+ --task-id "$TASK_ID" \
182
+ --agent-ids "agent-1,agent-2,agent-3" 2>&1)
183
+
184
+ # Check for .84 or 0.84 in output (average: (0.85 + 0.90 + 0.78) / 3 = 0.843)
185
+ if echo "$CONSENSUS" | grep -qE "(0\.84|\.84)"; then
186
+ test_pass
187
+ else
188
+ test_fail "Consensus calculation incorrect: $CONSENSUS"
189
+ fi
190
+
191
+ cleanup_redis "$TASK_ID"
192
+
193
+ # ==============================================================================
194
+ # TEST 8: Mode-specific thresholds documentation
195
+ # ==============================================================================
196
+ test_start "Mode-specific thresholds documentation"
197
+
198
+ # Check if CLAUDE.md has mode thresholds (primary documentation location)
199
+ if grep -q "MVP" /mnt/c/Users/masha/Documents/claude-flow-novice/CLAUDE.md 2>/dev/null && \
200
+ grep -q "Standard" /mnt/c/Users/masha/Documents/claude-flow-novice/CLAUDE.md 2>/dev/null; then
201
+ test_pass
202
+ else
203
+ test_fail "Mode-specific thresholds should be documented (reference: CLAUDE.md)"
204
+ fi
205
+
206
+ # ==============================================================================
207
+ # TEST 9: Deliverable verification (BUG #11 fix)
208
+ # ==============================================================================
209
+ test_start "Deliverable verification - prevents consensus on vapor"
210
+
211
+ TASK_ID="deliverable-test-$(date +%s)"
212
+
213
+ # Simulate Loop 3 completion with high confidence but NO files changed
214
+ redis-cli lpush "swarm:${TASK_ID}:coder-1:done" "complete" > /dev/null 2>&1
215
+ redis-cli lpush "swarm:${TASK_ID}:coder-1:result" "0.95" > /dev/null 2>&1
216
+
217
+ # Verify orchestrator checks git status and overrides confidence when no files exist
218
+ # The implementation should check: git status --short | grep -E "^(A|M|\?\?)" | wc -l
219
+ # If count == 0, override confidence to 0.0
220
+
221
+ # Check that deliverable verification logic exists in orchestrator
222
+ if grep -q "FILES_CHANGED.*git status.*short" /mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh && \
223
+ grep -q "no_deliverables\|DELIVERABLE.*FAILED" /mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh; then
224
+ test_pass
225
+ else
226
+ test_fail "Deliverable verification logic not found in orchestrator"
227
+ fi
228
+
229
+ cleanup_redis "$TASK_ID"
230
+
231
+ # ==============================================================================
232
+ # TEST SUMMARY
233
+ # ==============================================================================
234
+ echo ""
235
+ echo "========================================"
236
+ echo "TEST SUMMARY"
237
+ echo "========================================"
238
+ echo -e "Tests Run: ${TESTS_RUN}"
239
+ echo -e "Tests Passed: ${GREEN}${TESTS_PASSED}${NC}"
240
+ echo -e "Tests Failed: ${RED}${TESTS_FAILED}${NC}"
241
+ echo "========================================"
242
+
243
+ if [ "$TESTS_FAILED" -eq 0 ]; then
244
+ echo -e "${GREEN}✓ All tests passed${NC}"
245
+ exit 0
246
+ else
247
+ echo -e "${RED}✗ Some tests failed${NC}"
248
+ exit 1
249
+ fi