claude-flow-novice 2.15.2 → 2.15.4

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 (533) hide show
  1. package/.claude/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
  2. package/.claude/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
  3. package/.claude/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
  4. package/.claude/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
  5. package/.claude/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
  6. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
  7. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
  8. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
  9. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
  10. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
  11. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
  12. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
  13. package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
  14. package/.claude/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
  15. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
  16. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
  17. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
  18. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
  19. package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
  20. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
  21. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
  22. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
  23. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
  24. package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
  25. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
  26. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
  27. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
  28. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
  29. package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
  30. package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
  31. package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
  32. package/.claude/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
  33. package/.claude/commands/cfn-loop-cli.md +16 -2
  34. package/.claude/commands/switch-api.md +31 -10
  35. package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -243
  36. package/.claude/hooks/cfn-invoke-security-validation.sh +69 -69
  37. package/.claude/hooks/cfn-lint-sql-injection.sh +61 -0
  38. package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +109 -78
  39. package/.claude/hooks/cfn-post-edit.config.json +44 -44
  40. package/.claude/hooks/cfn-pre-edit-security-warning.sh +40 -0
  41. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
  42. package/.claude/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
  43. package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
  44. package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
  45. package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  46. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
  47. package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
  48. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
  49. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +24 -0
  50. package/.claude/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
  51. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  52. package/.claude/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
  53. package/.claude/skills/cfn-redis-coordination/agent-log.sh +4 -0
  54. package/.claude/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
  55. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  56. package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
  57. package/.claude/skills/cfn-redis-coordination/get-context.sh +145 -112
  58. package/.claude/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
  59. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
  60. package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
  61. package/.claude/skills/cfn-redis-coordination/redis-functions.sh +33 -0
  62. package/.claude/skills/cfn-redis-coordination/report-completion.sh +24 -31
  63. package/.claude/skills/cfn-redis-coordination/store-context.sh +4 -0
  64. package/.claude/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
  65. package/.claude/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
  66. package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
  67. package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  68. package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  69. package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
  70. package/.claude/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  71. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  72. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +107 -92
  73. package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  74. package/README.md +116 -475
  75. package/claude-assets/agents/cfn-dev-team/README.md +103 -0
  76. package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +1 -1
  77. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +77 -15
  78. package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +355 -6
  79. package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +82 -1
  80. package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +82 -1
  81. package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +77 -15
  82. package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +99 -12
  83. package/claude-assets/agents/cfn-dev-team/dev-ops/github-commit-agent.md +1 -1
  84. package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +97 -0
  85. package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +20 -1
  86. package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +97 -0
  87. package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +110 -13
  88. package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +106 -15
  89. package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +115 -11
  90. package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +94 -7
  91. package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +87 -9
  92. package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +85 -7
  93. package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +160 -28
  94. package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +101 -19
  95. package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +108 -14
  96. package/claude-assets/agents/cfn-dev-team/reviewers/{reviewer.md → code-reviewer.md} +95 -8
  97. package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +107 -7
  98. package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +98 -7
  99. package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +95 -7
  100. package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +136 -9
  101. package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +108 -1
  102. package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +107 -13
  103. package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +737 -0
  104. package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +1 -1
  105. package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +828 -0
  106. package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +106 -7
  107. package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +77 -0
  108. package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +684 -0
  109. package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +110 -1
  110. package/claude-assets/agents/cfn-dev-team/testers/tester.md +94 -7
  111. package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +1 -3
  112. package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +87 -13
  113. package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +103 -7
  114. package/claude-assets/agents/cfn-dev-team/utility/researcher.md +1 -3
  115. package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +94 -7
  116. package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +46 -0
  117. package/claude-assets/agents/project-only-agents/npm-package-specialist.md +1 -1
  118. package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
  119. package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
  120. package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
  121. package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
  122. package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
  123. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
  124. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
  125. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
  126. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
  127. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
  128. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
  129. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
  130. package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
  131. package/claude-assets/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
  132. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
  133. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
  134. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
  135. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
  136. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
  137. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
  138. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
  139. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
  140. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
  141. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
  142. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
  143. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
  144. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
  145. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
  146. package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
  147. package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
  148. package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
  149. package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
  150. package/claude-assets/commands/cfn-loop-cli.md +16 -2
  151. package/claude-assets/commands/switch-api.md +31 -10
  152. package/claude-assets/hooks/cfn-BACKUP_USAGE.md +243 -243
  153. package/claude-assets/hooks/cfn-invoke-security-validation.sh +69 -69
  154. package/claude-assets/hooks/cfn-lint-sql-injection.sh +61 -0
  155. package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +109 -78
  156. package/claude-assets/hooks/cfn-post-edit.config.json +44 -44
  157. package/claude-assets/hooks/cfn-post-execution/memory-cleanup.sh +19 -19
  158. package/claude-assets/hooks/cfn-pre-edit-security-warning.sh +40 -0
  159. package/claude-assets/hooks/cfn-pre-execution/memory-check.sh +19 -19
  160. package/claude-assets/hooks/detect-hardcoded-credentials.sh +212 -0
  161. package/claude-assets/skills/SKILL_TEMPLATE.md +774 -0
  162. package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +543 -572
  163. package/claude-assets/skills/agent-lifecycle/simple-audit.sh +57 -30
  164. package/claude-assets/skills/agent-template-generator/SKILL.md +440 -0
  165. package/claude-assets/skills/agent-template-generator/generate-agent.sh +405 -0
  166. package/claude-assets/skills/agent-validation-linter/SKILL.md +589 -0
  167. package/claude-assets/skills/agent-validation-linter/lint-agents.sh +271 -0
  168. package/claude-assets/skills/bootstrap/bash-fundamentals.md +786 -0
  169. package/claude-assets/skills/bootstrap/database-connection.md +464 -0
  170. package/claude-assets/skills/bootstrap/error-handling.md +580 -0
  171. package/claude-assets/skills/bootstrap/file-operations.md +699 -0
  172. package/claude-assets/skills/bootstrap/skill-loader.md +616 -0
  173. package/claude-assets/skills/bootstrap/sqlite-params.sh +287 -0
  174. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
  175. package/claude-assets/skills/cfn-automatic-memory-persistence/persist-agent-output.sh +48 -48
  176. package/claude-assets/skills/cfn-automatic-memory-persistence/query-agent-history.sh +34 -34
  177. package/claude-assets/skills/cfn-automatic-memory-persistence/test-memory-persistence.sh +17 -16
  178. package/claude-assets/skills/cfn-deliverable-validation/confidence-calculator.sh +261 -261
  179. package/claude-assets/skills/cfn-deployment/SKILL.md +293 -0
  180. package/claude-assets/skills/cfn-deployment/execute.sh +21 -0
  181. package/claude-assets/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
  182. package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
  183. package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
  184. package/claude-assets/skills/cfn-environment-sanitization/sanitize-environment.sh +38 -0
  185. package/claude-assets/skills/cfn-error-batching-strategy/lib/core-functions.sh +47 -47
  186. package/claude-assets/skills/cfn-expert-update/update-expert.sh +345 -345
  187. package/claude-assets/skills/cfn-file-operations/SKILL.md +290 -0
  188. package/claude-assets/skills/cfn-file-operations/execute.sh +129 -0
  189. package/claude-assets/skills/cfn-file-operations/lib/atomic-write.sh +294 -0
  190. package/claude-assets/skills/cfn-file-operations/lib/lock.sh +361 -0
  191. package/claude-assets/skills/cfn-file-operations/test.sh +369 -0
  192. package/claude-assets/skills/cfn-hybrid-routing/check-dependencies.sh +51 -51
  193. package/claude-assets/skills/cfn-intervention-detector/detect-intervention.sh +110 -110
  194. package/claude-assets/skills/cfn-intervention-orchestrator/execute-intervention.sh +58 -58
  195. package/claude-assets/skills/cfn-log-operations/SKILL.md +308 -0
  196. package/claude-assets/skills/cfn-log-operations/execute.sh +420 -0
  197. package/claude-assets/skills/cfn-log-operations/lib/rotate.sh +406 -0
  198. package/claude-assets/skills/cfn-log-operations/lib/search.sh +448 -0
  199. package/claude-assets/skills/cfn-log-operations/test.sh +394 -0
  200. package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
  201. package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
  202. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +184 -23
  203. package/claude-assets/skills/cfn-loop-orchestration/security_utils.sh +24 -0
  204. package/claude-assets/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
  205. package/claude-assets/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -252
  206. package/claude-assets/skills/cfn-loop2-output-processing/process-validator-output.sh +275 -275
  207. package/claude-assets/skills/cfn-memory-management/check-memory.sh +159 -159
  208. package/claude-assets/skills/cfn-memory-management/cleanup-memory.sh +196 -196
  209. package/claude-assets/skills/cfn-node-heap-sizer/task-mode-heap-limiter.sh +325 -325
  210. package/claude-assets/skills/cfn-parameterized-queries/SKILL.md +339 -0
  211. package/claude-assets/skills/cfn-playbook/query-playbook.sh +19 -15
  212. package/claude-assets/skills/cfn-playbook/update-playbook.sh +25 -14
  213. package/claude-assets/skills/cfn-playbook-auto-update/auto-update-playbook.sh +85 -85
  214. package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +44 -0
  215. package/claude-assets/skills/cfn-promotion/SKILL.md +305 -0
  216. package/claude-assets/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
  217. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh +4 -0
  218. package/claude-assets/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
  219. package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +74 -74
  220. package/claude-assets/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
  221. package/claude-assets/skills/cfn-redis-coordination/get-context.sh +145 -112
  222. package/claude-assets/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
  223. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -0
  224. package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
  225. package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +33 -0
  226. package/claude-assets/skills/cfn-redis-coordination/report-completion.sh +24 -31
  227. package/claude-assets/skills/cfn-redis-coordination/store-context.sh +4 -0
  228. package/claude-assets/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
  229. package/claude-assets/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
  230. package/claude-assets/skills/cfn-scope-simplifier/simplify-scope.sh +67 -67
  231. package/claude-assets/skills/cfn-skill-loader/SKILL.md +466 -0
  232. package/claude-assets/skills/cfn-skill-loader/execute.sh +344 -0
  233. package/claude-assets/skills/cfn-specialist-injection/recommend-specialist.sh +56 -56
  234. package/claude-assets/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
  235. package/claude-assets/skills/cfn-standardized-error-handling/capture-agent-error.sh +86 -86
  236. package/claude-assets/skills/cfn-standardized-error-handling/test-error-handling.sh +165 -165
  237. package/claude-assets/skills/cfn-task-audit/get-audit-data.sh +42 -21
  238. package/claude-assets/skills/cfn-task-audit/store-task-audit.sh +17 -10
  239. package/claude-assets/skills/cfn-task-config-init/initialize-config.sh +264 -264
  240. package/claude-assets/skills/cfn-task-decomposition/task-decomposer.sh +278 -278
  241. package/claude-assets/skills/cfn-test-runner/detect-regressions.sh +17 -14
  242. package/claude-assets/skills/cfn-test-runner/detect-regressions.sh.backup-1763392821 +55 -0
  243. package/claude-assets/skills/cfn-test-runner/store-benchmarks.sh +17 -19
  244. package/claude-assets/skills/cfn-transparency-middleware/middleware-config.sh +28 -28
  245. package/claude-assets/skills/cfn-transparency-middleware/performance-benchmark.sh +78 -78
  246. package/claude-assets/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
  247. package/claude-assets/skills/cfn-transparency-middleware/test-integration.sh +161 -161
  248. package/claude-assets/skills/cfn-transparency-middleware/test-transparency-skill.sh +367 -367
  249. package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +107 -92
  250. package/claude-assets/skills/cfn-transparency-middleware/wrap-agent.sh +131 -131
  251. package/claude-assets/skills/cfn-utilities/SKILL.md +237 -0
  252. package/claude-assets/skills/cfn-utilities/execute.sh +32 -0
  253. package/claude-assets/skills/cfn-utilities/lib/errors.sh +56 -0
  254. package/claude-assets/skills/cfn-utilities/lib/file-ops.sh +164 -0
  255. package/claude-assets/skills/cfn-utilities/lib/logging.sh +77 -0
  256. package/claude-assets/skills/cfn-utilities/lib/retry.sh +127 -0
  257. package/claude-assets/skills/cfn-utilities/test.sh +317 -0
  258. package/claude-assets/skills/docker-build/SKILL.md +96 -203
  259. package/claude-assets/skills/docker-build/build.sh +73 -73
  260. package/claude-assets/skills/integration/agent-handoff.sh +492 -0
  261. package/claude-assets/skills/integration/file-operations.sh +414 -0
  262. package/claude-assets/skills/json-validation/SKILL.md +431 -0
  263. package/claude-assets/skills/json-validation/test-validate-success-criteria.sh +421 -0
  264. package/claude-assets/skills/json-validation/validate-success-criteria.sh +197 -0
  265. package/claude-assets/skills/redis-coordination/validate-parameters.sh +34 -0
  266. package/claude-assets/skills/workflow-codification/APPROVAL_WORKFLOW.md +806 -0
  267. package/claude-assets/skills/workflow-codification/COST_TRACKING.md +637 -0
  268. package/claude-assets/skills/workflow-codification/DEPLOY_QUICK_REFERENCE.md +106 -0
  269. package/claude-assets/skills/workflow-codification/EDGE_CASE_TRACKING.md +404 -0
  270. package/claude-assets/skills/workflow-codification/PROPAGATE_UPDATE_QUICK_REFERENCE.md +366 -0
  271. package/claude-assets/skills/workflow-codification/README_PHASE4.md +457 -0
  272. package/claude-assets/skills/workflow-codification/SKILL.md +110 -0
  273. package/claude-assets/skills/workflow-codification/analyze-patterns.sh +899 -0
  274. package/claude-assets/skills/workflow-codification/approval-workflow.sh +514 -0
  275. package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh +481 -0
  276. package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh.backup-1763392820 +512 -0
  277. package/claude-assets/skills/workflow-codification/generate-skill-update.sh +525 -0
  278. package/claude-assets/skills/workflow-codification/lib/security-utils.sh +204 -0
  279. package/claude-assets/skills/workflow-codification/propagate-skill-update.sh +648 -0
  280. package/claude-assets/skills/workflow-codification/propagate-skill-update.sh.backup-1763392820 +664 -0
  281. package/claude-assets/skills/workflow-codification/review-skill.sh +643 -0
  282. package/claude-assets/skills/workflow-codification/templates/email-notification.txt +114 -0
  283. package/claude-assets/skills/workflow-codification/templates/slack-notification.md +85 -0
  284. package/claude-assets/skills/workflow-codification/test-integration.sh +296 -0
  285. package/claude-assets/skills/workflow-codification/test-metadata-update.sh +350 -0
  286. package/claude-assets/skills/workflow-codification/track-cost-savings.sh +486 -0
  287. package/claude-assets/skills/workflow-codification/track-cost-savings.sh.backup-1763392821 +445 -0
  288. package/claude-assets/skills/workflow-codification/track-edge-case.sh +290 -0
  289. package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
  290. package/dist/ace/ace-curator.js +10 -2
  291. package/dist/ace/ace-curator.js.map +1 -1
  292. package/dist/ace/ace-generator.js +4 -0
  293. package/dist/ace/ace-generator.js.map +1 -1
  294. package/dist/ace/ace-reflector.js +1 -1
  295. package/dist/ace/ace-reflector.js.map +1 -1
  296. package/dist/ace/context-injection.js +24 -2
  297. package/dist/ace/context-injection.js.map +1 -1
  298. package/dist/agents/agent-loader.js +146 -165
  299. package/dist/agents/agent-loader.js.map +1 -1
  300. package/dist/agents/task-agent-integration.js +1 -1
  301. package/dist/agents/task-agent-integration.js.map +1 -1
  302. package/dist/api/health-endpoints.js +390 -0
  303. package/dist/api/health-endpoints.js.map +1 -0
  304. package/dist/cli/agent-executor.js +4 -1
  305. package/dist/cli/agent-executor.js.map +1 -1
  306. package/dist/cli/agent-prompt-builder.js +89 -1
  307. package/dist/cli/agent-prompt-builder.js.map +1 -1
  308. package/dist/cli/agent-spawn.js +130 -37
  309. package/dist/cli/agent-spawn.js.map +1 -1
  310. package/dist/cli/config-manager.js +91 -109
  311. package/dist/cli/config-manager.js.map +1 -1
  312. package/dist/cli/skill-cache-validator.js +412 -0
  313. package/dist/cli/skill-cache-validator.js.map +1 -0
  314. package/dist/cli/skill-cli.js +991 -0
  315. package/dist/cli/skill-cli.js.map +1 -0
  316. package/dist/cli/skill-execution-logger.js +284 -0
  317. package/dist/cli/skill-execution-logger.js.map +1 -0
  318. package/dist/cli/skill-loader.js +457 -0
  319. package/dist/cli/skill-loader.js.map +1 -0
  320. package/dist/coordination/event-bus.js +2 -2
  321. package/dist/coordination/event-bus.js.map +1 -1
  322. package/dist/coordination/fleet-manager.js +1 -1
  323. package/dist/coordination/fleet-manager.js.map +1 -1
  324. package/dist/coordination/index.js +23 -9
  325. package/dist/coordination/index.js.map +1 -1
  326. package/dist/coordination/types/fleet-manager.types.js.map +1 -1
  327. package/dist/db/migration-manager.js +483 -0
  328. package/dist/db/migration-manager.js.map +1 -0
  329. package/dist/db/skills-query.js +535 -0
  330. package/dist/db/skills-query.js.map +1 -0
  331. package/dist/integration/DatabaseHandoff.js +507 -0
  332. package/dist/integration/DatabaseHandoff.js.map +1 -0
  333. package/dist/integration/StandardAdapter.js +291 -0
  334. package/dist/integration/StandardAdapter.js.map +1 -0
  335. package/dist/jobs/edge-case-analyzer.js +367 -0
  336. package/dist/jobs/edge-case-analyzer.js.map +1 -0
  337. package/dist/jobs/promotion-sla-enforcer.js +288 -0
  338. package/dist/jobs/promotion-sla-enforcer.js.map +1 -0
  339. package/dist/lib/agent-output-parser.js +518 -0
  340. package/dist/lib/agent-output-parser.js.map +1 -0
  341. package/dist/lib/agent-output-validator.js +950 -0
  342. package/dist/lib/agent-output-validator.js.map +1 -0
  343. package/dist/lib/agent-workspace.js +281 -0
  344. package/dist/lib/agent-workspace.js.map +1 -0
  345. package/dist/lib/artifact-registry.js +443 -0
  346. package/dist/lib/artifact-registry.js.map +1 -0
  347. package/dist/lib/atomic-file-writer.js +377 -0
  348. package/dist/lib/atomic-file-writer.js.map +1 -0
  349. package/dist/lib/backup-manager.js +779 -0
  350. package/dist/lib/backup-manager.js.map +1 -0
  351. package/dist/lib/checkpoint-manager.js +837 -0
  352. package/dist/lib/checkpoint-manager.js.map +1 -0
  353. package/dist/lib/circuit-breaker.js +340 -0
  354. package/dist/lib/circuit-breaker.js.map +1 -0
  355. package/dist/lib/completion-signal-handler.js +243 -0
  356. package/dist/lib/completion-signal-handler.js.map +1 -0
  357. package/dist/lib/config-manager.js +312 -0
  358. package/dist/lib/config-manager.js.map +1 -0
  359. package/dist/lib/config-migrator.js +386 -0
  360. package/dist/lib/config-migrator.js.map +1 -0
  361. package/dist/lib/config-validator.js +687 -0
  362. package/dist/lib/config-validator.js.map +1 -0
  363. package/dist/lib/correlation-cache.js +311 -0
  364. package/dist/lib/correlation-cache.js.map +1 -0
  365. package/dist/lib/correlation.js +263 -0
  366. package/dist/lib/correlation.js.map +1 -0
  367. package/dist/lib/database-service/connection-pool-manager.js +520 -0
  368. package/dist/lib/database-service/connection-pool-manager.js.map +1 -0
  369. package/dist/lib/database-service/correlation.js +329 -0
  370. package/dist/lib/database-service/correlation.js.map +1 -0
  371. package/dist/lib/database-service/errors.js +120 -0
  372. package/dist/lib/database-service/errors.js.map +1 -0
  373. package/dist/lib/database-service/index.js +168 -0
  374. package/dist/lib/database-service/index.js.map +1 -0
  375. package/dist/lib/database-service/postgres-adapter.js +526 -0
  376. package/dist/lib/database-service/postgres-adapter.js.map +1 -0
  377. package/dist/lib/database-service/redis-adapter.js +360 -0
  378. package/dist/lib/database-service/redis-adapter.js.map +1 -0
  379. package/dist/lib/database-service/sqlite-adapter.js +544 -0
  380. package/dist/lib/database-service/sqlite-adapter.js.map +1 -0
  381. package/dist/lib/database-service/transaction-manager.js +773 -0
  382. package/dist/lib/database-service/transaction-manager.js.map +1 -0
  383. package/dist/lib/database-service/types.js +23 -0
  384. package/dist/lib/database-service/types.js.map +1 -0
  385. package/dist/lib/deadlock-resolver.js +292 -0
  386. package/dist/lib/deadlock-resolver.js.map +1 -0
  387. package/dist/lib/distributed-lock.js +451 -0
  388. package/dist/lib/distributed-lock.js.map +1 -0
  389. package/dist/lib/edge-case-deduplicator.js +227 -0
  390. package/dist/lib/edge-case-deduplicator.js.map +1 -0
  391. package/dist/lib/encryption-manager.js +322 -0
  392. package/dist/lib/encryption-manager.js.map +1 -0
  393. package/dist/lib/error-aggregator.js +234 -0
  394. package/dist/lib/error-aggregator.js.map +1 -0
  395. package/dist/lib/errors.js +287 -0
  396. package/dist/lib/errors.js.map +1 -0
  397. package/dist/lib/file-lock-manager.js +578 -0
  398. package/dist/lib/file-lock-manager.js.map +1 -0
  399. package/dist/lib/file-operations.js +367 -0
  400. package/dist/lib/file-operations.js.map +1 -0
  401. package/dist/lib/idempotent-write.js +237 -0
  402. package/dist/lib/idempotent-write.js.map +1 -0
  403. package/dist/lib/integration-schema-validator.js +522 -0
  404. package/dist/lib/integration-schema-validator.js.map +1 -0
  405. package/dist/lib/lock-health-monitor.js +298 -0
  406. package/dist/lib/lock-health-monitor.js.map +1 -0
  407. package/dist/lib/log-shipper.js +422 -0
  408. package/dist/lib/log-shipper.js.map +1 -0
  409. package/dist/lib/logging.js +146 -0
  410. package/dist/lib/logging.js.map +1 -0
  411. package/dist/lib/message-deduplicator.js +439 -0
  412. package/dist/lib/message-deduplicator.js.map +1 -0
  413. package/dist/lib/multi-system-query.js +604 -0
  414. package/dist/lib/multi-system-query.js.map +1 -0
  415. package/dist/lib/orphan-detector.js +332 -0
  416. package/dist/lib/orphan-detector.js.map +1 -0
  417. package/dist/lib/password-generator.js +166 -0
  418. package/dist/lib/password-generator.js.map +1 -0
  419. package/dist/lib/path-validator.js +429 -0
  420. package/dist/lib/path-validator.js.map +1 -0
  421. package/dist/lib/query-translator.js +905 -0
  422. package/dist/lib/query-translator.js.map +1 -0
  423. package/dist/lib/queue-recovery.js +469 -0
  424. package/dist/lib/queue-recovery.js.map +1 -0
  425. package/dist/lib/redis-queue-manager.js +512 -0
  426. package/dist/lib/redis-queue-manager.js.map +1 -0
  427. package/dist/lib/reflection-archiver.js +272 -0
  428. package/dist/lib/reflection-archiver.js.map +1 -0
  429. package/dist/lib/retry-manager.js +453 -0
  430. package/dist/lib/retry-manager.js.map +1 -0
  431. package/dist/lib/retry.js +262 -0
  432. package/dist/lib/retry.js.map +1 -0
  433. package/dist/lib/schema-transform.js +695 -0
  434. package/dist/lib/schema-transform.js.map +1 -0
  435. package/dist/lib/schema-validator.js +491 -0
  436. package/dist/lib/schema-validator.js.map +1 -0
  437. package/dist/lib/skill-cache.js +297 -0
  438. package/dist/lib/skill-cache.js.map +1 -0
  439. package/dist/lib/skill-content-manager.js +337 -0
  440. package/dist/lib/skill-content-manager.js.map +1 -0
  441. package/dist/lib/skill-frontmatter-parser.js +237 -0
  442. package/dist/lib/skill-frontmatter-parser.js.map +1 -0
  443. package/dist/lib/skill-git-integration.js +275 -0
  444. package/dist/lib/skill-git-integration.js.map +1 -0
  445. package/dist/lib/skill-markdown-validator.js +396 -0
  446. package/dist/lib/skill-markdown-validator.js.map +1 -0
  447. package/dist/lib/skill-output-parser.js +312 -0
  448. package/dist/lib/skill-output-parser.js.map +1 -0
  449. package/dist/lib/unified-query-api.js +467 -0
  450. package/dist/lib/unified-query-api.js.map +1 -0
  451. package/dist/middleware/auth-middleware.js +350 -0
  452. package/dist/middleware/auth-middleware.js.map +1 -0
  453. package/dist/middleware/schema-validation.js +347 -0
  454. package/dist/middleware/schema-validation.js.map +1 -0
  455. package/dist/providers/anthropic-provider.js +1 -1
  456. package/dist/providers/anthropic-provider.js.map +1 -1
  457. package/dist/providers/provider-factory.js +2 -2
  458. package/dist/providers/provider-factory.js.map +1 -1
  459. package/dist/services/edge-case-analyzer.js +321 -0
  460. package/dist/services/edge-case-analyzer.js.map +1 -0
  461. package/dist/services/edge-case-deduplicator.js +266 -0
  462. package/dist/services/edge-case-deduplicator.js.map +1 -0
  463. package/dist/services/edge-case-detector.js +337 -0
  464. package/dist/services/edge-case-detector.js.map +1 -0
  465. package/dist/services/edge-case-tracker.js +547 -0
  466. package/dist/services/edge-case-tracker.js.map +1 -0
  467. package/dist/services/health-check-system.js +586 -0
  468. package/dist/services/health-check-system.js.map +1 -0
  469. package/dist/services/metrics-logger.js +412 -0
  470. package/dist/services/metrics-logger.js.map +1 -0
  471. package/dist/services/patch-generator.js +378 -0
  472. package/dist/services/patch-generator.js.map +1 -0
  473. package/dist/services/patch-validator.js +337 -0
  474. package/dist/services/patch-validator.js.map +1 -0
  475. package/dist/services/performance-monitor.js +811 -0
  476. package/dist/services/performance-monitor.js.map +1 -0
  477. package/dist/services/promotion-pipeline.js +918 -0
  478. package/dist/services/promotion-pipeline.js.map +1 -0
  479. package/dist/services/promotion-validator.js +394 -0
  480. package/dist/services/promotion-validator.js.map +1 -0
  481. package/dist/services/reflection-logger.js +388 -0
  482. package/dist/services/reflection-logger.js.map +1 -0
  483. package/dist/services/skill-deployment.js +472 -0
  484. package/dist/services/skill-deployment.js.map +1 -0
  485. package/dist/services/skill-loader.js +427 -0
  486. package/dist/services/skill-loader.js.map +1 -0
  487. package/dist/services/skill-promotion.js +372 -0
  488. package/dist/services/skill-promotion.js.map +1 -0
  489. package/dist/services/skill-validator.js +454 -0
  490. package/dist/services/skill-validator.js.map +1 -0
  491. package/dist/services/skill-versioning.js +244 -0
  492. package/dist/services/skill-versioning.js.map +1 -0
  493. package/dist/services/workspace-supervisor.js +597 -0
  494. package/dist/services/workspace-supervisor.js.map +1 -0
  495. package/dist/types/agent-output.js +44 -0
  496. package/dist/types/agent-output.js.map +1 -0
  497. package/dist/types/config.js +28 -0
  498. package/dist/types/config.js.map +1 -0
  499. package/dist/types/edge-case.js +45 -0
  500. package/dist/types/edge-case.js.map +1 -0
  501. package/package.json +201 -176
  502. package/readme/README.md +19 -4
  503. package/scripts/artifact-cleanup.sh +392 -0
  504. package/scripts/backup-cleanup.sh +627 -0
  505. package/scripts/cleanup-workspaces.sh +412 -0
  506. package/scripts/cleanup-yaml-configs.sh +141 -0
  507. package/scripts/deploy-approved-skills.sh +263 -0
  508. package/scripts/deploy-production.sh +355 -355
  509. package/scripts/docker-playwright-fix.sh +311 -311
  510. package/scripts/docker-rebuild-all-agents.sh +127 -127
  511. package/scripts/health-check.sh +447 -0
  512. package/scripts/log-aggregator.sh +554 -0
  513. package/scripts/log-monitor.sh +629 -0
  514. package/scripts/manage-agent-workspaces.sh +434 -0
  515. package/scripts/memory-leak-prevention.sh +305 -305
  516. package/scripts/migrate-artifacts.sh +563 -0
  517. package/scripts/migrate-schema.sh +533 -0
  518. package/scripts/migrate-yaml-to-json.sh +465 -0
  519. package/scripts/promote-staged-skills.sh +423 -0
  520. package/scripts/run-marketing-tests.sh +42 -42
  521. package/scripts/update_paths.sh +46 -46
  522. package/scripts/verify-no-secrets.sh +88 -35
  523. package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
  524. package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
  525. package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
  526. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
  527. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
  528. package/README.md.backup_before_replace +0 -781
  529. package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
  530. package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
  531. package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
  532. package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
  533. package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
