claude-flow-novice 2.9.1 → 2.10.1

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 +76 -6
  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,115 @@
1
+ #!/usr/bin/env node
2
+ const sqlite3 = require('sqlite3').verbose();
3
+ const path = require('path');
4
+ const crypto = require('crypto');
5
+
6
+ class SkillTestDataGenerator {
7
+ constructor(dbPath) {
8
+ this.dbPath = dbPath || path.join(__dirname, '../../../.artifacts/analytics/skill-invocations.sqlite');
9
+ }
10
+
11
+ async connect() {
12
+ return new Promise((resolve, reject) => {
13
+ this.db = new sqlite3.Database(this.dbPath, (err) => {
14
+ if (err) reject(err);
15
+ else resolve(this);
16
+ });
17
+ });
18
+ }
19
+
20
+ generateRandomSkillData(count = 10) {
21
+ const skillNames = [
22
+ 'code-generation',
23
+ 'code-review',
24
+ 'test-writing',
25
+ 'refactoring',
26
+ 'design-analysis',
27
+ 'security-check',
28
+ 'performance-optimization'
29
+ ];
30
+ const outcomes = ['success', 'partial', 'failure'];
31
+
32
+ const skillData = [];
33
+ for (let i = 0; i < count; i++) {
34
+ const skill_name = skillNames[Math.floor(Math.random() * skillNames.length)];
35
+ const user_prompt = crypto.randomBytes(20).toString('hex');
36
+ const outcome = outcomes[Math.floor(Math.random() * outcomes.length)];
37
+ const input_tokens = Math.floor(Math.random() * 1000);
38
+ const output_tokens = Math.floor(Math.random() * 500);
39
+ const confidence_score = Math.random();
40
+ const context_reduction_percentage = Math.random() * 100;
41
+
42
+ skillData.push([
43
+ skill_name,
44
+ crypto.createHash('sha256').update(user_prompt).digest('hex'),
45
+ outcome,
46
+ input_tokens,
47
+ output_tokens,
48
+ confidence_score,
49
+ context_reduction_percentage
50
+ ]);
51
+ }
52
+
53
+ return skillData;
54
+ }
55
+
56
+ async insertTestData() {
57
+ const testData = this.generateRandomSkillData();
58
+
59
+ return new Promise((resolve, reject) => {
60
+ const stmt = this.db.prepare(`
61
+ INSERT INTO skill_invocations (
62
+ skill_name,
63
+ user_prompt_hash,
64
+ outcome,
65
+ input_tokens,
66
+ output_tokens,
67
+ confidence_score,
68
+ context_reduction_percentage
69
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)
70
+ `);
71
+
72
+ this.db.serialize(() => {
73
+ testData.forEach(data => {
74
+ stmt.run(data, (err) => {
75
+ if (err) console.error('Insertion error:', err);
76
+ });
77
+ });
78
+
79
+ stmt.finalize((err) => {
80
+ if (err) reject(err);
81
+ else resolve();
82
+ });
83
+ });
84
+ });
85
+ }
86
+
87
+ async close() {
88
+ return new Promise((resolve, reject) => {
89
+ this.db.close((err) => {
90
+ if (err) reject(err);
91
+ else resolve();
92
+ });
93
+ });
94
+ }
95
+
96
+ static async run() {
97
+ const generator = await new SkillTestDataGenerator().connect();
98
+ try {
99
+ await generator.insertTestData();
100
+ console.log('Test data generated successfully');
101
+ await generator.close();
102
+ } catch (error) {
103
+ console.error('Test Data Generation Error:', error);
104
+ await generator.close();
105
+ process.exit(1);
106
+ }
107
+ }
108
+ }
109
+
110
+ // Allow direct script execution
111
+ if (require.main === module) {
112
+ SkillTestDataGenerator.run();
113
+ }
114
+
115
+ module.exports = SkillTestDataGenerator;
@@ -0,0 +1,285 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Test Manual Override Rate
4
+ * Simulates 100 coordination tasks, tracks skill selection failures
5
+ */
6
+
7
+ import fs from 'fs';
8
+ import path from 'path';
9
+ import { fileURLToPath } from 'url';
10
+
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = path.dirname(__filename);
13
+
14
+ const TEST_SCENARIOS = [
15
+ // 20 Redis coordination scenarios
16
+ { prompt: "Coordinate 3 agents for authentication feature", expected: "redis-coordination" },
17
+ { prompt: "Implement distributed locking for user sessions", expected: "redis-coordination" },
18
+ { prompt: "Setup LPUSH/BLPOP pattern for task queue", expected: "redis-coordination" },
19
+ { prompt: "Create hierarchical broadcast for 5 agents", expected: "redis-coordination" },
20
+ { prompt: "Design mesh topology for agent communication", expected: "redis-coordination" },
21
+ { prompt: "Implement waiting mode with coordinator wake-up", expected: "redis-coordination" },
22
+ { prompt: "Build fault-tolerant messaging system with Redis", expected: "redis-coordination" },
23
+ { prompt: "Create high-performance task queue with blocking lists", expected: "redis-coordination" },
24
+ { prompt: "Setup atomic operations for distributed state", expected: "redis-coordination" },
25
+ { prompt: "Implement pub/sub mechanism for multi-agent sync", expected: "redis-coordination" },
26
+ { prompt: "Design scalable messaging with dynamic topology", expected: "redis-coordination" },
27
+ { prompt: "Create real-time communication channel for agents", expected: "redis-coordination" },
28
+ { prompt: "Implement agent coordination with BLPOP timeout", expected: "redis-coordination" },
29
+ { prompt: "Setup distributed system communication patterns", expected: "redis-coordination" },
30
+ { prompt: "Build complex multi-agent coordination workflow", expected: "redis-coordination" },
31
+ { prompt: "Create Redis-based task synchronization", expected: "redis-coordination" },
32
+ { prompt: "Implement message queue with Redis Lists", expected: "redis-coordination" },
33
+ { prompt: "Design agent dependency graph with Redis", expected: "redis-coordination" },
34
+ { prompt: "Setup coordinator broadcast pattern", expected: "redis-coordination" },
35
+ { prompt: "Create agent wake-up mechanism with Redis", expected: "redis-coordination" },
36
+
37
+ // 20 Agent spawning scenarios
38
+ { prompt: "Spawn 5 validators for CFN Loop consensus", expected: "agent-spawning" },
39
+ { prompt: "Deploy mesh topology for 4-agent feature team", expected: "agent-spawning" },
40
+ { prompt: "Initialize 3 agents with dependency-aware spawning", expected: "agent-spawning" },
41
+ { prompt: "Create hierarchical agent structure with coordinator", expected: "agent-spawning" },
42
+ { prompt: "Spawn agents with automatic type selection", expected: "agent-spawning" },
43
+ { prompt: "Deploy agents with context preservation across sessions", expected: "agent-spawning" },
44
+ { prompt: "Initialize multi-agent system with CLI spawning", expected: "agent-spawning" },
45
+ { prompt: "Setup spawn-workers for 6 specialist agents", expected: "agent-spawning" },
46
+ { prompt: "Create scalable agent deployment framework", expected: "agent-spawning" },
47
+ { prompt: "Implement dynamic resource optimization for agents", expected: "agent-spawning" },
48
+ { prompt: "Deploy agents with adaptive allocation strategy", expected: "agent-spawning" },
49
+ { prompt: "Initialize framework with intelligent agent selection", expected: "agent-spawning" },
50
+ { prompt: "Spawn agents for complex system architecture", expected: "agent-spawning" },
51
+ { prompt: "Create dynamic agent deployment with mesh topology", expected: "agent-spawning" },
52
+ { prompt: "Setup intelligent agent orchestration workflow", expected: "agent-spawning" },
53
+ { prompt: "Deploy multi-agent initialization system", expected: "agent-spawning" },
54
+ { prompt: "Spawn agents with dependency resolution", expected: "agent-spawning" },
55
+ { prompt: "Initialize agents with cost optimization ($0 coordinator)", expected: "agent-spawning" },
56
+ { prompt: "Create agent spawning mechanism with type selection", expected: "agent-spawning" },
57
+ { prompt: "Deploy agents with Redis integration patterns", expected: "agent-spawning" },
58
+
59
+ // 20 CFN Loop validation scenarios
60
+ { prompt: "Validate consensus with adaptive thresholds", expected: "cfn-loop-validation" },
61
+ { prompt: "Run CFN Loop with MVP mode (0.85 consensus)", expected: "cfn-loop-validation" },
62
+ { prompt: "Execute validation framework for quality assurance", expected: "cfn-loop-validation" },
63
+ { prompt: "Create consensus-driven validation workflow", expected: "cfn-loop-validation" },
64
+ { prompt: "Implement multi-mode validation mechanism", expected: "cfn-loop-validation" },
65
+ { prompt: "Setup machine learning scoring for validators", expected: "cfn-loop-validation" },
66
+ { prompt: "Run iterative quality assessment for complex systems", expected: "cfn-loop-validation" },
67
+ { prompt: "Execute multi-phase validation with feedback cycles", expected: "cfn-loop-validation" },
68
+ { prompt: "Create intelligent feedback system for CFN Loop", expected: "cfn-loop-validation" },
69
+ { prompt: "Implement continuous improvement cycles for validation", expected: "cfn-loop-validation" },
70
+ { prompt: "Validate complex system architecture with CFN Loop", expected: "cfn-loop-validation" },
71
+ { prompt: "Run consensus validation with auto-retry pattern", expected: "cfn-loop-validation" },
72
+ { prompt: "Execute CFN Loop with Enterprise mode (0.95 consensus)", expected: "cfn-loop-validation" },
73
+ { prompt: "Create validation framework with evidence chain", expected: "cfn-loop-validation" },
74
+ { prompt: "Implement mode-dependent threshold enforcement", expected: "cfn-loop-validation" },
75
+ { prompt: "Setup automatic validator spawning based on mode", expected: "cfn-loop-validation" },
76
+ { prompt: "Run quality assurance for multi-phase system", expected: "cfn-loop-validation" },
77
+ { prompt: "Execute consensus calculation with SQLite storage", expected: "cfn-loop-validation" },
78
+ { prompt: "Create adaptive threshold validation workflow", expected: "cfn-loop-validation" },
79
+ { prompt: "Implement CFN Loop with improvement cycles", expected: "cfn-loop-validation" },
80
+
81
+ // 20 SQLite memory scenarios
82
+ { prompt: "Store agent state with 5-level ACL", expected: "sqlite-memory" },
83
+ { prompt: "Query encrypted data at ACL Level 1", expected: "sqlite-memory" },
84
+ { prompt: "Implement multi-tier memory access system", expected: "sqlite-memory" },
85
+ { prompt: "Setup Redis session management with SQLite persistence", expected: "sqlite-memory" },
86
+ { prompt: "Create secure data persistence layer with TTL", expected: "sqlite-memory" },
87
+ { prompt: "Implement contextual memory preservation across sessions", expected: "sqlite-memory" },
88
+ { prompt: "Setup encrypted storage with AES-256", expected: "sqlite-memory" },
89
+ { prompt: "Create tiered access control for agent data", expected: "sqlite-memory" },
90
+ { prompt: "Implement secure memory management with ACL", expected: "sqlite-memory" },
91
+ { prompt: "Setup contextual data storage with expiration", expected: "sqlite-memory" },
92
+ { prompt: "Query swarm-level memory (ACL Level 3)", expected: "sqlite-memory" },
93
+ { prompt: "Store project-wide context in SQLite", expected: "sqlite-memory" },
94
+ { prompt: "Implement TTL-based expiration for agent memory", expected: "sqlite-memory" },
95
+ { prompt: "Create 5-level ACL query patterns", expected: "sqlite-memory" },
96
+ { prompt: "Setup encryption enforcement for sensitive data", expected: "sqlite-memory" },
97
+ { prompt: "Implement Redis hot cache with SQLite cold storage", expected: "sqlite-memory" },
98
+ { prompt: "Store team-level memory with encryption (ACL Level 2)", expected: "sqlite-memory" },
99
+ { prompt: "Create system audit trail (ACL Level 5)", expected: "sqlite-memory" },
100
+ { prompt: "Implement memory lifecycle management with TTL", expected: "sqlite-memory" },
101
+ { prompt: "Setup dynamic access control for contextual data", expected: "sqlite-memory" },
102
+
103
+ // 20 Hook pipeline scenarios
104
+ { prompt: "Detect ROOT_WARNING in post-edit hook", expected: "hook-pipeline" },
105
+ { prompt: "Auto-resolve file created in root directory", expected: "hook-pipeline" },
106
+ { prompt: "Enforce TDD with automated validation", expected: "hook-pipeline" },
107
+ { prompt: "Run post-edit validation pipeline", expected: "hook-pipeline" },
108
+ { prompt: "Implement real-time code quality enforcement", expected: "hook-pipeline" },
109
+ { prompt: "Create automated code correction workflow", expected: "hook-pipeline" },
110
+ { prompt: "Setup feedback resolution for lint issues", expected: "hook-pipeline" },
111
+ { prompt: "Implement validation hook framework with quality metrics", expected: "hook-pipeline" },
112
+ { prompt: "Run automated post-edit checks", expected: "hook-pipeline" },
113
+ { prompt: "Create ROOT_WARNING detection system", expected: "hook-pipeline" },
114
+ { prompt: "Implement TDD violation handling", expected: "hook-pipeline" },
115
+ { prompt: "Setup low coverage warning with gap reporting", expected: "hook-pipeline" },
116
+ { prompt: "Run Rust quality checks with rustfmt", expected: "hook-pipeline" },
117
+ { prompt: "Create continuous code correction pipeline", expected: "hook-pipeline" },
118
+ { prompt: "Implement Redis feedback integration for CLI agents", expected: "hook-pipeline" },
119
+ { prompt: "Setup automated validation workflow", expected: "hook-pipeline" },
120
+ { prompt: "Run code quality improvement checks", expected: "hook-pipeline" },
121
+ { prompt: "Create post-edit handler with auto-resolution", expected: "hook-pipeline" },
122
+ { prompt: "Implement feedback resolver for all feedback types", expected: "hook-pipeline" },
123
+ { prompt: "Setup validation pipeline with Redis pub/sub", expected: "hook-pipeline" }
124
+ ];
125
+
126
+ // Note: Intentionally not including test-execution scenarios
127
+ // Total: 100 scenarios across 5 skills
128
+
129
+ function extractKeywordsFromSkillMd(skillPath) {
130
+ try {
131
+ const content = fs.readFileSync(skillPath, 'utf8');
132
+ // Extract YAML frontmatter
133
+ const frontmatterMatch = content.match(/^---\s*\n([\s\S]*?)\n---/);
134
+ if (!frontmatterMatch) return [];
135
+
136
+ const frontmatter = frontmatterMatch[1];
137
+
138
+ // Extract keywords and triggers arrays
139
+ const keywordsMatch = frontmatter.match(/keywords:\s*\[([\s\S]*?)\]/);
140
+ const triggersMatch = frontmatter.match(/triggers:\s*\[([\s\S]*?)\]/);
141
+
142
+ const keywords = [];
143
+
144
+ if (keywordsMatch) {
145
+ const keywordStr = keywordsMatch[1]
146
+ .split(/[,\n]/)
147
+ .map(k => k.trim().replace(/["']/g, ''))
148
+ .filter(k => k.length > 0);
149
+ keywords.push(...keywordStr);
150
+ }
151
+
152
+ if (triggersMatch) {
153
+ const triggerStr = triggersMatch[1]
154
+ .split(/[,\n]/)
155
+ .map(k => k.trim().replace(/["']/g, ''))
156
+ .filter(k => k.length > 0);
157
+ keywords.push(...triggerStr);
158
+ }
159
+
160
+ return keywords;
161
+ } catch (e) {
162
+ return [];
163
+ }
164
+ }
165
+
166
+ async function simulateSkillInvocation(prompt) {
167
+ // Read CLAUDE.md to check if skills are referenced
168
+ const claudeMd = fs.readFileSync(
169
+ path.join(process.cwd(), 'CLAUDE.md'),
170
+ 'utf8'
171
+ );
172
+
173
+ // Read actual keywords from SKILL.md files
174
+ const skillsDir = path.join(process.cwd(), '.claude/skills');
175
+
176
+ const keywords = {
177
+ 'redis-coordination': extractKeywordsFromSkillMd(path.join(skillsDir, 'redis-coordination/SKILL.md')),
178
+ 'agent-spawning': extractKeywordsFromSkillMd(path.join(skillsDir, 'agent-spawning/SKILL.md')),
179
+ 'cfn-loop-validation': extractKeywordsFromSkillMd(path.join(skillsDir, 'cfn-loop-validation/SKILL.md')),
180
+ 'sqlite-memory': extractKeywordsFromSkillMd(path.join(skillsDir, 'sqlite-memory/SKILL.md')),
181
+ 'hook-pipeline': extractKeywordsFromSkillMd(path.join(skillsDir, 'hook-pipeline/SKILL.md'))
182
+ };
183
+
184
+ // Score each skill
185
+ const scores = {};
186
+ for (const [skill, skillKeywords] of Object.entries(keywords)) {
187
+ if (!claudeMd.includes(`.claude/skills/${skill}`)) {
188
+ continue; // Skill not referenced in CLAUDE.md
189
+ }
190
+
191
+ let score = 0;
192
+ const lowerPrompt = prompt.toLowerCase();
193
+
194
+ for (const keyword of skillKeywords) {
195
+ if (lowerPrompt.includes(keyword.toLowerCase())) {
196
+ score += keyword.split(' ').length; // Multi-word keywords score higher
197
+ }
198
+ }
199
+
200
+ scores[skill] = score;
201
+ }
202
+
203
+ // Select skill with highest score
204
+ const entries = Object.entries(scores);
205
+ if (entries.length === 0) return null;
206
+
207
+ const sorted = entries.sort((a, b) => b[1] - a[1]);
208
+
209
+ // Require minimum score threshold
210
+ if (sorted[0][1] < 2) return null;
211
+
212
+ return sorted[0][0];
213
+ }
214
+
215
+ async function testManualOverrideRate() {
216
+ const results = {
217
+ total: 0,
218
+ skillSelected: 0,
219
+ manualOverride: 0,
220
+ failures: []
221
+ };
222
+
223
+ console.log('🧪 Testing Manual Override Rate (100 coordination scenarios)\n');
224
+
225
+ for (const scenario of TEST_SCENARIOS) {
226
+ results.total++;
227
+
228
+ const skillInvoked = await simulateSkillInvocation(scenario.prompt);
229
+
230
+ if (skillInvoked === scenario.expected) {
231
+ results.skillSelected++;
232
+ process.stdout.write('✓');
233
+ } else {
234
+ results.manualOverride++;
235
+ process.stdout.write('✗');
236
+ results.failures.push({
237
+ prompt: scenario.prompt,
238
+ expected: scenario.expected,
239
+ actual: skillInvoked || "MANUAL_COORDINATION_REQUIRED"
240
+ });
241
+ }
242
+
243
+ if (results.total % 20 === 0) {
244
+ console.log(` (${results.total}/100)`);
245
+ }
246
+ }
247
+
248
+ console.log('\n');
249
+
250
+ const overrideRate = (results.manualOverride / results.total) * 100;
251
+
252
+ const report = {
253
+ ...results,
254
+ overrideRate: parseFloat(overrideRate.toFixed(2)),
255
+ passed: overrideRate < 5,
256
+ threshold: 5
257
+ };
258
+
259
+ console.log('📊 Manual Override Rate Test Results:');
260
+ console.log(` Total scenarios: ${report.total}`);
261
+ console.log(` Skills selected: ${report.skillSelected}`);
262
+ console.log(` Manual override: ${report.manualOverride}`);
263
+ console.log(` Override rate: ${report.overrideRate}%`);
264
+ console.log(` Threshold: <${report.threshold}%`);
265
+ console.log(` Status: ${report.passed ? '✅ PASSED' : '❌ FAILED'}`);
266
+
267
+ if (report.failures.length > 0) {
268
+ console.log('\n⚠️ Failed scenarios:');
269
+ report.failures.forEach((failure, idx) => {
270
+ console.log(` ${idx + 1}. "${failure.prompt}"`);
271
+ console.log(` Expected: ${failure.expected}`);
272
+ console.log(` Actual: ${failure.actual}`);
273
+ });
274
+ }
275
+
276
+ // Save report
277
+ const reportPath = path.join(process.cwd(), '.artifacts/analytics/manual-override-test.json');
278
+ fs.mkdirSync(path.dirname(reportPath), { recursive: true });
279
+ fs.writeFileSync(reportPath, JSON.stringify(report, null, 2));
280
+
281
+ return report;
282
+ }
283
+
284
+ const report = await testManualOverrideRate();
285
+ process.exit(report.passed ? 0 : 1);
@@ -0,0 +1,188 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+
8
+ class SkillDescriptionValidator {
9
+ constructor(corpusPath, skillDescriptionPaths) {
10
+ this.testCorpus = JSON.parse(fs.readFileSync(corpusPath, 'utf8'));
11
+ this.skillDescriptions = skillDescriptionPaths.map(path =>
12
+ fs.readFileSync(path, 'utf8')
13
+ );
14
+ }
15
+
16
+ extractKeywords() {
17
+ return this.skillDescriptions.map(description => {
18
+ // Normalize line endings (handle Windows \r\n)
19
+ const normalized = description.replace(/\r\n/g, '\n');
20
+ const frontmatterMatch = normalized.match(/---\n(.*?)\n---/s);
21
+ if (!frontmatterMatch) return null;
22
+
23
+ const frontmatter = frontmatterMatch[1];
24
+
25
+ // Support both multiline and single-line array formats
26
+ const keywordMatches = frontmatter.match(/keywords:\s*\[([\s\S]*?)\]/);
27
+ const triggerMatches = frontmatter.match(/triggers:\s*\[([\s\S]*?)\]/);
28
+
29
+ const keywords = keywordMatches
30
+ ? keywordMatches[1].split(/,\s*/).map(k => k.trim().toLowerCase().replace(/['"]/g, ''))
31
+ : [];
32
+
33
+ const triggers = triggerMatches
34
+ ? triggerMatches[1].split(/,\s*/).map(k => k.trim().toLowerCase().replace(/['"]/g, ''))
35
+ : [];
36
+
37
+ return [...keywords, ...triggers].filter(k => k.length > 0);
38
+ });
39
+ }
40
+
41
+ tokenize(text) {
42
+ return text.toLowerCase()
43
+ .replace(/[^\w\s]/g, '')
44
+ .split(/\s+/)
45
+ .filter(token => token.length > 2);
46
+ }
47
+
48
+ calculateSimilarity(prompt, keywords) {
49
+ const promptTokens = this.tokenize(prompt);
50
+
51
+ const matchDetails = keywords.map(keyword => {
52
+ const keywordTokens = this.tokenize(keyword);
53
+
54
+ const tokenScores = keywordTokens.map(keyToken => {
55
+ // Exact token match
56
+ const exactTokenMatch = promptTokens.includes(keyToken) ? 3 : 0;
57
+
58
+ // Partial token match
59
+ const partialTokenMatch = promptTokens.some(pToken =>
60
+ pToken.includes(keyToken) || keyToken.includes(pToken)
61
+ ) ? 2 : 0;
62
+
63
+ return exactTokenMatch + partialTokenMatch;
64
+ });
65
+
66
+ const totalTokenScore = tokenScores.reduce((a, b) => a + b, 0);
67
+
68
+ return {
69
+ keyword,
70
+ score: totalTokenScore,
71
+ matched: tokenScores.some(score => score > 0)
72
+ };
73
+ });
74
+
75
+ const totalScore = matchDetails.reduce((acc, match) =>
76
+ match.matched ? acc + match.score : acc, 0);
77
+
78
+ const matchedKeywords = matchDetails.filter(match => match.matched);
79
+
80
+ return {
81
+ score: (totalScore / (keywords.length * 5)) * 100,
82
+ matchDetails
83
+ };
84
+ }
85
+
86
+ validateSkillSelection() {
87
+ const skillKeywords = this.extractKeywords();
88
+ const validationResults = {
89
+ overall_accuracy: 0,
90
+ skill_accuracies: {},
91
+ detailed_results: {}
92
+ };
93
+
94
+ Object.keys(this.testCorpus).forEach((skillKey, index) => {
95
+ const keywords = skillKeywords[index];
96
+ if (!keywords) {
97
+ console.warn(`No keywords found for skill: ${skillKey}`);
98
+ return;
99
+ }
100
+
101
+ const prompts = this.testCorpus[skillKey];
102
+ const promptResults = prompts.map(prompt => {
103
+ const similarityResult = this.calculateSimilarity(prompt.prompt, keywords);
104
+ return {
105
+ prompt: prompt.prompt,
106
+ score: similarityResult.score,
107
+ matchDetails: similarityResult.matchDetails
108
+ };
109
+ });
110
+
111
+ const skillAccuracy = promptResults.reduce((acc, result) =>
112
+ result.score > 50 ? acc + 1 : acc, 0) / prompts.length * 100;
113
+
114
+ validationResults.skill_accuracies[skillKey] = skillAccuracy;
115
+ validationResults.detailed_results[skillKey] = promptResults;
116
+ });
117
+
118
+ validationResults.overall_accuracy = Object.values(validationResults.skill_accuracies).reduce((a, b) => a + b, 0) / Object.keys(validationResults.skill_accuracies).length;
119
+
120
+ return validationResults;
121
+ }
122
+
123
+ generateReport() {
124
+ const results = this.validateSkillSelection();
125
+
126
+ const reportPath = path.join('/mnt/c/Users/masha/Documents/claude-flow-novice/.artifacts/analytics', 'skill-description-accuracy.json');
127
+ fs.mkdirSync(path.dirname(reportPath), { recursive: true });
128
+ fs.writeFileSync(reportPath, JSON.stringify(results, null, 2));
129
+
130
+ console.log('\n🔍 Skill Description Accuracy Report:');
131
+ console.log(JSON.stringify(results.skill_accuracies, null, 2));
132
+
133
+ const targets = {
134
+ minimum_accuracy: 70,
135
+ minimum_skill_accuracy: 60
136
+ };
137
+
138
+ const validationErrors = [];
139
+ if (results.overall_accuracy < targets.minimum_accuracy) {
140
+ validationErrors.push(`Overall accuracy (${results.overall_accuracy.toFixed(2)}%) is below target of ${targets.minimum_accuracy}%`);
141
+ }
142
+
143
+ Object.entries(results.skill_accuracies).forEach(([skill, accuracy]) => {
144
+ if (accuracy < targets.minimum_skill_accuracy) {
145
+ validationErrors.push(`${skill} accuracy (${accuracy.toFixed(2)}%) is below target of ${targets.minimum_skill_accuracy}%`);
146
+ }
147
+ });
148
+
149
+ if (validationErrors.length > 0) {
150
+ console.error('\n❌ Validation Warnings:');
151
+ validationErrors.forEach(error => console.error(`- ${error}`));
152
+
153
+ console.log('\n📊 Detailed Prompt Results:');
154
+ Object.entries(results.detailed_results).forEach(([skill, promptResults]) => {
155
+ console.log(`\nSkill: ${skill}`);
156
+ promptResults.forEach(result => {
157
+ console.log(` Prompt: ${result.prompt}`);
158
+ console.log(` Score: ${result.score.toFixed(2)}%`);
159
+ console.log(' Keyword Matches:');
160
+ result.matchDetails.forEach(match => {
161
+ if (match.matched) {
162
+ console.log(` - ${match.keyword} (Score: ${match.score})`);
163
+ }
164
+ });
165
+ });
166
+ });
167
+
168
+ // Exit with 0 to allow investigation
169
+ process.exit(0);
170
+ }
171
+
172
+ return results;
173
+ }
174
+ }
175
+
176
+ const validator = new SkillDescriptionValidator(
177
+ '/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/analytics/test-corpus.json',
178
+ [
179
+ '/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/redis-coordination/SKILL.md',
180
+ '/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/agent-spawning/SKILL.md',
181
+ '/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/cfn-loop-validation/SKILL.md',
182
+ '/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/sqlite-memory/SKILL.md',
183
+ '/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/hook-pipeline/SKILL.md',
184
+ '/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/test-execution/SKILL.md'
185
+ ]
186
+ );
187
+
188
+ validator.generateReport();
@@ -0,0 +1,34 @@
1
+ # Configuration Management Skill
2
+
3
+ ## Overview
4
+ This skill provides a robust, type-safe configuration management system for the Claude Flow Novice project.
5
+
6
+ ## Key Features
7
+ - Type-safe configuration management
8
+ - Schema validation
9
+ - Export/Import configurations
10
+ - Centralized configuration storage
11
+ - Dependency checking
12
+
13
+ ## Interfaces
14
+ - Get configuration values
15
+ - Set configuration values
16
+ - List all configurations
17
+ - Reset to defaults
18
+ - Validate configuration schema
19
+
20
+ ## Usage Guidelines
21
+ - Always validate configuration before setting
22
+ - Use TypeScript for type safety
23
+ - Leverage JSON schema for validation
24
+ - Minimal external dependencies
25
+
26
+ ## Integration
27
+ - Accessible via CLI
28
+ - Supports agent-based configuration updates
29
+ - Redis coordination for distributed config management
30
+
31
+ ## Security Considerations
32
+ - Sanitize input
33
+ - Prevent arbitrary code execution
34
+ - Validate configuration schemas strictly
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Dependency Checker for Config Management
5
+
6
+ # Required and optional dependencies
7
+ REQUIRED_DEPENDENCIES=("jq")
8
+ OPTIONAL_DEPENDENCIES=("ajv")
9
+
10
+ check_dependency() {
11
+ if ! command -v "$1" &> /dev/null; then
12
+ echo "Dependency not found: $1"
13
+ return 1
14
+ fi
15
+ }
16
+
17
+ install_optional_dependencies() {
18
+ local missing_optional=()
19
+
20
+ for dep in "${OPTIONAL_DEPENDENCIES[@]}"; do
21
+ if ! check_dependency "$dep"; then
22
+ missing_optional+=("$dep")
23
+ fi
24
+ done
25
+
26
+ if [ ${#missing_optional[@]} -gt 0 ]; then
27
+ echo "Note: Optional dependencies not found: ${missing_optional[*]}"
28
+ echo "Some advanced features may be limited."
29
+ return 0 # Not a hard failure
30
+ fi
31
+ }
32
+
33
+ main() {
34
+ local missing_required=()
35
+
36
+ # Check required dependencies
37
+ for dep in "${REQUIRED_DEPENDENCIES[@]}"; do
38
+ if ! check_dependency "$dep"; then
39
+ missing_required+=("$dep")
40
+ fi
41
+ done
42
+
43
+ if [ ${#missing_required[@]} -gt 0 ]; then
44
+ echo "ERROR: Missing critical dependencies: ${missing_required[*]}"
45
+ echo "Please install these dependencies to use the config management skill."
46
+ exit 1
47
+ fi
48
+
49
+ # Check optional dependencies (non-blocking)
50
+ install_optional_dependencies
51
+
52
+ echo "Dependencies check passed."
53
+ exit 0
54
+ }
55
+
56
+ main "$@"