claude-flow-novice 2.18.13 → 2.18.14

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 (300) hide show
  1. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  2. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  3. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  4. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  5. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  6. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  7. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  8. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  9. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  10. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/metadata.json +8 -0
  11. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/original +1212 -0
  12. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/revert.sh +7 -0
  13. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/metadata.json +8 -0
  14. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/original +1212 -0
  15. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/revert.sh +7 -0
  16. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/metadata.json +8 -0
  17. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/original +1212 -0
  18. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/revert.sh +7 -0
  19. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/metadata.json +8 -0
  20. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/original +1228 -0
  21. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/revert.sh +7 -0
  22. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/metadata.json +8 -0
  23. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/original +1237 -0
  24. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/revert.sh +7 -0
  25. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/metadata.json +8 -0
  26. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/original +1240 -0
  27. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/revert.sh +7 -0
  28. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/metadata.json +8 -0
  29. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/original +1216 -0
  30. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/revert.sh +7 -0
  31. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/metadata.json +8 -0
  32. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/original +1238 -0
  33. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/revert.sh +7 -0
  34. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/metadata.json +8 -0
  35. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/original +1167 -0
  36. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/revert.sh +7 -0
  37. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/metadata.json +8 -0
  38. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/original +1242 -0
  39. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/revert.sh +7 -0
  40. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/metadata.json +8 -0
  41. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/original +2 -0
  42. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/revert.sh +7 -0
  43. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/metadata.json +8 -0
  44. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/original +1169 -0
  45. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/revert.sh +7 -0
  46. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/metadata.json +8 -0
  47. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/original +1171 -0
  48. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/revert.sh +7 -0
  49. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/metadata.json +8 -0
  50. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/original +1170 -0
  51. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/revert.sh +7 -0
  52. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/metadata.json +8 -0
  53. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/original +1173 -0
  54. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/revert.sh +7 -0
  55. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/metadata.json +8 -0
  56. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/original +1170 -0
  57. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/revert.sh +7 -0
  58. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/metadata.json +8 -0
  59. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/original +1172 -0
  60. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/revert.sh +7 -0
  61. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/metadata.json +8 -0
  62. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/original +1175 -0
  63. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/revert.sh +7 -0
  64. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/metadata.json +8 -0
  65. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/original +1178 -0
  66. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/revert.sh +7 -0
  67. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/metadata.json +8 -0
  68. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/original +1174 -0
  69. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/revert.sh +7 -0
  70. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/metadata.json +8 -0
  71. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/original +1194 -0
  72. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/revert.sh +7 -0
  73. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/metadata.json +8 -0
  74. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/original +1186 -0
  75. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/revert.sh +7 -0
  76. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/metadata.json +8 -0
  77. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/original +1180 -0
  78. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/revert.sh +7 -0
  79. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/metadata.json +8 -0
  80. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/original +1198 -0
  81. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/revert.sh +7 -0
  82. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/metadata.json +8 -0
  83. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/original +1202 -0
  84. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/revert.sh +7 -0
  85. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/metadata.json +8 -0
  86. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/original +1202 -0
  87. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/revert.sh +7 -0
  88. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/metadata.json +8 -0
  89. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/original +1209 -0
  90. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/revert.sh +7 -0
  91. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/metadata.json +8 -0
  92. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/original +1207 -0
  93. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/revert.sh +7 -0
  94. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/metadata.json +8 -0
  95. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/original +1207 -0
  96. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/revert.sh +7 -0
  97. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/metadata.json +8 -0
  98. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/original +1193 -0
  99. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/revert.sh +7 -0
  100. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/metadata.json +8 -0
  101. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/original +1194 -0
  102. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/revert.sh +7 -0
  103. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/metadata.json +8 -0
  104. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/original +1193 -0
  105. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/revert.sh +7 -0
  106. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/metadata.json +8 -0
  107. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/original +1191 -0
  108. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/revert.sh +7 -0
  109. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/metadata.json +8 -0
  110. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/original +1190 -0
  111. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/revert.sh +7 -0
  112. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/metadata.json +8 -0
  113. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/original +1191 -0
  114. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/revert.sh +7 -0
  115. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/metadata.json +8 -0
  116. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/original +1189 -0
  117. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/revert.sh +7 -0
  118. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/metadata.json +8 -0
  119. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/original +1197 -0
  120. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/revert.sh +7 -0
  121. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/metadata.json +8 -0
  122. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/original +1190 -0
  123. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/revert.sh +7 -0
  124. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/metadata.json +8 -0
  125. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/original +1197 -0
  126. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/revert.sh +7 -0
  127. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/metadata.json +8 -0
  128. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/original +1197 -0
  129. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/revert.sh +7 -0
  130. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.md +194 -2
  131. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.sh +264 -0
  132. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.sh.backup +698 -0
  133. package/.claude/hooks/README.md +148 -0
  134. package/.claude/hooks/SessionStart:cfn-load-openai-key.sh +35 -0
  135. package/.claude/hooks/cfn-invoke-pre-edit.sh +1 -1
  136. package/.claude/hooks/cfn-load-cerebras-env.sh +65 -0
  137. package/.claude/hooks/cfn-precompact-enhanced.sh +283 -0
  138. package/.claude/hooks/deprecated/README.md +27 -0
  139. package/.claude/settings.json +71 -6
  140. package/.claude/skills/cfn-cerebras-coordinator/QUICKSTART.md +348 -0
  141. package/.claude/skills/cfn-cerebras-coordinator/README.md +525 -0
  142. package/.claude/skills/cfn-cerebras-coordinator/TDD_COORDINATOR_OVERVIEW.md +284 -0
  143. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-py-v2-test-1733854200.json +36 -0
  144. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-py-v3-test-1765383241.json +36 -0
  145. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-rust-v2-test-1765381361.json +36 -0
  146. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-rust-v3-test-1765383242.json +46 -0
  147. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v2-test-1733864400.json +66 -0
  148. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v3-test-1765383238.json +66 -0
  149. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v4-test-1765386506.json +66 -0
  150. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v5-test-1765393100.json +66 -0
  151. package/.claude/skills/cfn-cerebras-coordinator/example-usage.sh +206 -0
  152. package/.claude/skills/cfn-cerebras-coordinator/lib/tdd-conversation-coordinator.ts +569 -0
  153. package/.claude/skills/cfn-cerebras-coordinator/test-tdd-coordinator.sh +250 -0
  154. package/.claude/skills/cfn-epic-creator/SKILL.md +392 -0
  155. package/.claude/skills/cfn-epic-creator/estimate-costs.sh +524 -0
  156. package/.claude/skills/cfn-epic-creator/invoke.sh +445 -0
  157. package/.claude/skills/cfn-epic-creator/parse-personas.sh +533 -0
  158. package/.claude/skills/cfn-epic-creator/security-utils.sh +268 -0
  159. package/.claude/skills/cfn-epic-creator/security-verification-demo.sh +127 -0
  160. package/.claude/skills/cfn-epic-creator/test-invoke.sh +620 -0
  161. package/.claude/skills/cfn-epic-creator/test-security-fixes.sh +195 -0
  162. package/.claude/skills/cfn-epic-creator/test-security-simple.sh +165 -0
  163. package/.claude/skills/cfn-epic-creator/validate-epic.sh +474 -0
  164. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/metadata.json +8 -0
  165. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/original +209 -0
  166. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/revert.sh +7 -0
  167. package/.claude/skills/cfn-local-ruvector-accelerator/AGENT_INTEGRATION_PATTERNS.md +255 -0
  168. package/.claude/skills/cfn-local-ruvector-accelerator/Cargo.toml +8 -1
  169. package/.claude/skills/cfn-local-ruvector-accelerator/Cargo.toml.backup +47 -0
  170. package/.claude/skills/cfn-local-ruvector-accelerator/EXTRACTION_EXAMPLES.md +287 -0
  171. package/.claude/skills/cfn-local-ruvector-accelerator/README.md +2 -563
  172. package/.claude/skills/cfn-local-ruvector-accelerator/SCHEMA_V2_IMPLEMENTATION.md +151 -0
  173. package/.claude/skills/cfn-local-ruvector-accelerator/SECURITY_IMPLEMENTATION.md +185 -0
  174. package/.claude/skills/cfn-local-ruvector-accelerator/SKILL.md +8 -351
  175. package/.claude/skills/cfn-local-ruvector-accelerator/docs/EXECUTIVE_SUMMARY.txt +90 -0
  176. package/.claude/skills/cfn-local-ruvector-accelerator/docs/PHASE_4_QUERY_API.md +210 -0
  177. package/.claude/skills/cfn-local-ruvector-accelerator/docs/RUST_AST_EXTRACTOR_IMPLEMENTATION.md +222 -0
  178. package/.claude/skills/cfn-local-ruvector-accelerator/docs/TRANSACTION_MANAGEMENT.md +241 -0
  179. package/.claude/skills/cfn-local-ruvector-accelerator/docs/VALIDATION_FINDINGS.txt +250 -0
  180. package/.claude/skills/cfn-local-ruvector-accelerator/epic-ast-indexer.json +335 -0
  181. package/.claude/skills/cfn-local-ruvector-accelerator/index-code.sh +292 -96
  182. package/.claude/skills/cfn-local-ruvector-accelerator/index-code.sh.backup +249 -0
  183. package/.claude/skills/cfn-local-ruvector-accelerator/index_all.sh +65 -0
  184. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/find.rs +214 -0
  185. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index.rs +259 -103
  186. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index_ast.rs +767 -0
  187. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index_modified.rs +37 -0
  188. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/init.rs +17 -12
  189. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/migration.rs +34 -1
  190. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/mod.rs +6 -0
  191. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/refs.rs +209 -0
  192. package/.claude/skills/cfn-local-ruvector-accelerator/src/embeddings.rs +82 -33
  193. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/mod.rs +251 -0
  194. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust.rs +425 -0
  195. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust_placeholder.rs +420 -0
  196. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/text_fallback.rs +490 -0
  197. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/typescript.rs +520 -0
  198. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/typescript_full.rs +531 -0
  199. package/.claude/skills/cfn-local-ruvector-accelerator/src/lib.rs +20 -0
  200. package/.claude/skills/cfn-local-ruvector-accelerator/src/main.rs +33 -2
  201. package/.claude/skills/cfn-local-ruvector-accelerator/src/main.rs.backup +360 -0
  202. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration.rs +325 -318
  203. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration_backup.rs +325 -0
  204. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration_tx.rs +513 -0
  205. package/.claude/skills/cfn-local-ruvector-accelerator/src/paths.rs +29 -0
  206. package/.claude/skills/cfn-local-ruvector-accelerator/src/query_api.rs +609 -0
  207. package/.claude/skills/cfn-local-ruvector-accelerator/src/schema_v2.rs +603 -0
  208. package/.claude/skills/cfn-local-ruvector-accelerator/src/security_tests.rs +154 -0
  209. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2.rs +583 -0
  210. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_backup.rs +560 -0
  211. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_fixed.rs +0 -0
  212. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_tx.rs +397 -0
  213. package/.claude/skills/cfn-local-ruvector-accelerator/src/test_schema.rs +228 -0
  214. package/.claude/skills/cfn-local-ruvector-accelerator/src/transaction_tests.rs +410 -0
  215. package/.claude/skills/cfn-local-ruvector-accelerator/test_ast_indexing.rs +59 -0
  216. package/.claude/skills/cfn-local-ruvector-accelerator/test_query_api.sh +103 -0
  217. package/.claude/skills/cfn-local-ruvector-accelerator/test_schema.sql +158 -0
  218. package/.claude/skills/cfn-local-ruvector-accelerator/test_schema_v2.sql +147 -0
  219. package/.claude/skills/cfn-mdap-context-injection/SKILL.md +31 -10
  220. package/.claude/skills/cfn-mdap-error-fixer/skill.md +15 -205
  221. package/.claude/skills/cfn-session-handoff/SKILL.md +1 -53
  222. package/.claude/skills/cfn-task-decomposition/SKILL.md +1 -0
  223. package/.claude/skills/cfn-task-intelligence/SKILL.md +39 -18
  224. package/.claude/skills/cfn-task-planning/SKILL.md +37 -12
  225. package/.claude/skills/cfn-validation-framework/SKILL.md +3 -60
  226. package/.claude/skills/cfn-vision-analysis/SKILL.md +3 -20
  227. package/.claude-flow/metrics/performance.json +3 -3
  228. package/.claude-flow/metrics/task-metrics.json +3 -3
  229. package/.ruvector/index_v2.db-shm +0 -0
  230. package/.ruvector/index_v2.db-wal +0 -0
  231. package/CLAUDE.md +9 -1
  232. package/README.md +56 -0
  233. package/docs/AGENT_PRODUCTION_FEEDBACK_PATTERNS.md +389 -0
  234. package/docs/CEREBRAS_TDD_COORDINATOR_TEST_RESULTS.md +213 -0
  235. package/docs/CEREBRAS_TDD_ROUND1_VS_ROUND2_COMPARISON.md +225 -0
  236. package/docs/CEREBRAS_TDD_ROUND3_FINAL_RESULTS.md +264 -0
  237. package/docs/EPIC_CREATOR_V2_ARCHITECTURE.md +629 -0
  238. package/docs/HOOKS_IMPLEMENTATION_PRIORITY.md +585 -0
  239. package/docs/SKILLS_HOOKS_INTEGRATION.md +1074 -0
  240. package/epic-with-personas-2025-12-09-17-15-13.json +253 -0
  241. package/package.json +2 -1
  242. package/test-epic-creator-security.sh +203 -0
  243. package/.claude/skills/cfn-local-ruvector-accelerator/__pycache__/search_engine_v2.cpython-312.pyc +0 -0
  244. package/.claude/skills/cfn-local-ruvector-accelerator/search_engine.py +0 -200
  245. package/jest.config.ts.cjs +0 -17
  246. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/SKILL.md +0 -0
  247. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/context-analyzer.sh +0 -0
  248. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/generate-code.sh +0 -0
  249. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/SKILL.md +0 -0
  250. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/execute.sh +0 -0
  251. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/INTEGRATION.md +0 -0
  252. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/SAMPLE_OUTPUTS.md +0 -0
  253. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/SKILL.md +0 -0
  254. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/capture-container-logs.sh +0 -0
  255. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/enable-logging.sh +0 -0
  256. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/init-hybrid-logging.sh +0 -0
  257. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/analytics-summary.sh +0 -0
  258. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-agent-timeline.sh +0 -0
  259. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-consensus-history.sh +0 -0
  260. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-coordination-timeline.sh +0 -0
  261. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-failed-containers.sh +0 -0
  262. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-gate-checks.sh +0 -0
  263. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/schema.sql +0 -0
  264. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/sqlite-helpers.sh +0 -0
  265. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/test-hybrid-logging.sh +0 -0
  266. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/mcp/SKILL.md +0 -0
  267. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/mcp/skill-mcp-selector.js +0 -0
  268. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/orchestration/SKILL.md +0 -0
  269. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/orchestration/orchestrate.sh +0 -0
  270. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/spawning/SKILL.md +0 -0
  271. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/spawning/spawn-agent.sh +0 -0
  272. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/SKILL.md +0 -0
  273. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/cleanup-wave.sh +0 -0
  274. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/lib/docker-helpers.sh +0 -0
  275. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/monitor-wave.sh +0 -0
  276. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/spawn-wave.sh +0 -0
  277. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-node-heap-sizer/SKILL.md +0 -0
  278. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-node-heap-sizer/task-mode-heap-limiter.sh +0 -0
  279. /package/.claude/{skills → cfn-extras/skills/deprecated}/deprecated/analyze-patterns.sh +0 -0
  280. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/README.md +0 -0
  281. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/SECURITY.md +0 -0
  282. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/SKILL.md +0 -0
  283. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/package.json +0 -0
  284. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/solve.sh +0 -0
  285. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test-equation-solver-minimal.sh +0 -0
  286. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test-equation-solver.sh +0 -0
  287. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test.cjs +0 -0
  288. /package/.claude/hooks/{cfn-credential-scanner.sh → deprecated/cfn-credential-scanner.sh} +0 -0
  289. /package/.claude/hooks/{cfn-detect-hardcoded-credentials.sh → deprecated/cfn-detect-hardcoded-credentials.sh} +0 -0
  290. /package/.claude/hooks/{cfn-invoke-post-edit-ts.sh → deprecated/cfn-invoke-post-edit-ts.sh} +0 -0
  291. /package/.claude/hooks/{cfn-invoke-pre-edit-ts.sh → deprecated/cfn-invoke-pre-edit-ts.sh} +0 -0
  292. /package/.claude/hooks/{cfn-invoke-security-validation.sh → deprecated/cfn-invoke-security-validation.sh} +0 -0
  293. /package/.claude/hooks/{cfn-lint-sql-injection.sh → deprecated/cfn-lint-sql-injection.sh} +0 -0
  294. /package/.claude/hooks/{cfn-post-edit.sh → deprecated/cfn-post-edit.sh} +0 -0
  295. /package/.claude/hooks/{cfn-pre-edit-backup.sh → deprecated/cfn-pre-edit-backup.sh} +0 -0
  296. /package/.claude/skills/cfn-local-ruvector-accelerator/{embeddings_manager.py → embeddings_manager.py.backup} +0 -0
  297. /package/{.ruvector → .claude/skills/cfn-local-ruvector-accelerator/index}/index.bin +0 -0
  298. /package/{.ruvector → .claude/skills/cfn-local-ruvector-accelerator/index}/metadata.json +0 -0
  299. /package/.claude/skills/cfn-local-ruvector-accelerator/{search_engine_v2.py → search_engine_v2.py.backup} +0 -0
  300. /package/.claude/skills/cfn-local-ruvector-accelerator/{sqlite_store.py → sqlite_store.py.backup} +0 -0