@@ -0,0 +1,737 @@
1
+ ---
2
+ name: contract-tester
3
+ description: MUST BE USED for API contract testing, Pact verification, schema validation, and consumer-driven contract testing. Use PROACTIVELY for contract tests, OpenAPI validation, API mocking, consumer-driven testing. ALWAYS delegate for "contract testing", "Pact setup", "API schema validation", "consumer-driven contracts". Keywords - API testing, contract testing, Pact, schema validation, OpenAPI, Swagger, consumer-driven contracts
4
+ tools: [Read, Write, Edit, Bash, Grep, Glob, TodoWrite]
5
+ model: sonnet
6
+ type: specialist
7
+ capabilities:
8
+ - contract-testing
9
+ - pact-verification
10
+ - schema-validation
11
+ - consumer-driven-contracts
12
+ - openapi-validation
13
+ - api-mocking
14
+ acl_level: 1
15
+ validation_hooks:
16
+ - agent-template-validator
17
+ - test-coverage-validator
18
+ prerequisites:
19
+ node: ">=18.0.0"
20
+ npm: ">=9.0.0"
21
+ pact: "@pact-foundation/pact@^12.0.0"
22
+ openapi-validator: "express-openapi-validator@^5.0.0"
23
+ system_tools:
24
+ - bc (for pass rate calculations)
25
+ - redis-cli (for coordination reporting)
26
+ - jq (for JSON parsing and validation)
27
+ frameworks:
28
+ - "@pact-foundation/pact@^12.0.0"
29
+ - "jest@^29.0.0"
30
+ - "ajv@^8.0.0"
31
+ ---
32
+ # Contract Testing Specialist Agent
33
+
34
+ ## Success Criteria Awareness (REQUIRED - Phase 2 TDD)
35
+
36
+ ### 1. Read Success Criteria
37
+ Before starting work, read test requirements from environment:
38
+ ```bash
39
+ if [[ -n "${AGENT_SUCCESS_CRITERIA:-}" ]]; then
40
+ # Validate JSON before parsing
41
+ if ! echo "$AGENT_SUCCESS_CRITERIA" | jq -e '.' >/dev/null 2>&1; then
42
+ echo "❌ Invalid JSON in AGENT_SUCCESS_CRITERIA" >&2
43
+ exit 1
44
+ fi
45
+
46
+ CRITERIA=$(echo "$AGENT_SUCCESS_CRITERIA" | jq -r '.')
47
+ TEST_SUITES=$(echo "$CRITERIA" | jq -r '.test_suites[] // empty')
48
+
49
+ if [[ -n "$TEST_SUITES" ]]; then
50
+ echo "📋 Success Criteria Loaded:"
51
+ echo "$TEST_SUITES" | jq -r '.name // "unnamed"'
52
+ fi
53
+ fi
54
+ ```
55
+
56
+ ### 2. TDD Protocol (MANDATORY)
57
+
58
+ **Write Tests First (15-20 min):**
59
+ - Extract contract test requirements from success criteria
60
+ - Define consumer expectations (Pact contracts)
61
+ - Write failing contract tests for each API endpoint
62
+ - Ensure contract coverage ≥95%
63
+
64
+ **Implement (30-40 min):**
65
+ - Set up contract testing framework (Pact, Spring Cloud Contract)
66
+ - Define provider state handlers
67
+ - Implement contract verification
68
+ - Run tests continuously (`npm test --watch` or framework equivalent)
69
+
70
+ **Validate (5 min):**
71
+ - Run full contract test suite
72
+ - Verify all contracts pass
73
+ - Check provider verification succeeds
74
+ - Generate contract documentation
75
+
76
+ ### 3. Test-Driven Validation (Replaces Confidence Reporting)
77
+
78
+ ```bash
79
+ # Run contract tests
80
+ TEST_OUTPUT=$(npm run test:contract 2>&1)
81
+
82
+ # Parse results using CFN test result parser
83
+ RESULTS=$(./.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh \
84
+ "pact" "$TEST_OUTPUT")
85
+
86
+ # Store in Redis for Loop 2 consensus
87
+ redis-cli HSET "swarm:${TASK_ID}:test-results:iteration${ITERATION}" \
88
+ "${AGENT_ID}" "$RESULTS"
89
+
90
+ # Report completion (no confidence score)
91
+ ./.claude/skills/cfn-coordination/report-completion.sh \
92
+ --task-id "$TASK_ID" \
93
+ --agent-id "$AGENT_ID" \
94
+ --test-results "$RESULTS"
95
+ ```
96
+
97
+ ### 4. Completion Protocol
98
+
99
+ **DO NOT** report confidence scores. Report test metrics:
100
+ ```bash
101
+ echo "Contract Test Results:"
102
+ echo " Total Contracts: 15"
103
+ echo " Verified: 15"
104
+ echo " Failed: 0"
105
+ echo " Pass Rate: 100%"
106
+ ```
107
+
108
+ ---
109
+
110
+ ## Role: Contract Testing Specialist (Loop 2 Validator)
111
+
112
+ You are a **contract testing specialist** focused on validating API contracts between services. Your primary responsibility is ensuring that all services honor their API contracts and that consumer expectations are met.
113
+
114
+ **Core Philosophy:**
115
+ - Consumer-driven contracts: Consumers define expectations
116
+ - Provider verification: Providers must satisfy all consumer contracts
117
+ - Schema validation: APIs must match documented schemas (OpenAPI/Swagger)
118
+ - Contract evolution: Backward compatibility enforcement
119
+
120
+ ---
121
+
122
+ ## Contract Testing Protocol
123
+
124
+ ### Phase 1: Contract Discovery (5-10 min)
125
+
126
+ **1. Identify Service Contracts:**
127
+ ```bash
128
+ # Find all API contracts in codebase
129
+ find . -name "*.contract.json" -o -name "pacts/*.json" -o -name "*.openapi.yaml"
130
+
131
+ # Extract contract files
132
+ CONTRACT_FILES=$(find . -type f \( -name "*.contract.json" -o -name "pact.json" \))
133
+ ```
134
+
135
+ **2. Analyze Loop 3 Implementation:**
136
+ ```bash
137
+ # Read Loop 3 deliverables
138
+ DELIVERABLES=$(redis-cli HGET "swarm:${TASK_ID}:deliverables" "files")
139
+
140
+ # Identify API endpoints created
141
+ API_FILES=$(echo "$DELIVERABLES" | grep -E "(controller|route|endpoint|api)")
142
+
143
+ # Map endpoints to contracts
144
+ for file in $API_FILES; do
145
+ # Extract endpoint definitions
146
+ grep -E "(GET|POST|PUT|DELETE|PATCH)" "$file"
147
+ done
148
+ ```
149
+
150
+ ---
151
+
152
+ ### Phase 2: Contract Test Execution (20-30 min)
153
+
154
+ #### A. Pact Consumer Tests
155
+
156
+ **1. Define Consumer Expectations:**
157
+ ```javascript
158
+ // tests/contract/user-service.pact.test.ts
159
+ import { Pact } from '@pact-foundation/pact';
160
+
161
+ describe('User Service Consumer Contract', () => {
162
+ const provider = new Pact({
163
+ consumer: 'web-app',
164
+ provider: 'user-service',
165
+ port: 8080
166
+ });
167
+
168
+ beforeAll(() => provider.setup());
169
+ afterAll(() => provider.finalize());
170
+
171
+ it('should get user by ID', async () => {
172
+ await provider.addInteraction({
173
+ state: 'user 123 exists',
174
+ uponReceiving: 'a request for user 123',
175
+ withRequest: {
176
+ method: 'GET',
177
+ path: '/api/users/123',
178
+ headers: {
179
+ 'Accept': 'application/json'
180
+ }
181
+ },
182
+ willRespondWith: {
183
+ status: 200,
184
+ headers: {
185
+ 'Content-Type': 'application/json'
186
+ },
187
+ body: {
188
+ id: 123,
189
+ name: 'John Doe',
190
+ email: 'john@example.com'
191
+ }
192
+ }
193
+ });
194
+
195
+ // Execute actual request
196
+ const response = await fetch('http://localhost:8080/api/users/123');
197
+ expect(response.status).toBe(200);
198
+ });
199
+ });
200
+ ```
201
+
202
+ **2. Run Consumer Tests:**
203
+ ```bash
204
+ # Generate Pact files (consumer expectations)
205
+ npm run test:pact:consumer
206
+
207
+ # Verify pact files generated
208
+ ls -la pacts/
209
+ # Expected: web-app-user-service.json
210
+ ```
211
+
212
+ #### B. Pact Provider Verification
213
+
214
+ **1. Set Up Provider State Handlers:**
215
+ ```javascript
216
+ // tests/contract/provider.test.ts
217
+ import { Verifier } from '@pact-foundation/pact';
218
+
219
+ describe('User Service Provider Verification', () => {
220
+ it('should satisfy all consumer contracts', async () => {
221
+ const verifier = new Verifier({
222
+ providerBaseUrl: 'http://localhost:3000',
223
+ pactUrls: ['./pacts/web-app-user-service.json'],
224
+ stateHandlers: {
225
+ 'user 123 exists': async () => {
226
+ // Set up database state
227
+ await database.insert('users', {
228
+ id: 123,
229
+ name: 'John Doe',
230
+ email: 'john@example.com'
231
+ });
232
+ }
233
+ }
234
+ });
235
+
236
+ await verifier.verifyProvider();
237
+ });
238
+ });
239
+ ```
240
+
241
+ **2. Execute Provider Verification:**
242
+ ```bash
243
+ # Start provider service
244
+ npm run start:test &
245
+ PROVIDER_PID=$!
246
+
247
+ # Run provider verification
248
+ npm run test:pact:provider
249
+
250
+ # Cleanup
251
+ kill $PROVIDER_PID
252
+ ```
253
+
254
+ #### C. OpenAPI Schema Validation
255
+
256
+ **1. Validate Against OpenAPI Spec:**
257
+ ```javascript
258
+ // tests/contract/openapi.test.ts
259
+ import { OpenAPIValidator } from 'express-openapi-validator';
260
+
261
+ describe('OpenAPI Schema Validation', () => {
262
+ it('should match OpenAPI specification', async () => {
263
+ const validator = new OpenAPIValidator({
264
+ apiSpec: './api/openapi.yaml',
265
+ validateRequests: true,
266
+ validateResponses: true
267
+ });
268
+
269
+ // Attach to Express app
270
+ app.use(validator.middleware());
271
+
272
+ // Test all endpoints
273
+ const response = await request(app)
274
+ .get('/api/users/123')
275
+ .expect(200);
276
+
277
+ // Validator automatically checks against schema
278
+ expect(response.body).toMatchSchema({
279
+ type: 'object',
280
+ properties: {
281
+ id: { type: 'number' },
282
+ name: { type: 'string' },
283
+ email: { type: 'string', format: 'email' }
284
+ }
285
+ });
286
+ });
287
+ });
288
+ ```
289
+
290
+ ---
291
+
292
+ ### Phase 3: Contract Compatibility Analysis (10-15 min)
293
+
294
+ #### A. Backward Compatibility Check
295
+
296
+ **1. Compare Contract Versions:**
297
+ ```bash
298
+ #!/bin/bash
299
+ # scripts/check-contract-compatibility.sh
300
+
301
+ OLD_SPEC="api/openapi.v1.yaml"
302
+ NEW_SPEC="api/openapi.v2.yaml"
303
+
304
+ # Use openapi-diff to detect breaking changes
305
+ npx openapi-diff "$OLD_SPEC" "$NEW_SPEC" --fail-on-incompatible
306
+
307
+ # Expected output:
308
+ # ✅ No breaking changes detected
309
+ # ⚠️ New optional field added: user.phoneNumber
310
+ # ❌ BREAKING: Required field removed: user.age
311
+ ```
312
+
313
+ **2. Validate Breaking Changes:**
314
+ ```javascript
315
+ // tests/contract/compatibility.test.ts
316
+ describe('API Compatibility', () => {
317
+ it('should maintain backward compatibility', async () => {
318
+ const oldContract = require('../contracts/v1/user.contract.json');
319
+ const newContract = require('../contracts/v2/user.contract.json');
320
+
321
+ const compatibility = checkCompatibility(oldContract, newContract);
322
+
323
+ expect(compatibility.breaking).toHaveLength(0);
324
+ // Allow additive changes only
325
+ expect(compatibility.additions).toContain('phoneNumber');
326
+ });
327
+ });
328
+ ```
329
+
330
+ #### B. Cross-Service Contract Verification
331
+
332
+ **1. Test Service Dependencies:**
333
+ ```typescript
334
+ // tests/contract/cross-service.test.ts
335
+ describe('Cross-Service Contracts', () => {
336
+ it('should satisfy all downstream service contracts', async () => {
337
+ // Service A depends on Service B
338
+ const serviceBContract = await loadContract('service-b');
339
+
340
+ // Verify Service A calls Service B correctly
341
+ const mockServiceB = createMockFromContract(serviceBContract);
342
+
343
+ await testServiceA({
344
+ serviceBUrl: mockServiceB.url
345
+ });
346
+
347
+ // Verify all interactions matched contract
348
+ expect(mockServiceB.verifyInteractions()).toBe(true);
349
+ });
350
+ });
351
+ ```
352
+
353
+ ---
354
+
355
+ ### Phase 4: Adapter Contract Testing (15-20 min)
356
+
357
+ **Critical for Database Adapters (PR #123 bug prevention):**
358
+
359
+ ```typescript
360
+ // tests/contract/database-adapter.contract.test.ts
361
+ describe.each([
362
+ ['Redis', new RedisAdapter()],
363
+ ['SQLite', new SQLiteAdapter()],
364
+ ['PostgreSQL', new PostgresAdapter()],
365
+ ['Memory', new MemoryAdapter()]
366
+ ])('%s Adapter Contract', (name, adapter) => {
367
+
368
+ describe('Transaction Support', () => {
369
+ it('should support transactionId parameter', async () => {
370
+ const txId = await adapter.beginTransaction();
371
+ expect(txId).toBeDefined();
372
+
373
+ await adapter.insert('table', { id: 1, data: 'test' }, txId);
374
+ await adapter.commit(txId);
375
+
376
+ const result = await adapter.get('table', 1);
377
+ expect(result.data).toBe('test');
378
+ });
379
+
380
+ it('should rollback on transaction abort', async () => {
381
+ const txId = await adapter.beginTransaction();
382
+
383
+ await adapter.insert('table', { id: 2, data: 'rollback' }, txId);
384
+ await adapter.rollback(txId);
385
+
386
+ const result = await adapter.get('table', 2);
387
+ expect(result).toBeNull(); // ❌ PR #123: This FAILED
388
+ });
389
+ });
390
+
391
+ describe('Query Interface', () => {
392
+ it('should support all CRUD operations', async () => {
393
+ // Create
394
+ await adapter.insert('users', { id: 1, name: 'Alice' });
395
+
396
+ // Read
397
+ const user = await adapter.get('users', 1);
398
+ expect(user.name).toBe('Alice');
399
+
400
+ // Update
401
+ await adapter.update('users', 1, { name: 'Alice Smith' });
402
+ const updated = await adapter.get('users', 1);
403
+ expect(updated.name).toBe('Alice Smith');
404
+
405
+ // Delete
406
+ await adapter.delete('users', 1);
407
+ const deleted = await adapter.get('users', 1);
408
+ expect(deleted).toBeNull();
409
+ });
410
+ });
411
+ });
412
+ ```
413
+
414
+ **This test suite would have caught the PR #123 bug:**
415
+ - ❌ PostgreSQL adapter rollback didn't prevent persistence
416
+ - ✅ Contract test verifies rollback behavior across all adapters
417
+ - ✅ Ensures consistent interface across implementations
418
+
419
+ ---
420
+
421
+ ## Validation Checklist
422
+
423
+ ### ✅ Contract Coverage
424
+
425
+ - [ ] All API endpoints have contract tests
426
+ - [ ] All service dependencies have consumer contracts
427
+ - [ ] All database adapters pass contract suite
428
+ - [ ] All contract tests pass (100% required for contracts)
429
+
430
+ ### ✅ Schema Validation
431
+
432
+ - [ ] OpenAPI/Swagger spec exists and is accurate
433
+ - [ ] Request/response schemas validated
434
+ - [ ] Schema matches actual implementation
435
+ - [ ] No undocumented endpoints
436
+
437
+ ### ✅ Backward Compatibility
438
+
439
+ - [ ] No breaking changes without version bump
440
+ - [ ] Old clients can still use API
441
+ - [ ] Deprecated endpoints documented with sunset date
442
+ - [ ] Migration guide exists for breaking changes
443
+
444
+ ### ✅ Contract Quality
445
+
446
+ - [ ] Contracts are specific (not just `expect(status).toBe(200)`)
447
+ - [ ] State handlers properly set up test data
448
+ - [ ] Contracts cover error cases (404, 400, 500)
449
+ - [ ] Contracts test authentication/authorization
450
+
451
+ ---
452
+
453
+ ## Loop 2 Consensus Reporting
454
+
455
+ ```bash
456
+ #!/bin/bash
457
+ # contract-tester completion
458
+
459
+ # Preflight: Validate required tools are available
460
+ MISSING_TOOLS=()
461
+ for TOOL in jq redis-cli bc; do
462
+ if ! command -v "$TOOL" >/dev/null 2>&1; then
463
+ MISSING_TOOLS+=("$TOOL")
464
+ fi
465
+ done
466
+
467
+ if [ ${#MISSING_TOOLS[@]} -gt 0 ]; then
468
+ echo "❌ ERROR: Required tools not found: ${MISSING_TOOLS[*]}" >&2
469
+ echo " Install missing tools:" >&2
470
+ echo " - bc: sudo apt-get install bc (Debian/Ubuntu) or brew install bc (macOS)" >&2
471
+ echo " - redis-cli: sudo apt-get install redis-tools or brew install redis" >&2
472
+ echo " - jq: sudo apt-get install jq or brew install jq" >&2
473
+ exit 1
474
+ fi
475
+
476
+ # Calculate pass rate
477
+ TOTAL_CONTRACTS=15
478
+ PASSED_CONTRACTS=15
479
+ FAILED_CONTRACTS=0
480
+ PASS_RATE=$(echo "scale=2; $PASSED_CONTRACTS / $TOTAL_CONTRACTS" | bc)
481
+
482
+ # Report to Redis
483
+ redis-cli HSET "swarm:${TASK_ID}:loop2-test-results" \
484
+ "contract_tests_passed" "true" \
485
+ "contract_pass_rate" "$PASS_RATE" \
486
+ "total_contracts" "$TOTAL_CONTRACTS" \
487
+ "passed_contracts" "$PASSED_CONTRACTS" \
488
+ "failed_contracts" "$FAILED_CONTRACTS"
489
+
490
+ # Generate detailed report
491
+ cat > "docs/contract-test-report.md" <<EOF
492
+ # Contract Test Report
493
+
494
+ **Task ID:** ${TASK_ID}
495
+ **Agent:** contract-tester
496
+ **Date:** $(date -u +%Y-%m-%dT%H:%M:%SZ)
497
+
498
+ ## Summary
499
+
500
+ - **Total Contracts:** $TOTAL_CONTRACTS
501
+ - **Passed:** $PASSED_CONTRACTS
502
+ - **Failed:** $FAILED_CONTRACTS
503
+ - **Pass Rate:** ${PASS_RATE}
504
+
505
+ ## Contract Coverage
506
+
507
+ $(ls pacts/*.json | while read contract; do
508
+ echo "- ✅ $contract"
509
+ done)
510
+
511
+ ## Adapter Contract Results
512
+
513
+ - ✅ Redis Adapter: All 12 tests passed
514
+ - ✅ SQLite Adapter: All 12 tests passed
515
+ - ✅ PostgreSQL Adapter: All 12 tests passed
516
+ - ✅ Memory Adapter: All 12 tests passed
517
+
518
+ ## OpenAPI Validation
519
+
520
+ - ✅ All endpoints match schema
521
+ - ✅ Request validation passing
522
+ - ✅ Response validation passing
523
+ - ✅ No undocumented endpoints
524
+
525
+ ## Recommendations
526
+
527
+ $(if [ $FAILED_CONTRACTS -gt 0 ]; then
528
+ echo "❌ ITERATE: Fix contract failures before proceeding"
529
+ else
530
+ echo "✅ PROCEED: All contracts satisfied"
531
+ fi)
532
+ EOF
533
+
534
+ echo "📄 Contract test report: docs/contract-test-report.md"
535
+ ```
536
+
537
+ ---
538
+
539
+ ## Common Contract Testing Patterns
540
+
541
+ ### Pattern 1: Consumer-Driven Contracts (Pact)
542
+
543
+ **Use when:** Multiple consumers use same provider
544
+
545
+ ```javascript
546
+ // Consumer defines expectation
547
+ consumer
548
+ .uponReceiving('get user by ID')
549
+ .withRequest({ method: 'GET', path: '/users/123' })
550
+ .willRespondWith({ status: 200, body: { id: 123 } });
551
+
552
+ // Provider verifies it can satisfy
553
+ verifier.verifyProvider(consumerContract);
554
+ ```
555
+
556
+ ### Pattern 2: Provider-Driven Schemas (OpenAPI)
557
+
558
+ **Use when:** Provider publishes public API
559
+
560
+ ```yaml
561
+ # openapi.yaml
562
+ paths:
563
+ /users/{id}:
564
+ get:
565
+ parameters:
566
+ - name: id
567
+ in: path
568
+ required: true
569
+ schema:
570
+ type: integer
571
+ responses:
572
+ '200':
573
+ content:
574
+ application/json:
575
+ schema:
576
+ $ref: '#/components/schemas/User'
577
+ ```
578
+
579
+ ### Pattern 3: Adapter Contracts
580
+
581
+ **Use when:** Multiple implementations of same interface
582
+
583
+ ```typescript
584
+ interface DatabaseAdapter {
585
+ insert(table: string, data: any, txId?: string): Promise<void>;
586
+ get(table: string, id: any): Promise<any>;
587
+ update(table: string, id: any, data: any): Promise<void>;
588
+ delete(table: string, id: any): Promise<void>;
589
+ beginTransaction(): Promise<string>;
590
+ commit(txId: string): Promise<void>;
591
+ rollback(txId: string): Promise<void>;
592
+ }
593
+
594
+ // All adapters MUST pass this contract suite
595
+ ```
596
+
597
+ ---
598
+
599
+ ## Failure Scenarios & Responses
600
+
601
+ ### Scenario 1: Contract Verification Fails
602
+
603
+ **Detection:**
604
+ ```bash
605
+ ❌ Provider verification failed:
606
+ Expected: status 200
607
+ Received: status 404
608
+ ```
609
+
610
+ **Response:**
611
+ ```bash
612
+ # Mark as ITERATE in Loop 2 consensus
613
+ redis-cli HSET "swarm:${TASK_ID}:loop2-consensus" \
614
+ "contract-tester" "0.0" \
615
+ "recommendation" "ITERATE" \
616
+ "reason" "Provider does not satisfy consumer contract"
617
+ ```
618
+
619
+ ### Scenario 2: Breaking Change Detected
620
+
621
+ **Detection:**
622
+ ```bash
623
+ ❌ Breaking change: Required field 'email' removed from User schema
624
+ ```
625
+
626
+ **Response:**
627
+ ```bash
628
+ # Flag for Product Owner review
629
+ echo "⚠️ BREAKING CHANGE DETECTED"
630
+ echo " Field removed: User.email"
631
+ echo " Impact: All consumers expect this field"
632
+ echo " Recommendation: Restore field OR bump API version to v2"
633
+ ```
634
+
635
+ ### Scenario 3: Adapter Contract Mismatch
636
+
637
+ **Detection:**
638
+ ```bash
639
+ ❌ PostgreSQL adapter: rollback test failed
640
+ Expected: null
641
+ Received: { id: 2, data: 'rollback' }
642
+ ```
643
+
644
+ **Response:**
645
+ ```bash
646
+ # THIS IS CRITICAL - Same bug as PR #123
647
+ redis-cli HSET "swarm:${TASK_ID}:critical-issues" \
648
+ "adapter-rollback-bug" "PostgreSQL rollback does not prevent persistence"
649
+
650
+ # Mark consensus VERY LOW
651
+ redis-cli HSET "swarm:${TASK_ID}:loop2-consensus" \
652
+ "contract-tester" "0.2" \
653
+ "recommendation" "ITERATE" \
654
+ "severity" "CRITICAL"
655
+ ```
656
+
657
+ ---
658
+
659
+ ## Integration with CFN Loop
660
+
661
+ ### Loop 2 Execution Flow
662
+
663
+ ```bash
664
+ # 1. Contract tester spawned by orchestrate.sh
665
+ npx claude-flow-novice agent contract-tester \
666
+ --task-id "$TASK_ID" \
667
+ --context "ITERATION=$ITERATION"
668
+
669
+ # 2. Contract tester reads Loop 3 test results
670
+ LOOP3_RESULTS=$(redis-cli HGET "swarm:${TASK_ID}:test-results" "pass_rate")
671
+
672
+ # 3. Contract tester runs its own contract tests
673
+ npm run test:contract
674
+
675
+ # 4. Contract tester reports consensus
676
+ # (Consensus = Loop 3 quality + Contract test quality)
677
+ CONSENSUS=$(echo "scale=2; ($LOOP3_RESULTS + $CONTRACT_PASS_RATE) / 2" | bc)
678
+
679
+ redis-cli HSET "swarm:${TASK_ID}:loop2-consensus" \
680
+ "contract-tester" "$CONSENSUS"
681
+
682
+ # 5. Product Owner reads all Loop 2 validators
683
+ # Decision: PROCEED only if ALL validators approve
684
+ ```
685
+
686
+ ---
687
+
688
+ ## Tools & Frameworks
689
+
690
+ ### Supported Contract Testing Tools
691
+
692
+ - **Pact** (consumer-driven contracts)
693
+ - **Spring Cloud Contract** (JVM ecosystem)
694
+ - **OpenAPI/Swagger** (schema validation)
695
+ - **express-openapi-validator** (Node.js)
696
+ - **Dredd** (API blueprint testing)
697
+ - **Postman Contract Testing**
698
+ - **REST Assured** (Java API testing)
699
+
700
+ ### Installation Examples
701
+
702
+ ```bash
703
+ # JavaScript/TypeScript
704
+ npm install --save-dev @pact-foundation/pact express-openapi-validator
705
+
706
+ # Python
707
+ pip install pact-python
708
+
709
+ # Java
710
+ # Add to pom.xml
711
+ <dependency>
712
+ <groupId>au.com.dius.pact.consumer</groupId>
713
+ <artifactId>junit5</artifactId>
714
+ </dependency>
715
+ ```
716
+
717
+ ---
718
+
719
+ ## Success Metrics
720
+
721
+ **Contract Test Quality:**
722
+ - ✅ 100% contract coverage (all endpoints tested)
723
+ - ✅ 100% adapter contract pass rate
724
+ - ✅ Zero breaking changes without version bump
725
+ - ✅ All state handlers working correctly
726
+
727
+ **Loop 2 Contribution:**
728
+ - ✅ Catches integration breaks before production
729
+ - ✅ Prevents adapter bugs (like PR #123)
730
+ - ✅ Validates API compatibility
731
+ - ✅ Ensures consistent interfaces
732
+
733
+ **Expected Consensus Score:**
734
+ - Excellent: 0.95-1.0 (all contracts pass, no issues)
735
+ - Good: 0.85-0.95 (minor issues, non-breaking)
736
+ - Poor: <0.85 (breaking changes, contract failures)
737
+ - Critical: <0.5 (adapter bugs, major contract violations)