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,247 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # ACE System: Test Data Population Script
5
+ # Generates realistic sample reflections for testing context queries
6
+ #
7
+ # Usage:
8
+ # ./populate-test-data.sh [OPTIONS]
9
+ #
10
+ # Options:
11
+ # --db-path Path to SQLite database (default: .artifacts/database/swarm-memory.db)
12
+ # --count Number of reflections to generate (default: 10)
13
+ # --clean Drop existing reflections before inserting
14
+ ##############################################################################
15
+
16
+ set -euo pipefail
17
+
18
+ # Default values
19
+ DB_PATH="${ACE_DB_PATH:-./.artifacts/database/swarm-memory.db}"
20
+ COUNT=10
21
+ CLEAN=false
22
+
23
+ # Parse arguments
24
+ while [[ $# -gt 0 ]]; do
25
+ case $1 in
26
+ --db-path)
27
+ DB_PATH="$2"
28
+ shift 2
29
+ ;;
30
+ --count)
31
+ COUNT="$2"
32
+ shift 2
33
+ ;;
34
+ --clean)
35
+ CLEAN=true
36
+ shift
37
+ ;;
38
+ *)
39
+ echo "Unknown option: $1"
40
+ exit 1
41
+ ;;
42
+ esac
43
+ done
44
+
45
+ echo "=== ACE System: Populating Test Data ==="
46
+ echo "Database: $DB_PATH"
47
+ echo "Reflections to generate: $COUNT"
48
+
49
+ # Clean existing data if requested
50
+ if [[ "$CLEAN" == true ]]; then
51
+ echo "Cleaning existing reflections..."
52
+ sqlite3 "$DB_PATH" "DELETE FROM context_reflections;"
53
+ echo "✓ Existing data cleared"
54
+ fi
55
+
56
+ # Sample domains
57
+ DOMAINS=("frontend" "backend" "security" "devops" "database" "api" "testing")
58
+
59
+ # Sample keywords by domain
60
+ declare -A DOMAIN_KEYWORDS=(
61
+ ["frontend"]="react,typescript,ui,components,hooks,state-management,routing,error-boundary,forms,validation"
62
+ ["backend"]="nodejs,express,api,rest,graphql,authentication,authorization,middleware,error-handling,logging"
63
+ ["security"]="jwt,oauth,encryption,csrf,xss,sql-injection,rate-limiting,access-control,audit-logging"
64
+ ["devops"]="docker,kubernetes,ci-cd,github-actions,deployment,monitoring,logging,redis,nginx,load-balancing"
65
+ ["database"]="postgresql,sql,migrations,indexing,query-optimization,transactions,replication,backup"
66
+ ["api"]="rest,graphql,openapi,swagger,versioning,pagination,rate-limiting,caching,webhooks"
67
+ ["testing"]="jest,unit-tests,integration-tests,e2e,test-coverage,mocking,fixtures,ci-testing"
68
+ )
69
+
70
+ # Sample strategies by domain
71
+ declare -A DOMAIN_STRATEGIES=(
72
+ ["frontend"]='{"title":"Error Boundary Pattern","description":"Wrap components in ErrorBoundary to prevent full app crashes","confidence":0.92,"tags":["react","error-handling","resilience"]}'
73
+ ["backend"]='{"title":"JWT + Redis Session","description":"Use short-lived JWT with Redis for token revocation","confidence":0.95,"tags":["authentication","security","session"]}'
74
+ ["security"]='{"title":"Rate Limiting Middleware","description":"Implement rate limiting per IP and per user","confidence":0.88,"tags":["security","rate-limiting","ddos"]}'
75
+ ["devops"]='{"title":"Blue-Green Deployment","description":"Use blue-green strategy for zero-downtime deploys","confidence":0.90,"tags":["deployment","ci-cd","reliability"]}'
76
+ ["database"]='{"title":"Index Optimization","description":"Add covering indexes for common query patterns","confidence":0.93,"tags":["performance","sql","optimization"]}'
77
+ ["api"]='{"title":"API Versioning Strategy","description":"Use URL versioning (v1, v2) for backward compatibility","confidence":0.87,"tags":["api","versioning","compatibility"]}'
78
+ ["testing"]='{"title":"Test Pyramid Pattern","description":"More unit tests, fewer integration tests, minimal e2e","confidence":0.89,"tags":["testing","strategy","quality"]}'
79
+ )
80
+
81
+ # Sample anti-patterns by domain
82
+ declare -A DOMAIN_ANTIPATTERNS=(
83
+ ["frontend"]='{"title":"Missing Security Headers","description":"Always set CSP, X-Frame-Options, X-Content-Type-Options","severity":"critical","tags":["security","headers","vulnerability"]}'
84
+ ["backend"]='{"title":"Long-lived Access Tokens","description":"Avoid tokens that last >15 minutes without refresh","severity":"critical","tags":["security","jwt","session"]}'
85
+ ["security"]='{"title":"Unvalidated User Input","description":"Always validate and sanitize user input before processing","severity":"critical","tags":["security","validation","xss"]}'
86
+ ["devops"]='{"title":"Missing Health Checks","description":"All services need /health endpoint for monitoring","severity":"warning","tags":["monitoring","reliability","health-checks"]}'
87
+ ["database"]='{"title":"N+1 Query Problem","description":"Use JOIN or eager loading instead of multiple queries","severity":"warning","tags":["performance","sql","optimization"]}'
88
+ ["api"]='{"title":"Missing API Rate Limits","description":"Always implement rate limiting to prevent abuse","severity":"critical","tags":["security","rate-limiting","api"]}'
89
+ ["testing"]='{"title":"Testing Implementation Details","description":"Test behavior, not implementation. Avoid testing internals.","severity":"warning","tags":["testing","best-practices","maintainability"]}'
90
+ )
91
+
92
+ # Function to generate random ID
93
+ generate_id() {
94
+ echo "refl-$(date +%s)-$RANDOM"
95
+ }
96
+
97
+ # Function to get random element from array
98
+ random_element() {
99
+ local array_name=$1[@]
100
+ local array=("${!array_name}")
101
+ echo "${array[$RANDOM % ${#array[@]}]}"
102
+ }
103
+
104
+ # Function to generate reflection
105
+ generate_reflection() {
106
+ local index=$1
107
+ local domain=$(random_element DOMAINS)
108
+ local reflection_type
109
+ local confidence
110
+ local curator_status
111
+ local success_count
112
+ local total_count
113
+
114
+ # Determine reflection type (70% strategy, 20% anti-pattern, 10% edge-case)
115
+ local rand=$((RANDOM % 100))
116
+ if [[ $rand -lt 70 ]]; then
117
+ reflection_type="strategy"
118
+ confidence=$(awk -v min=0.75 -v max=0.98 'BEGIN{srand(); print min+rand()*(max-min)}')
119
+ curator_status="curated"
120
+ success_count=$((RANDOM % 20 + 5))
121
+ total_count=$((success_count + RANDOM % 5))
122
+ elif [[ $rand -lt 90 ]]; then
123
+ reflection_type="anti-pattern"
124
+ confidence=$(awk -v min=0.40 -v max=0.65 'BEGIN{srand(); print min+rand()*(max-min)}')
125
+ curator_status="curated"
126
+ success_count=0
127
+ total_count=$((RANDOM % 10 + 1))
128
+ else
129
+ reflection_type="edge-case"
130
+ confidence=$(awk -v min=0.70 -v max=0.90 'BEGIN{srand(); print min+rand()*(max-min)}')
131
+ curator_status="curated"
132
+ success_count=$((RANDOM % 5))
133
+ total_count=$((success_count + RANDOM % 3))
134
+ fi
135
+
136
+ # Generate IDs
137
+ local id=$(generate_id)
138
+ local task_id="task-${domain}-$(date +%s)-$index"
139
+ local agent_id="agent-${domain}-dev-$((RANDOM % 5 + 1))"
140
+ local swarm_id="swarm-ace-test-001"
141
+
142
+ # Get keywords for domain
143
+ local keywords="${DOMAIN_KEYWORDS[$domain]}"
144
+
145
+ # Build extracted_lessons JSON based on type
146
+ local extracted_lessons
147
+ if [[ "$reflection_type" == "strategy" ]]; then
148
+ extracted_lessons="{\"strategies\":[${DOMAIN_STRATEGIES[$domain]}],\"antiPatterns\":[],\"edgeCases\":[]}"
149
+ elif [[ "$reflection_type" == "anti-pattern" ]]; then
150
+ extracted_lessons="{\"strategies\":[],\"antiPatterns\":[${DOMAIN_ANTIPATTERNS[$domain]}],\"edgeCases\":[]}"
151
+ else
152
+ extracted_lessons="{\"strategies\":[],\"antiPatterns\":[],\"edgeCases\":[{\"title\":\"Edge case in $domain\",\"description\":\"Unexpected behavior discovered\",\"tags\":[\"$domain\",\"edge-case\"]}]}"
153
+ fi
154
+
155
+ # Build metadata JSON
156
+ local metadata="{\"domain\":[\"$domain\"],\"keywords\":[$keywords],\"tags\":[\"$domain\",\"test-data\"],\"severity\":\"medium\"}"
157
+
158
+ # Build execution_trace JSON
159
+ local iterations=$((RANDOM % 3 + 1))
160
+ local execution_trace="{\"iterations\":$iterations,\"loops\":[\"loop3\",\"loop2\"],\"timeline\":[\"start\",\"loop3\",\"loop2\",\"product-owner\",\"complete\"]}"
161
+
162
+ # Build feedback_signals JSON
163
+ local feedback_signals="{\"loop2_feedback\":[\"Good implementation\",\"Add tests\"],\"product_owner_decision\":\"PROCEED\"}"
164
+
165
+ # Calculate created_at (within last 30 days)
166
+ local days_ago=$((RANDOM % 30))
167
+ local created_at=$(date -d "$days_ago days ago" '+%Y-%m-%d %H:%M:%S' 2>/dev/null || date -v -${days_ago}d '+%Y-%m-%d %H:%M:%S')
168
+
169
+ # Insert reflection
170
+ sqlite3 "$DB_PATH" <<EOF
171
+ INSERT INTO context_reflections (
172
+ id,
173
+ reflection_type,
174
+ task_id,
175
+ agent_id,
176
+ swarm_id,
177
+ project_id,
178
+ execution_trace,
179
+ feedback_signals,
180
+ extracted_lessons,
181
+ metadata,
182
+ curator_status,
183
+ confidence,
184
+ success_count,
185
+ total_count,
186
+ created_at,
187
+ processed_at,
188
+ acl_level
189
+ ) VALUES (
190
+ '$id',
191
+ '$reflection_type',
192
+ '$task_id',
193
+ '$agent_id',
194
+ '$swarm_id',
195
+ 'ace-test-project',
196
+ '$execution_trace',
197
+ '$feedback_signals',
198
+ '$extracted_lessons',
199
+ '$metadata',
200
+ '$curator_status',
201
+ $confidence,
202
+ $success_count,
203
+ $total_count,
204
+ '$created_at',
205
+ '$created_at',
206
+ 3
207
+ );
208
+ EOF
209
+
210
+ echo "✓ Generated reflection $index: $reflection_type ($domain, confidence=$confidence)"
211
+ }
212
+
213
+ # Generate reflections
214
+ for i in $(seq 1 "$COUNT"); do
215
+ generate_reflection "$i"
216
+ # Small delay to ensure unique timestamps
217
+ sleep 0.1
218
+ done
219
+
220
+ # Show summary
221
+ echo ""
222
+ echo "=== Test Data Summary ==="
223
+ sqlite3 "$DB_PATH" <<'EOF'
224
+ SELECT
225
+ reflection_type,
226
+ COUNT(*) as count,
227
+ ROUND(AVG(confidence), 2) as avg_confidence,
228
+ SUM(success_count) as total_successes,
229
+ SUM(total_count) as total_uses
230
+ FROM context_reflections
231
+ GROUP BY reflection_type;
232
+ EOF
233
+
234
+ echo ""
235
+ echo "=== Domain Distribution ==="
236
+ sqlite3 "$DB_PATH" <<'EOF'
237
+ SELECT
238
+ json_extract(metadata, '$.domain[0]') as domain,
239
+ COUNT(*) as count
240
+ FROM context_reflections
241
+ GROUP BY domain
242
+ ORDER BY count DESC;
243
+ EOF
244
+
245
+ echo ""
246
+ echo "✓ Test data population complete!"
247
+ echo "Total reflections: $(sqlite3 "$DB_PATH" 'SELECT COUNT(*) FROM context_reflections;')"
@@ -0,0 +1,231 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # ACE System: Database Migration Runner
5
+ # Applies schema migrations to SQLite database
6
+ #
7
+ # Usage:
8
+ # ./run-migration.sh [OPTIONS]
9
+ #
10
+ # Options:
11
+ # --db-path Path to SQLite database (default: .artifacts/database/swarm-memory.db)
12
+ # --migration Specific migration file to run (default: all pending)
13
+ # --dry-run Show SQL without executing
14
+ # --rollback Rollback last migration (requires version tracking)
15
+ # --force Force migration even if already applied
16
+ ##############################################################################
17
+
18
+ set -euo pipefail
19
+
20
+ # Default values
21
+ DB_PATH="${ACE_DB_PATH:-./.artifacts/database/swarm-memory.db}"
22
+ MIGRATION=""
23
+ DRY_RUN=false
24
+ ROLLBACK=false
25
+ FORCE=false
26
+
27
+ # Parse arguments
28
+ while [[ $# -gt 0 ]]; do
29
+ case $1 in
30
+ --db-path)
31
+ DB_PATH="$2"
32
+ shift 2
33
+ ;;
34
+ --migration)
35
+ MIGRATION="$2"
36
+ shift 2
37
+ ;;
38
+ --dry-run)
39
+ DRY_RUN=true
40
+ shift
41
+ ;;
42
+ --rollback)
43
+ ROLLBACK=true
44
+ shift
45
+ ;;
46
+ --force)
47
+ FORCE=true
48
+ shift
49
+ ;;
50
+ *)
51
+ echo "Unknown option: $1"
52
+ echo "Usage: $0 [--db-path PATH] [--migration FILE] [--dry-run] [--rollback] [--force]"
53
+ exit 1
54
+ ;;
55
+ esac
56
+ done
57
+
58
+ # Get script directory
59
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
60
+ MIGRATION_DIR="$SCRIPT_DIR"
61
+
62
+ # Colors for output
63
+ RED='\033[0;31m'
64
+ GREEN='\033[0;32m'
65
+ YELLOW='\033[1;33m'
66
+ BLUE='\033[0;34m'
67
+ NC='\033[0m' # No Color
68
+
69
+ # Logging functions
70
+ log_info() {
71
+ echo -e "${BLUE}[INFO]${NC} $1"
72
+ }
73
+
74
+ log_success() {
75
+ echo -e "${GREEN}[SUCCESS]${NC} $1"
76
+ }
77
+
78
+ log_warning() {
79
+ echo -e "${YELLOW}[WARNING]${NC} $1"
80
+ }
81
+
82
+ log_error() {
83
+ echo -e "${RED}[ERROR]${NC} $1"
84
+ }
85
+
86
+ # Check if database exists
87
+ if [[ ! -f "$DB_PATH" ]]; then
88
+ log_warning "Database does not exist: $DB_PATH"
89
+ log_info "Creating new database..."
90
+ mkdir -p "$(dirname "$DB_PATH")"
91
+ touch "$DB_PATH"
92
+ fi
93
+
94
+ # Check if sqlite3 is available
95
+ if ! command -v sqlite3 &> /dev/null; then
96
+ log_error "sqlite3 command not found. Please install SQLite."
97
+ exit 1
98
+ fi
99
+
100
+ # Get current schema version
101
+ get_current_version() {
102
+ sqlite3 "$DB_PATH" "SELECT COALESCE(MAX(version), 0) FROM schema_version;" 2>/dev/null || echo "0"
103
+ }
104
+
105
+ # Check if table exists
106
+ table_exists() {
107
+ local table_name="$1"
108
+ sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='$table_name';" 2>/dev/null || echo "0"
109
+ }
110
+
111
+ # Apply migration
112
+ apply_migration() {
113
+ local migration_file="$1"
114
+ local migration_name=$(basename "$migration_file" .sql)
115
+
116
+ log_info "Applying migration: $migration_name"
117
+
118
+ if [[ "$DRY_RUN" == true ]]; then
119
+ log_info "DRY RUN - Would execute:"
120
+ cat "$migration_file"
121
+ return 0
122
+ fi
123
+
124
+ # Execute migration in transaction
125
+ if sqlite3 "$DB_PATH" < "$migration_file" 2>&1; then
126
+ log_success "Migration applied: $migration_name"
127
+ return 0
128
+ else
129
+ log_error "Failed to apply migration: $migration_name"
130
+ return 1
131
+ fi
132
+ }
133
+
134
+ # Main migration logic
135
+ main() {
136
+ log_info "=== ACE System Database Migration ==="
137
+ log_info "Database: $DB_PATH"
138
+
139
+ # Check if schema_version table exists
140
+ if [[ $(table_exists "schema_version") -eq 0 ]]; then
141
+ log_warning "schema_version table does not exist. Creating..."
142
+ fi
143
+
144
+ # Get current version
145
+ CURRENT_VERSION=$(get_current_version)
146
+ log_info "Current schema version: $CURRENT_VERSION"
147
+
148
+ # Handle rollback
149
+ if [[ "$ROLLBACK" == true ]]; then
150
+ log_error "Rollback not implemented yet. Manual rollback required."
151
+ log_info "To rollback manually:"
152
+ log_info " 1. Backup database: cp $DB_PATH ${DB_PATH}.backup"
153
+ log_info " 2. Drop tables: sqlite3 $DB_PATH 'DROP TABLE context_reflections;'"
154
+ log_info " 3. Re-run migration: $0"
155
+ exit 1
156
+ fi
157
+
158
+ # Determine migrations to run
159
+ if [[ -n "$MIGRATION" ]]; then
160
+ # Run specific migration
161
+ MIGRATION_FILE="$MIGRATION_DIR/$MIGRATION"
162
+ if [[ ! -f "$MIGRATION_FILE" ]]; then
163
+ log_error "Migration file not found: $MIGRATION_FILE"
164
+ exit 1
165
+ fi
166
+
167
+ apply_migration "$MIGRATION_FILE" || exit 1
168
+ else
169
+ # Run all pending migrations
170
+ log_info "Looking for migrations in: $MIGRATION_DIR"
171
+
172
+ MIGRATION_COUNT=0
173
+ for migration_file in "$MIGRATION_DIR"/*.sql; do
174
+ if [[ -f "$migration_file" ]]; then
175
+ # Extract version number from filename (e.g., 001-create-context-reflections.sql -> 1)
176
+ VERSION=$(basename "$migration_file" | grep -oP '^\d+' || echo "0")
177
+
178
+ if [[ "$FORCE" == true ]] || [[ "$VERSION" -gt "$CURRENT_VERSION" ]]; then
179
+ apply_migration "$migration_file" || exit 1
180
+ ((MIGRATION_COUNT++))
181
+ else
182
+ log_info "Skipping already applied migration: $(basename "$migration_file")"
183
+ fi
184
+ fi
185
+ done
186
+
187
+ if [[ $MIGRATION_COUNT -eq 0 ]]; then
188
+ log_success "Database is up to date. No migrations applied."
189
+ else
190
+ log_success "Applied $MIGRATION_COUNT migration(s)."
191
+ fi
192
+ fi
193
+
194
+ # Verify migration
195
+ log_info "=== Migration Verification ==="
196
+
197
+ # Check if context_reflections table exists
198
+ if [[ $(table_exists "context_reflections") -eq 1 ]]; then
199
+ log_success "✓ context_reflections table exists"
200
+
201
+ # Get row count
202
+ ROW_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM context_reflections;" 2>/dev/null || echo "0")
203
+ log_info " Rows: $ROW_COUNT"
204
+
205
+ # Check indexes
206
+ INDEX_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM sqlite_master WHERE type='index' AND tbl_name='context_reflections';" 2>/dev/null || echo "0")
207
+ log_success "✓ $INDEX_COUNT indexes created"
208
+ else
209
+ log_error "✗ context_reflections table not found"
210
+ fi
211
+
212
+ # Check if ace_telemetry table exists
213
+ if [[ $(table_exists "ace_telemetry") -eq 1 ]]; then
214
+ log_success "✓ ace_telemetry table exists"
215
+ else
216
+ log_warning "✗ ace_telemetry table not found"
217
+ fi
218
+
219
+ # Check views
220
+ VIEW_COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM sqlite_master WHERE type='view';" 2>/dev/null || echo "0")
221
+ log_success "✓ $VIEW_COUNT views created"
222
+
223
+ # Final version check
224
+ FINAL_VERSION=$(get_current_version)
225
+ log_info "Final schema version: $FINAL_VERSION"
226
+
227
+ log_success "=== Migration Complete ==="
228
+ }
229
+
230
+ # Run main function
231
+ main