@@ -0,0 +1,698 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # Epic Creator v2 - Sequential Persona Review Agent
5
+ # Creates comprehensive epic definitions with sequential reviews from 6 key personas
6
+
7
+ # Default values
8
+ MODE="standard"
9
+ ENFORCE_DEVOPS=false
10
+ OUTPUT_FILE=""
11
+ EPIC_DESCRIPTION=""
12
+
13
+ # Parse command line arguments
14
+ while [[ $# -gt 0 ]]; do
15
+ case $1 in
16
+ --mode=*)
17
+ MODE="${1#--mode=}"
18
+ if [[ ! "$MODE" =~ ^(mvp|standard|enterprise)$ ]]; then
19
+ echo "Error: --mode must be one of: mvp, standard, enterprise"
20
+ exit 1
21
+ fi
22
+ shift
23
+ ;;
24
+ --mode)
25
+ MODE="$2"
26
+ if [[ ! "$MODE" =~ ^(mvp|standard|enterprise)$ ]]; then
27
+ echo "Error: --mode must be one of: mvp, standard, enterprise"
28
+ exit 1
29
+ fi
30
+ shift 2
31
+ ;;
32
+ --enforce-devops)
33
+ ENFORCE_DEVOPS=true
34
+ shift
35
+ ;;
36
+ --output=*)
37
+ OUTPUT_FILE="${1#--output=}"
38
+ shift
39
+ ;;
40
+ --output)
41
+ OUTPUT_FILE="$2"
42
+ shift 2
43
+ ;;
44
+ -*)
45
+ echo "Error: Unknown option $1"
46
+ echo "Usage: $0 \"<epic-description>\" [--mode=mvp|standard|enterprise] [--enforce-devops] [--output=<path>]"
47
+ exit 1
48
+ ;;
49
+ *)
50
+ if [[ -z "$EPIC_DESCRIPTION" ]]; then
51
+ EPIC_DESCRIPTION="$1"
52
+ else
53
+ echo "Error: Multiple epic descriptions provided"
54
+ exit 1
55
+ fi
56
+ shift
57
+ ;;
58
+ esac
59
+ done
60
+
61
+ # Validate epic description
62
+ if [[ -z "$EPIC_DESCRIPTION" ]]; then
63
+ echo "Error: Epic description is required"
64
+ echo "Usage: $0 \"<epic-description>\" [--mode=mvp|standard|enterprise] [--enforce-devops] [--output=<path>]"
65
+ exit 1
66
+ fi
67
+
68
+ # Set default output file if not provided
69
+ if [[ -z "$OUTPUT_FILE" ]]; then
70
+ TIMESTAMP=$(date +"%Y-%m-%d-%H-%M-%S")
71
+ OUTPUT_FILE="epic-with-personas-$TIMESTAMP.json"
72
+ fi
73
+
74
+ # Create epic JSON structure
75
+ create_epic_json() {
76
+ local description="$1"
77
+ local mode="$2"
78
+ local enforce_devops="$3"
79
+
80
+ # Generate epic ID and metadata
81
+ local epic_id="EPIC-$(date +%s | tail -c 7)"
82
+ local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%S.%3NZ")
83
+
84
+ # Start JSON structure
85
+ cat << EOF
86
+ {
87
+ "epic": {
88
+ "id": "$epic_id",
89
+ "title": "$(extract_title "$description")",
90
+ "description": $(
91
+ # Properly escape the description for JSON
92
+ echo "$description" | jq -Rs .
93
+ ),
94
+ "priority": "high",
95
+ "estimatedDuration": "TBD",
96
+ "budget": "TBD",
97
+ "status": "in-review",
98
+ "metadata": {
99
+ "createdAt": "$timestamp",
100
+ "reviewMode": "$mode",
101
+ "devopsEnforced": $enforce_devops
102
+ },
103
+ "personas": [
104
+ EOF
105
+
106
+ # Sequential persona reviews
107
+ review_product_owner "$description" "$mode"
108
+ echo ","
109
+
110
+ review_architect "$description" "$mode"
111
+ echo ","
112
+
113
+ review_security_specialist "$description" "$mode"
114
+ echo ","
115
+
116
+ review_performance_specialist "$description" "$mode"
117
+ echo ","
118
+
119
+ review_accessibility_advocate "$description" "$mode"
120
+ echo ","
121
+
122
+ review_devops_engineer "$description" "$mode" "$enforce_devops"
123
+
124
+ cat << EOF
125
+ ],
126
+ "implementationRoadmap": [],
127
+ "totalCostBreakdown": {},
128
+ "riskAssessment": {}
129
+ }
130
+ }
131
+ EOF
132
+ }
133
+
134
+ # Extract title from description (first sentence or first 50 chars)
135
+ extract_title() {
136
+ local description="$1"
137
+ local title=$(echo "$description" | cut -c1-50 | sed 's/\.$//')
138
+ if [[ ${#title} -lt 20 ]]; then
139
+ title="$title..."
140
+ fi
141
+ echo "$title"
142
+ }
143
+
144
+ # Product Owner Review
145
+ review_product_owner() {
146
+ local description="$1"
147
+ local mode="$2"
148
+
149
+ cat << EOF
150
+ {
151
+ "name": "product-owner",
152
+ "reviewOrder": 1,
153
+ "status": "completed",
154
+ "insights": [
155
+ EOF
156
+
157
+ # Generate insights based on description
158
+ if echo "$description" | grep -qi "user\|customer\|market"; then
159
+ echo " \"User-centric approach identified in requirements\","
160
+ fi
161
+ if echo "$description" | grep -qi "mvp\|prototype\|feature"; then
162
+ echo " \"MVP features should be prioritized for early delivery\","
163
+ fi
164
+ echo " \"Clear value proposition needed for stakeholder alignment\""
165
+
166
+ cat << EOF
167
+ ],
168
+ "recommendations": [
169
+ EOF
170
+
171
+ # Generate recommendations
172
+ local rec_count=0
173
+
174
+ if [[ "$mode" != "mvp" ]]; then
175
+ cat << EOF
176
+ {
177
+ "id": "PO-001",
178
+ "title": "Create detailed user story mapping",
179
+ "type": "blocking",
180
+ "priority": "critical",
181
+ "estimatedCost": "\$5,000",
182
+ "description": "Map user journeys to ensure all features address real user needs"
183
+ },
184
+ EOF
185
+ ((rec_count++))
186
+ fi
187
+
188
+ cat << EOF
189
+ {
190
+ "id": "PO-00$(($rec_count + 2))",
191
+ "title": "Define success metrics and KPIs",
192
+ "type": "suggested",
193
+ "priority": "high",
194
+ "estimatedCost": "\$3,000",
195
+ "description": "Establish measurable success criteria for the epic"
196
+ }
197
+ EOF
198
+
199
+ if [[ "$mode" == "enterprise" ]]; then
200
+ cat << EOF
201
+ ,
202
+ {
203
+ "id": "PO-00$(($rec_count + 3))",
204
+ "title": "Conduct market analysis and competitor review",
205
+ "type": "suggested",
206
+ "priority": "high",
207
+ "estimatedCost": "\$10,000",
208
+ "description": "Ensure competitive differentiation and market fit"
209
+ }
210
+ EOF
211
+ fi
212
+
213
+ cat << EOF
214
+ ],
215
+ "costAnalysis": {
216
+ "productPlanning": "\$8,000",
217
+ "userResearch": "\$5,000",
218
+ "stakeholderManagement": "\$4,000"
219
+ }
220
+ }
221
+ EOF
222
+ }
223
+
224
+ # Architect Review
225
+ review_architect() {
226
+ local description="$1"
227
+ local mode="$2"
228
+
229
+ cat << EOF
230
+ {
231
+ "name": "architect",
232
+ "reviewOrder": 2,
233
+ "status": "completed",
234
+ "insights": [
235
+ EOF
236
+
237
+ # Generate technical insights
238
+ if echo "$description" | grep -qi "scalable\|scale\|performance"; then
239
+ echo " \"Scalability requirements will drive architectural decisions\","
240
+ fi
241
+ if echo "$description" | grep -qi "api\|service\|microservice"; then
242
+ echo " \"API design and service boundaries need careful consideration\","
243
+ fi
244
+ echo " \"Architecture must balance complexity with maintainability\""
245
+
246
+ cat << EOF
247
+ ],
248
+ "recommendations": [
249
+ EOF
250
+
251
+ # Always include architecture design as blocking
252
+ cat << EOF
253
+ {
254
+ "id": "ARCH-001",
255
+ "title": "Design system architecture with clear component boundaries",
256
+ "type": "blocking",
257
+ "priority": "critical",
258
+ "estimatedCost": "\$15,000",
259
+ "description": "Create detailed architecture diagrams and component specifications"
260
+ },
261
+ EOF
262
+
263
+ # Add additional recommendations based on mode
264
+ if [[ "$mode" != "mvp" ]]; then
265
+ cat << EOF
266
+ {
267
+ "id": "ARCH-002",
268
+ "title": "Define integration patterns and data flows",
269
+ "type": "suggested",
270
+ "priority": "high",
271
+ "estimatedCost": "\$8,000",
272
+ "description": "Document how components will interact and share data"
273
+ },
274
+ EOF
275
+ fi
276
+
277
+ if [[ "$mode" == "enterprise" ]]; then
278
+ cat << EOF
279
+ {
280
+ "id": "ARCH-003",
281
+ "title": "Create technology governance framework",
282
+ "type": "suggested",
283
+ "priority": "high",
284
+ "estimatedCost": "\$12,000",
285
+ "description": "Establish technology standards and review processes"
286
+ },
287
+ EOF
288
+ fi
289
+
290
+ # Close recommendations array
291
+ echo " {"
292
+ echo " \"id\": \"ARCH-004\","
293
+ echo " \"title\": \"Plan for future extensibility and evolution\","
294
+ echo " \"type\": \"suggested\","
295
+ echo " \"priority\": \"medium\","
296
+ echo " \"estimatedCost\": \"\$5,000\","
297
+ echo " \"description\": \"Design for anticipated future requirements\""
298
+ echo " }"
299
+
300
+ cat << EOF
301
+ ],
302
+ "costAnalysis": {
303
+ "architectureDesign": "\$20,000",
304
+ "technologySelection": "\$10,000",
305
+ "documentation": "\$5,000"
306
+ }
307
+ }
308
+ EOF
309
+ }
310
+
311
+ # Security Specialist Review
312
+ review_security_specialist() {
313
+ local description="$1"
314
+ local mode="$2"
315
+
316
+ cat << EOF
317
+ {
318
+ "name": "security-specialist",
319
+ "reviewOrder": 3,
320
+ "status": "completed",
321
+ "insights": [
322
+ EOF
323
+
324
+ # Generate security insights
325
+ if echo "$description" | grep -qi "user\|auth\|login"; then
326
+ echo " \"Authentication and authorization mechanisms are critical\","
327
+ fi
328
+ if echo "$description" | grep -qi "data\|storage\|database"; then
329
+ echo " \"Data protection and privacy must be addressed early\","
330
+ fi
331
+ echo " \"Security should be integrated throughout the development lifecycle\""
332
+
333
+ cat << EOF
334
+ ],
335
+ "recommendations": [
336
+ EOF
337
+
338
+ # Always include security assessment as blocking
339
+ cat << EOF
340
+ {
341
+ "id": "SEC-001",
342
+ "title": "Conduct threat modeling and security assessment",
343
+ "type": "blocking",
344
+ "priority": "critical",
345
+ "estimatedCost": "\$12,000",
346
+ "description": "Identify potential security threats and mitigation strategies"
347
+ },
348
+ EOF
349
+
350
+ # Add more recommendations based on mode
351
+ if [[ "$mode" != "mvp" ]]; then
352
+ cat << EOF
353
+ {
354
+ "id": "SEC-002",
355
+ "title": "Implement secure coding standards and reviews",
356
+ "type": "suggested",
357
+ "priority": "high",
358
+ "estimatedCost": "\$8,000",
359
+ "description": "Establish security guidelines and review processes"
360
+ },
361
+ EOF
362
+ fi
363
+
364
+ if [[ "$mode" == "enterprise" ]]; then
365
+ cat << EOF
366
+ {
367
+ "id": "SEC-003",
368
+ "title": "Perform penetration testing and security audit",
369
+ "type": "suggested",
370
+ "priority": "high",
371
+ "estimatedCost": "\$15,000",
372
+ "description": "Independent security validation and compliance assessment"
373
+ },
374
+ EOF
375
+ fi
376
+
377
+ # Close recommendations
378
+ echo " {"
379
+ echo " \"id\": \"SEC-004\","
380
+ echo " \"title\": \"Plan for incident response and monitoring\","
381
+ echo " \"type\": \"suggested\","
382
+ echo " \"priority\": \"medium\","
383
+ echo " \"estimatedCost\": \"\$6,000\","
384
+ echo " \"description\": \"Prepare for security incident handling\""
385
+ echo " }"
386
+
387
+ cat << EOF
388
+ ],
389
+ "costAnalysis": {
390
+ "securityAssessment": "\$15,000",
391
+ "implementation": "\$10,000",
392
+ "testing": "\$8,000"
393
+ }
394
+ }
395
+ EOF
396
+ }
397
+
398
+ # Performance Specialist Review
399
+ review_performance_specialist() {
400
+ local description="$1"
401
+ local mode="$2"
402
+
403
+ cat << EOF
404
+ {
405
+ "name": "performance-specialist",
406
+ "reviewOrder": 4,
407
+ "status": "completed",
408
+ "insights": [
409
+ EOF
410
+
411
+ # Generate performance insights
412
+ if echo "$description" | grep -qi "real-time\|latency\|speed"; then
413
+ echo " \"Performance requirements will be critical for user experience\","
414
+ fi
415
+ if echo "$description" | grep -qi "database\|data\|storage"; then
416
+ echo " \"Database performance and query optimization must be considered\","
417
+ fi
418
+ echo " \"Performance testing should start early and continue throughout\""
419
+
420
+ cat << EOF
421
+ ],
422
+ "recommendations": [
423
+ EOF
424
+
425
+ # Always include performance requirements as blocking
426
+ cat << EOF
427
+ {
428
+ "id": "PERF-001",
429
+ "title": "Define performance requirements and success criteria",
430
+ "type": "blocking",
431
+ "priority": "critical",
432
+ "estimatedCost": "\$8,000",
433
+ "description": "Establish measurable performance targets and SLAs"
434
+ },
435
+ EOF
436
+
437
+ if [[ "$mode" != "mvp" ]]; then
438
+ cat << EOF
439
+ {
440
+ "id": "PERF-002",
441
+ "title": "Implement performance monitoring and alerting",
442
+ "type": "suggested",
443
+ "priority": "high",
444
+ "estimatedCost": "\$6,000",
445
+ "description": "Set up tools to track performance metrics in production"
446
+ },
447
+ EOF
448
+ fi
449
+
450
+ if [[ "$mode" == "enterprise" ]]; then
451
+ cat << EOF
452
+ {
453
+ "id": "PERF-003",
454
+ "title": "Conduct load testing and capacity planning",
455
+ "type": "suggested",
456
+ "priority": "high",
457
+ "estimatedCost": "\$12,000",
458
+ "description": "Test system behavior under expected and peak loads"
459
+ },
460
+ EOF
461
+ fi
462
+
463
+ # Close recommendations
464
+ echo " {"
465
+ echo " \"id\": \"PERF-004\","
466
+ echo " \"title\": \"Create performance optimization plan\","
467
+ echo " \"type\": \"suggested\","
468
+ echo " \"priority\": \"medium\","
469
+ echo " \"estimatedCost\": \"\$5,000\","
470
+ echo " \"description\": \"Identify and plan for performance improvements\""
471
+ echo " }"
472
+
473
+ cat << EOF
474
+ ],
475
+ "costAnalysis": {
476
+ "performanceTesting": "\$10,000",
477
+ "monitoring": "\$7,000",
478
+ "optimization": "\$8,000"
479
+ }
480
+ }
481
+ EOF
482
+ }
483
+
484
+ # Accessibility Advocate Review
485
+ review_accessibility_advocate() {
486
+ local description="$1"
487
+ local mode="$2"
488
+
489
+ cat << EOF
490
+ {
491
+ "name": "accessibility-advocate",
492
+ "reviewOrder": 5,
493
+ "status": "completed",
494
+ "insights": [
495
+ EOF
496
+
497
+ # Generate accessibility insights
498
+ if echo "$description" | grep -qi "ui\|interface\|frontend\|web"; then
499
+ echo " \"UI components must meet WCAG 2.1 AA standards\","
500
+ fi
501
+ if echo "$description" | grep -qi "mobile\|responsive\|device"; then
502
+ echo " \"Responsive design essential for diverse device access\","
503
+ fi
504
+ echo " \"Accessibility benefits all users, not just those with disabilities\""
505
+
506
+ cat << EOF
507
+ ],
508
+ "recommendations": [
509
+ EOF
510
+
511
+ # Always include basic accessibility as blocking
512
+ cat << EOF
513
+ {
514
+ "id": "A11Y-001",
515
+ "title": "Ensure WCAG 2.1 AA compliance for all user interfaces",
516
+ "type": "blocking",
517
+ "priority": "critical",
518
+ "estimatedCost": "\$10,000",
519
+ "description": "Make the application accessible to users with disabilities"
520
+ },
521
+ EOF
522
+
523
+ if [[ "$mode" != "mvp" ]]; then
524
+ cat << EOF
525
+ {
526
+ "id": "A11Y-002",
527
+ "title": "Conduct accessibility testing with assistive technologies",
528
+ "type": "suggested",
529
+ "priority": "high",
530
+ "estimatedCost": "\$6,000",
531
+ "description": "Test with screen readers, keyboard navigation, and other tools"
532
+ },
533
+ EOF
534
+ fi
535
+
536
+ if [[ "$mode" == "enterprise" ]]; then
537
+ cat << EOF
538
+ {
539
+ "id": "A11Y-003",
540
+ "title": "Perform formal accessibility audit",
541
+ "type": "suggested",
542
+ "priority": "high",
543
+ "estimatedCost": "\$12,000",
544
+ "description": "Independent accessibility validation and certification"
545
+ },
546
+ EOF
547
+ fi
548
+
549
+ # Close recommendations
550
+ echo " {"
551
+ echo " \"id\": \"A11Y-004\","
552
+ echo " \"title\": \"Create accessibility documentation and guides\","
553
+ echo " \"type\": \"suggested\","
554
+ echo " \"priority\": \"medium\","
555
+ echo " \"estimatedCost\": \"\$4,000\","
556
+ echo " \"description\": \"Document accessibility features and usage\""
557
+ echo " }"
558
+
559
+ cat << EOF
560
+ ],
561
+ "costAnalysis": {
562
+ "accessibilityImplementation": "\$15,000",
563
+ "testing": "\$5,000",
564
+ "training": "\$3,000"
565
+ }
566
+ }
567
+ EOF
568
+ }
569
+
570
+ # DevOps Engineer Review
571
+ review_devops_engineer() {
572
+ local description="$1"
573
+ local mode="$2"
574
+ local enforce_devops="$3"
575
+
576
+ local recommendation_type="suggested"
577
+ if [[ "$enforce_devops" == "true" ]]; then
578
+ recommendation_type="blocking"
579
+ fi
580
+
581
+ cat << EOF
582
+ {
583
+ "name": "devops-engineer",
584
+ "reviewOrder": 6,
585
+ "status": "completed",
586
+ "insights": [
587
+ EOF
588
+
589
+ # Generate DevOps insights
590
+ if echo "$description" | grep -qi "deploy\|release\|production"; then
591
+ echo " \"Deployment strategy needs careful planning for smooth releases\","
592
+ fi
593
+ if echo "$description" | grep -qi "monitor\|observe\|metric"; then
594
+ echo " \"Observability is crucial for production stability\","
595
+ fi
596
+ echo " \"Infrastructure as Code provides reproducibility and consistency\""
597
+
598
+ cat << EOF
599
+ ],
600
+ "recommendations": [
601
+ EOF
602
+
603
+ # Include CI/CD setup
604
+ local priority="high"
605
+ if [[ "$enforce_devops" == "true" ]]; then
606
+ priority="critical"
607
+ fi
608
+
609
+ cat << EOF
610
+ {
611
+ "id": "DEVOPS-001",
612
+ "title": "Set up CI/CD pipeline for automated builds and deployments",
613
+ "type": "$recommendation_type",
614
+ "priority": "$priority",
615
+ "estimatedCost": "\$10,000",
616
+ "description": "Automate testing, building, and deployment processes"
617
+ },
618
+ EOF
619
+
620
+ if [[ "$mode" != "mvp" ]]; then
621
+ cat << EOF
622
+ {
623
+ "id": "DEVOPS-002",
624
+ "title": "Implement infrastructure monitoring and alerting",
625
+ "type": "$recommendation_type",
626
+ "priority": "high",
627
+ "estimatedCost": "\$7,000",
628
+ "description": "Monitor application and infrastructure health"
629
+ },
630
+ EOF
631
+ fi
632
+
633
+ if [[ "$mode" == "enterprise" ]]; then
634
+ cat << EOF
635
+ {
636
+ "id": "DEVOPS-003",
637
+ "title": "Establish disaster recovery and backup procedures",
638
+ "type": "$recommendation_type",
639
+ "priority": "high",
640
+ "estimatedCost": "\$12,000",
641
+ "description": "Ensure business continuity and data protection"
642
+ },
643
+ EOF
644
+ fi
645
+
646
+ # Close recommendations
647
+ echo " {"
648
+ echo " \"id\": \"DEVOPS-004\","
649
+ echo " \"title\": \"Create runbooks and operational documentation\","
650
+ echo " \"type\": \"suggested\","
651
+ echo " \"priority\": \"medium\","
652
+ echo " \"estimatedCost\": \"\$5,000\","
653
+ echo " \"description\": \"Document operational procedures and troubleshooting\""
654
+ echo " }"
655
+
656
+ cat << EOF
657
+ ],
658
+ "costAnalysis": {
659
+ "infrastructureSetup": "\$15,000",
660
+ "automation": "\$10,000",
661
+ "monitoring": "\$8,000"
662
+ }
663
+ }
664
+ EOF
665
+ }
666
+
667
+ # Main execution
668
+ main() {
669
+ echo "Creating epic with persona reviews..."
670
+ echo "Mode: $MODE"
671
+ echo "DevOps enforcement: $ENFORCE_DEVOPS"
672
+ echo "Output file: $OUTPUT_FILE"
673
+ echo ""
674
+
675
+ # Check if jq is installed
676
+ if ! command -v jq &> /dev/null; then
677
+ echo "Error: jq is required but not installed. Please install jq."
678
+ exit 1
679
+ fi
680
+
681
+ # Generate the epic JSON
682
+ local epic_json
683
+ epic_json=$(create_epic_json "$EPIC_DESCRIPTION" "$MODE" "$ENFORCE_DEVOPS")
684
+
685
+ # Write to output file
686
+ echo "$epic_json" | jq '.' > "$OUTPUT_FILE"
687
+
688
+ echo "Epic created successfully: $OUTPUT_FILE"
689
+ echo ""
690
+ echo "Summary:"
691
+ echo "- Generated sequential reviews from 6 personas"
692
+ echo "- Total recommendations: $(echo "$epic_json" | jq '.epic.personas | map(.recommendations | length) | add')"
693
+ echo "- Blocking recommendations: $(echo "$epic_json" | jq '.epic.personas | map(.recommendations | map(select(.type == "blocking")) | length) | add')"
694
+ echo "- Suggested recommendations: $(echo "$epic_json" | jq '.epic.personas | map(.recommendations | map(select(.type == "suggested")) | length) | add')"
695
+ }
696
+
697
+ # Run main function
698
+ main "$@"