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,99 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # Security Utilities for CFN Loop Orchestration
5
+ # Provides input sanitization and validation functions
6
+ ##############################################################################
7
+
8
+ # Validate and sanitize input for agent IDs, task IDs, iteration numbers
9
+ # Allowed characters: alphanumeric, dash, underscore
10
+ # Maximum length: 64 characters
11
+ function sanitize_input() {
12
+ local input="$1"
13
+ local max_length="${2:-64}"
14
+ local pattern="^[a-zA-Z0-9_-]+$"
15
+
16
+ # Check if input is empty
17
+ if [ -z "$input" ]; then
18
+ echo "Error: Input cannot be empty" >&2
19
+ return 1
20
+ fi
21
+
22
+ # Check input length
23
+ if [ ${#input} -gt "$max_length" ]; then
24
+ echo "Error: Input exceeds maximum length of $max_length characters" >&2
25
+ return 1
26
+ fi
27
+
28
+ # Validate against allowed pattern
29
+ if [[ ! "$input" =~ $pattern ]]; then
30
+ echo "Error: Invalid characters in input. Only alphanumeric, dash, and underscore allowed" >&2
31
+ return 1
32
+ fi
33
+
34
+ # If all checks pass, echo the sanitized input
35
+ echo "$input"
36
+ }
37
+
38
+ # Validate context JSON (optional JSON structure validation)
39
+ function validate_json_context() {
40
+ local context="$1"
41
+
42
+ # If context is empty, return success
43
+ if [ -z "$context" ]; then
44
+ return 0
45
+ fi
46
+
47
+ # Use jq to validate JSON structure, silently discard output
48
+ if ! echo "$context" | jq -e . >/dev/null 2>&1; then
49
+ echo "Error: Invalid JSON context" >&2
50
+ return 1
51
+ fi
52
+
53
+ return 0
54
+ }
55
+
56
+ # Safe Redis key generator
57
+ function generate_safe_redis_key() {
58
+ local prefix="$1"
59
+ local task_id="$2"
60
+ local suffix="${3:-}"
61
+
62
+ # Sanitize all input components
63
+ local safe_prefix
64
+ local safe_task_id
65
+ local safe_suffix
66
+
67
+ safe_prefix=$(sanitize_input "$prefix" 32) || return 1
68
+ safe_task_id=$(sanitize_input "$task_id" 64) || return 1
69
+
70
+ # Suffix is optional, but if provided, must be sanitized
71
+ if [ -n "$suffix" ]; then
72
+ safe_suffix=$(sanitize_input "$suffix" 32) || return 1
73
+ echo "swarm:${safe_prefix}:${safe_task_id}:${safe_suffix}"
74
+ else
75
+ echo "swarm:${safe_prefix}:${safe_task_id}"
76
+ fi
77
+ }
78
+
79
+ # Validation function for agent lists
80
+ function validate_agent_list() {
81
+ local agents="$1"
82
+
83
+ # Check if empty
84
+ if [ -z "$agents" ]; then
85
+ echo "Error: Agent list cannot be empty" >&2
86
+ return 1
87
+ fi
88
+
89
+ # Split agents and validate each
90
+ IFS=',' read -ra AGENT_ARRAY <<< "$agents"
91
+ for agent in "${AGENT_ARRAY[@]}"; do
92
+ if ! sanitize_input "$agent" 64 >/dev/null; then
93
+ echo "Error: Invalid agent ID: $agent" >&2
94
+ return 1
95
+ fi
96
+ done
97
+
98
+ return 0
99
+ }
@@ -0,0 +1,281 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # CFN Loop Orchestration Test Suite
5
+ # Version: 1.0.0
6
+ #
7
+ # Comprehensive tests for modular CFN Loop Orchestration skill
8
+ ##############################################################################
9
+
10
+ set -euo pipefail
11
+
12
+ # Test configuration
13
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
14
+ HELPERS_DIR="$SCRIPT_DIR/helpers"
15
+ TEST_TASK_ID="test-cfn-$(date +%s)"
16
+ PASSED=0
17
+ FAILED=0
18
+
19
+ # Colors
20
+ RED='\033[0;31m'
21
+ GREEN='\033[0;32m'
22
+ YELLOW='\033[1;33m'
23
+ NC='\033[0m' # No Color
24
+
25
+ ##############################################################################
26
+ # Test Helper Functions
27
+ ##############################################################################
28
+
29
+ function test_passed() {
30
+ local test_name="$1"
31
+ echo -e "${GREEN}✓${NC} $test_name"
32
+ PASSED=$((PASSED + 1))
33
+ }
34
+
35
+ function test_failed() {
36
+ local test_name="$1"
37
+ local reason="$2"
38
+ echo -e "${RED}✗${NC} $test_name: $reason"
39
+ FAILED=$((FAILED + 1))
40
+ }
41
+
42
+ function cleanup_test() {
43
+ local task_id="$1"
44
+ # Clean up Redis keys for test
45
+ redis-cli --scan --pattern "swarm:${task_id}:*" | xargs -r redis-cli del > /dev/null 2>&1 || true
46
+ }
47
+
48
+ ##############################################################################
49
+ # Test Cases
50
+ ##############################################################################
51
+
52
+ echo "=============================================="
53
+ echo "CFN Loop Orchestration Test Suite"
54
+ echo "=============================================="
55
+ echo ""
56
+
57
+ # Test 1: Gate Check Helper - Pass
58
+ echo "Test 1: Gate Check - Pass Scenario"
59
+ cleanup_test "$TEST_TASK_ID"
60
+
61
+ # Simulate Loop 3 agents with high confidence
62
+ redis-cli lpush "swarm:${TEST_TASK_ID}:agent1:result" "0.85" > /dev/null
63
+ redis-cli lpush "swarm:${TEST_TASK_ID}:agent2:result" "0.90" > /dev/null
64
+ redis-cli lpush "swarm:${TEST_TASK_ID}:agent3:result" "0.88" > /dev/null
65
+
66
+ if "$HELPERS_DIR/gate-check.sh" \
67
+ --task-id "$TEST_TASK_ID" \
68
+ --agents "agent1,agent2,agent3" \
69
+ --threshold "0.75" \
70
+ --min-quorum "0.66" > /dev/null 2>&1; then
71
+ # Check that gate-passed signal was sent
72
+ if redis-cli --raw lrange "swarm:${TEST_TASK_ID}:gate-passed" 0 -1 | grep -q "1"; then
73
+ test_passed "Gate check PASS with signal broadcast"
74
+ else
75
+ test_failed "Gate check PASS" "Signal not broadcast to Loop 2"
76
+ fi
77
+ else
78
+ test_failed "Gate check PASS" "Should have passed with 0.87 avg confidence"
79
+ fi
80
+
81
+ cleanup_test "$TEST_TASK_ID"
82
+ echo ""
83
+
84
+ # Test 2: Gate Check Helper - Fail
85
+ echo "Test 2: Gate Check - Fail Scenario"
86
+ cleanup_test "$TEST_TASK_ID"
87
+
88
+ # Simulate Loop 3 agents with low confidence
89
+ redis-cli lpush "swarm:${TEST_TASK_ID}:agent1:result" "0.65" > /dev/null
90
+ redis-cli lpush "swarm:${TEST_TASK_ID}:agent2:result" "0.70" > /dev/null
91
+ redis-cli lpush "swarm:${TEST_TASK_ID}:agent3:result" "0.68" > /dev/null
92
+
93
+ if ! "$HELPERS_DIR/gate-check.sh" \
94
+ --task-id "$TEST_TASK_ID" \
95
+ --agents "agent1,agent2,agent3" \
96
+ --threshold "0.75" \
97
+ --min-quorum "0.66" > /dev/null 2>&1; then
98
+ test_passed "Gate check FAIL detection"
99
+ else
100
+ test_failed "Gate check FAIL" "Should have failed with 0.67 avg confidence"
101
+ fi
102
+
103
+ cleanup_test "$TEST_TASK_ID"
104
+ echo ""
105
+
106
+ # Test 3: Consensus Check Helper - Pass
107
+ echo "Test 3: Consensus Check - Pass Scenario"
108
+ cleanup_test "$TEST_TASK_ID"
109
+
110
+ # Simulate Loop 2 validators with high consensus
111
+ redis-cli lpush "swarm:${TEST_TASK_ID}:reviewer1:result" "0.92" > /dev/null
112
+ redis-cli lpush "swarm:${TEST_TASK_ID}:tester1:result" "0.95" > /dev/null
113
+ redis-cli lpush "swarm:${TEST_TASK_ID}:security1:result" "0.91" > /dev/null
114
+
115
+ if "$HELPERS_DIR/consensus.sh" \
116
+ --task-id "$TEST_TASK_ID" \
117
+ --agents "reviewer1,tester1,security1" \
118
+ --threshold "0.90" \
119
+ --min-quorum "0.66" > /dev/null 2>&1; then
120
+ test_passed "Consensus check PASS"
121
+ else
122
+ test_failed "Consensus check PASS" "Should have passed with 0.93 avg consensus"
123
+ fi
124
+
125
+ cleanup_test "$TEST_TASK_ID"
126
+ echo ""
127
+
128
+ # Test 4: Consensus Check Helper - Fail
129
+ echo "Test 4: Consensus Check - Fail Scenario"
130
+ cleanup_test "$TEST_TASK_ID"
131
+
132
+ # Simulate Loop 2 validators with low consensus
133
+ redis-cli lpush "swarm:${TEST_TASK_ID}:reviewer1:result" "0.82" > /dev/null
134
+ redis-cli lpush "swarm:${TEST_TASK_ID}:tester1:result" "0.85" > /dev/null
135
+ redis-cli lpush "swarm:${TEST_TASK_ID}:security1:result" "0.88" > /dev/null
136
+
137
+ if ! "$HELPERS_DIR/consensus.sh" \
138
+ --task-id "$TEST_TASK_ID" \
139
+ --agents "reviewer1,tester1,security1" \
140
+ --threshold "0.90" \
141
+ --min-quorum "0.66" > /dev/null 2>&1; then
142
+ test_passed "Consensus check FAIL detection"
143
+ else
144
+ test_failed "Consensus check FAIL" "Should have failed with 0.85 avg consensus"
145
+ fi
146
+
147
+ cleanup_test "$TEST_TASK_ID"
148
+ echo ""
149
+
150
+ # Test 5: Deliverable Verifier - File Exists
151
+ echo "Test 5: Deliverable Verifier - File Exists"
152
+
153
+ # Create test file
154
+ TEST_FILE="/tmp/test-deliverable-$$.txt"
155
+ echo "test content" > "$TEST_FILE"
156
+
157
+ if "$HELPERS_DIR/deliverable-verifier.sh" \
158
+ --expected-files "$TEST_FILE" \
159
+ --task-type "implement feature" > /dev/null 2>&1; then
160
+ test_passed "Deliverable verification - file exists"
161
+ else
162
+ test_failed "Deliverable verification" "Should have passed with existing file"
163
+ fi
164
+
165
+ # Cleanup
166
+ rm -f "$TEST_FILE"
167
+ echo ""
168
+
169
+ # Test 6: Deliverable Verifier - Missing File
170
+ echo "Test 6: Deliverable Verifier - Missing File"
171
+
172
+ # Reference non-existent file
173
+ TEST_FILE="/tmp/nonexistent-file-$$.txt"
174
+
175
+ if ! "$HELPERS_DIR/deliverable-verifier.sh" \
176
+ --expected-files "$TEST_FILE" \
177
+ --task-type "create component" > /dev/null 2>&1; then
178
+ test_passed "Deliverable verification - missing file detection"
179
+ else
180
+ test_failed "Deliverable verification" "Should have failed with missing file"
181
+ fi
182
+
183
+ echo ""
184
+
185
+ # Test 7: Timeout Calculator - Phase-Specific
186
+ echo "Test 7: Timeout Calculator - Phase-Specific"
187
+
188
+ PHASE1_TIMEOUT=$("$HELPERS_DIR/timeout-calculator.sh" --phase-id "phase-1")
189
+ PHASE2_TIMEOUT=$("$HELPERS_DIR/timeout-calculator.sh" --phase-id "phase-2")
190
+ UNKNOWN_TIMEOUT=$("$HELPERS_DIR/timeout-calculator.sh" --phase-id "unknown-phase")
191
+
192
+ if [ "$PHASE1_TIMEOUT" = "900" ] && [ "$PHASE2_TIMEOUT" = "3600" ] && [ "$UNKNOWN_TIMEOUT" = "3600" ]; then
193
+ test_passed "Timeout calculator - phase-specific values"
194
+ else
195
+ test_failed "Timeout calculator" "Expected 900, 3600, 3600 but got $PHASE1_TIMEOUT, $PHASE2_TIMEOUT, $UNKNOWN_TIMEOUT"
196
+ fi
197
+
198
+ echo ""
199
+
200
+ # Test 8: Iteration Manager - Wake Agents
201
+ echo "Test 8: Iteration Manager - Agent Wake"
202
+ cleanup_test "$TEST_TASK_ID"
203
+
204
+ # Simulate agents in waiting mode
205
+ redis-cli lpush "swarm:${TEST_TASK_ID}:agent1:wake" "" > /dev/null
206
+ redis-cli lpush "swarm:${TEST_TASK_ID}:agent2:wake" "" > /dev/null
207
+
208
+ # Store feedback
209
+ redis-cli set "swarm:${TEST_TASK_ID}:feedback:agent1" "Improve test coverage" > /dev/null
210
+ redis-cli set "swarm:${TEST_TASK_ID}:feedback:agent2" "Add error handling" > /dev/null
211
+
212
+ if "$HELPERS_DIR/iteration-manager.sh" \
213
+ --task-id "$TEST_TASK_ID" \
214
+ --iteration "2" \
215
+ --agents "agent1,agent2" \
216
+ --feedback-source "swarm:${TEST_TASK_ID}:feedback" > /dev/null 2>&1; then
217
+ test_passed "Iteration manager - agent wake"
218
+ else
219
+ test_failed "Iteration manager" "Failed to wake agents"
220
+ fi
221
+
222
+ cleanup_test "$TEST_TASK_ID"
223
+ echo ""
224
+
225
+ # Test 9: Helper Script Parameter Validation
226
+ echo "Test 9: Parameter Validation"
227
+
228
+ # Test gate-check.sh without required params
229
+ if ! "$HELPERS_DIR/gate-check.sh" > /dev/null 2>&1; then
230
+ test_passed "Parameter validation - gate-check.sh"
231
+ else
232
+ test_failed "Parameter validation" "gate-check.sh should fail without params"
233
+ fi
234
+
235
+ # Test consensus.sh without required params
236
+ if ! "$HELPERS_DIR/consensus.sh" > /dev/null 2>&1; then
237
+ test_passed "Parameter validation - consensus.sh"
238
+ else
239
+ test_failed "Parameter validation" "consensus.sh should fail without params"
240
+ fi
241
+
242
+ echo ""
243
+
244
+ # Test 10: SKILL.md Metadata Validation
245
+ echo "Test 10: SKILL.md Metadata Validation"
246
+
247
+ if [ -f "$SCRIPT_DIR/SKILL.md" ]; then
248
+ # Check for required metadata fields
249
+ if grep -q "Skill ID:" "$SCRIPT_DIR/SKILL.md" && \
250
+ grep -q "Version:" "$SCRIPT_DIR/SKILL.md" && \
251
+ grep -q "Dependencies:" "$SCRIPT_DIR/SKILL.md" && \
252
+ grep -q "Purpose" "$SCRIPT_DIR/SKILL.md"; then
253
+ test_passed "SKILL.md metadata completeness"
254
+ else
255
+ test_failed "SKILL.md metadata" "Missing required fields"
256
+ fi
257
+ else
258
+ test_failed "SKILL.md" "File not found"
259
+ fi
260
+
261
+ echo ""
262
+
263
+ ##############################################################################
264
+ # Test Summary
265
+ ##############################################################################
266
+
267
+ echo "=============================================="
268
+ echo "Test Summary"
269
+ echo "=============================================="
270
+ echo -e "${GREEN}Passed:${NC} $PASSED"
271
+ echo -e "${RED}Failed:${NC} $FAILED"
272
+ echo "Total: $((PASSED + FAILED))"
273
+ echo "=============================================="
274
+
275
+ if [ $FAILED -eq 0 ]; then
276
+ echo -e "${GREEN}All tests passed!${NC}"
277
+ exit 0
278
+ else
279
+ echo -e "${RED}Some tests failed${NC}"
280
+ exit 1
281
+ fi
@@ -0,0 +1,188 @@
1
+ #!/bin/bash
2
+ # Edge Case Test Suite for CFN Loop Orchestration
3
+
4
+ set -e
5
+
6
+ # Results tracking
7
+ TOTAL_TESTS=0
8
+ PASSED_TESTS=0
9
+ OUTPUT_FILE="/tmp/edge-case-test-results.md"
10
+
11
+ # Utility function
12
+ log_test() {
13
+ local test_name="$1"
14
+ local result="$2"
15
+ local reason="${3:-No details}"
16
+
17
+ TOTAL_TESTS=$((TOTAL_TESTS + 1))
18
+
19
+ if [[ "$result" == "PASS" ]]; then
20
+ PASSED_TESTS=$((PASSED_TESTS + 1))
21
+ echo "- [x] $test_name" >> "$OUTPUT_FILE"
22
+ else
23
+ echo "- [ ] $test_name (FAILED)" >> "$OUTPUT_FILE"
24
+ echo " - Reason: $reason" >> "$OUTPUT_FILE"
25
+ fi
26
+ }
27
+
28
+ # Prepare results file
29
+ echo "# CFN Loop Edge Case Test Suite" > "$OUTPUT_FILE"
30
+ echo "## Test Execution: $(date)" >> "$OUTPUT_FILE"
31
+ echo "---" >> "$OUTPUT_FILE"
32
+
33
+ # Test context injection
34
+ test_context_injection() {
35
+ # Test empty context
36
+ if echo '{}' | jq empty >/dev/null 2>&1; then
37
+ log_test "Empty Context" "PASS"
38
+ else
39
+ log_test "Empty Context" "FAIL" "JSON parsing failed"
40
+ fi
41
+
42
+ # Test large context
43
+ local large_context=$(python3 -c "
44
+ import json
45
+ print(json.dumps({
46
+ 'deliverables': [f'file_{i}' for i in range(1000)],
47
+ 'description': 'A' * 10000
48
+ }))
49
+ ")
50
+
51
+ if echo "$large_context" | jq empty >/dev/null 2>&1; then
52
+ log_test "Large Context" "PASS"
53
+ else
54
+ log_test "Large Context" "FAIL" "Large JSON parsing failed"
55
+ fi
56
+
57
+ # Test Unicode context
58
+ local unicode_context='{"key": "こんにちは世界"}'
59
+ if echo "$unicode_context" | jq empty >/dev/null 2>&1; then
60
+ log_test "Unicode Context" "PASS"
61
+ else
62
+ log_test "Unicode Context" "FAIL" "Unicode JSON parsing failed"
63
+ fi
64
+
65
+ # Test malformed JSON
66
+ local malformed_cases=(
67
+ '{invalid json'
68
+ '{"key": "value"'
69
+ '{]'
70
+ '{"nested": {]}'
71
+ )
72
+
73
+ for case in "${malformed_cases[@]}"; do
74
+ if ! echo "$case" | jq empty >/dev/null 2>&1; then
75
+ log_test "Malformed JSON: $case" "PASS"
76
+ else
77
+ log_test "Malformed JSON: $case" "FAIL" "Should fail parsing"
78
+ fi
79
+ done
80
+ }
81
+
82
+ # Test confidence handling
83
+ test_confidence_handling() {
84
+ # Test valid confidence ranges
85
+ local confidence_cases=(0.0 0.5 0.75 1.0)
86
+ local invalid_cases=(-0.1 1.1)
87
+
88
+ for conf in "${confidence_cases[@]}"; do
89
+ if [[ $(echo "$conf >= 0.0 && $conf <= 1.0" | bc) -eq 1 ]]; then
90
+ log_test "Confidence Range: $conf" "PASS"
91
+ else
92
+ log_test "Confidence Range: $conf" "FAIL" "Out of valid range"
93
+ fi
94
+ done
95
+
96
+ for conf in "${invalid_cases[@]}"; do
97
+ if [[ $(echo "$conf >= 0.0 && $conf <= 1.0" | bc) -eq 0 ]]; then
98
+ log_test "Invalid Confidence: $conf" "PASS"
99
+ else
100
+ log_test "Invalid Confidence: $conf" "FAIL" "Should be rejected"
101
+ fi
102
+ done
103
+
104
+ # Test mixed confidence formats
105
+ local mixed_cases=(
106
+ '{"agent1": 0.85, "agent2": "high", "agent3": 90}'
107
+ '{"agent1": 95, "agent2": 0.95, "agent3": "excellent"}'
108
+ )
109
+
110
+ for case in "${mixed_cases[@]}"; do
111
+ if echo "$case" | jq . >/dev/null 2>&1; then
112
+ log_test "Mixed Confidence Format" "PASS"
113
+ else
114
+ log_test "Mixed Confidence Format" "FAIL" "Unable to parse mixed format"
115
+ fi
116
+ done
117
+ }
118
+
119
+ # Test agent spawning
120
+ test_agent_spawning() {
121
+ # Simulate agent list scenarios
122
+ local single_agent=("test-agent")
123
+ local duplicate_agents=("agent1" "agent1" "agent2")
124
+ local many_agents=("agent1" "agent2" "agent3" "agent4" "agent5")
125
+
126
+ if [[ "${#single_agent[@]}" -eq 1 ]]; then
127
+ log_test "Single Agent Spawn" "PASS"
128
+ else
129
+ log_test "Single Agent Spawn" "FAIL" "Incorrect agent count"
130
+ fi
131
+
132
+ local unique_agents=($(echo "${duplicate_agents[@]}" | tr ' ' '\n' | sort -u))
133
+ if [[ "${#unique_agents[@]}" -lt "${#duplicate_agents[@]}" ]]; then
134
+ log_test "Duplicate Agents Detection" "PASS"
135
+ else
136
+ log_test "Duplicate Agents Detection" "FAIL" "Failed to detect duplicates"
137
+ fi
138
+
139
+ if [[ "${#many_agents[@]}" -ge 3 ]]; then
140
+ log_test "Multiple Agent Spawn" "PASS"
141
+ else
142
+ log_test "Multiple Agent Spawn" "FAIL" "Insufficient agents"
143
+ fi
144
+ }
145
+
146
+ # Test Redis connectivity
147
+ test_redis_connectivity() {
148
+ if redis-cli ping | grep -q PONG; then
149
+ log_test "Redis Connection" "PASS"
150
+ else
151
+ log_test "Redis Connection" "FAIL" "Cannot connect to Redis"
152
+ fi
153
+
154
+ # Test Redis key operations
155
+ local test_key="cfn_loop_test_$(date +%s)"
156
+ if redis-cli SET "$test_key" "test_value" &&
157
+ redis-cli GET "$test_key" | grep -q "test_value" &&
158
+ redis-cli DEL "$test_key" >/dev/null; then
159
+ log_test "Redis Key Operations" "PASS"
160
+ else
161
+ log_test "Redis Key Operations" "FAIL" "Failed basic Redis operations"
162
+ fi
163
+ }
164
+
165
+ # Main test execution
166
+ main() {
167
+ test_context_injection
168
+ test_confidence_handling
169
+ test_agent_spawning
170
+ test_redis_connectivity
171
+
172
+ # Summarize results
173
+ echo "" >> "$OUTPUT_FILE"
174
+ echo "## Test Summary" >> "$OUTPUT_FILE"
175
+ echo "- Total Tests: $TOTAL_TESTS" >> "$OUTPUT_FILE"
176
+ echo "- Passed: $PASSED_TESTS" >> "$OUTPUT_FILE"
177
+ echo "- Failure Rate: $((TOTAL_TESTS - PASSED_TESTS))/$TOTAL_TESTS" >> "$OUTPUT_FILE"
178
+
179
+ local confidence=$(echo "scale=2; $PASSED_TESTS / $TOTAL_TESTS" | bc)
180
+ echo "CONFIDENCE_SCORE=$confidence" > /tmp/edge_case_confidence.txt
181
+
182
+ cat "$OUTPUT_FILE"
183
+ echo ""
184
+ cat /tmp/edge_case_confidence.txt
185
+ }
186
+
187
+ # Run tests
188
+ main