claude-flow-novice 2.9.1 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/.claude/agents/cfn-dev-team/CLAUDE.md +1086 -0
  2. package/.claude/agents/cfn-dev-team/README.md +116 -0
  3. package/.claude/agents/cfn-dev-team/architecture/api-designer-persona.md +149 -0
  4. package/.claude/agents/cfn-dev-team/architecture/base-template-generator.md +196 -0
  5. package/.claude/agents/cfn-dev-team/architecture/goal-planner.md +183 -0
  6. package/.claude/agents/cfn-dev-team/architecture/planner.md +182 -0
  7. package/.claude/agents/cfn-dev-team/architecture/system-architect.md +162 -0
  8. package/.claude/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +540 -0
  9. package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +20 -14
  10. package/.claude/agents/cfn-dev-team/coordinators/consensus-builder.md +167 -0
  11. package/.claude/agents/cfn-dev-team/dev-ops/devops-engineer.md +148 -0
  12. package/.claude/agents/cfn-dev-team/dev-ops/github-commit-agent.md +118 -0
  13. package/.claude/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +540 -0
  14. package/.claude/agents/cfn-dev-team/developers/backend-dev.md +20 -0
  15. package/.claude/agents/cfn-dev-team/developers/data/data-engineer.md +585 -0
  16. package/.claude/agents/cfn-dev-team/developers/database/database-architect.md +276 -0
  17. package/.claude/agents/cfn-dev-team/developers/dev-backend-api.md +147 -0
  18. package/.claude/agents/cfn-dev-team/developers/frontend/mobile-dev.md +218 -0
  19. package/.claude/agents/cfn-dev-team/developers/{react-frontend-engineer.md → frontend/react-frontend-engineer.md} +53 -5
  20. package/.claude/agents/cfn-dev-team/developers/frontend/spec-mobile-react-native.md +199 -0
  21. package/.claude/agents/cfn-dev-team/developers/graphql-specialist.md +615 -0
  22. package/.claude/agents/cfn-dev-team/developers/rust-developer.md +174 -0
  23. package/.claude/agents/cfn-dev-team/documentation/README-VALIDATION.md +243 -0
  24. package/.claude/agents/cfn-dev-team/documentation/agent-type-guidelines.md +465 -0
  25. package/.claude/agents/cfn-dev-team/documentation/api-docs.md +103 -0
  26. package/.claude/agents/cfn-dev-team/documentation/docs-api-openapi.md +98 -0
  27. package/.claude/agents/cfn-dev-team/documentation/pseudocode.md +159 -0
  28. package/.claude/agents/cfn-dev-team/documentation/specification.md +157 -0
  29. package/.claude/agents/cfn-dev-team/product-owners/accessibility-advocate-persona.md +109 -0
  30. package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/cto-agent.md +8 -6
  31. package/.claude/agents/cfn-dev-team/product-owners/power-user-persona.md +190 -0
  32. package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner.md +85 -59
  33. package/.claude/agents/cfn-dev-team/reviewers/quality/analyze-code-quality.md +141 -0
  34. package/.claude/agents/cfn-dev-team/reviewers/quality/code-analyzer.md +200 -0
  35. package/.claude/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +321 -0
  36. package/.claude/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +238 -0
  37. package/.claude/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +101 -0
  38. package/.claude/agents/cfn-dev-team/reviewers/quality/quality-metrics.md +375 -0
  39. package/.claude/agents/cfn-dev-team/reviewers/quality/security-specialist.md +193 -0
  40. package/.claude/agents/cfn-dev-team/reviewers/reviewer.md +39 -0
  41. package/.claude/agents/cfn-dev-team/testers/interaction-tester.md +31 -0
  42. package/.claude/agents/cfn-dev-team/testers/load-testing-specialist.md +469 -0
  43. package/.claude/agents/cfn-dev-team/testers/playwright-tester.md +24 -0
  44. package/.claude/agents/cfn-dev-team/testers/tester.md +20 -0
  45. package/.claude/agents/cfn-dev-team/utility/agent-builder.md +151 -0
  46. package/.claude/agents/cfn-dev-team/utility/analyst.md +178 -0
  47. package/.claude/agents/cfn-dev-team/utility/claude-code-expert.md +1043 -0
  48. package/.claude/agents/cfn-dev-team/utility/code-booster.md +139 -0
  49. package/.claude/agents/cfn-dev-team/utility/context-curator.md +99 -0
  50. package/.claude/agents/cfn-dev-team/{developers → utility}/researcher.md +6 -4
  51. package/.claude/commands/cfn/CFN_LOOP_FRONTEND.md +741 -0
  52. package/.claude/commands/cfn/CFN_LOOP_TASK_MODE.md +353 -0
  53. package/.claude/commands/cfn/cfn-loop-frontend.md +555 -0
  54. package/.claude/commands/cfn/cfn-loop.md +168 -7
  55. package/{CFN-CLAUDE.md → .claude/root-claude-distribute/CFN-CLAUDE.md} +23 -3
  56. package/.claude/skills/cfn-ace-system/SKILL.md +364 -0
  57. package/.claude/skills/cfn-ace-system/add-bullet.sh +145 -0
  58. package/.claude/skills/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +56 -0
  59. package/.claude/skills/cfn-ace-system/classify-task.sh +18 -0
  60. package/.claude/skills/cfn-ace-system/export-ace-metrics.sh +48 -0
  61. package/.claude/skills/cfn-ace-system/extract-tags.sh +385 -0
  62. package/.claude/skills/cfn-ace-system/format-negative-context.sh +180 -0
  63. package/.claude/skills/cfn-ace-system/init-indexes.sql +160 -0
  64. package/.claude/skills/cfn-ace-system/invoke-context-curate.sh +192 -0
  65. package/.claude/skills/cfn-ace-system/invoke-context-inject.sh +361 -0
  66. package/.claude/skills/cfn-ace-system/invoke-context-query.sh +139 -0
  67. package/.claude/skills/cfn-ace-system/invoke-context-reflect.sh +343 -0
  68. package/.claude/skills/cfn-ace-system/invoke-context-stats.sh +227 -0
  69. package/.claude/skills/cfn-ace-system/log-merge.sh +67 -0
  70. package/.claude/skills/cfn-ace-system/monitor-injection-performance.sh +138 -0
  71. package/.claude/skills/cfn-ace-system/optimize-injection-pipeline.sh +169 -0
  72. package/.claude/skills/cfn-ace-system/query-anti-patterns.sh +276 -0
  73. package/.claude/skills/cfn-ace-system/query-contexts.sh +150 -0
  74. package/.claude/skills/cfn-ace-system/query-reflections.sh +35 -0
  75. package/.claude/skills/cfn-ace-system/schema/001-create-context-reflections.sql +237 -0
  76. package/.claude/skills/cfn-ace-system/schema/README.md +723 -0
  77. package/.claude/skills/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +564 -0
  78. package/.claude/skills/cfn-ace-system/schema/populate-test-data-simple.sh +62 -0
  79. package/.claude/skills/cfn-ace-system/schema/populate-test-data.sh +247 -0
  80. package/.claude/skills/cfn-ace-system/schema/run-migration.sh +231 -0
  81. package/.claude/skills/cfn-ace-system/schema/validate-schema.sql +280 -0
  82. package/.claude/skills/cfn-ace-system/score-relevance-adapter.sh +138 -0
  83. package/.claude/skills/cfn-ace-system/score-relevance.sh +253 -0
  84. package/.claude/skills/cfn-ace-system/sprint-7-lessons.json +46 -0
  85. package/.claude/skills/cfn-ace-system/store-reflection.sh +46 -0
  86. package/.claude/skills/cfn-ace-system/test-ace-skill.sh +312 -0
  87. package/.claude/skills/cfn-ace-system/track-ab-test.sh +42 -0
  88. package/.claude/skills/cfn-ace-system/update-reflection.sh +41 -0
  89. package/.claude/skills/cfn-agent-discovery/SKILL.md +40 -0
  90. package/.claude/skills/cfn-agent-discovery/agents-registry-clean.json +0 -0
  91. package/.claude/skills/cfn-agent-discovery/agents-registry-fixed.json +19 -0
  92. package/.claude/skills/cfn-agent-discovery/agents-registry.json +718 -0
  93. package/.claude/skills/cfn-agent-discovery/discover-agents.py +184 -0
  94. package/.claude/skills/cfn-agent-discovery/discover-agents.sh +87 -0
  95. package/.claude/skills/cfn-agent-discovery/invoke-registry.sh +11 -0
  96. package/.claude/skills/cfn-agent-discovery/temp_script.py +0 -0
  97. package/.claude/skills/cfn-agent-execution/execute-agent.sh +126 -0
  98. package/.claude/skills/cfn-agent-output-processing/SKILL.md +359 -0
  99. package/.claude/skills/cfn-agent-selector/SKILL.md +90 -0
  100. package/.claude/skills/cfn-agent-selector/select-agents.sh +112 -0
  101. package/.claude/skills/cfn-agent-spawning/SKILL.md +135 -0
  102. package/.claude/skills/cfn-agent-spawning/agent-selection-guide.md +814 -0
  103. package/.claude/skills/cfn-agent-spawning/check-dependencies.sh +30 -0
  104. package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +263 -0
  105. package/.claude/skills/cfn-agent-spawning/spawn-templates.sh +613 -0
  106. package/.claude/skills/cfn-analytics/description-refinement-guide.md +164 -0
  107. package/.claude/skills/cfn-analytics/log-skill-invocation.js +122 -0
  108. package/.claude/skills/cfn-analytics/run-production-criteria-tests.sh +126 -0
  109. package/.claude/skills/cfn-analytics/skill-analytics-dashboard.js +113 -0
  110. package/.claude/skills/cfn-analytics/skill-invocation-hook.sh +28 -0
  111. package/.claude/skills/cfn-analytics/skill-invocations.sql +58 -0
  112. package/.claude/skills/cfn-analytics/test-corpus.json +32 -0
  113. package/.claude/skills/cfn-analytics/test-data-generator.js +115 -0
  114. package/.claude/skills/cfn-analytics/test-manual-override-rate.js +285 -0
  115. package/.claude/skills/cfn-analytics/validate-skill-selection.js +188 -0
  116. package/.claude/skills/cfn-config-management/SKILL.md +34 -0
  117. package/.claude/skills/cfn-config-management/check-dependencies.sh +56 -0
  118. package/.claude/skills/cfn-config-management/config.json +32 -0
  119. package/.claude/skills/cfn-config-management/manage-config.sh +113 -0
  120. package/.claude/skills/cfn-event-bus/SKILL.md +412 -0
  121. package/.claude/skills/cfn-event-bus/config.json +111 -0
  122. package/.claude/skills/cfn-event-bus/eventbus-wrapper.cjs +69 -0
  123. package/.claude/skills/cfn-event-bus/invoke-event-publish.sh +147 -0
  124. package/.claude/skills/cfn-event-bus/invoke-event-subscribe.sh +171 -0
  125. package/.claude/skills/cfn-event-bus/invoke-lifecycle-track.sh +201 -0
  126. package/.claude/skills/cfn-event-bus/test-event-bus.sh +280 -0
  127. package/.claude/skills/cfn-fleet-manager/SKILL.md +412 -0
  128. package/.claude/skills/cfn-fleet-manager/config.json +60 -0
  129. package/.claude/skills/cfn-fleet-manager/invoke-fleet-allocate.sh +182 -0
  130. package/.claude/skills/cfn-fleet-manager/invoke-fleet-balance.sh +239 -0
  131. package/.claude/skills/cfn-fleet-manager/invoke-fleet-metrics.sh +193 -0
  132. package/.claude/skills/cfn-fleet-manager/invoke-fleet-register.sh +124 -0
  133. package/.claude/skills/cfn-fleet-manager/test-fleet-manager.sh +345 -0
  134. package/.claude/skills/cfn-hook-pipeline/SKILL.md +148 -0
  135. package/.claude/skills/cfn-hook-pipeline/auto-resolve.sh +66 -0
  136. package/.claude/skills/cfn-hook-pipeline/check-dependencies.sh +40 -0
  137. package/.claude/skills/cfn-hook-pipeline/feedback-resolver.sh +452 -0
  138. package/.claude/skills/cfn-hook-pipeline/post-edit-handler.sh +154 -0
  139. package/.claude/skills/cfn-hook-pipeline/security-scan.json +60 -0
  140. package/.claude/skills/cfn-hook-pipeline/security-scanner.sh +121 -0
  141. package/.claude/skills/cfn-hook-pipeline/test-root-warning-resolution.sh +148 -0
  142. package/.claude/skills/cfn-hybrid-routing/SKILL.md +46 -0
  143. package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +52 -0
  144. package/.claude/skills/cfn-hybrid-routing/config.json +26 -0
  145. package/.claude/skills/cfn-hybrid-routing/spawn-worker.sh +44 -0
  146. package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
  147. package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
  148. package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
  149. package/.claude/skills/cfn-loop-orchestration/helpers/context-injection.sh +142 -0
  150. package/.claude/skills/cfn-loop-orchestration/helpers/context-lookup.sh +359 -0
  151. package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
  152. package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
  153. package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
  154. package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +271 -0
  155. package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
  156. package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
  157. package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
  158. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +884 -0
  159. package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +840 -0
  160. package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
  161. package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
  162. package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
  163. package/.claude/skills/cfn-loop-validation/SKILL.md +353 -0
  164. package/.claude/skills/cfn-loop-validation/check-dependencies.sh +31 -0
  165. package/.claude/skills/cfn-loop-validation/config.json +161 -0
  166. package/.claude/skills/cfn-loop-validation/consensus-calculator.js +477 -0
  167. package/.claude/skills/cfn-loop-validation/evidence-chain.sql +163 -0
  168. package/.claude/skills/cfn-loop-validation/examples/README.md +453 -0
  169. package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +234 -0
  170. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +132 -0
  171. package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +115 -0
  172. package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +186 -0
  173. package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -0
  174. package/.claude/skills/cfn-loop-validation/validate-iteration.sh +134 -0
  175. package/.claude/skills/cfn-process-lifecycle/SKILL.md +39 -0
  176. package/.claude/skills/cfn-process-lifecycle/check-dependencies.sh +58 -0
  177. package/.claude/skills/cfn-process-lifecycle/config.json +39 -0
  178. package/.claude/skills/cfn-process-lifecycle/process-manager.sh +144 -0
  179. package/.claude/skills/cfn-product-owner-decision/SKILL.md +332 -0
  180. package/.claude/skills/cfn-product-owner-decision/execute-decision.sh +176 -0
  181. package/.claude/skills/cfn-product-owner-decision/parse-decision.sh +66 -0
  182. package/.claude/skills/cfn-product-owner-decision/validate-deliverables.sh +82 -0
  183. package/.claude/skills/cfn-redis-coordination/AGENT_LOGGING.md +280 -0
  184. package/.claude/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +209 -0
  185. package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +57 -0
  186. package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +267 -0
  187. package/.claude/skills/cfn-redis-coordination/LOGGING.md +260 -0
  188. package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +25 -0
  189. package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +164 -0
  190. package/.claude/skills/cfn-redis-coordination/SKILL.md +720 -0
  191. package/.claude/skills/cfn-redis-coordination/agent-log.sh +124 -0
  192. package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +75 -0
  193. package/.claude/skills/cfn-redis-coordination/analyze-task-complexity.sh +277 -0
  194. package/.claude/skills/cfn-redis-coordination/cancel-swarm.sh +221 -0
  195. package/.claude/skills/cfn-redis-coordination/cfn-loop-exec.sh +468 -0
  196. package/.claude/skills/cfn-redis-coordination/cfn-loop-relaunch.sh +29 -0
  197. package/.claude/skills/cfn-redis-coordination/check-dependencies.sh +32 -0
  198. package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +179 -0
  199. package/.claude/skills/cfn-redis-coordination/collect-results.sh +75 -0
  200. package/.claude/skills/cfn-redis-coordination/complete-swarm.sh +75 -0
  201. package/.claude/skills/cfn-redis-coordination/config.json +61 -0
  202. package/.claude/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
  203. package/.claude/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +82 -0
  204. package/.claude/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +274 -0
  205. package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +276 -0
  206. package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +129 -0
  207. package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +320 -0
  208. package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +249 -0
  209. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +148 -0
  210. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +163 -0
  211. package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +138 -0
  212. package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +81 -0
  213. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +45 -0
  214. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +68 -0
  215. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +56 -0
  216. package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +81 -0
  217. package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +57 -0
  218. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +187 -0
  219. package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +160 -0
  220. package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +97 -0
  221. package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +97 -0
  222. package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +59 -0
  223. package/.claude/skills/cfn-redis-coordination/examples/README.md +73 -0
  224. package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +352 -0
  225. package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +127 -0
  226. package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +171 -0
  227. package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +227 -0
  228. package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +239 -0
  229. package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +258 -0
  230. package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +177 -0
  231. package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +137 -0
  232. package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +106 -0
  233. package/.claude/skills/cfn-redis-coordination/heartbeat.sh +126 -0
  234. package/.claude/skills/cfn-redis-coordination/init-swarm.sh +148 -0
  235. package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +220 -0
  236. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +283 -0
  237. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
  238. package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +147 -0
  239. package/.claude/skills/cfn-redis-coordination/log-event.sh +109 -0
  240. package/.claude/skills/cfn-redis-coordination/metrics-export.sh +674 -0
  241. package/.claude/skills/cfn-redis-coordination/metrics-schema.json +66 -0
  242. package/.claude/skills/cfn-redis-coordination/metrics-storage.md +31 -0
  243. package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +391 -0
  244. package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +101 -0
  245. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
  246. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +31 -0
  247. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
  248. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
  249. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
  250. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
  251. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
  252. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
  253. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
  254. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
  255. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
  256. package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
  257. package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +75 -0
  258. package/.claude/skills/cfn-redis-coordination/priority_wake.py +134 -0
  259. package/.claude/skills/cfn-redis-coordination/query-dlq.sh +162 -0
  260. package/.claude/skills/cfn-redis-coordination/query-logs.sh +103 -0
  261. package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +619 -0
  262. package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +58 -0
  263. package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +371 -0
  264. package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +252 -0
  265. package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +165 -0
  266. package/.claude/skills/cfn-redis-coordination/signal.sh +38 -0
  267. package/.claude/skills/cfn-redis-coordination/store-context.sh +86 -0
  268. package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +123 -0
  269. package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +354 -0
  270. package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +513 -0
  271. package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +15 -0
  272. package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +102 -0
  273. package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +99 -0
  274. package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +170 -0
  275. package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +82 -0
  276. package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +92 -0
  277. package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +4 -0
  278. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +418 -0
  279. package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +124 -0
  280. package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +166 -0
  281. package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +54 -0
  282. package/.claude/skills/cfn-redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
  283. package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +49 -0
  284. package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +76 -0
  285. package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +492 -0
  286. package/.claude/skills/cfn-sqlite-memory/IMPLEMENTATION_REPORT.md +393 -0
  287. package/.claude/skills/cfn-sqlite-memory/QUICK_REFERENCE.md +204 -0
  288. package/.claude/skills/cfn-sqlite-memory/SKILL.md +415 -0
  289. package/.claude/skills/cfn-sqlite-memory/acl-queries.sql +452 -0
  290. package/.claude/skills/cfn-sqlite-memory/check-dependencies.sh +36 -0
  291. package/.claude/skills/cfn-sqlite-memory/config.json +45 -0
  292. package/.claude/skills/cfn-sqlite-memory/memory-cli.sh +88 -0
  293. package/.claude/skills/cfn-sqlite-memory/test-state-persistence.js +187 -0
  294. package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +274 -0
  295. package/.claude/skills/cfn-test-execution/SKILL.md +128 -0
  296. package/.claude/skills/cfn-test-execution/check-dependencies.sh +36 -0
  297. package/.claude/skills/cfn-test-execution/test-cache-reader.sh +134 -0
  298. package/.claude/skills/cfn-test-execution/test-concurrent-conflicts.sh +115 -0
  299. package/.claude/skills/cfn-test-execution/test-coordinator-pattern.sh +109 -0
  300. package/.claude/skills/cfn-transparency-middleware/Cargo.toml +18 -0
  301. package/.claude/skills/cfn-transparency-middleware/SECURITY.md +41 -0
  302. package/.claude/skills/cfn-transparency-middleware/SKILL.md +91 -0
  303. package/.claude/skills/cfn-transparency-middleware/TEST_RESULTS.md +174 -0
  304. package/.claude/skills/cfn-transparency-middleware/config.json +31 -0
  305. package/.claude/skills/cfn-transparency-middleware/examples/basic-usage.ts +39 -0
  306. package/.claude/skills/cfn-transparency-middleware/examples/batch-processing.ts +52 -0
  307. package/.claude/skills/cfn-transparency-middleware/examples/custom-filtering.ts +61 -0
  308. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-filter.sh +98 -0
  309. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-init.sh +224 -0
  310. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-level.sh +333 -0
  311. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-metrics.sh +345 -0
  312. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-observe.sh +140 -0
  313. package/.claude/skills/cfn-transparency-middleware/invoke-transparency-stop.sh +235 -0
  314. package/.claude/skills/cfn-transparency-middleware/memory_query.rs +85 -0
  315. package/.claude/skills/cfn-transparency-middleware/memory_repository.rs +140 -0
  316. package/.claude/skills/cfn-transparency-middleware/memory_schema.rs +64 -0
  317. package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +29 -0
  318. package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +79 -0
  319. package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +406 -0
  320. package/.claude/skills/cfn-transparency-middleware/test-integration.sh +162 -0
  321. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +368 -0
  322. package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh.unix +126 -0
  323. package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +93 -0
  324. package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +132 -0
  325. package/.claude/skills/cfn-webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
  326. package/.claude/skills/cfn-webapp-testing/SKILL.md +877 -0
  327. package/.claude/skills/cfn-webapp-testing/capture-screenshot.sh +238 -0
  328. package/.claude/skills/cfn-webapp-testing/cfn-loop-integration.sh +265 -0
  329. package/.claude/skills/cfn-webapp-testing/compare-screenshots.sh +199 -0
  330. package/.claude/skills/cfn-webapp-testing/init-storage.sh +150 -0
  331. package/.claude/skills/cfn-webapp-testing/set-baseline.sh +196 -0
  332. package/.claude/skills/cfn-webapp-testing/test-webapp-testing.sh +233 -0
  333. package/README.md +51 -2
  334. package/dist/ace/ace-reflector.js +109 -10
  335. package/dist/ace/ace-reflector.js.map +1 -1
  336. package/dist/cli/agent-executor.js +1 -1
  337. package/dist/cli/agent-executor.js.map +1 -1
  338. package/package.json +43 -7
  339. package/readme/README.md +15 -4
  340. package/scripts/init-project.js +39 -2
  341. package/scripts/run-marketing-tests.sh +43 -0
  342. package/scripts/update_paths.sh +47 -0
  343. package/tools/install-lizard.sh +37 -0
  344. package/tools/simple-complexity.sh +44 -0
  345. package/.claude/agents/cfn-dev-team/developers/coder.md +0 -270
  346. package/.claude/agents/cfn-dev-team/developers/state-architect.md +0 -127
  347. package/.claude/agents/cfn-dev-team/reviewers/code-quality-validator.md +0 -128
  348. /package/.claude/agents/cfn-dev-team/developers/{ui-designer.md → frontend/ui-designer.md} +0 -0
  349. /package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner-agent.md +0 -0
