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,142 @@
1
+ #!/usr/bin/env bash
2
+
3
+ #!/usr/bin/env bash
4
+
5
+ ##############################################################################
6
+ # CFN Loop Context Injection Helper - Phase 3.3 Integration
7
+ # Unified ACE context injection using invoke-context-inject.sh
8
+ #
9
+ # Usage:
10
+ # source context-injection.sh
11
+ # inject_ace_context "$TASK_DESCRIPTION" "$TASK_TAGS" "$DOMAIN"
12
+ ##############################################################################
13
+
14
+ set -euo pipefail
15
+
16
+ # Get script directory
17
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
18
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
19
+ ACE_INJECT_SCRIPT="${PROJECT_ROOT}/.claude/skills/cfn-ace-system/invoke-context-inject.sh"
20
+
21
+ ##############################################################################
22
+ # Inject ACE Context (Unified Positive + Negative)
23
+ ##############################################################################
24
+ inject_ace_context() {
25
+ local task_description="$1"
26
+ local task_tags="${2:-}"
27
+ local domain="${3:-}"
28
+ local enable_ace="${4:-true}"
29
+ local output_file="${5:-}"
30
+
31
+ # Validate dependencies
32
+ if [ ! -f "$ACE_INJECT_SCRIPT" ]; then
33
+ echo "# ACE Context (Unavailable)"
34
+ echo ""
35
+ echo "_ACE context injection script not found._"
36
+ return 1
37
+ fi
38
+
39
+ # Build invocation parameters
40
+ local invoke_params="--task-description \"$task_description\""
41
+
42
+ if [ -n "$task_tags" ]; then
43
+ invoke_params="$invoke_params --task-tags \"$task_tags\""
44
+ fi
45
+
46
+ if [ -n "$domain" ]; then
47
+ invoke_params="$invoke_params --domain \"$domain\""
48
+ fi
49
+
50
+ invoke_params="$invoke_params --enable-ace $enable_ace"
51
+
52
+ if [ -n "$output_file" ]; then
53
+ invoke_params="$invoke_params --output \"$output_file\""
54
+ fi
55
+
56
+ # Execute unified context injection
57
+ eval "$ACE_INJECT_SCRIPT" $invoke_params 2>/dev/null || {
58
+ echo "# ACE Context (Error)"
59
+ echo ""
60
+ echo "_Failed to retrieve ACE context._"
61
+ return 1
62
+ }
63
+
64
+ return 0
65
+ }
66
+
67
+ ##############################################################################
68
+ # Extract Tags from Context (Helper for Orchestrator)
69
+ ##############################################################################
70
+ extract_tags_from_context() {
71
+ local context_json="$1"
72
+
73
+ # Extract tags from deliverables, acceptance criteria, etc.
74
+ local extracted_tags
75
+ extracted_tags=$(echo "$context_json" | jq -r '
76
+ [
77
+ (.deliverables // [] | .[]),
78
+ (.acceptanceCriteria // [] | .[]),
79
+ (.epicGoal // "" | split(" ") | .[])
80
+ ] |
81
+ map(select(. != "")) |
82
+ unique |
83
+ join(",")
84
+ ' 2>/dev/null || echo "")
85
+
86
+ echo "$extracted_tags"
87
+ }
88
+
89
+ ##############################################################################
90
+ # Classify Domain from Task Description (Helper)
91
+ ##############################################################################
92
+ classify_domain() {
93
+ local task_description="$1"
94
+
95
+ local classifier_script="${PROJECT_ROOT}/.claude/skills/cfn-task-classifier/classify-task.sh"
96
+
97
+ if [ ! -f "$classifier_script" ]; then
98
+ echo "general"
99
+ return
100
+ fi
101
+
102
+ local classification
103
+ classification=$("$classifier_script" "$task_description" --format json 2>/dev/null || echo '{"domains":["general"]}')
104
+
105
+ local primary_domain
106
+ primary_domain=$(echo "$classification" | jq -r '.domains[0] // "general"')
107
+
108
+ echo "$primary_domain"
109
+ }
110
+
111
+ ##############################################################################
112
+ # Main Context Injection Wrapper (For Orchestrator Use)
113
+ ##############################################################################
114
+ inject_context_for_agent() {
115
+ local agent_type="$1"
116
+ local task_id="$2"
117
+ local iteration="${3:-1}"
118
+
119
+ # Retrieve task context from Redis
120
+ local task_context
121
+ if command -v redis-cli &> /dev/null; then
122
+ task_context=$(redis-cli HGET "cfn_loop:task:$task_id:context" "task_description" 2>/dev/null || echo "")
123
+ else
124
+ task_context=""
125
+ fi
126
+
127
+ if [ -z "$task_context" ]; then
128
+ echo "# ACE Context (No Task Description)"
129
+ echo ""
130
+ echo "_Task description not available for context injection._"
131
+ return 1
132
+ fi
133
+
134
+ # Extract tags and classify domain
135
+ local task_tags=$(extract_tags_from_context "$task_context")
136
+ local domain=$(classify_domain "$task_context")
137
+
138
+ # Inject unified context
139
+ inject_ace_context "$task_context" "$task_tags" "$domain" "true" ""
140
+
141
+ return 0
142
+ }
@@ -0,0 +1,359 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # Context Lookup Helper - ACE System Integration Phase 1.2
5
+ # Extracts keywords from task description and queries historical context
6
+ #
7
+ # Usage:
8
+ # ./context-lookup.sh --task-id TASK_ID --description "Task description"
9
+ #
10
+ # Arguments:
11
+ # --task-id Unique task identifier (required)
12
+ # --description Task description for keyword extraction (required)
13
+ # --similarity-threshold Minimum similarity (0.0-1.0, default: 0.70)
14
+ # --max-results Maximum results (default: 5)
15
+ #
16
+ # Output:
17
+ # Stores results in Redis: cfn_loop:{TASK_ID}:historical_context
18
+ # TTL: 1 hour (3600 seconds)
19
+ # Logs to: .artifacts/logs/context-lookup-{TASK_ID}.log
20
+ ##############################################################################
21
+
22
+ set -euo pipefail
23
+
24
+ # Script directory and project root
25
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
26
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
27
+ ACE_SKILL_DIR="$PROJECT_ROOT/.claude/skills/cfn-ace-system"
28
+
29
+ # Default values
30
+ TASK_ID=""
31
+ DESCRIPTION=""
32
+ SIMILARITY_THRESHOLD=0.70
33
+ MAX_RESULTS=5
34
+ LOG_DIR="$PROJECT_ROOT/.artifacts/logs"
35
+ MEMORY_PATH="$PROJECT_ROOT/.artifacts/database/swarm-memory.db"
36
+
37
+ # Domain classification keywords
38
+ declare -A DOMAIN_KEYWORDS=(
39
+ [frontend]="react,vue,angular,ui,component,jsx,tsx,css,html,dom,browser,frontend"
40
+ [backend]="api,server,database,sql,route,endpoint,auth,middleware,backend,express,node"
41
+ [security]="auth,security,encryption,jwt,oauth,vulnerability,xss,csrf,permission,access"
42
+ [devops]="deploy,docker,kubernetes,ci,cd,pipeline,infrastructure,aws,azure,gcp,monitoring"
43
+ [testing]="test,spec,jest,mocha,cypress,e2e,integration,unit,coverage,assertion"
44
+ )
45
+
46
+ ##############################################################################
47
+ # Input Sanitization
48
+ # Prevents command injection, SQL injection via keywords
49
+ ##############################################################################
50
+ sanitize_input() {
51
+ local input="$1"
52
+ # Remove shell metacharacters and special characters
53
+ # Only allow alphanumeric, spaces, hyphens, underscores, periods
54
+ echo "$input" | tr -cd '[:alnum:][:space:]-_.'
55
+ }
56
+
57
+ ##############################################################################
58
+ # Logging
59
+ ##############################################################################
60
+ log() {
61
+ local level="$1"
62
+ shift
63
+ local message="$*"
64
+ local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
65
+
66
+ if [ -n "$TASK_ID" ]; then
67
+ local log_file="$LOG_DIR/context-lookup-${TASK_ID}.log"
68
+ mkdir -p "$LOG_DIR"
69
+ echo "[$timestamp] [$level] $message" | tee -a "$log_file"
70
+ else
71
+ echo "[$timestamp] [$level] $message"
72
+ fi
73
+ }
74
+
75
+ ##############################################################################
76
+ # Keyword Extraction
77
+ # Uses regex to extract meaningful terms (3+ chars, excluding common words)
78
+ ##############################################################################
79
+ extract_keywords() {
80
+ local text="$1"
81
+ local keywords=()
82
+
83
+ # Convert to lowercase and extract words
84
+ local words=$(echo "$text" | tr '[:upper:]' '[:lower:]' | grep -oE '\b[a-z0-9]{3,}\b' || true)
85
+
86
+ # Common stopwords to exclude
87
+ local stopwords="the|and|for|with|from|that|this|are|was|were|been|have|has|had|but|not|you|all|can|will|what|when|who|how"
88
+
89
+ # Filter out stopwords and collect unique keywords
90
+ for word in $words; do
91
+ if ! echo "$word" | grep -qE "^($stopwords)$"; then
92
+ # Add to keywords if not already present
93
+ if [[ ! " ${keywords[@]} " =~ " ${word} " ]]; then
94
+ keywords+=("$word")
95
+ fi
96
+ fi
97
+ done
98
+
99
+ # Return comma-separated keywords
100
+ IFS=','
101
+ echo "${keywords[*]}"
102
+ }
103
+
104
+ ##############################################################################
105
+ # Domain Classification
106
+ # Classifies task domain based on keyword matching
107
+ ##############################################################################
108
+ classify_domain() {
109
+ local keywords="$1"
110
+ local max_score=0
111
+ local detected_domain="general"
112
+
113
+ # Score each domain based on keyword overlap
114
+ for domain in "${!DOMAIN_KEYWORDS[@]}"; do
115
+ local domain_kw="${DOMAIN_KEYWORDS[$domain]}"
116
+ local score=0
117
+
118
+ # Count matching keywords
119
+ IFS=',' read -ra kw_array <<< "$keywords"
120
+ for kw in "${kw_array[@]}"; do
121
+ if echo "$domain_kw" | grep -q "$kw"; then
122
+ ((score++))
123
+ fi
124
+ done
125
+
126
+ # Track highest scoring domain
127
+ if [ $score -gt $max_score ]; then
128
+ max_score=$score
129
+ detected_domain="$domain"
130
+ fi
131
+ done
132
+
133
+ # Calculate accuracy estimate
134
+ local total_keywords=$(echo "$keywords" | tr ',' '\n' | wc -l)
135
+ local accuracy=0
136
+ if [ $total_keywords -gt 0 ]; then
137
+ accuracy=$(echo "scale=2; ($max_score / $total_keywords) * 100" | bc)
138
+ fi
139
+
140
+ log "INFO" "Domain classification: $detected_domain (score: $max_score/$total_keywords, accuracy: ${accuracy}%)"
141
+ echo "$detected_domain"
142
+ }
143
+
144
+ ##############################################################################
145
+ # Query Historical Context
146
+ # Calls invoke-context-query.sh with extracted keywords
147
+ # Includes graceful fallback if query fails
148
+ ##############################################################################
149
+ query_historical_context() {
150
+ local keywords="$1"
151
+ local query_script="$ACE_SKILL_DIR/invoke-context-query.sh"
152
+
153
+ if [ ! -f "$query_script" ]; then
154
+ log "ERROR" "invoke-context-query.sh not found at $query_script"
155
+ log "WARN" "Falling back to empty results due to missing query script"
156
+ echo "[]"
157
+ return 0
158
+ fi
159
+
160
+ log "INFO" "Querying historical context with keywords: $keywords"
161
+
162
+ # Call ACE query script with error handling
163
+ local results
164
+ local query_error=""
165
+
166
+ if ! results=$("$query_script" \
167
+ --keywords "$keywords" \
168
+ --similarity-threshold "$SIMILARITY_THRESHOLD" \
169
+ --max-results "$MAX_RESULTS" \
170
+ --memory-path "$MEMORY_PATH" 2>&1); then
171
+ query_error="$results"
172
+ log "ERROR" "Context query failed: $query_error"
173
+ log "WARN" "Falling back to empty results due to query failure"
174
+ echo "[]"
175
+ return 0
176
+ fi
177
+
178
+ # Validate JSON output
179
+ if ! echo "$results" | jq . > /dev/null 2>&1; then
180
+ log "ERROR" "Invalid JSON from context query"
181
+ log "WARN" "Falling back to empty results due to invalid JSON"
182
+ echo "[]"
183
+ return 0
184
+ fi
185
+
186
+ # Count results
187
+ local result_count=$(echo "$results" | jq 'length')
188
+ log "INFO" "Retrieved $result_count similar contexts (threshold: $SIMILARITY_THRESHOLD)"
189
+
190
+ echo "$results"
191
+ }
192
+
193
+ ##############################################################################
194
+ # Store Results in Redis
195
+ # Stores query results with metadata and TTL
196
+ # Includes warning flag if results are empty due to query failure
197
+ ##############################################################################
198
+ store_in_redis() {
199
+ local keywords="$1"
200
+ local domain="$2"
201
+ local results="$3"
202
+ local redis_key="cfn_loop:${TASK_ID}:historical_context"
203
+
204
+ # Detect if results are empty (query failure fallback)
205
+ local result_count=$(echo "$results" | jq 'length')
206
+ local has_error="false"
207
+ if [ "$result_count" -eq 0 ]; then
208
+ has_error="true"
209
+ log "WARN" "Storing empty results - ACE query may have failed"
210
+ fi
211
+
212
+ # Create metadata object with error flag
213
+ local metadata=$(jq -n \
214
+ --arg keywords "$keywords" \
215
+ --arg domain "$domain" \
216
+ --arg timestamp "$(date -Iseconds)" \
217
+ --argjson results "$results" \
218
+ --argjson has_error "$has_error" \
219
+ '{
220
+ keywords: $keywords,
221
+ domain: $domain,
222
+ timestamp: $timestamp,
223
+ similarity_threshold: '"$SIMILARITY_THRESHOLD"',
224
+ max_results: '"$MAX_RESULTS"',
225
+ query_error: $has_error,
226
+ results: $results
227
+ }')
228
+
229
+ # Store in Redis with TTL
230
+ if ! redis-cli SET "$redis_key" "$metadata" EX 3600 > /dev/null 2>&1; then
231
+ log "ERROR" "Failed to store results in Redis"
232
+ return 1
233
+ fi
234
+
235
+ log "INFO" "Stored results in Redis: $redis_key (TTL: 3600s)"
236
+
237
+ # Verify storage
238
+ if ! redis-cli EXISTS "$redis_key" > /dev/null 2>&1; then
239
+ log "ERROR" "Redis key verification failed"
240
+ return 1
241
+ fi
242
+
243
+ log "INFO" "Redis storage verified successfully"
244
+ }
245
+
246
+ ##############################################################################
247
+ # Argument Parsing
248
+ ##############################################################################
249
+ parse_arguments() {
250
+ while [[ $# -gt 0 ]]; do
251
+ case $1 in
252
+ --task-id)
253
+ TASK_ID="$2"
254
+ shift 2
255
+ ;;
256
+ --description)
257
+ DESCRIPTION="$2"
258
+ shift 2
259
+ ;;
260
+ --similarity-threshold)
261
+ SIMILARITY_THRESHOLD="$2"
262
+ shift 2
263
+ ;;
264
+ --max-results)
265
+ MAX_RESULTS="$2"
266
+ shift 2
267
+ ;;
268
+ *)
269
+ log "ERROR" "Unknown option: $1"
270
+ echo "Usage: $0 --task-id TASK_ID --description 'Task description' [OPTIONS]"
271
+ exit 1
272
+ ;;
273
+ esac
274
+ done
275
+
276
+ # Validation
277
+ if [ -z "$TASK_ID" ]; then
278
+ log "ERROR" "--task-id is required"
279
+ exit 1
280
+ fi
281
+
282
+ if [ -z "$DESCRIPTION" ]; then
283
+ log "ERROR" "--description is required"
284
+ exit 1
285
+ fi
286
+ }
287
+
288
+ ##############################################################################
289
+ # Main Execution
290
+ ##############################################################################
291
+ main() {
292
+ parse_arguments "$@"
293
+
294
+ log "INFO" "Starting context lookup for task: $TASK_ID"
295
+ log "INFO" "Description: $DESCRIPTION"
296
+
297
+ # Step 0: Sanitize input
298
+ local sanitized_description
299
+ sanitized_description=$(sanitize_input "$DESCRIPTION")
300
+ log "INFO" "Sanitized description: $sanitized_description"
301
+
302
+ # Step 1: Extract keywords
303
+ local keywords
304
+ keywords=$(extract_keywords "$sanitized_description")
305
+
306
+ local keyword_count=$(echo "$keywords" | tr ',' '\n' | wc -l)
307
+ log "INFO" "Extracted $keyword_count keywords: $keywords"
308
+
309
+ if [ $keyword_count -lt 3 ]; then
310
+ log "WARN" "Only extracted $keyword_count keywords (requirement: ≥3)"
311
+ fi
312
+
313
+ # Step 2: Classify domain
314
+ local domain
315
+ domain=$(classify_domain "$keywords")
316
+
317
+ # Step 3: Query historical context
318
+ local results
319
+ if ! results=$(query_historical_context "$keywords"); then
320
+ log "ERROR" "Context query failed"
321
+ exit 1
322
+ fi
323
+
324
+ # Step 4: Store in Redis
325
+ if ! store_in_redis "$keywords" "$domain" "$results"; then
326
+ log "ERROR" "Redis storage failed"
327
+ exit 1
328
+ fi
329
+
330
+ # Summary
331
+ log "INFO" "Context lookup complete"
332
+ log "INFO" "Keywords: $keyword_count extracted"
333
+ log "INFO" "Domain: $domain"
334
+ log "INFO" "Results: $(echo "$results" | jq 'length') similar contexts"
335
+ log "INFO" "Redis: cfn_loop:${TASK_ID}:historical_context (TTL: 3600s)"
336
+
337
+ # Calculate confidence score
338
+ local confidence=0.75
339
+
340
+ # Boost confidence based on success criteria
341
+ if [ $keyword_count -ge 3 ]; then
342
+ confidence=$(echo "$confidence + 0.05" | bc)
343
+ fi
344
+
345
+ if [ "$(echo "$results" | jq 'length')" -gt 0 ]; then
346
+ confidence=$(echo "$confidence + 0.10" | bc)
347
+ fi
348
+
349
+ # Cap at 1.0
350
+ confidence=$(echo "if ($confidence > 1.0) 1.0 else $confidence" | bc)
351
+
352
+ log "INFO" "Self-confidence score: $confidence"
353
+
354
+ # Return success
355
+ exit 0
356
+ }
357
+
358
+ # Execute main
359
+ main "$@"
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # Deliverable Verifier
5
+ # Verifies expected deliverables were created (prevents "consensus on vapor")
6
+ #
7
+ # Usage:
8
+ # deliverable-verifier.sh --expected-files <file1,file2,...> \
9
+ # --task-type <keyword-detection>
10
+ #
11
+ # Returns:
12
+ # Exit 0: Deliverables verified
13
+ # Exit 1: Missing deliverables
14
+ ##############################################################################
15
+
16
+ set -euo pipefail
17
+
18
+ # Parameters
19
+ EXPECTED_FILES=""
20
+ TASK_TYPE=""
21
+
22
+ # Parse arguments
23
+ while [[ $# -gt 0 ]]; do
24
+ case $1 in
25
+ --expected-files) EXPECTED_FILES="$2"; shift 2 ;;
26
+ --task-type) TASK_TYPE="$2"; shift 2 ;;
27
+ *) echo "Unknown option: $1"; exit 1 ;;
28
+ esac
29
+ done
30
+
31
+ # Check git status for file changes
32
+ GIT_CHANGES=$(git status --short | wc -l)
33
+
34
+ echo "Deliverable Verification:"
35
+ echo " Git changes detected: $GIT_CHANGES files"
36
+
37
+ # If expected files specified, check them explicitly
38
+ if [ -n "$EXPECTED_FILES" ]; then
39
+ IFS=',' read -ra FILE_ARRAY <<< "$EXPECTED_FILES"
40
+ MISSING_COUNT=0
41
+
42
+ for file in "${FILE_ARRAY[@]}"; do
43
+ if [ -f "$file" ]; then
44
+ echo " ✅ Found: $file"
45
+ else
46
+ echo " ❌ Missing: $file"
47
+ MISSING_COUNT=$((MISSING_COUNT + 1))
48
+ fi
49
+ done
50
+
51
+ if [ $MISSING_COUNT -gt 0 ]; then
52
+ echo "❌ Deliverable verification FAILED: $MISSING_COUNT missing files"
53
+ exit 1
54
+ fi
55
+ fi
56
+
57
+ # Keyword-based task type detection
58
+ if [ -n "$TASK_TYPE" ]; then
59
+ if [[ "$TASK_TYPE" =~ (create|build|implement|add|generate) ]]; then
60
+ # Implementation tasks require file changes
61
+ if [ $GIT_CHANGES -eq 0 ]; then
62
+ echo "❌ Implementation task detected but no files created"
63
+ echo " Task type: $TASK_TYPE"
64
+ echo " This is 'consensus on vapor' - forcing iteration"
65
+ exit 1
66
+ fi
67
+ fi
68
+ fi
69
+
70
+ echo "✅ Deliverable verification PASSED"
71
+ exit 0
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env bash
2
+
3
+ ##############################################################################
4
+ # Gate Check Helper
5
+ # Validates Loop 3 self-assessment against gate threshold
6
+ #
7
+ # Usage:
8
+ # gate-check.sh --task-id <id> \
9
+ # --agents <agent1,agent2,...> \
10
+ # --threshold <0.0-1.0> \
11
+ # --min-quorum <n|n%|0.n>
12
+ #
13
+ # Returns:
14
+ # Exit 0: Gate passed (Loop 3 meets threshold)
15
+ # Exit 1: Gate failed (Loop 3 needs iteration)
16
+ ##############################################################################
17
+
18
+ set -euo pipefail
19
+
20
+ # Parameters
21
+ TASK_ID=""
22
+ AGENTS=""
23
+ THRESHOLD=""
24
+ MIN_QUORUM=""
25
+
26
+ # Parse arguments
27
+ while [[ $# -gt 0 ]]; do
28
+ case $1 in
29
+ --task-id) TASK_ID="$2"; shift 2 ;;
30
+ --agents) AGENTS="$2"; shift 2 ;;
31
+ --threshold) THRESHOLD="$2"; shift 2 ;;
32
+ --min-quorum) MIN_QUORUM="$2"; shift 2 ;;
33
+ *) echo "Unknown option: $1"; exit 1 ;;
34
+ esac
35
+ done
36
+
37
+ # Validation
38
+ if [ -z "$TASK_ID" ] || [ -z "$AGENTS" ] || [ -z "$THRESHOLD" ] || [ -z "$MIN_QUORUM" ]; then
39
+ echo "Error: Missing required parameters"
40
+ exit 1
41
+ fi
42
+
43
+ # Use Redis Coordination skill to collect confidence scores
44
+ SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.claude/skills/cfn-cfn-.." && pwd)"
45
+ REDIS_COORD_SKILL="$SKILL_DIR/redis-coordination"
46
+
47
+ echo "Gate Check Configuration:"
48
+ echo " Task ID: $TASK_ID"
49
+ echo " Agent IDs: $AGENTS"
50
+ echo " Min Quorum: $MIN_QUORUM"
51
+ echo ""
52
+
53
+ # Collect Loop 3 confidence scores
54
+ # Note: invoke-waiting-mode.sh outputs consensus to stdout and verbose messages to stderr
55
+ # We capture only stdout to get the numeric consensus value
56
+ CONSENSUS=$("$REDIS_COORD_SKILL/invoke-waiting-mode.sh" collect \
57
+ --task-id "$TASK_ID" \
58
+ --agent-ids "$AGENTS" \
59
+ --min-quorum "$MIN_QUORUM") || {
60
+ echo "❌ Error: Failed to collect Loop 3 confidence scores"
61
+ echo " Agent IDs: $AGENTS"
62
+ echo " Output: $CONSENSUS"
63
+ exit 1
64
+ }
65
+
66
+ # Validate consensus is a valid number
67
+ if ! [[ "$CONSENSUS" =~ ^[0-9]+\.?[0-9]*$ ]]; then
68
+ echo "⚠️ WARNING: Invalid consensus value: $CONSENSUS (expected numeric)"
69
+ echo " Defaulting to 0.0"
70
+ CONSENSUS="0.0"
71
+ fi
72
+
73
+ echo "Loop 3 Gate Check:"
74
+ echo " Consensus: $CONSENSUS"
75
+ echo " Threshold: $THRESHOLD"
76
+ echo " Required: >= $THRESHOLD"
77
+
78
+ # Compare consensus to gate threshold
79
+ if (( $(echo "$CONSENSUS >= $THRESHOLD" | bc -l) )); then
80
+ echo "✅ Gate PASSED - Loop 3 self-validation successful"
81
+
82
+ # NOTE: Orchestrator controls Loop 2 spawn timing directly (orchestrate.sh line 520)
83
+ # No signal broadcast needed - Loop 2 agents spawn after this helper returns 0
84
+
85
+ exit 0
86
+ else
87
+ echo "❌ Gate FAILED - Loop 3 needs improvement"
88
+ echo " Gap: $(echo "$THRESHOLD - $CONSENSUS" | bc -l)"
89
+ exit 1
90
+ fi