claude-flow-novice 2.18.12 → 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.
- package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
- package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/original +3 -0
- package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
- package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
- package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/original +3 -0
- package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
- package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
- package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/original +3 -0
- package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
- package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/metadata.json +8 -0
- package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/original +1212 -0
- package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/revert.sh +7 -0
- package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/metadata.json +8 -0
- package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/original +1212 -0
- package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/revert.sh +7 -0
- package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/metadata.json +8 -0
- package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/original +1212 -0
- package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/revert.sh +7 -0
- package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/metadata.json +8 -0
- package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/original +1228 -0
- package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/revert.sh +7 -0
- package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/metadata.json +8 -0
- package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/original +1237 -0
- package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/revert.sh +7 -0
- package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/metadata.json +8 -0
- package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/original +1240 -0
- package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/revert.sh +7 -0
- package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/metadata.json +8 -0
- package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/original +1216 -0
- package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/revert.sh +7 -0
- package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/metadata.json +8 -0
- package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/original +1238 -0
- package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/revert.sh +7 -0
- package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/metadata.json +8 -0
- package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/original +1167 -0
- package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/revert.sh +7 -0
- package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/metadata.json +8 -0
- package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/original +1242 -0
- package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/revert.sh +7 -0
- package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/metadata.json +8 -0
- package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/original +2 -0
- package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/revert.sh +7 -0
- package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/metadata.json +8 -0
- package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/original +1169 -0
- package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/revert.sh +7 -0
- package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/metadata.json +8 -0
- package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/original +1171 -0
- package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/revert.sh +7 -0
- package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/metadata.json +8 -0
- package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/original +1170 -0
- package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/revert.sh +7 -0
- package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/metadata.json +8 -0
- package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/original +1173 -0
- package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/revert.sh +7 -0
- package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/metadata.json +8 -0
- package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/original +1170 -0
- package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/revert.sh +7 -0
- package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/metadata.json +8 -0
- package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/original +1172 -0
- package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/revert.sh +7 -0
- package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/metadata.json +8 -0
- package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/original +1175 -0
- package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/revert.sh +7 -0
- package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/metadata.json +8 -0
- package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/original +1178 -0
- package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/revert.sh +7 -0
- package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/metadata.json +8 -0
- package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/original +1174 -0
- package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/revert.sh +7 -0
- package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/metadata.json +8 -0
- package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/original +1194 -0
- package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/revert.sh +7 -0
- package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/metadata.json +8 -0
- package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/original +1186 -0
- package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/revert.sh +7 -0
- package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/metadata.json +8 -0
- package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/original +1180 -0
- package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/revert.sh +7 -0
- package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/metadata.json +8 -0
- package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/original +1198 -0
- package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/revert.sh +7 -0
- package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/metadata.json +8 -0
- package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/original +1202 -0
- package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/revert.sh +7 -0
- package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/metadata.json +8 -0
- package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/original +1202 -0
- package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/revert.sh +7 -0
- package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/metadata.json +8 -0
- package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/original +1209 -0
- package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/revert.sh +7 -0
- package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/metadata.json +8 -0
- package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/original +1207 -0
- package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/revert.sh +7 -0
- package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/metadata.json +8 -0
- package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/original +1207 -0
- package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/revert.sh +7 -0
- package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/metadata.json +8 -0
- package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/original +1193 -0
- package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/revert.sh +7 -0
- package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/metadata.json +8 -0
- package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/original +1194 -0
- package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/revert.sh +7 -0
- package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/metadata.json +8 -0
- package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/original +1193 -0
- package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/revert.sh +7 -0
- package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/metadata.json +8 -0
- package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/original +1191 -0
- package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/revert.sh +7 -0
- package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/metadata.json +8 -0
- package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/original +1190 -0
- package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/revert.sh +7 -0
- package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/metadata.json +8 -0
- package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/original +1191 -0
- package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/revert.sh +7 -0
- package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/metadata.json +8 -0
- package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/original +1189 -0
- package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/revert.sh +7 -0
- package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/metadata.json +8 -0
- package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/original +1197 -0
- package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/revert.sh +7 -0
- package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/metadata.json +8 -0
- package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/original +1190 -0
- package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/revert.sh +7 -0
- package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/metadata.json +8 -0
- package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/original +1197 -0
- package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/revert.sh +7 -0
- package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/metadata.json +8 -0
- package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/original +1197 -0
- package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/revert.sh +7 -0
- package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.md +194 -2
- package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.sh +264 -0
- package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.sh.backup +698 -0
- package/.claude/agents/custom/claude-code-expert.md +56 -0
- package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/SKILL.md +1 -1
- package/.claude/hooks/README.md +148 -0
- package/.claude/hooks/SessionStart:cfn-load-openai-key.sh +35 -0
- package/.claude/hooks/cfn-invoke-pre-edit.sh +1 -1
- package/.claude/hooks/cfn-load-cerebras-env.sh +65 -0
- package/.claude/hooks/cfn-precompact-enhanced.sh +283 -0
- package/.claude/hooks/deprecated/README.md +27 -0
- package/.claude/settings.json +71 -6
- package/.claude/skills/cfn-agent-lifecycle/SKILL.md +1 -1
- package/.claude/skills/cfn-agent-tooling/SKILL.md +1 -1
- package/.claude/skills/cfn-cerebras-coordinator/QUICKSTART.md +348 -0
- package/.claude/skills/cfn-cerebras-coordinator/README.md +525 -0
- package/.claude/skills/cfn-cerebras-coordinator/TDD_COORDINATOR_OVERVIEW.md +284 -0
- package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-py-v2-test-1733854200.json +36 -0
- package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-py-v3-test-1765383241.json +36 -0
- package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-rust-v2-test-1765381361.json +36 -0
- package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-rust-v3-test-1765383242.json +46 -0
- package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v2-test-1733864400.json +66 -0
- package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v3-test-1765383238.json +66 -0
- package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v4-test-1765386506.json +66 -0
- package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v5-test-1765393100.json +66 -0
- package/.claude/skills/cfn-cerebras-coordinator/example-usage.sh +206 -0
- package/.claude/skills/cfn-cerebras-coordinator/lib/tdd-conversation-coordinator.ts +569 -0
- package/.claude/skills/cfn-cerebras-coordinator/test-tdd-coordinator.sh +250 -0
- package/.claude/skills/cfn-compilation-error-fixer/SKILL.md +1 -1
- package/.claude/skills/cfn-compilation-error-fixer/lib/fixer/cerebras-gated-fixer-v2.ts +1 -1
- package/.claude/skills/cfn-config/SKILL.md +1 -1
- package/.claude/skills/cfn-dependency-management/SKILL.md +1 -1
- package/.claude/skills/cfn-deployment-lifecycle/SKILL.md +1 -1
- package/.claude/skills/cfn-edit-safety/SKILL.md +1 -1
- package/.claude/skills/cfn-epic-creator/SKILL.md +392 -0
- package/.claude/skills/cfn-epic-creator/estimate-costs.sh +524 -0
- package/.claude/skills/cfn-epic-creator/invoke.sh +445 -0
- package/.claude/skills/cfn-epic-creator/parse-personas.sh +533 -0
- package/.claude/skills/cfn-epic-creator/security-utils.sh +268 -0
- package/.claude/skills/cfn-epic-creator/security-verification-demo.sh +127 -0
- package/.claude/skills/cfn-epic-creator/test-invoke.sh +620 -0
- package/.claude/skills/cfn-epic-creator/test-security-fixes.sh +195 -0
- package/.claude/skills/cfn-epic-creator/test-security-simple.sh +165 -0
- package/.claude/skills/cfn-epic-creator/validate-epic.sh +474 -0
- package/.claude/skills/cfn-epic-parser/SKILL.md +8 -0
- package/.claude/skills/cfn-error-management/SKILL.md +1 -1
- package/.claude/skills/cfn-intervention-system/SKILL.md +1 -1
- package/.claude/skills/cfn-knowledge-base/SKILL.md +1 -1
- package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/metadata.json +8 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/original +209 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/revert.sh +7 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/AGENT_INTEGRATION_PATTERNS.md +255 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/Cargo.toml +8 -1
- package/.claude/skills/cfn-local-ruvector-accelerator/Cargo.toml.backup +47 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/EXTRACTION_EXAMPLES.md +287 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/README.md +2 -563
- package/.claude/skills/cfn-local-ruvector-accelerator/SCHEMA_V2_IMPLEMENTATION.md +151 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/SECURITY_IMPLEMENTATION.md +185 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/SKILL.md +8 -343
- package/.claude/skills/cfn-local-ruvector-accelerator/docs/EXECUTIVE_SUMMARY.txt +90 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/docs/PHASE_4_QUERY_API.md +210 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/docs/RUST_AST_EXTRACTOR_IMPLEMENTATION.md +222 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/docs/TRANSACTION_MANAGEMENT.md +241 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/docs/VALIDATION_FINDINGS.txt +250 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/epic-ast-indexer.json +335 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/index-code.sh +292 -96
- package/.claude/skills/cfn-local-ruvector-accelerator/index-code.sh.backup +249 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/index_all.sh +65 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/find.rs +214 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index.rs +275 -94
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index_ast.rs +767 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index_modified.rs +37 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/init.rs +17 -12
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/migration.rs +34 -1
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/mod.rs +6 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/query.rs +2 -2
- package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/refs.rs +209 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/embeddings.rs +82 -33
- package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/mod.rs +251 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust.rs +425 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust_placeholder.rs +420 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/text_fallback.rs +490 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/typescript.rs +520 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/typescript_full.rs +531 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/lib.rs +20 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/main.rs +33 -2
- package/.claude/skills/cfn-local-ruvector-accelerator/src/main.rs.backup +360 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/migration.rs +325 -318
- package/.claude/skills/cfn-local-ruvector-accelerator/src/migration_backup.rs +325 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/migration_tx.rs +513 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/paths.rs +29 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/query_api.rs +609 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/schema_v2.rs +603 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/search_engine.rs +150 -29
- package/.claude/skills/cfn-local-ruvector-accelerator/src/security_tests.rs +154 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/sqlite_store.rs +1 -1
- package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2.rs +583 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_backup.rs +560 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_fixed.rs +0 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_tx.rs +397 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/test_schema.rs +228 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/src/transaction_tests.rs +410 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/test_ast_indexing.rs +59 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/test_query_api.sh +103 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/test_schema.sql +158 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/test_schema_v2.sql +147 -0
- package/.claude/skills/cfn-loop-orchestration-v2/SKILL.md +1 -1
- package/.claude/skills/cfn-loop-orchestration-v2/lib/decision/SKILL.md +8 -0
- package/.claude/skills/cfn-loop-orchestration-v2/lib/orchestrator/SKILL.md +1 -1
- package/.claude/skills/cfn-loop-orchestration-v2/lib/output/SKILL.md +8 -0
- package/.claude/skills/cfn-loop-orchestration-v2/lib/validation/SKILL.md +11 -2
- package/.claude/skills/cfn-mdap-context-injection/SKILL.md +31 -10
- package/.claude/skills/cfn-mdap-error-fixer/skill.md +15 -205
- package/.claude/skills/cfn-memory-persistence/lib/auto/SKILL.md +7 -0
- package/.claude/skills/cfn-memory-persistence/lib/management/SKILL.md +7 -0
- package/.claude/skills/cfn-parameterized-queries/SKILL.md +8 -0
- package/.claude/skills/cfn-planning/SKILL.md +1 -1
- package/.claude/skills/cfn-session-handoff/SKILL.md +1 -53
- package/.claude/skills/cfn-skill-management/SKILL.md +1 -1
- package/.claude/skills/cfn-task-decomposition/SKILL.md +1 -0
- package/.claude/skills/cfn-task-intelligence/SKILL.md +39 -18
- package/.claude/skills/cfn-task-planning/SKILL.md +37 -12
- package/.claude/skills/cfn-transparency-middleware/SKILL.md +1 -1
- package/.claude/skills/cfn-utilities/SKILL.md +1 -1
- package/.claude/skills/cfn-validation-framework/SKILL.md +3 -60
- package/.claude/skills/cfn-vision-analysis/SKILL.md +3 -20
- package/.claude-flow/metrics/performance.json +3 -3
- package/.claude-flow/metrics/task-metrics.json +3 -3
- package/.ruvector/index_v2.db-shm +0 -0
- package/.ruvector/index_v2.db-wal +0 -0
- package/CLAUDE.md +9 -1
- package/README.md +56 -0
- package/docs/AGENT_PRODUCTION_FEEDBACK_PATTERNS.md +389 -0
- package/docs/CEREBRAS_TDD_COORDINATOR_TEST_RESULTS.md +213 -0
- package/docs/CEREBRAS_TDD_ROUND1_VS_ROUND2_COMPARISON.md +225 -0
- package/docs/CEREBRAS_TDD_ROUND3_FINAL_RESULTS.md +264 -0
- package/docs/EPIC_CREATOR_V2_ARCHITECTURE.md +629 -0
- package/docs/HOOKS_IMPLEMENTATION_PRIORITY.md +585 -0
- package/docs/SKILLS_HOOKS_INTEGRATION.md +1074 -0
- package/epic-with-personas-2025-12-09-17-15-13.json +253 -0
- package/index/index.bin +0 -0
- package/index/metadata.json +1 -0
- package/package.json +2 -1
- package/test-epic-creator-security.sh +203 -0
- package/.claude/skills/cfn-compilation-error-fixer/HANDOFF.md +0 -29
- package/.claude/skills/cfn-local-ruvector-accelerator/__pycache__/search_engine_v2.cpython-312.pyc +0 -0
- package/.claude/skills/cfn-local-ruvector-accelerator/search_engine.py +0 -200
- package/.ruvector/index.db-journal +0 -0
- package/jest.config.ts.cjs +0 -17
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/context-analyzer.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/generate-code.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/execute.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/INTEGRATION.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/SAMPLE_OUTPUTS.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/capture-container-logs.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/enable-logging.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/init-hybrid-logging.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/analytics-summary.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-agent-timeline.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-consensus-history.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-coordination-timeline.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-failed-containers.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-gate-checks.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/schema.sql +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/sqlite-helpers.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/test-hybrid-logging.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/mcp/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/mcp/skill-mcp-selector.js +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/orchestration/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/orchestration/orchestrate.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/spawning/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/spawning/spawn-agent.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/cleanup-wave.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/lib/docker-helpers.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/monitor-wave.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/spawn-wave.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-node-heap-sizer/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-node-heap-sizer/task-mode-heap-limiter.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/deprecated/analyze-patterns.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/README.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/SECURITY.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/SKILL.md +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/package.json +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/solve.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test-equation-solver-minimal.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test-equation-solver.sh +0 -0
- /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test.cjs +0 -0
- /package/.claude/hooks/{cfn-credential-scanner.sh → deprecated/cfn-credential-scanner.sh} +0 -0
- /package/.claude/hooks/{cfn-detect-hardcoded-credentials.sh → deprecated/cfn-detect-hardcoded-credentials.sh} +0 -0
- /package/.claude/hooks/{cfn-invoke-post-edit-ts.sh → deprecated/cfn-invoke-post-edit-ts.sh} +0 -0
- /package/.claude/hooks/{cfn-invoke-pre-edit-ts.sh → deprecated/cfn-invoke-pre-edit-ts.sh} +0 -0
- /package/.claude/hooks/{cfn-invoke-security-validation.sh → deprecated/cfn-invoke-security-validation.sh} +0 -0
- /package/.claude/hooks/{cfn-lint-sql-injection.sh → deprecated/cfn-lint-sql-injection.sh} +0 -0
- /package/.claude/hooks/{cfn-post-edit.sh → deprecated/cfn-post-edit.sh} +0 -0
- /package/.claude/hooks/{cfn-pre-edit-backup.sh → deprecated/cfn-pre-edit-backup.sh} +0 -0
- /package/.claude/skills/cfn-local-ruvector-accelerator/{embeddings_manager.py → embeddings_manager.py.backup} +0 -0
- /package/{.ruvector → .claude/skills/cfn-local-ruvector-accelerator/index}/index.bin +0 -0
- /package/{.ruvector → .claude/skills/cfn-local-ruvector-accelerator/index}/metadata.json +0 -0
- /package/.claude/skills/cfn-local-ruvector-accelerator/{search_engine_v2.py → search_engine_v2.py.backup} +0 -0
- /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 "$@"
|