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,343 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # ACE Context Reflection Wrapper (Phase 3.1 - Anti-Pattern Detection)
5
+ # Generates cognitive reflections on context data with failure analysis
6
+ #
7
+ # Usage:
8
+ # ./invoke-context-reflect.sh --context '{"task": "..."}' [OPTIONS]
9
+ #
10
+ # Arguments:
11
+ # --context JSON context object (required for legacy mode)
12
+ # --confidence Sprint confidence score 0.0-1.0 (for anti-pattern mode)
13
+ # --iterations Number of iterations required (for anti-pattern mode)
14
+ # --feedback ITERATE feedback from Product Owner (for anti-pattern mode)
15
+ # --task-id Task/sprint identifier (required for anti-pattern mode)
16
+ # --swarm-id Swarm identifier (optional)
17
+ # --sprint-ref Sprint reference for tracking (optional)
18
+ # --domain Domain classification (optional)
19
+ # --final-decision Final Product Owner decision (PROCEED/ITERATE/ABORT)
20
+ # --final-feedback Final iteration feedback (solution extraction)
21
+ # --complexity Override complexity calculation (optional)
22
+ # --output Output file path (optional, default: stdout)
23
+ # --memory-path SQLite memory path (optional)
24
+ ##############################################################################
25
+
26
+ set -euo pipefail
27
+
28
+ # Default values
29
+ CONTEXT=""
30
+ CONFIDENCE=""
31
+ ITERATIONS=""
32
+ FEEDBACK=""
33
+ TASK_ID=""
34
+ SWARM_ID="default"
35
+ SPRINT_REF=""
36
+ DOMAIN=""
37
+ FINAL_DECISION=""
38
+ FINAL_FEEDBACK=""
39
+ COMPLEXITY=""
40
+ OUTPUT=""
41
+ MEMORY_PATH="${ACE_MEMORY_PATH:-./.artifacts/database/swarm-memory.db}"
42
+
43
+ # Parse arguments
44
+ while [[ $# -gt 0 ]]; do
45
+ case $1 in
46
+ --context)
47
+ CONTEXT="$2"
48
+ shift 2
49
+ ;;
50
+ --confidence)
51
+ CONFIDENCE="$2"
52
+ shift 2
53
+ ;;
54
+ --iterations)
55
+ ITERATIONS="$2"
56
+ shift 2
57
+ ;;
58
+ --feedback)
59
+ FEEDBACK="$2"
60
+ shift 2
61
+ ;;
62
+ --task-id)
63
+ TASK_ID="$2"
64
+ shift 2
65
+ ;;
66
+ --swarm-id)
67
+ SWARM_ID="$2"
68
+ shift 2
69
+ ;;
70
+ --sprint-ref)
71
+ SPRINT_REF="$2"
72
+ shift 2
73
+ ;;
74
+ --domain)
75
+ DOMAIN="$2"
76
+ shift 2
77
+ ;;
78
+ --final-decision)
79
+ FINAL_DECISION="$2"
80
+ shift 2
81
+ ;;
82
+ --final-feedback)
83
+ FINAL_FEEDBACK="$2"
84
+ shift 2
85
+ ;;
86
+ --complexity)
87
+ COMPLEXITY="$2"
88
+ shift 2
89
+ ;;
90
+ --output)
91
+ OUTPUT="$2"
92
+ shift 2
93
+ ;;
94
+ --memory-path)
95
+ MEMORY_PATH="$2"
96
+ shift 2
97
+ ;;
98
+ *)
99
+ echo "Unknown option: $1"
100
+ exit 1
101
+ ;;
102
+ esac
103
+ done
104
+
105
+ # Get project root
106
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
107
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
108
+
109
+ # Extract failure reason from feedback
110
+ extract_failure_reason() {
111
+ local feedback="$1"
112
+
113
+ # Parse common failure patterns
114
+ if echo "$feedback" | grep -qi "missing error"; then
115
+ echo "Missing error handling"
116
+ elif echo "$feedback" | grep -qi "security"; then
117
+ echo "Security vulnerability detected"
118
+ elif echo "$feedback" | grep -qi "test.*fail"; then
119
+ echo "Test failures"
120
+ elif echo "$feedback" | grep -qi "performance"; then
121
+ echo "Performance issues"
122
+ elif echo "$feedback" | grep -qi "missing.*validation"; then
123
+ echo "Input validation missing"
124
+ elif echo "$feedback" | grep -qi "no.*deliverable"; then
125
+ echo "No deliverables created"
126
+ elif echo "$feedback" | grep -qi "coverage"; then
127
+ echo "Insufficient test coverage"
128
+ elif echo "$feedback" | grep -qi "documentation"; then
129
+ echo "Missing documentation"
130
+ else
131
+ # Extract first sentence or first 100 chars
132
+ echo "$feedback" | head -n 1 | cut -c 1-100
133
+ fi
134
+ }
135
+
136
+ # Extract solution from final feedback
137
+ extract_solution() {
138
+ local feedback="$1"
139
+
140
+ if echo "$feedback" | grep -qi "added.*error"; then
141
+ echo "Added comprehensive error handling"
142
+ elif echo "$feedback" | grep -qi "implemented.*security"; then
143
+ echo "Implemented security best practices"
144
+ elif echo "$feedback" | grep -qi "fixed.*test"; then
145
+ echo "Fixed test suite and increased coverage"
146
+ elif echo "$feedback" | grep -qi "optimized.*performance"; then
147
+ echo "Optimized performance bottlenecks"
148
+ else
149
+ # Return generic solution message
150
+ echo "Iterative improvements applied"
151
+ fi
152
+ }
153
+
154
+ # Generate tags from feedback
155
+ generate_tags() {
156
+ local feedback="$1"
157
+ local tags="[]"
158
+
159
+ # Build tags array
160
+ if echo "$feedback" | grep -qi "error"; then
161
+ tags=$(echo "$tags" | jq '. + ["error-handling"]')
162
+ fi
163
+ if echo "$feedback" | grep -qi "security"; then
164
+ tags=$(echo "$tags" | jq '. + ["security"]')
165
+ fi
166
+ if echo "$feedback" | grep -qi "test"; then
167
+ tags=$(echo "$tags" | jq '. + ["testing"]')
168
+ fi
169
+ if echo "$feedback" | grep -qi "performance"; then
170
+ tags=$(echo "$tags" | jq '. + ["performance"]')
171
+ fi
172
+ if echo "$feedback" | grep -qi "validation"; then
173
+ tags=$(echo "$tags" | jq '. + ["validation"]')
174
+ fi
175
+ if echo "$feedback" | grep -qi "coverage"; then
176
+ tags=$(echo "$tags" | jq '. + ["coverage"]')
177
+ fi
178
+ if echo "$feedback" | grep -qi "documentation"; then
179
+ tags=$(echo "$tags" | jq '. + ["documentation"]')
180
+ fi
181
+ if echo "$feedback" | grep -qi "deliverable"; then
182
+ tags=$(echo "$tags" | jq '. + ["deliverable-tracking"]')
183
+ fi
184
+
185
+ echo "$tags"
186
+ }
187
+
188
+ # Anti-Pattern Detection Mode
189
+ if [ -n "$CONFIDENCE" ] && [ -n "$ITERATIONS" ] && [ -n "$FEEDBACK" ] && [ -n "$TASK_ID" ]; then
190
+
191
+ # Determine lesson type and severity
192
+ LESSON_TYPE="strategy"
193
+ SEVERITY="info"
194
+
195
+ # Critical anti-pattern (confidence < 0.50)
196
+ if (( $(echo "$CONFIDENCE < 0.50" | bc -l) )); then
197
+ LESSON_TYPE="anti-pattern"
198
+ SEVERITY="critical"
199
+ # Warning (confidence < 0.70)
200
+ elif (( $(echo "$CONFIDENCE < 0.70" | bc -l) )); then
201
+ LESSON_TYPE="warning"
202
+ SEVERITY="warning"
203
+ # Low confidence success (0.70-0.75)
204
+ elif (( $(echo "$CONFIDENCE < 0.75" | bc -l) )); then
205
+ LESSON_TYPE="pattern"
206
+ SEVERITY="info"
207
+ fi
208
+
209
+ # Extract failure reason and solution
210
+ FAILURE_REASON=$(extract_failure_reason "$FEEDBACK")
211
+ SOLUTION=""
212
+ if [ -n "$FINAL_DECISION" ] && [ "$FINAL_DECISION" == "PROCEED" ] && [ -n "$FINAL_FEEDBACK" ]; then
213
+ SOLUTION=$(extract_solution "$FINAL_FEEDBACK")
214
+ fi
215
+
216
+ # Generate tags
217
+ TAGS=$(generate_tags "$FEEDBACK")
218
+ if [ -n "$DOMAIN" ]; then
219
+ TAGS=$(echo "$TAGS" | jq ". + [\"$DOMAIN\"]")
220
+ fi
221
+
222
+ # Build extracted lessons
223
+ LESSON_CONTENT=""
224
+ if [ "$LESSON_TYPE" == "anti-pattern" ]; then
225
+ LESSON_CONTENT="Avoid: $FAILURE_REASON (caused $ITERATIONS iterations, confidence $CONFIDENCE)"
226
+ elif [ "$LESSON_TYPE" == "warning" ]; then
227
+ LESSON_CONTENT="Caution: $FAILURE_REASON (required $ITERATIONS iterations)"
228
+ else
229
+ LESSON_CONTENT="Pattern observed: $FAILURE_REASON (confidence $CONFIDENCE after $ITERATIONS iterations)"
230
+ fi
231
+
232
+ # Add solution if available
233
+ EXTRACTED_LESSONS="{\"anti_pattern\": \"$LESSON_CONTENT\""
234
+ if [ -n "$SOLUTION" ]; then
235
+ EXTRACTED_LESSONS="$EXTRACTED_LESSONS, \"solution\": \"$SOLUTION\""
236
+ fi
237
+ EXTRACTED_LESSONS="$EXTRACTED_LESSONS}"
238
+
239
+ # Build metadata
240
+ METADATA="{\"tags\": $TAGS, \"severity\": \"$SEVERITY\""
241
+ if [ -n "$DOMAIN" ]; then
242
+ METADATA="$METADATA, \"domain\": \"$DOMAIN\""
243
+ fi
244
+ if [ -n "$SPRINT_REF" ]; then
245
+ METADATA="$METADATA, \"sprint_ref\": \"$SPRINT_REF\""
246
+ fi
247
+ METADATA="$METADATA, \"failure_reason\": \"$FAILURE_REASON\"}"
248
+
249
+ # Generate unique ID
250
+ REFLECTION_ID="ref-$(date +%s)-$(echo $RANDOM | md5sum | head -c 8)"
251
+
252
+ # Store in SQLite
253
+ sqlite3 "$MEMORY_PATH" <<EOF
254
+ INSERT INTO context_reflections (
255
+ id, reflection_type, task_id, swarm_id,
256
+ execution_trace, feedback_signals, extracted_lessons,
257
+ metadata, confidence, created_at
258
+ ) VALUES (
259
+ '$REFLECTION_ID',
260
+ '$LESSON_TYPE',
261
+ '$TASK_ID',
262
+ '$SWARM_ID',
263
+ json('{"iterations": $ITERATIONS, "final_confidence": $CONFIDENCE}'),
264
+ json('{"iterate_feedback": $(echo "$FEEDBACK" | jq -Rs .)}'),
265
+ json('$EXTRACTED_LESSONS'),
266
+ json('$METADATA'),
267
+ $CONFIDENCE,
268
+ datetime('now')
269
+ );
270
+ EOF
271
+
272
+ # Output result
273
+ RESULT="{
274
+ \"id\": \"$REFLECTION_ID\",
275
+ \"reflection_type\": \"$LESSON_TYPE\",
276
+ \"task_id\": \"$TASK_ID\",
277
+ \"severity\": \"$SEVERITY\",
278
+ \"confidence\": $CONFIDENCE,
279
+ \"iterations\": $ITERATIONS,
280
+ \"failure_reason\": \"$FAILURE_REASON\",
281
+ \"solution\": \"$SOLUTION\",
282
+ \"stored\": true
283
+ }"
284
+
285
+ if [ -n "$OUTPUT" ]; then
286
+ echo "$RESULT" > "$OUTPUT"
287
+ echo "Anti-pattern reflection saved to: $OUTPUT" >&2
288
+ else
289
+ echo "$RESULT"
290
+ fi
291
+
292
+ exit 0
293
+ fi
294
+
295
+ # Legacy Mode - Original ACE reflector
296
+ if [ -z "$CONTEXT" ]; then
297
+ echo "Error: Either --context (legacy mode) or --confidence + --iterations + --feedback + --task-id (anti-pattern mode) required"
298
+ echo ""
299
+ echo "Legacy Mode Usage:"
300
+ echo " $0 --context '{\"task\": \"...\"}' [OPTIONS]"
301
+ echo ""
302
+ echo "Anti-Pattern Mode Usage:"
303
+ echo " $0 --confidence 0.45 --iterations 3 --feedback \"Missing error handling\" --task-id \"sprint-001\" [OPTIONS]"
304
+ exit 1
305
+ fi
306
+
307
+ # Validate JSON
308
+ if ! echo "$CONTEXT" | jq . > /dev/null 2>&1; then
309
+ echo "Error: Invalid JSON context"
310
+ exit 1
311
+ fi
312
+
313
+ # Execute reflection using Node.js with inline code (original implementation)
314
+ if [ -n "$OUTPUT" ]; then
315
+ node --input-type=module --eval "
316
+ import ACEReflector from '${PROJECT_ROOT}/dist/ace/ace-reflector.js';
317
+
318
+ const context = JSON.parse(process.argv[1]);
319
+ const complexity = process.argv[2] ? parseFloat(process.argv[2]) : undefined;
320
+ const memoryPath = process.argv[3];
321
+
322
+ const reflector = new ACEReflector(memoryPath);
323
+ await reflector.initialize();
324
+
325
+ const reflection = await reflector.reflect(context, { complexity });
326
+ console.log(JSON.stringify(reflection, null, 2));
327
+ " "$CONTEXT" "$COMPLEXITY" "$MEMORY_PATH" > "$OUTPUT"
328
+ echo "Reflection saved to: $OUTPUT" >&2
329
+ else
330
+ node --input-type=module --eval "
331
+ import ACEReflector from '${PROJECT_ROOT}/dist/ace/ace-reflector.js';
332
+
333
+ const context = JSON.parse(process.argv[1]);
334
+ const complexity = process.argv[2] ? parseFloat(process.argv[2]) : undefined;
335
+ const memoryPath = process.argv[3];
336
+
337
+ const reflector = new ACEReflector(memoryPath);
338
+ await reflector.initialize();
339
+
340
+ const reflection = await reflector.reflect(context, { complexity });
341
+ console.log(JSON.stringify(reflection, null, 2));
342
+ " "$CONTEXT" "$COMPLEXITY" "$MEMORY_PATH"
343
+ fi
@@ -0,0 +1,227 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # ACE Context Statistics Wrapper
5
+ # Queries reflection database for statistics and analysis
6
+ #
7
+ # Usage:
8
+ # ./invoke-context-stats.sh --query <type> [OPTIONS]
9
+ #
10
+ # Arguments:
11
+ # --query Query type: reflections, insights, summary (required)
12
+ # --filter MongoDB-style filter JSON (optional)
13
+ # --limit Maximum results (default: 100)
14
+ # --memory-path SQLite memory path (optional)
15
+ ##############################################################################
16
+
17
+ set -euo pipefail
18
+
19
+ # Default values
20
+ QUERY=""
21
+ FILTER="{}"
22
+ LIMIT=100
23
+ MEMORY_PATH="${ACE_MEMORY_PATH:-./.artifacts/database/swarm-memory.db}"
24
+
25
+ # Parse arguments
26
+ while [[ $# -gt 0 ]]; do
27
+ case $1 in
28
+ --query)
29
+ QUERY="$2"
30
+ shift 2
31
+ ;;
32
+ --filter)
33
+ FILTER="$2"
34
+ shift 2
35
+ ;;
36
+ --limit)
37
+ LIMIT="$2"
38
+ shift 2
39
+ ;;
40
+ --memory-path)
41
+ MEMORY_PATH="$2"
42
+ shift 2
43
+ ;;
44
+ --show-indexes)
45
+ QUERY="indexes"
46
+ shift
47
+ ;;
48
+ *)
49
+ echo "Unknown option: $1"
50
+ exit 1
51
+ ;;
52
+ esac
53
+ done
54
+
55
+ # Validation
56
+ if [ -z "$QUERY" ]; then
57
+ echo "Error: --query is required"
58
+ echo "Usage: $0 --query <reflections|insights|summary> [OPTIONS]"
59
+ exit 1
60
+ fi
61
+
62
+ # Validate filter JSON
63
+ if ! echo "$FILTER" | jq . > /dev/null 2>&1; then
64
+ echo "Error: Invalid JSON filter"
65
+ exit 1
66
+ fi
67
+
68
+ # Get project root
69
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
70
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
71
+
72
+ # Create Node.js runner script
73
+ RUNNER_SCRIPT=$(mktemp --suffix=.mjs)
74
+ trap "rm -f $RUNNER_SCRIPT" EXIT
75
+
76
+ cat > "$RUNNER_SCRIPT" << EOF
77
+ import { SQLiteMemorySystem } from '${PROJECT_ROOT}/dist/memory/sqlite-memory-system.js';
78
+ import { AccessLevel } from '${PROJECT_ROOT}/dist/memory/memory-adapter.js';
79
+
80
+ const queryType = process.argv[2];
81
+ const filter = JSON.parse(process.argv[3]);
82
+ const limit = parseInt(process.argv[4]);
83
+ const memoryPath = process.argv[5];
84
+
85
+ const memorySystem = new SQLiteMemorySystem(memoryPath);
86
+ await memorySystem.initialize();
87
+
88
+ async function queryReflections() {
89
+ // Query all reflections matching filter
90
+ const db = memorySystem['db'];
91
+ if (!db) {
92
+ throw new Error('Database not initialized');
93
+ }
94
+
95
+ let sql = 'SELECT * FROM context_reflections';
96
+ const whereClauses = [];
97
+ const params = [];
98
+
99
+ // Apply filters
100
+ if (filter.complexity) {
101
+ if (filter.complexity['\$gt'] !== undefined) {
102
+ whereClauses.push('complexity > ?');
103
+ params.push(filter.complexity['\$gt']);
104
+ }
105
+ if (filter.complexity['\$lt'] !== undefined) {
106
+ whereClauses.push('complexity < ?');
107
+ params.push(filter.complexity['\$lt']);
108
+ }
109
+ }
110
+
111
+ if (filter.timestamp) {
112
+ if (filter.timestamp['\$gt'] !== undefined) {
113
+ whereClauses.push('timestamp > ?');
114
+ params.push(filter.timestamp['\$gt']);
115
+ }
116
+ }
117
+
118
+ if (whereClauses.length > 0) {
119
+ sql += ' WHERE ' + whereClauses.join(' AND ');
120
+ }
121
+
122
+ sql += ' ORDER BY timestamp DESC LIMIT ?';
123
+ params.push(limit);
124
+
125
+ const rows = db.prepare(sql).all(...params);
126
+
127
+ return rows.map(row => ({
128
+ id: row.id,
129
+ timestamp: row.timestamp,
130
+ complexity: row.complexity,
131
+ context: JSON.parse(row.context),
132
+ insights: JSON.parse(row.insights)
133
+ }));
134
+ }
135
+
136
+ async function queryInsights() {
137
+ const reflections = await queryReflections();
138
+ const allInsights = reflections.flatMap(r => r.insights);
139
+
140
+ // Count insight frequency
141
+ const insightCounts = {};
142
+ allInsights.forEach(insight => {
143
+ insightCounts[insight] = (insightCounts[insight] || 0) + 1;
144
+ });
145
+
146
+ return Object.entries(insightCounts)
147
+ .map(([insight, count]) => ({ insight, count }))
148
+ .sort((a, b) => b.count - a.count);
149
+ }
150
+
151
+ async function querySummary() {
152
+ const reflections = await queryReflections();
153
+
154
+ const complexities = reflections.map(r => r.complexity);
155
+ const avgComplexity = complexities.reduce((a, b) => a + b, 0) / complexities.length;
156
+ const maxComplexity = Math.max(...complexities);
157
+ const minComplexity = Math.min(...complexities);
158
+
159
+ return {
160
+ totalReflections: reflections.length,
161
+ avgComplexity: avgComplexity || 0,
162
+ maxComplexity: maxComplexity || 0,
163
+ minComplexity: minComplexity || 0,
164
+ timeRange: {
165
+ earliest: Math.min(...reflections.map(r => r.timestamp)),
166
+ latest: Math.max(...reflections.map(r => r.timestamp))
167
+ }
168
+ };
169
+ }
170
+
171
+ async function queryIndexes() {
172
+ const db = memorySystem['db'];
173
+ if (!db) {
174
+ throw new Error('Database not initialized');
175
+ }
176
+
177
+ // Get all indexes on context_reflections table
178
+ const indexes = await db.all(
179
+ "SELECT name, sql FROM sqlite_master WHERE type='index' AND tbl_name='context_reflections' AND name NOT LIKE 'sqlite_%'"
180
+ );
181
+
182
+ // Get index usage stats from last query (if available)
183
+ const totalIndexes = indexes.length;
184
+
185
+ return {
186
+ totalIndexes,
187
+ indexes: indexes.map(idx => ({
188
+ name: idx.name,
189
+ definition: idx.sql || 'auto-index'
190
+ })),
191
+ status: totalIndexes >= 6 ? 'optimized' : 'partial',
192
+ expectedIndexes: [
193
+ 'idx_reflections_tags',
194
+ 'idx_reflections_domain',
195
+ 'idx_reflections_confidence',
196
+ 'idx_reflections_created_at',
197
+ 'idx_reflections_domain_conf_date',
198
+ 'idx_reflections_conf_date'
199
+ ]
200
+ };
201
+ }
202
+
203
+ let result;
204
+
205
+ switch (queryType) {
206
+ case 'reflections':
207
+ result = await queryReflections();
208
+ break;
209
+ case 'insights':
210
+ result = await queryInsights();
211
+ break;
212
+ case 'summary':
213
+ result = await querySummary();
214
+ break;
215
+ case 'indexes':
216
+ result = await queryIndexes();
217
+ break;
218
+ default:
219
+ throw new Error(`Unknown query type: ${queryType}`);
220
+ }
221
+
222
+ console.log(JSON.stringify(result, null, 2));
223
+ EOF
224
+
225
+ # Execute query
226
+ cd "$PROJECT_ROOT"
227
+ node "$RUNNER_SCRIPT" "$QUERY" "$FILTER" "$LIMIT" "$MEMORY_PATH"
@@ -0,0 +1,67 @@
1
+ #!/bin/bash
2
+ # Log merge action to context_merge_log
3
+ # Usage: ./log-merge.sh --merge-type new_bullet --bullet-id STRAT-007 --reflection-id refl-123
4
+
5
+ set -e
6
+
7
+ DB_PATH="${ACE_DB_PATH:-./.artifacts/database/swarm-memory.db}"
8
+ MERGE_TYPE=""
9
+ BULLET_ID=""
10
+ REFLECTION_ID=""
11
+ SIMILARITY_SCORE=""
12
+ CURATOR_REASONING=""
13
+ MERGED_FROM_IDS="[]"
14
+
15
+ while [[ $# -gt 0 ]]; do
16
+ case $1 in
17
+ --merge-type) MERGE_TYPE="$2"; shift 2 ;;
18
+ --bullet-id) BULLET_ID="$2"; shift 2 ;;
19
+ --reflection-id) REFLECTION_ID="$2"; shift 2 ;;
20
+ --similarity-score) SIMILARITY_SCORE="$2"; shift 2 ;;
21
+ --curator-reasoning) CURATOR_REASONING="$2"; shift 2 ;;
22
+ --merged-from-ids) MERGED_FROM_IDS="$2"; shift 2 ;;
23
+ *) echo "Unknown option: $1"; exit 1 ;;
24
+ esac
25
+ done
26
+
27
+ if [ -z "$MERGE_TYPE" ] || [ -z "$BULLET_ID" ]; then
28
+ echo "Error: --merge-type and --bullet-id required"
29
+ exit 1
30
+ fi
31
+
32
+ LOG_ID="merge-$(date +%s)-$(openssl rand -hex 3)"
33
+
34
+ sqlite3 "$DB_PATH" <<EOF
35
+ CREATE TABLE IF NOT EXISTS context_merge_log (
36
+ id TEXT PRIMARY KEY,
37
+ merge_type TEXT NOT NULL CHECK (merge_type IN ('new_bullet', 'increment_helpful', 'increment_harmful', 'merge_similar', 'archive', 'edit', 'version_bump')),
38
+ bullet_id TEXT NOT NULL,
39
+ reflection_id TEXT,
40
+ old_content TEXT,
41
+ new_content TEXT,
42
+ similarity_score REAL,
43
+ merged_from_bullet_ids TEXT,
44
+ curator_agent_id TEXT,
45
+ curator_reasoning TEXT,
46
+ acl_level INTEGER NOT NULL DEFAULT 5 CHECK (acl_level BETWEEN 1 AND 6),
47
+ swarm_id TEXT,
48
+ project_id TEXT,
49
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP
50
+ );
51
+
52
+ INSERT INTO context_merge_log (
53
+ id, merge_type, bullet_id, reflection_id, similarity_score,
54
+ merged_from_bullet_ids, curator_reasoning, acl_level
55
+ ) VALUES (
56
+ '${LOG_ID}',
57
+ '${MERGE_TYPE}',
58
+ '${BULLET_ID}',
59
+ $([ -n "$REFLECTION_ID" ] && echo "'$REFLECTION_ID'" || echo "NULL"),
60
+ $([ -n "$SIMILARITY_SCORE" ] && echo "${SIMILARITY_SCORE}" || echo "NULL"),
61
+ '${MERGED_FROM_IDS}',
62
+ '${CURATOR_REASONING}',
63
+ 5
64
+ );
65
+ EOF
66
+
67
+ echo "{\"status\":\"success\",\"log_id\":\"${LOG_ID}\",\"merge_type\":\"${MERGE_TYPE}\"}"