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,75 @@
1
+ # Priority Queue Wake-Up Mechanism
2
+
3
+ ## Design Overview
4
+
5
+ ### Motivation
6
+ Replace traditional LPUSH/BLPOP with ZADD/BZPOPMIN to enable priority-ordered wake-ups across distributed agent swarms.
7
+
8
+ ### Priority Scoring Algorithm
9
+
10
+ #### Score Calculation
11
+ ```
12
+ SCORE = TIMESTAMP + (PRIORITY * PRIORITY_MULTIPLIER)
13
+
14
+ Where:
15
+ - TIMESTAMP: Unix epoch seconds
16
+ - PRIORITY: Assigned agent/task priority level
17
+ - PRIORITY_MULTIPLIER: 1,000,000 (ensures timestamp remains primary sorting factor)
18
+ ```
19
+
20
+ ### Priority Levels
21
+
22
+ | Level | Range | Example Agents |
23
+ |----------|---------|-------------------------------------|
24
+ | Critical | 0-10 | Product Owner, System Coordinators |
25
+ | High | 11-30 | Loop 2 Validators |
26
+ | Medium | 31-60 | Loop 3 Implementers |
27
+ | Low | 61-100 | Background Tasks, Monitoring Agents |
28
+
29
+ ### Redis Command Translations
30
+
31
+ #### Old Method (FIFO)
32
+ ```bash
33
+ # LPUSH: Adds to end of list
34
+ redis-cli lpush "swarm:{task}:{agent}:wake" "$WAKE_MSG"
35
+ # BLPOP: Blocks and removes from start of list
36
+ redis-cli blpop "swarm:{task}:{agent}:wake" 0
37
+ ```
38
+
39
+ #### New Method (Priority Queue)
40
+ ```bash
41
+ # ZADD: Adds to sorted set with score
42
+ redis-cli zadd "swarm:{task}:wake-queue" $SCORE "$WAKE_MSG"
43
+ # BZPOPMIN: Blocks and removes lowest-score item
44
+ redis-cli bzpopmin "swarm:{task}:wake-queue" 0
45
+ ```
46
+
47
+ ### Configuration Flag
48
+ ```json
49
+ {
50
+ "features": {
51
+ "enablePriorityWake": {
52
+ "default": false,
53
+ "description": "Enable priority-based wake mechanism",
54
+ "version": "4.0.0"
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ ## Migration Strategy
61
+
62
+ 1. Dual Support Phase
63
+ - Maintain both LPUSH and ZADD mechanisms
64
+ - Gradual rollout with feature flag
65
+ - Monitor performance and compatibility
66
+
67
+ 2. Transition Steps
68
+ - Update Redis Coordination skill
69
+ - Modify waiting mode invocation scripts
70
+ - Add compatibility layer
71
+ - Implement feature flag checks
72
+
73
+ 3. Rollback Capabilities
74
+ - Preserve original LPUSH mechanism
75
+ - Configurable fallback options
@@ -0,0 +1,134 @@
1
+ import redis
2
+ import time
3
+ import json
4
+ from typing import Optional, Union, Dict
5
+
6
+ class PriorityWakeMechanism:
7
+ """
8
+ Implements priority-based wake-up mechanism using Redis Sorted Sets
9
+ Supports both legacy and new wake-up strategies
10
+ """
11
+
12
+ PRIORITY_MULTIPLIER = 1_000_000
13
+ PRIORITY_LEVELS = {
14
+ "critical": (0, 10),
15
+ "high": (11, 30),
16
+ "medium": (31, 60),
17
+ "low": (61, 100)
18
+ }
19
+
20
+ def __init__(self,
21
+ redis_client: redis.Redis,
22
+ config_path: str = '/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/redis-coordination/config.json'):
23
+ self.redis = redis_client
24
+ self.config = self._load_config(config_path)
25
+
26
+ def _load_config(self, config_path: str) -> Dict:
27
+ try:
28
+ with open(config_path, 'r') as f:
29
+ return json.load(f)
30
+ except FileNotFoundError:
31
+ return {"features": {"enablePriorityWake": {"default": False}}}
32
+
33
+ def calculate_score(self, priority_level: str) -> float:
34
+ """
35
+ Calculate wake-up score based on timestamp and priority
36
+
37
+ Args:
38
+ priority_level (str): Priority of the wake-up message
39
+
40
+ Returns:
41
+ float: Calculated score for sorted set insertion
42
+ """
43
+ now = time.time()
44
+ priority_range = self.PRIORITY_LEVELS.get(priority_level, (50, 70))
45
+ priority_midpoint = sum(priority_range) / 2
46
+
47
+ return now + (priority_midpoint * self.PRIORITY_MULTIPLIER)
48
+
49
+ def enqueue_wake_message(
50
+ self,
51
+ task_id: str,
52
+ agent_id: str,
53
+ wake_message: str,
54
+ priority_level: str = "medium"
55
+ ) -> bool:
56
+ """
57
+ Enqueue a wake message with priority
58
+
59
+ Args:
60
+ task_id (str): Unique task identifier
61
+ agent_id (str): Agent identifier
62
+ wake_message (str): Message to be processed
63
+ priority_level (str, optional): Priority of message. Defaults to "medium".
64
+
65
+ Returns:
66
+ bool: Whether message was successfully enqueued
67
+ """
68
+ if not self._is_priority_wake_enabled():
69
+ # Fallback to traditional LPUSH
70
+ self.redis.lpush(f"swarm:{task_id}:{agent_id}:wake", wake_message)
71
+ return True
72
+
73
+ score = self.calculate_score(priority_level)
74
+ key = f"swarm:{task_id}:wake-queue"
75
+
76
+ try:
77
+ self.redis.zadd(key, {wake_message: score})
78
+ return True
79
+ except Exception as e:
80
+ print(f"Wake message enqueue failed: {e}")
81
+ return False
82
+
83
+ def dequeue_wake_message(
84
+ self,
85
+ task_id: str,
86
+ timeout: int = 0
87
+ ) -> Optional[Union[str, tuple]]:
88
+ """
89
+ Dequeue highest priority wake message
90
+
91
+ Args:
92
+ task_id (str): Unique task identifier
93
+ timeout (int, optional): Blocking timeout. Defaults to 0 (indefinite wait).
94
+
95
+ Returns:
96
+ Optional message or None if no message available
97
+ """
98
+ if not self._is_priority_wake_enabled():
99
+ # Fallback to traditional BLPOP
100
+ return self.redis.blpop(f"swarm:{task_id}:*:wake", timeout)
101
+
102
+ key = f"swarm:{task_id}:wake-queue"
103
+
104
+ try:
105
+ result = self.redis.bzpopmin(key, timeout)
106
+ return result[1] if result else None
107
+ except Exception as e:
108
+ print(f"Wake message dequeue failed: {e}")
109
+ return None
110
+
111
+ def _is_priority_wake_enabled(self) -> bool:
112
+ """
113
+ Check if priority wake mechanism is enabled in configuration
114
+
115
+ Returns:
116
+ bool: Whether priority wake is enabled
117
+ """
118
+ return self.config.get('features', {}).get('enablePriorityWake', {}).get('default', False)
119
+
120
+ def main():
121
+ # Example usage
122
+ redis_client = redis.Redis(host='localhost', port=6379, db=0)
123
+ pwm = PriorityWakeMechanism(redis_client)
124
+
125
+ # Enqueue messages with different priorities
126
+ pwm.enqueue_wake_message("task123", "agent-1", "Critical update", "critical")
127
+ pwm.enqueue_wake_message("task123", "agent-2", "Standard update", "medium")
128
+
129
+ # Dequeue messages (will return critical message first)
130
+ message = pwm.dequeue_wake_message("task123")
131
+ print(f"Received message: {message}")
132
+
133
+ if __name__ == "__main__":
134
+ main()
@@ -0,0 +1,162 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # Query Dead Letter Queue (DLQ)
5
+ # Retrieves and displays failed agent signals from DLQ
6
+ #
7
+ # Usage:
8
+ # ./query-dlq.sh --task-id <id> [--agent-id <id>]
9
+ #
10
+ # Examples:
11
+ # # List all DLQ entries for a task
12
+ # ./query-dlq.sh --task-id redis-phase1-1760875302
13
+ #
14
+ # # List DLQ entries for specific agent
15
+ # ./query-dlq.sh --task-id redis-phase1-1760875302 --agent-id backend-dev-2
16
+ ##############################################################################
17
+
18
+ set -euo pipefail
19
+
20
+ # Configuration
21
+ TASK_ID=""
22
+ AGENT_ID=""
23
+
24
+ # Parse arguments
25
+ while [[ $# -gt 0 ]]; do
26
+ case $1 in
27
+ --task-id)
28
+ TASK_ID="$2"
29
+ shift 2
30
+ ;;
31
+ --agent-id)
32
+ AGENT_ID="$2"
33
+ shift 2
34
+ ;;
35
+ *)
36
+ echo "Unknown option: $1"
37
+ exit 1
38
+ ;;
39
+ esac
40
+ done
41
+
42
+ # Validation
43
+ if [ -z "$TASK_ID" ]; then
44
+ echo "Error: --task-id is required"
45
+ echo "Usage: $0 --task-id <id> [--agent-id <id>]"
46
+ exit 1
47
+ fi
48
+
49
+ ##############################################################################
50
+ # Query DLQ Entries
51
+ ##############################################################################
52
+
53
+ if [ -n "$AGENT_ID" ]; then
54
+ # Query specific agent's DLQ
55
+ DLQ_KEY="swarm:${TASK_ID}:dlq:${AGENT_ID}"
56
+
57
+ echo "=== DLQ Entries for Agent: $AGENT_ID ==="
58
+ echo "Task ID: $TASK_ID"
59
+ echo ""
60
+
61
+ # Check if DLQ exists
62
+ EXISTS=$(redis-cli EXISTS "$DLQ_KEY")
63
+
64
+ if [ "$EXISTS" = "0" ]; then
65
+ echo "No DLQ entries found for agent: $AGENT_ID"
66
+ exit 0
67
+ fi
68
+
69
+ # Get entry count
70
+ ENTRY_COUNT=$(redis-cli LLEN "$DLQ_KEY")
71
+
72
+ if [ "$ENTRY_COUNT" = "0" ]; then
73
+ echo "No DLQ entries found for agent: $AGENT_ID"
74
+ exit 0
75
+ fi
76
+
77
+ # Parse and display entries
78
+ for i in $(seq 0 $((ENTRY_COUNT - 1))); do
79
+ ENTRY=$(redis-cli LINDEX "$DLQ_KEY" "$i")
80
+
81
+ if [ -n "$ENTRY" ]; then
82
+ REASON=$(echo "$ENTRY" | jq -r '.reason')
83
+ RETRIES=$(echo "$ENTRY" | jq -r '.retry_count')
84
+ TIMESTAMP=$(echo "$ENTRY" | jq -r '.timestamp')
85
+ HUMAN_TIME=$(date -d "@$TIMESTAMP" -u +"%Y-%m-%d %H:%M:%S UTC" 2>/dev/null || date -r "$TIMESTAMP" -u +"%Y-%m-%d %H:%M:%S UTC")
86
+
87
+ echo "Entry #$((i + 1)):"
88
+ echo " Agent: $AGENT_ID"
89
+ echo " Reason: $REASON"
90
+ echo " Retries: $RETRIES"
91
+ echo " Timestamp: $HUMAN_TIME ($TIMESTAMP)"
92
+ echo ""
93
+ fi
94
+ done
95
+
96
+ else
97
+ # Query all agents' DLQs for this task
98
+ echo "=== DLQ Entries for Task: $TASK_ID ==="
99
+ echo ""
100
+
101
+ # Find all DLQ keys for this task
102
+ DLQ_PATTERN="swarm:${TASK_ID}:dlq:*"
103
+ DLQ_KEYS=$(redis-cli KEYS "$DLQ_PATTERN")
104
+
105
+ if [ -z "$DLQ_KEYS" ]; then
106
+ echo "No DLQ entries found for task: $TASK_ID"
107
+ exit 0
108
+ fi
109
+
110
+ # Process each DLQ key
111
+ echo "$DLQ_KEYS" | while IFS= read -r DLQ_KEY; do
112
+ if [ -n "$DLQ_KEY" ]; then
113
+ # Extract agent ID from key (format: swarm:task-id:dlq:agent-id)
114
+ AGENT=$(echo "$DLQ_KEY" | awk -F':' '{print $NF}')
115
+
116
+ # Get entry count for this agent
117
+ ENTRY_COUNT=$(redis-cli LLEN "$DLQ_KEY")
118
+
119
+ if [ "$ENTRY_COUNT" -gt 0 ]; then
120
+ for i in $(seq 0 $((ENTRY_COUNT - 1))); do
121
+ ENTRY=$(redis-cli LINDEX "$DLQ_KEY" "$i")
122
+
123
+ if [ -n "$ENTRY" ]; then
124
+ REASON=$(echo "$ENTRY" | jq -r '.reason')
125
+ RETRIES=$(echo "$ENTRY" | jq -r '.retry_count')
126
+ TIMESTAMP=$(echo "$ENTRY" | jq -r '.timestamp')
127
+ HUMAN_TIME=$(date -d "@$TIMESTAMP" -u +"%Y-%m-%d %H:%M:%S UTC" 2>/dev/null || date -r "$TIMESTAMP" -u +"%Y-%m-%d %H:%M:%S UTC")
128
+
129
+ echo "Agent: $AGENT (Entry #$((i + 1))/$ENTRY_COUNT)"
130
+ echo " Reason: $REASON"
131
+ echo " Retries: $RETRIES"
132
+ echo " Timestamp: $HUMAN_TIME ($TIMESTAMP)"
133
+ echo ""
134
+ fi
135
+ done
136
+ fi
137
+ fi
138
+ done
139
+ fi
140
+
141
+ # Display summary
142
+ echo "=== Summary ==="
143
+ if [ -n "$AGENT_ID" ]; then
144
+ DLQ_KEY="swarm:${TASK_ID}:dlq:${AGENT_ID}"
145
+ TOTAL=$(redis-cli LLEN "$DLQ_KEY")
146
+ echo "Total DLQ entries for $AGENT_ID: $TOTAL"
147
+ else
148
+ DLQ_PATTERN="swarm:${TASK_ID}:dlq:*"
149
+ TOTAL_KEYS=$(redis-cli KEYS "$DLQ_PATTERN" | wc -l)
150
+ echo "Total agents with DLQ entries: $TOTAL_KEYS"
151
+ fi
152
+
153
+ # Check TTL
154
+ if [ -n "$AGENT_ID" ]; then
155
+ DLQ_KEY="swarm:${TASK_ID}:dlq:${AGENT_ID}"
156
+ TTL=$(redis-cli TTL "$DLQ_KEY")
157
+ if [ "$TTL" -gt 0 ]; then
158
+ DAYS=$((TTL / 86400))
159
+ HOURS=$(((TTL % 86400) / 3600))
160
+ echo "TTL remaining: ${DAYS}d ${HOURS}h"
161
+ fi
162
+ fi
@@ -0,0 +1,103 @@
1
+ #!/bin/bash
2
+ ##############################################################################
3
+ # CFN Loop Log Query Tool
4
+ #
5
+ # Usage:
6
+ # ./query-logs.sh --task-id <id> [options]
7
+ #
8
+ # Parameters:
9
+ # --task-id Task/swarm identifier (required)
10
+ # --event-type Filter by event type (optional)
11
+ # --level Filter by log level: DEBUG, INFO, WARN, ERROR (optional)
12
+ # --loop Filter by loop: loop3, loop2, product_owner, coordinator (optional)
13
+ # --agent-id Filter by agent ID (optional)
14
+ # --iteration Filter by iteration number (optional)
15
+ # --limit Maximum number of results (default: 100)
16
+ # --format Output format: json, csv, table (default: json)
17
+ #
18
+ # Examples:
19
+ # # Get all logs for a task
20
+ # ./query-logs.sh --task-id "cfn-task-123"
21
+ #
22
+ # # Get errors only
23
+ # ./query-logs.sh --task-id "cfn-task-123" --level ERROR
24
+ #
25
+ # # Get Loop 3 agent spawns
26
+ # ./query-logs.sh --task-id "cfn-task-123" --event-type agent_spawn --loop loop3
27
+ #
28
+ # # Get latest 10 events in table format
29
+ # ./query-logs.sh --task-id "cfn-task-123" --limit 10 --format table
30
+ ##############################################################################
31
+
32
+ set -euo pipefail
33
+
34
+ # Configuration
35
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
36
+ DB_PATH="${DB_PATH:-${SCRIPT_DIR}/.claude/skills/cfn-cfn-.claude/skills/cfn-cfn-data/cfn-loop.db}"
37
+
38
+ # Parameters
39
+ TASK_ID=""
40
+ EVENT_TYPE=""
41
+ LEVEL=""
42
+ LOOP=""
43
+ AGENT_ID=""
44
+ ITERATION=""
45
+ LIMIT=100
46
+ FORMAT="json"
47
+
48
+ # Parse arguments
49
+ while [[ $# -gt 0 ]]; do
50
+ case $1 in
51
+ --task-id) TASK_ID="$2"; shift 2 ;;
52
+ --event-type) EVENT_TYPE="$2"; shift 2 ;;
53
+ --level) LEVEL="$2"; shift 2 ;;
54
+ --loop) LOOP="$2"; shift 2 ;;
55
+ --agent-id) AGENT_ID="$2"; shift 2 ;;
56
+ --iteration) ITERATION="$2"; shift 2 ;;
57
+ --limit) LIMIT="$2"; shift 2 ;;
58
+ --format) FORMAT="$2"; shift 2 ;;
59
+ *) echo "Unknown option: $1" >&2; exit 1 ;;
60
+ esac
61
+ done
62
+
63
+ # Validate required parameters
64
+ if [ -z "$TASK_ID" ]; then
65
+ echo "Error: --task-id is required" >&2
66
+ echo "Usage: $0 --task-id <id> [--event-type <type>] [--level <level>] [--limit <n>] [--format json|csv|table]" >&2
67
+ exit 1
68
+ fi
69
+
70
+ # Check if database exists
71
+ if [ ! -f "$DB_PATH" ]; then
72
+ echo "Error: Database not found at $DB_PATH" >&2
73
+ echo "No logs have been written yet." >&2
74
+ exit 1
75
+ fi
76
+
77
+ # Build query
78
+ QUERY="SELECT * FROM cfn_loop_logs WHERE task_id = '$TASK_ID'"
79
+
80
+ [ -n "$EVENT_TYPE" ] && QUERY="$QUERY AND event_type = '$EVENT_TYPE'"
81
+ [ -n "$LEVEL" ] && QUERY="$QUERY AND level = '$LEVEL'"
82
+ [ -n "$LOOP" ] && QUERY="$QUERY AND loop = '$LOOP'"
83
+ [ -n "$AGENT_ID" ] && QUERY="$QUERY AND agent_id = '$AGENT_ID'"
84
+ [ -n "$ITERATION" ] && QUERY="$QUERY AND iteration = $ITERATION"
85
+
86
+ QUERY="$QUERY ORDER BY timestamp DESC LIMIT $LIMIT"
87
+
88
+ # Execute query with selected format
89
+ case "$FORMAT" in
90
+ json)
91
+ sqlite3 -json "$DB_PATH" "$QUERY"
92
+ ;;
93
+ csv)
94
+ sqlite3 -csv "$DB_PATH" "$QUERY"
95
+ ;;
96
+ table)
97
+ sqlite3 -column -header "$DB_PATH" "$QUERY"
98
+ ;;
99
+ *)
100
+ echo "Error: Invalid format '$FORMAT'. Use: json, csv, or table" >&2
101
+ exit 1
102
+ ;;
103
+ esac