@@ -0,0 +1,99 @@
1
+ #!/bin/bash
2
+ # Edge Cases Test Suite
3
+ # Validates complex and concurrent scenarios for error recovery
4
+
5
+ set -euo pipefail
6
+
7
+ # Source common test utilities
8
+ source "$(dirname "$0")/test-utils.sh"
9
+
10
+ # Redis connection failure simulation
11
+ test_redis_connection_failure() {
12
+ local original_redis_host=$(redis-cli config get bind | tail -n 1)
13
+
14
+ # Simulate connection failure by setting invalid host
15
+ redis-cli config set bind "invalid-host"
16
+
17
+ set +e # Disable immediate exit on error
18
+ ./.claude/skills/cfn-redis-coordination/retry-mechanism.sh \
19
+ --task-id "connection-failure-test" \
20
+ --max-retries 3 2>/dev/null
21
+ local exit_code=$?
22
+ set -e
23
+
24
+ # Restore original Redis host
25
+ redis-cli config set bind "$original_redis_host"
26
+
27
+ # Check that retry mechanism handles connection failure
28
+ assert "[ $exit_code -ne 0 ]" "Connection failure not handled correctly"
29
+ }
30
+
31
+ # Concurrent DLQ writes test
32
+ test_concurrent_dlq_writes() {
33
+ local concurrent_tasks=10
34
+ local base_task_id="concurrent-dlq-$(date +%s)"
35
+
36
+ # Run concurrent DLQ writes
37
+ for ((i=1; i<=concurrent_tasks; i++)); do
38
+ (
39
+ ./.claude/skills/cfn-redis-coordination/write-to-dlq.sh \
40
+ --task-id "${base_task_id}-$i" \
41
+ --agent-id "concurrent-tester" \
42
+ --error '{"code": 500, "message": "Concurrent Test"}' &
43
+ )
44
+ done
45
+
46
+ # Wait for all background processes
47
+ wait
48
+
49
+ # Verify all entries were written
50
+ local query_result=$(./.claude/skills/cfn-redis-coordination/query-dlq.sh \
51
+ --agent-id "concurrent-tester")
52
+
53
+ assert "[ $(echo '$query_result' | grep -c "$base_task_id") -eq $concurrent_tasks ]" "Not all concurrent DLQ writes successful"
54
+ }
55
+
56
+ # Invalid agent ID handling
57
+ test_invalid_agent_id() {
58
+ set +e # Disable immediate exit on error
59
+ local result=$(./.claude/skills/cfn-redis-coordination/query-dlq.sh \
60
+ --agent-id "!@#$%^&*()-invalid-agent" 2>&1)
61
+ local exit_code=$?
62
+ set -e
63
+
64
+ assert "[ $exit_code -ne 0 ]" "Invalid agent ID not rejected"
65
+ assert_contains "$result" "Invalid agent ID" "Error message missing for invalid agent ID"
66
+ }
67
+
68
+ # TTL expiration edge cases
69
+ test_ttl_expiration_edge_cases() {
70
+ local task_id="ttl-edge-$(date +%s)"
71
+ local short_ttl=60 # 1 minute
72
+
73
+ # Write with extremely short TTL
74
+ ./.claude/skills/cfn-redis-coordination/write-to-dlq.sh \
75
+ --task-id "$task_id" \
76
+ --agent-id "ttl-edge-tester" \
77
+ --error '{"code": 999, "message": "TTL Edge Case"}' \
78
+ --ttl "$short_ttl"
79
+
80
+ # Wait slightly beyond TTL
81
+ sleep $((short_ttl + 5))
82
+
83
+ # Verify entry is automatically removed
84
+ local query_result=$(./.claude/skills/cfn-redis-coordination/query-dlq.sh \
85
+ --task-id "$task_id")
86
+
87
+ assert_empty "$query_result" "DLQ entry not automatically expired"
88
+ }
89
+
90
+ # Run tests
91
+ main() {
92
+ test_redis_connection_failure
93
+ test_concurrent_dlq_writes
94
+ test_invalid_agent_id
95
+ test_ttl_expiration_edge_cases
96
+ echo "Edge Cases Tests: PASSED"
97
+ }
98
+
99
+ main
@@ -0,0 +1,170 @@
1
+ #!/bin/bash
2
+ # Integration Test Suite
3
+ # Validates full CFN Loop retry and DLQ mechanisms
4
+
5
+ set -euo pipefail
6
+
7
+ # Source test utilities
8
+ source "$(dirname "$0")/test-utils.sh"
9
+
10
+ # Simulate a CFN Loop with potential failures
11
+ test_cfn_loop_retry_integration() {
12
+ local task_id="integration-test-$(date +%s)"
13
+ local agent_ids=("researcher" "backend-dev" "devops")
14
+ local failed_stages=()
15
+
16
+ # Mock agent with potential failure
17
+ mock_agent_with_retry() {
18
+ local agent_id="$1"
19
+ local stage="$2"
20
+
21
+ # Simulate potential failures
22
+ local failure_probability=0.3 # 30% chance of failure
23
+ local random_value=$(shuf -i 1-10 -n 1)
24
+
25
+ if [ $random_value -le 3 ]; then
26
+ echo "Agent $agent_id failed at stage $stage"
27
+ failed_stages+=("$stage")
28
+ return 1
29
+ fi
30
+ return 0
31
+ }
32
+
33
+ # Run mock CFN Loop
34
+ local max_iterations=5
35
+ for ((iteration=1; iteration<=max_iterations; iteration++)); do
36
+ echo "CFN Loop Iteration $iteration"
37
+
38
+ for agent_id in "${agent_ids[@]}"; do
39
+ if ! mock_agent_with_retry "$agent_id" "iteration-$iteration"; then
40
+ # Retry mechanism
41
+ ./.claude/skills/cfn-redis-coordination/retry-mechanism.sh \
42
+ --task-id "$task_id" \
43
+ --agent-id "$agent_id" \
44
+ --max-retries 3
45
+ fi
46
+
47
+ # Signal agent completion
48
+ redis-cli lpush "swarm:$task_id:$agent_id:done" "complete"
49
+ done
50
+
51
+ # Check consensus
52
+ local consensus_result=$(./.claude/skills/cfn-redis-coordination/check-consensus.sh \
53
+ --task-id "$task_id" \
54
+ --min-confidence 0.85)
55
+
56
+ if [ "$consensus_result" == "success" ]; then
57
+ break
58
+ fi
59
+ done
60
+
61
+ # Validate test results
62
+ assert_not_empty "$consensus_result" "No consensus reached"
63
+
64
+ # Check if any agents had to be retried
65
+ if [ ${#failed_stages[@]} -gt 0 ]; then
66
+ echo "Stages with failures: ${failed_stages[@]}"
67
+ fi
68
+ }
69
+
70
+ # Test DLQ capture during orchestration
71
+ test_dlq_capture_during_orchestration() {
72
+ local task_id="dlq-capture-$(date +%s)"
73
+ local agent_id="critical-agent"
74
+ local error_scenarios=(
75
+ "connection_timeout"
76
+ "invalid_configuration"
77
+ "resource_exhaustion"
78
+ )
79
+
80
+ for scenario in "${error_scenarios[@]}"; do
81
+ # Simulate orchestration failure
82
+ local result=$(
83
+ ./.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh \
84
+ --task-id "$task_id" \
85
+ --agent-id "$agent_id" \
86
+ --error-scenario "$scenario" 2>&1
87
+ )
88
+
89
+ # Check if DLQ write occurred
90
+ local dlq_entry=$(./.claude/skills/cfn-redis-coordination/query-dlq.sh \
91
+ --task-id "$task_id")
92
+
93
+ assert_not_empty "$dlq_entry" "DLQ not captured for $scenario"
94
+ assert_contains "$dlq_entry" "$scenario" "Scenario details missing in DLQ"
95
+ done
96
+ }
97
+
98
+ # Config loading test
99
+ test_config_loading() {
100
+ local config_variations=(
101
+ "/tmp/full-config.json"
102
+ "/tmp/minimal-config.json"
103
+ "/tmp/override-config.json"
104
+ )
105
+
106
+ for config_path in "${config_variations[@]}"; do
107
+ # Generate test configurations
108
+ case "$config_path" in
109
+ "/tmp/full-config.json")
110
+ cat > "$config_path" << EOF
111
+ {
112
+ "retry_max_attempts": 5,
113
+ "backoff_base": 2,
114
+ "dlq_ttl_days": 7,
115
+ "log_level": "debug"
116
+ }
117
+ EOF
118
+ ;;
119
+ "/tmp/minimal-config.json")
120
+ cat > "$config_path" << EOF
121
+ {
122
+ "retry_max_attempts": 3
123
+ }
124
+ EOF
125
+ ;;
126
+ "/tmp/override-config.json")
127
+ cat > "$config_path" << EOF
128
+ {
129
+ "retry_max_attempts": 10,
130
+ "feature_flags": {
131
+ "advanced_retry": true,
132
+ "dlq_monitoring": true
133
+ }
134
+ }
135
+ EOF
136
+ ;;
137
+ esac
138
+
139
+ # Test config loading
140
+ local result=$(./.claude/skills/cfn-redis-coordination/load-config.sh \
141
+ --config "$config_path")
142
+
143
+ assert_not_empty "$result" "Config loading failed for $config_path"
144
+ done
145
+ }
146
+
147
+ # Run integration tests
148
+ main() {
149
+ local passed=0
150
+ local total_tests=3
151
+ local tests=(
152
+ "test_cfn_loop_retry_integration"
153
+ "test_dlq_capture_during_orchestration"
154
+ "test_config_loading"
155
+ )
156
+
157
+ for test in "${tests[@]}"; do
158
+ if $test; then
159
+ ((passed++))
160
+ fi
161
+ done
162
+
163
+ # Compute and report confidence
164
+ report_test_results "redis-phase1-1760875302" "tester-1" "$passed" "$total_tests"
165
+
166
+ # Return pass/fail
167
+ [ $passed -eq $total_tests ]
168
+ }
169
+
170
+ main
@@ -0,0 +1,82 @@
1
+ #!/bin/bash
2
+ # Retry Mechanism Test Suite
3
+ # Validates retry logic, backoff, and timeout behavior
4
+
5
+ set -euo pipefail
6
+
7
+ # Source common test utilities
8
+ source "$(dirname "$0")/test-utils.sh"
9
+
10
+ # Test retry mechanism with different retry counts
11
+ test_retry_mechanism() {
12
+ local retry_counts=(0 1 3 5)
13
+ local base_backoff=2 # Base backoff in seconds
14
+
15
+ for retries in "${retry_counts[@]}"; do
16
+ echo "Testing retry mechanism with $retries retries"
17
+
18
+ # Simulated failure function
19
+ mock_failed_operation() {
20
+ local attempt=1
21
+ local max_attempts=$((retries + 1))
22
+
23
+ while [ $attempt -le $max_attempts ]; do
24
+ if [ $attempt -eq $max_attempts ]; then
25
+ echo "Final attempt failed"
26
+ return 1
27
+ fi
28
+
29
+ # Simulate failure
30
+ echo "Attempt $attempt failed, will retry"
31
+ sleep $((base_backoff ** attempt))
32
+ ((attempt++))
33
+ done
34
+ }
35
+
36
+ # Capture timing and retry logs
37
+ local start_time=$(date +%s)
38
+ local log_file="/tmp/retry-test-$retries.log"
39
+
40
+ if ! mock_failed_operation 2>"$log_file"; then
41
+ local end_time=$(date +%s)
42
+ local total_time=$((end_time - start_time))
43
+
44
+ # Validate retry count and timing
45
+ local actual_retries=$(($(grep -c "Attempt" "$log_file") - 1))
46
+ assert_equal "$actual_retries" "$retries" "Retry count mismatch for $retries retries"
47
+
48
+ # Validate exponential backoff (roughly)
49
+ local expected_max_wait=$((base_backoff ** (retries + 1)))
50
+ assert "[ $total_time -le $((expected_max_wait + 5)) ]" "Backoff timing incorrect"
51
+ else
52
+ fail "Operation should have failed after $retries retries"
53
+ fi
54
+
55
+ # Clean up log
56
+ rm "$log_file"
57
+ done
58
+ }
59
+
60
+ # Test timeout behavior
61
+ test_timeout_behavior() {
62
+ local timeout_duration=10 # 10 seconds
63
+ local long_running_operation() {
64
+ sleep 15 # Longer than timeout
65
+ }
66
+
67
+ local start_time=$(date +%s)
68
+ timeout $timeout_duration long_running_operation || true
69
+ local end_time=$(date +%s)
70
+
71
+ local total_time=$((end_time - start_time))
72
+ assert "[ $total_time -ge $timeout_duration ] && [ $total_time -le $((timeout_duration + 2)) ]" "Timeout not enforced correctly"
73
+ }
74
+
75
+ # Run tests
76
+ main() {
77
+ test_retry_mechanism
78
+ test_timeout_behavior
79
+ echo "Retry Mechanism Tests: PASSED"
80
+ }
81
+
82
+ main
@@ -0,0 +1,92 @@
1
+ #!/bin/bash
2
+ # Master Test Runner for Redis Phase 1 Error Recovery & Resilience
3
+
4
+ set -euo pipefail
5
+
6
+ # Source test utilities
7
+ source "$(dirname "$0")/test-utils.sh"
8
+
9
+ # Test suites to run
10
+ test_suites=(
11
+ "./retry-mechanism-test.sh"
12
+ "./dlq-functionality-test.sh"
13
+ "./edge-cases-test.sh"
14
+ "./integration-test.sh"
15
+ )
16
+
17
+ # Global tracking
18
+ total_tests=0
19
+ passed_tests=0
20
+ failed_test_suites=()
21
+
22
+ # Run individual test suite
23
+ run_test_suite() {
24
+ local suite_path="$1"
25
+ local suite_name=$(basename "$suite_path")
26
+
27
+ echo "Running test suite: $suite_name"
28
+
29
+ set +e # Disable immediate exit on error
30
+ "$suite_path"
31
+ local exit_code=$?
32
+ set -e
33
+
34
+ if [ $exit_code -eq 0 ]; then
35
+ ((passed_tests++))
36
+ echo "✅ $suite_name: PASSED"
37
+ else
38
+ failed_test_suites+=("$suite_name")
39
+ echo "❌ $suite_name: FAILED"
40
+ fi
41
+
42
+ ((total_tests++))
43
+ }
44
+
45
+ # Main execution
46
+ main() {
47
+ echo "Starting Redis Phase 1 Error Recovery & Resilience Test Suite"
48
+
49
+ # Run all test suites
50
+ for suite in "${test_suites[@]}"; do
51
+ chmod +x "$suite"
52
+ run_test_suite "$suite"
53
+ done
54
+
55
+ # Calculate confidence
56
+ local confidence=$(compute_confidence_score "$passed_tests" "$total_tests")
57
+
58
+ # Report results
59
+ echo -e "\n--- Test Suite Summary ---"
60
+ echo "Total Test Suites: $total_tests"
61
+ echo "Passed: $passed_tests"
62
+ echo "Failed: $((total_tests - passed_tests))"
63
+ echo "Confidence Score: $confidence"
64
+
65
+ if [ ${#failed_test_suites[@]} -gt 0 ]; then
66
+ echo -e "\nFailed Test Suites:"
67
+ for failed_suite in "${failed_test_suites[@]}"; do
68
+ echo " - $failed_suite"
69
+ done
70
+ fi
71
+
72
+ # CFN Loop reporting
73
+ ./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh report \
74
+ --task-id "redis-phase1-1760875302" \
75
+ --agent-id "tester-1" \
76
+ --confidence "$confidence" \
77
+ --iteration 1
78
+
79
+ # Signal test completion
80
+ redis-cli lpush "swarm:redis-phase1-1760875302:tester-1:done" "complete"
81
+
82
+ # Enter waiting mode
83
+ ./.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh enter \
84
+ --task-id "redis-phase1-1760875302" \
85
+ --agent-id "tester-1" \
86
+ --context "phase1-testing-complete"
87
+
88
+ # Ensure exit code reflects overall test success
89
+ [ $passed_tests -eq $total_tests ]
90
+ }
91
+
92
+ main
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+
3
+ cd "$(dirname "$0")"
4
+ bash test-primitives.sh