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,786 @@
1
+ ---
2
+ name: bash-fundamentals
3
+ category: foundation
4
+ team: foundation
5
+ approval_level: auto
6
+ approval_criteria:
7
+ max_commands: 3
8
+ test_coverage: 0.95
9
+ no_external_calls: true
10
+ tags: [bash, scripting, foundation]
11
+ version: 1.0.0
12
+ owner: cfn-core
13
+ ---
14
+
15
+ # Bash Fundamentals - Bootstrap Skill
16
+
17
+ ## Overview
18
+ Core bash scripting patterns including variables, functions, process management, control flow, and best practices. Foundation for all bash-based automation.
19
+
20
+ ## Variable Handling
21
+
22
+ ### Variable Declaration and Assignment
23
+ ```bash
24
+ #!/bin/bash
25
+
26
+ # Simple assignment
27
+ NAME="value"
28
+
29
+ # Command substitution
30
+ CURRENT_DATE=$(date +%Y-%m-%d)
31
+ FILE_COUNT=$(ls -1 | wc -l)
32
+
33
+ # Arithmetic
34
+ COUNT=0
35
+ ((COUNT++))
36
+ COUNT=$((COUNT + 1))
37
+
38
+ # Read-only variables
39
+ readonly CONFIG_DIR="/etc/myapp"
40
+ readonly VERSION="1.0.0"
41
+
42
+ # Array assignment
43
+ ITEMS=("item1" "item2" "item3")
44
+ declare -a ARRAY=("a" "b" "c")
45
+
46
+ # Associative array (hash map)
47
+ declare -A CONFIG=(
48
+ ["host"]="localhost"
49
+ ["port"]="3000"
50
+ ["timeout"]="30"
51
+ )
52
+ ```
53
+
54
+ ### Variable Expansion
55
+ ```bash
56
+ # Basic expansion
57
+ echo "$VAR"
58
+
59
+ # Default value if unset
60
+ echo "${VAR:-default}"
61
+
62
+ # Default value and assign if unset
63
+ echo "${VAR:=default}"
64
+
65
+ # Use alternative value if set
66
+ echo "${VAR:+alternative}"
67
+
68
+ # Error if unset
69
+ echo "${VAR:?Variable is required}"
70
+
71
+ # String length
72
+ echo "${#VAR}"
73
+
74
+ # Substring
75
+ STR="hello world"
76
+ echo "${STR:0:5}" # "hello"
77
+ echo "${STR:6}" # "world"
78
+
79
+ # Pattern matching
80
+ FILE="document.txt"
81
+ echo "${FILE%.txt}" # "document" (remove suffix)
82
+ echo "${FILE#*.}" # "txt" (remove prefix)
83
+ echo "${FILE/doc/DOC}" # "DOCument.txt" (substitute)
84
+ ```
85
+
86
+ ### Array Operations
87
+ ```bash
88
+ # Array basics
89
+ FRUITS=("apple" "banana" "cherry")
90
+
91
+ # Access elements
92
+ echo "${FRUITS[0]}" # First element
93
+ echo "${FRUITS[@]}" # All elements
94
+ echo "${#FRUITS[@]}" # Array length
95
+
96
+ # Iterate over array
97
+ for fruit in "${FRUITS[@]}"; do
98
+ echo "Fruit: $fruit"
99
+ done
100
+
101
+ # Add elements
102
+ FRUITS+=("date")
103
+
104
+ # Slice array
105
+ echo "${FRUITS[@]:1:2}" # Elements 1-2
106
+
107
+ # Associative array operations
108
+ declare -A USER=(
109
+ ["name"]="John"
110
+ ["age"]="30"
111
+ ["role"]="admin"
112
+ )
113
+
114
+ # Access
115
+ echo "${USER[name]}"
116
+
117
+ # Iterate
118
+ for key in "${!USER[@]}"; do
119
+ echo "$key: ${USER[$key]}"
120
+ done
121
+ ```
122
+
123
+ ### Environment Variables
124
+ ```bash
125
+ # Export for child processes
126
+ export DATABASE_URL="sqlite:///data/app.db"
127
+
128
+ # Read from environment with default
129
+ PORT="${PORT:-3000}"
130
+
131
+ # Unset variable
132
+ unset OLD_VAR
133
+
134
+ # Check if variable is set
135
+ if [[ -n "${API_KEY:-}" ]]; then
136
+ echo "API key is configured"
137
+ fi
138
+ ```
139
+
140
+ ## Function Definitions
141
+
142
+ ### Basic Function Pattern
143
+ ```bash
144
+ # Function definition
145
+ greet() {
146
+ local name="$1"
147
+ echo "Hello, $name!"
148
+ }
149
+
150
+ # Function call
151
+ greet "World"
152
+
153
+ # Function with return value
154
+ add() {
155
+ local a="$1"
156
+ local b="$2"
157
+ echo $((a + b))
158
+ }
159
+
160
+ RESULT=$(add 5 3)
161
+ echo "Result: $RESULT"
162
+ ```
163
+
164
+ ### Function with Error Handling
165
+ ```bash
166
+ safe_divide() {
167
+ local numerator="$1"
168
+ local denominator="$2"
169
+
170
+ if [[ "$denominator" -eq 0 ]]; then
171
+ echo "ERROR: Division by zero" >&2
172
+ return 1
173
+ fi
174
+
175
+ echo $((numerator / denominator))
176
+ return 0
177
+ }
178
+
179
+ # Usage
180
+ if RESULT=$(safe_divide 10 2); then
181
+ echo "Result: $RESULT"
182
+ else
183
+ echo "Division failed"
184
+ fi
185
+ ```
186
+
187
+ ### Function with Multiple Return Values
188
+ ```bash
189
+ get_user_info() {
190
+ local user_id="$1"
191
+
192
+ # Return multiple values via stdout
193
+ echo "John Doe"
194
+ echo "john@example.com"
195
+ echo "30"
196
+ }
197
+
198
+ # Capture multiple return values
199
+ {
200
+ read -r NAME
201
+ read -r EMAIL
202
+ read -r AGE
203
+ } < <(get_user_info "123")
204
+
205
+ echo "Name: $NAME, Email: $EMAIL, Age: $AGE"
206
+ ```
207
+
208
+ ### Function with Named Parameters
209
+ ```bash
210
+ process_file() {
211
+ local input_file=""
212
+ local output_file=""
213
+ local verbose=false
214
+
215
+ # Parse named parameters
216
+ while [[ $# -gt 0 ]]; do
217
+ case "$1" in
218
+ --input)
219
+ input_file="$2"
220
+ shift 2
221
+ ;;
222
+ --output)
223
+ output_file="$2"
224
+ shift 2
225
+ ;;
226
+ --verbose)
227
+ verbose=true
228
+ shift
229
+ ;;
230
+ *)
231
+ echo "Unknown parameter: $1" >&2
232
+ return 1
233
+ ;;
234
+ esac
235
+ done
236
+
237
+ # Validate required parameters
238
+ if [[ -z "$input_file" ]]; then
239
+ echo "ERROR: --input is required" >&2
240
+ return 1
241
+ fi
242
+
243
+ # Process file
244
+ [[ "$verbose" == true ]] && echo "Processing $input_file..."
245
+ }
246
+
247
+ # Usage
248
+ process_file --input "data.txt" --output "result.txt" --verbose
249
+ ```
250
+
251
+ ## Process Management
252
+
253
+ ### Background Processes
254
+ ```bash
255
+ # Run command in background
256
+ long_running_task &
257
+ PID=$!
258
+
259
+ echo "Started process: $PID"
260
+
261
+ # Wait for background process
262
+ wait $PID
263
+ EXIT_CODE=$?
264
+
265
+ echo "Process completed with exit code: $EXIT_CODE"
266
+ ```
267
+
268
+ ### Process Groups
269
+ ```bash
270
+ #!/bin/bash
271
+ set -euo pipefail
272
+
273
+ # Create new process group
274
+ set -m
275
+
276
+ # Start multiple background processes
277
+ worker1 &
278
+ WORKER1_PID=$!
279
+
280
+ worker2 &
281
+ WORKER2_PID=$!
282
+
283
+ # Wait for all background jobs
284
+ wait
285
+
286
+ # Kill entire process group on exit
287
+ cleanup() {
288
+ echo "Killing process group..."
289
+ kill 0 # Kill all processes in current group
290
+ }
291
+
292
+ trap cleanup EXIT
293
+ ```
294
+
295
+ ### Process Substitution
296
+ ```bash
297
+ # Compare output of two commands
298
+ diff <(ls dir1) <(ls dir2)
299
+
300
+ # Read from process output
301
+ while read -r line; do
302
+ echo "Line: $line"
303
+ done < <(grep "pattern" file.txt)
304
+
305
+ # Multiple process substitutions
306
+ paste <(cut -f1 file1.txt) <(cut -f2 file2.txt)
307
+ ```
308
+
309
+ ### Parallel Execution
310
+ ```bash
311
+ # Run multiple commands in parallel
312
+ parallel_process() {
313
+ local -a pids=()
314
+
315
+ for item in "${ITEMS[@]}"; do
316
+ process_item "$item" &
317
+ pids+=($!)
318
+ done
319
+
320
+ # Wait for all to complete
321
+ local failed=0
322
+ for pid in "${pids[@]}"; do
323
+ if ! wait "$pid"; then
324
+ ((failed++))
325
+ fi
326
+ done
327
+
328
+ return $failed
329
+ }
330
+
331
+ # Usage
332
+ ITEMS=("task1" "task2" "task3")
333
+ if parallel_process; then
334
+ echo "All tasks completed successfully"
335
+ else
336
+ echo "Some tasks failed"
337
+ fi
338
+ ```
339
+
340
+ ### Timeout Management
341
+ ```bash
342
+ # Run command with timeout
343
+ run_with_timeout() {
344
+ local timeout="$1"
345
+ shift
346
+ local command=("$@")
347
+
348
+ timeout "$timeout" "${command[@]}" || {
349
+ local exit_code=$?
350
+ if [[ $exit_code -eq 124 ]]; then
351
+ echo "ERROR: Command timed out after ${timeout}s" >&2
352
+ fi
353
+ return $exit_code
354
+ }
355
+ }
356
+
357
+ # Usage
358
+ run_with_timeout 10 curl -f https://api.example.com/data
359
+ ```
360
+
361
+ ## Control Flow
362
+
363
+ ### Conditional Statements
364
+ ```bash
365
+ # If-else
366
+ if [[ -f "$FILE" ]]; then
367
+ echo "File exists"
368
+ elif [[ -d "$FILE" ]]; then
369
+ echo "Directory exists"
370
+ else
371
+ echo "Does not exist"
372
+ fi
373
+
374
+ # Test conditions
375
+ # File tests
376
+ [[ -f file ]] # Regular file
377
+ [[ -d dir ]] # Directory
378
+ [[ -e path ]] # Exists
379
+ [[ -r file ]] # Readable
380
+ [[ -w file ]] # Writable
381
+ [[ -x file ]] # Executable
382
+ [[ -s file ]] # Not empty
383
+
384
+ # String tests
385
+ [[ -z "$str" ]] # Empty
386
+ [[ -n "$str" ]] # Not empty
387
+ [[ "$a" == "$b" ]] # Equal
388
+ [[ "$a" != "$b" ]] # Not equal
389
+ [[ "$a" < "$b" ]] # Less than (lexicographic)
390
+
391
+ # Numeric tests
392
+ [[ "$a" -eq "$b" ]] # Equal
393
+ [[ "$a" -ne "$b" ]] # Not equal
394
+ [[ "$a" -lt "$b" ]] # Less than
395
+ [[ "$a" -le "$b" ]] # Less than or equal
396
+ [[ "$a" -gt "$b" ]] # Greater than
397
+ [[ "$a" -ge "$b" ]] # Greater than or equal
398
+
399
+ # Logical operators
400
+ [[ -f "$file" && -r "$file" ]] # AND
401
+ [[ -f "$file" || -d "$file" ]] # OR
402
+ [[ ! -f "$file" ]] # NOT
403
+ ```
404
+
405
+ ### Case Statements
406
+ ```bash
407
+ case "$OPERATION" in
408
+ start)
409
+ echo "Starting service..."
410
+ start_service
411
+ ;;
412
+ stop)
413
+ echo "Stopping service..."
414
+ stop_service
415
+ ;;
416
+ restart)
417
+ echo "Restarting service..."
418
+ stop_service
419
+ start_service
420
+ ;;
421
+ status)
422
+ check_status
423
+ ;;
424
+ *)
425
+ echo "Unknown operation: $OPERATION" >&2
426
+ echo "Usage: $0 {start|stop|restart|status}"
427
+ exit 1
428
+ ;;
429
+ esac
430
+ ```
431
+
432
+ ### Loops
433
+ ```bash
434
+ # For loop
435
+ for i in {1..10}; do
436
+ echo "Iteration: $i"
437
+ done
438
+
439
+ # For loop over array
440
+ for item in "${ITEMS[@]}"; do
441
+ process "$item"
442
+ done
443
+
444
+ # For loop over files
445
+ for file in *.txt; do
446
+ [[ -f "$file" ]] || continue # Skip if not a file
447
+ process_file "$file"
448
+ done
449
+
450
+ # While loop
451
+ COUNT=0
452
+ while [[ $COUNT -lt 10 ]]; do
453
+ echo "Count: $COUNT"
454
+ ((COUNT++))
455
+ done
456
+
457
+ # While reading file
458
+ while IFS=',' read -r col1 col2 col3; do
459
+ echo "Columns: $col1, $col2, $col3"
460
+ done < data.csv
461
+
462
+ # Until loop
463
+ ATTEMPTS=0
464
+ until check_service_ready; do
465
+ ((ATTEMPTS++))
466
+ if [[ $ATTEMPTS -ge 30 ]]; then
467
+ echo "Service failed to start"
468
+ exit 1
469
+ fi
470
+ sleep 1
471
+ done
472
+
473
+ # Break and continue
474
+ for i in {1..100}; do
475
+ [[ $i -eq 50 ]] && break # Exit loop
476
+ [[ $((i % 2)) -eq 0 ]] && continue # Skip even numbers
477
+ echo "Odd number: $i"
478
+ done
479
+ ```
480
+
481
+ ## Input/Output
482
+
483
+ ### Reading Input
484
+ ```bash
485
+ # Read single line
486
+ read -r LINE
487
+ echo "You entered: $LINE"
488
+
489
+ # Read with prompt
490
+ read -rp "Enter your name: " NAME
491
+
492
+ # Read with timeout
493
+ if read -rt 5 -p "Enter value (5s timeout): " VALUE; then
494
+ echo "You entered: $VALUE"
495
+ else
496
+ echo "Timeout or error"
497
+ fi
498
+
499
+ # Read password (silent)
500
+ read -rsp "Enter password: " PASSWORD
501
+ echo # New line after password
502
+
503
+ # Read multiple values
504
+ read -r FIRST LAST <<< "John Doe"
505
+ echo "First: $FIRST, Last: $LAST"
506
+ ```
507
+
508
+ ### Output Redirection
509
+ ```bash
510
+ # Redirect stdout
511
+ echo "Log message" > output.log
512
+
513
+ # Append stdout
514
+ echo "Another message" >> output.log
515
+
516
+ # Redirect stderr
517
+ command 2> error.log
518
+
519
+ # Redirect both stdout and stderr
520
+ command &> combined.log
521
+ command > combined.log 2>&1
522
+
523
+ # Redirect to null (discard)
524
+ command &> /dev/null
525
+
526
+ # Here document
527
+ cat <<EOF > config.txt
528
+ host=localhost
529
+ port=3000
530
+ timeout=30
531
+ EOF
532
+
533
+ # Here string
534
+ grep "pattern" <<< "$VARIABLE"
535
+ ```
536
+
537
+ ## String Operations
538
+
539
+ ### String Manipulation
540
+ ```bash
541
+ # Concatenation
542
+ FULL_NAME="$FIRST_NAME $LAST_NAME"
543
+
544
+ # Uppercase/lowercase
545
+ UPPER="${VAR^^}"
546
+ LOWER="${VAR,,}"
547
+
548
+ # Trim whitespace
549
+ trim() {
550
+ local var="$1"
551
+ var="${var#"${var%%[![:space:]]*}"}" # Remove leading whitespace
552
+ var="${var%"${var##*[![:space:]]}"}" # Remove trailing whitespace
553
+ echo "$var"
554
+ }
555
+
556
+ # Split string
557
+ IFS=',' read -ra PARTS <<< "$CSV_STRING"
558
+
559
+ # Join array (safe subshell idiom, no eval)
560
+ JOINED=$(IFS=','; echo "${ARRAY[*]}")
561
+
562
+ # String replacement
563
+ NEW_STRING="${OLD_STRING/pattern/replacement}" # First occurrence
564
+ NEW_STRING="${OLD_STRING//pattern/replacement}" # All occurrences
565
+ ```
566
+
567
+ ### Pattern Matching
568
+ ```bash
569
+ # Wildcard matching
570
+ if [[ "$FILENAME" == *.txt ]]; then
571
+ echo "Text file"
572
+ fi
573
+
574
+ # Regex matching
575
+ if [[ "$EMAIL" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then
576
+ echo "Valid email"
577
+ fi
578
+
579
+ # Extract regex groups
580
+ if [[ "$VERSION" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then
581
+ MAJOR="${BASH_REMATCH[1]}"
582
+ MINOR="${BASH_REMATCH[2]}"
583
+ PATCH="${BASH_REMATCH[3]}"
584
+ fi
585
+ ```
586
+
587
+ ## Test Result Parsing
588
+
589
+ ### Parse Test Output
590
+ ```bash
591
+ parse_test_results() {
592
+ local test_output="$1"
593
+ local total=0
594
+ local passed=0
595
+ local failed=0
596
+
597
+ # Parse common test format
598
+ while IFS= read -r line; do
599
+ if [[ "$line" =~ PASS ]]; then
600
+ ((passed++))
601
+ ((total++))
602
+ elif [[ "$line" =~ FAIL ]]; then
603
+ ((failed++))
604
+ ((total++))
605
+ fi
606
+ done <<< "$test_output"
607
+
608
+ echo "Total: $total, Passed: $passed, Failed: $failed"
609
+
610
+ if [[ $failed -gt 0 ]]; then
611
+ return 1
612
+ fi
613
+
614
+ return 0
615
+ }
616
+
617
+ # Usage
618
+ TEST_OUTPUT=$(run_tests 2>&1)
619
+ if parse_test_results "$TEST_OUTPUT"; then
620
+ echo "All tests passed"
621
+ else
622
+ echo "Some tests failed"
623
+ exit 1
624
+ fi
625
+ ```
626
+
627
+ ### TAP (Test Anything Protocol) Parsing
628
+ ```bash
629
+ parse_tap() {
630
+ local tap_output="$1"
631
+ local test_count=0
632
+ local expected_count=0
633
+
634
+ while IFS= read -r line; do
635
+ if [[ "$line" =~ ^1\.\.([0-9]+) ]]; then
636
+ expected_count="${BASH_REMATCH[1]}"
637
+ elif [[ "$line" =~ ^ok ]]; then
638
+ ((test_count++))
639
+ elif [[ "$line" =~ ^not\ ok ]]; then
640
+ ((test_count++))
641
+ echo "FAIL: $line" >&2
642
+ fi
643
+ done <<< "$tap_output"
644
+
645
+ if [[ $test_count -ne $expected_count ]]; then
646
+ echo "ERROR: Expected $expected_count tests, ran $test_count" >&2
647
+ return 1
648
+ fi
649
+ }
650
+ ```
651
+
652
+ ### JUnit XML Parsing
653
+ ```bash
654
+ parse_junit_xml() {
655
+ local junit_file="$1"
656
+
657
+ # Extract test statistics using portable sed (macOS/BSD compatible)
658
+ local tests=$(sed -n 's/.*tests="\([0-9]*\)".*/\1/p' "$junit_file" | head -1)
659
+ local failures=$(sed -n 's/.*failures="\([0-9]*\)".*/\1/p' "$junit_file" | head -1)
660
+ local errors=$(sed -n 's/.*errors="\([0-9]*\)".*/\1/p' "$junit_file" | head -1)
661
+
662
+ echo "Tests: ${tests:-0}, Failures: ${failures:-0}, Errors: ${errors:-0}"
663
+
664
+ if [[ ${failures:-0} -gt 0 || ${errors:-0} -gt 0 ]]; then
665
+ return 1
666
+ fi
667
+ }
668
+ ```
669
+
670
+ ## Best Practices
671
+
672
+ ### Shebang and Options
673
+ ```bash
674
+ #!/usr/bin/env bash
675
+ # Use env for portability
676
+
677
+ # Enable strict mode
678
+ set -euo pipefail
679
+
680
+ # Optional: debug mode
681
+ # set -x
682
+ ```
683
+
684
+ ### Script Template
685
+ ```bash
686
+ #!/usr/bin/env bash
687
+ set -euo pipefail
688
+
689
+ # Script metadata
690
+ readonly SCRIPT_NAME=$(basename "$0")
691
+ readonly SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
692
+ readonly SCRIPT_VERSION="1.0.0"
693
+
694
+ # Configuration
695
+ readonly DEFAULT_TIMEOUT=30
696
+ readonly MAX_RETRIES=3
697
+
698
+ # Usage function
699
+ usage() {
700
+ cat <<EOF
701
+ Usage: $SCRIPT_NAME [OPTIONS] <command>
702
+
703
+ Options:
704
+ -h, --help Show this help message
705
+ -v, --verbose Enable verbose output
706
+ --timeout SECONDS Set timeout (default: $DEFAULT_TIMEOUT)
707
+
708
+ Commands:
709
+ start Start the service
710
+ stop Stop the service
711
+ status Check service status
712
+
713
+ EOF
714
+ exit 0
715
+ }
716
+
717
+ # Cleanup function
718
+ cleanup() {
719
+ local exit_code=$?
720
+ # Cleanup operations
721
+ exit $exit_code
722
+ }
723
+
724
+ trap cleanup EXIT
725
+
726
+ # Main function
727
+ main() {
728
+ local verbose=false
729
+ local timeout=$DEFAULT_TIMEOUT
730
+
731
+ # Parse options
732
+ while [[ $# -gt 0 ]]; do
733
+ case "$1" in
734
+ -h|--help)
735
+ usage
736
+ ;;
737
+ -v|--verbose)
738
+ verbose=true
739
+ shift
740
+ ;;
741
+ --timeout)
742
+ timeout="$2"
743
+ shift 2
744
+ ;;
745
+ *)
746
+ break
747
+ ;;
748
+ esac
749
+ done
750
+
751
+ # Validate arguments
752
+ if [[ $# -eq 0 ]]; then
753
+ echo "ERROR: Command required" >&2
754
+ usage
755
+ fi
756
+
757
+ local command="$1"
758
+
759
+ # Execute command
760
+ case "$command" in
761
+ start|stop|status)
762
+ "${command}_service"
763
+ ;;
764
+ *)
765
+ echo "ERROR: Unknown command: $command" >&2
766
+ usage
767
+ ;;
768
+ esac
769
+ }
770
+
771
+ # Execute main
772
+ main "$@"
773
+ ```
774
+
775
+ ## Success Criteria
776
+
777
+ - ✅ Variables properly quoted and expanded
778
+ - ✅ Functions with local variables
779
+ - ✅ Error handling in all functions
780
+ - ✅ Process management with cleanup
781
+ - ✅ Proper use of arrays and associative arrays
782
+ - ✅ Control flow with appropriate tests
783
+ - ✅ Input validation and sanitization
784
+ - ✅ Test result parsing patterns included
785
+ - ✅ Script template with best practices
786
+ - ✅ Comprehensive examples for all patterns