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.
- 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/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-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-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-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 -351
- 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 +259 -103
- 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/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/security_tests.rs +154 -0
- 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-mdap-context-injection/SKILL.md +31 -10
- package/.claude/skills/cfn-mdap-error-fixer/skill.md +15 -205
- package/.claude/skills/cfn-session-handoff/SKILL.md +1 -53
- 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-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/package.json +2 -1
- package/test-epic-creator-security.sh +203 -0
- 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/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/SKILL.md +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,629 @@
|
|
|
1
|
+
# Epic Creator v2 - Coordination Architecture
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The Epic Creator v2 coordination architecture orchestrates sequential reviews from six specialized personas to generate comprehensive epic definitions. This architecture enables scalable, extensible, and maintainable persona-based workflows for enterprise-grade epic analysis.
|
|
6
|
+
|
|
7
|
+
## Architecture Principles
|
|
8
|
+
|
|
9
|
+
### 1. Sequential Orchestration
|
|
10
|
+
- Personas execute in a defined order to build upon previous insights
|
|
11
|
+
- Each persona receives the cumulative output from all previous personas
|
|
12
|
+
- State management ensures consistency across the workflow
|
|
13
|
+
|
|
14
|
+
### 2. Extensible Design
|
|
15
|
+
- Plugin-based persona architecture allows easy addition/removal
|
|
16
|
+
- Standardized interfaces ensure compatibility
|
|
17
|
+
- Versioning supports schema evolution
|
|
18
|
+
|
|
19
|
+
### 3. Performance Optimization
|
|
20
|
+
- Caching mechanisms prevent redundant persona execution
|
|
21
|
+
- Parallel execution capabilities for independent personas
|
|
22
|
+
- Timeout controls prevent workflow blocking
|
|
23
|
+
|
|
24
|
+
### 4. Resilience & Recovery
|
|
25
|
+
- Error isolation prevents cascade failures
|
|
26
|
+
- Checkpoint/restart capabilities for long-running workflows
|
|
27
|
+
- Graceful degradation when personas are unavailable
|
|
28
|
+
|
|
29
|
+
## Persona Workflow Architecture
|
|
30
|
+
|
|
31
|
+
```mermaid
|
|
32
|
+
graph TD
|
|
33
|
+
A[Epic Description] --> B[Product Owner]
|
|
34
|
+
B --> C[Architect]
|
|
35
|
+
C --> D[Security Specialist]
|
|
36
|
+
D --> E[Performance Specialist]
|
|
37
|
+
E --> F[Accessibility Advocate]
|
|
38
|
+
F --> G[DevOps Engineer]
|
|
39
|
+
G --> H[Epic JSON Output]
|
|
40
|
+
|
|
41
|
+
I[Coordinator] --> B
|
|
42
|
+
I --> C
|
|
43
|
+
I --> D
|
|
44
|
+
I --> E
|
|
45
|
+
I --> F
|
|
46
|
+
I --> G
|
|
47
|
+
|
|
48
|
+
J[State Manager] --> K[Checkpoint Store]
|
|
49
|
+
J --> L[Cache Store]
|
|
50
|
+
J --> M[Error Log]
|
|
51
|
+
|
|
52
|
+
B --> J
|
|
53
|
+
C --> J
|
|
54
|
+
D --> J
|
|
55
|
+
E --> J
|
|
56
|
+
F --> J
|
|
57
|
+
G --> J
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Core Components
|
|
61
|
+
|
|
62
|
+
### 1. Coordinator Service
|
|
63
|
+
|
|
64
|
+
**Purpose:** Orchestrates the persona workflow execution
|
|
65
|
+
|
|
66
|
+
**Key Responsibilities:**
|
|
67
|
+
- Parse epic description and parameters
|
|
68
|
+
- Invoke personas in sequential order
|
|
69
|
+
- Manage state transitions
|
|
70
|
+
- Handle errors and recovery
|
|
71
|
+
- Aggregate final outputs
|
|
72
|
+
|
|
73
|
+
**Implementation Pattern:**
|
|
74
|
+
```typescript
|
|
75
|
+
interface Coordinator {
|
|
76
|
+
execute(epicRequest: EpicRequest): Promise<EpicResponse>;
|
|
77
|
+
resume(checkpointId: string): Promise<EpicResponse>;
|
|
78
|
+
getStatus(taskId: string): Promise<TaskStatus>;
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 2. Persona Adapter Layer
|
|
83
|
+
|
|
84
|
+
**Purpose:** Standardizes interaction with diverse persona agents
|
|
85
|
+
|
|
86
|
+
**Key Components:**
|
|
87
|
+
- **Persona Registry:** Discovers available personas
|
|
88
|
+
- **Invocation Wrapper:** Standardizes calling patterns
|
|
89
|
+
- **Response Normalizer:** Converts outputs to common format
|
|
90
|
+
- **Health Checker:** Validates persona availability
|
|
91
|
+
|
|
92
|
+
**Persona Interface:**
|
|
93
|
+
```typescript
|
|
94
|
+
interface PersonaAdapter {
|
|
95
|
+
name: string;
|
|
96
|
+
reviewOrder: number;
|
|
97
|
+
required: boolean;
|
|
98
|
+
timeout: number;
|
|
99
|
+
|
|
100
|
+
execute(input: PersonaInput): Promise<PersonaOutput>;
|
|
101
|
+
validate(input: PersonaInput): ValidationResult;
|
|
102
|
+
transform(output: RawPersonaOutput): PersonaOutput;
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### 3. State Management System
|
|
107
|
+
|
|
108
|
+
**Purpose:** Maintains workflow state and enables recovery
|
|
109
|
+
|
|
110
|
+
**State Structure:**
|
|
111
|
+
```typescript
|
|
112
|
+
interface WorkflowState {
|
|
113
|
+
taskId: string;
|
|
114
|
+
epicId: string;
|
|
115
|
+
currentPersona: string;
|
|
116
|
+
completedPersonas: string[];
|
|
117
|
+
personaStates: Record<string, PersonaState>;
|
|
118
|
+
checkpoints: Checkpoint[];
|
|
119
|
+
errors: WorkflowError[];
|
|
120
|
+
metadata: WorkflowMetadata;
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Checkpoint Strategy:**
|
|
125
|
+
- Before each persona execution
|
|
126
|
+
- After successful persona completion
|
|
127
|
+
- On persona failures
|
|
128
|
+
- At user-defined intervals
|
|
129
|
+
|
|
130
|
+
### 4. Data Flow Architecture
|
|
131
|
+
|
|
132
|
+
```mermaid
|
|
133
|
+
sequenceDiagram
|
|
134
|
+
participant C as Coordinator
|
|
135
|
+
participant S as State Manager
|
|
136
|
+
participant P1 as Product Owner
|
|
137
|
+
participant P2 as Architect
|
|
138
|
+
participant P3 as Security
|
|
139
|
+
participant PO as Persona Output
|
|
140
|
+
|
|
141
|
+
C->>S: Create workflow state
|
|
142
|
+
C->>P1: Invoke with epic description
|
|
143
|
+
P1->>PO: Generate insights
|
|
144
|
+
PO->>S: Store persona output
|
|
145
|
+
S->>C: Confirm checkpoint
|
|
146
|
+
|
|
147
|
+
C->>P2: Invoke with previous outputs
|
|
148
|
+
P2->>PO: Build on insights
|
|
149
|
+
PO->>S: Aggregate outputs
|
|
150
|
+
S->>C: Confirm checkpoint
|
|
151
|
+
|
|
152
|
+
loop All Personas
|
|
153
|
+
C->>S: Load accumulated state
|
|
154
|
+
C->>Persona: Execute with context
|
|
155
|
+
Persona->>S: Save contribution
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
C->>S: Compile final epic JSON
|
|
159
|
+
S->>C: Return complete epic
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Persona Integration Patterns
|
|
163
|
+
|
|
164
|
+
### 1. Synchronous Invocation
|
|
165
|
+
|
|
166
|
+
**Use Case:** Standard sequential execution
|
|
167
|
+
**Pattern:**
|
|
168
|
+
```bash
|
|
169
|
+
# Direct agent spawning
|
|
170
|
+
npx claude-flow-novice agent-spawn product-owner \
|
|
171
|
+
--task-id "${TASK_ID}" \
|
|
172
|
+
--context-file "persona-input.json"
|
|
173
|
+
|
|
174
|
+
# Wait for completion with timeout
|
|
175
|
+
timeout 300s bash -c 'until [[ -f "persona-output.json" ]]; do sleep 5; done'
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 2. Asynchronous Invocation
|
|
179
|
+
|
|
180
|
+
**Use Case:** Parallel execution of independent personas
|
|
181
|
+
**Pattern:**
|
|
182
|
+
```bash
|
|
183
|
+
# Spawn personas in background
|
|
184
|
+
for persona in "${PERSONAS[@]}"; do
|
|
185
|
+
npx claude-flow-novice agent-spawn "$persona" \
|
|
186
|
+
--task-id "${TASK_ID}" \
|
|
187
|
+
--context-file "persona-input.json" \
|
|
188
|
+
&
|
|
189
|
+
PIDS+=($!)
|
|
190
|
+
done
|
|
191
|
+
|
|
192
|
+
# Wait for all with individual timeouts
|
|
193
|
+
for pid in "${PIDS[@]}"; do
|
|
194
|
+
if ! timeout 300s wait "$pid"; then
|
|
195
|
+
kill "$pid" 2>/dev/null || true
|
|
196
|
+
# Handle failure
|
|
197
|
+
fi
|
|
198
|
+
done
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 3. Resilient Invocation
|
|
202
|
+
|
|
203
|
+
**Use Case:** Handling persona failures gracefully
|
|
204
|
+
**Pattern:**
|
|
205
|
+
```bash
|
|
206
|
+
invoke_persona_with_retry() {
|
|
207
|
+
local persona="$1"
|
|
208
|
+
local max_retries=3
|
|
209
|
+
local attempt=1
|
|
210
|
+
|
|
211
|
+
while [[ $attempt -le $max_retries ]]; do
|
|
212
|
+
if npx claude-flow-novice agent-spawn "$persona" \
|
|
213
|
+
--task-id "${TASK_ID}" \
|
|
214
|
+
--context-file "persona-input.json"; then
|
|
215
|
+
return 0
|
|
216
|
+
fi
|
|
217
|
+
|
|
218
|
+
echo "Persona $persona failed (attempt $attempt/$max_retries)"
|
|
219
|
+
((attempt++))
|
|
220
|
+
sleep $((attempt * 10)) # Exponential backoff
|
|
221
|
+
done
|
|
222
|
+
|
|
223
|
+
# Log failure but continue if not required
|
|
224
|
+
if ! is_required_persona "$persona"; then
|
|
225
|
+
log_warning "Optional persona $persona unavailable"
|
|
226
|
+
return 1
|
|
227
|
+
fi
|
|
228
|
+
|
|
229
|
+
log_error "Required persona $persona failed after $max_retries attempts"
|
|
230
|
+
return 2
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Data Contracts
|
|
235
|
+
|
|
236
|
+
### 1. Input Schema
|
|
237
|
+
|
|
238
|
+
**EpicRequest:**
|
|
239
|
+
```json
|
|
240
|
+
{
|
|
241
|
+
"description": "string - Epic description",
|
|
242
|
+
"mode": "mvp|standard|enterprise - Review thoroughness",
|
|
243
|
+
"enforceDevops": "boolean - Make DevOps blocking",
|
|
244
|
+
"options": {
|
|
245
|
+
"timeout": "number - Per-persona timeout (seconds)",
|
|
246
|
+
"cacheKey": "string - Optional cache key",
|
|
247
|
+
"excludePersonas": "array[] - Personas to skip",
|
|
248
|
+
"customPersonas": "object - Additional personas"
|
|
249
|
+
},
|
|
250
|
+
"metadata": {
|
|
251
|
+
"requestedBy": "string",
|
|
252
|
+
"project": "string",
|
|
253
|
+
"priority": "low|medium|high|critical"
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**PersonaInput:**
|
|
259
|
+
```json
|
|
260
|
+
{
|
|
261
|
+
"epic": {
|
|
262
|
+
"description": "string",
|
|
263
|
+
"mode": "mvp|standard|enterprise",
|
|
264
|
+
"previousPersonas": "array[] - Completed personas",
|
|
265
|
+
"accumulatedInsights": "object - All previous insights",
|
|
266
|
+
"context": "object - Additional context"
|
|
267
|
+
},
|
|
268
|
+
"persona": {
|
|
269
|
+
"name": "string",
|
|
270
|
+
"reviewOrder": "number",
|
|
271
|
+
"focusAreas": "array[] - Specific areas to address"
|
|
272
|
+
},
|
|
273
|
+
"requirements": {
|
|
274
|
+
"outputFormat": "object - Expected output structure",
|
|
275
|
+
"mustAddress": "array[] - Required items",
|
|
276
|
+
"optionalItems": "array[] - Optional considerations"
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### 2. Output Schema
|
|
282
|
+
|
|
283
|
+
**PersonaOutput:**
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"persona": {
|
|
287
|
+
"name": "string",
|
|
288
|
+
"reviewOrder": "number",
|
|
289
|
+
"status": "completed|failed|skipped",
|
|
290
|
+
"executionTime": "number - Milliseconds"
|
|
291
|
+
},
|
|
292
|
+
"insights": "array[] - Strategic insights",
|
|
293
|
+
"recommendations": [
|
|
294
|
+
{
|
|
295
|
+
"id": "string - Unique identifier",
|
|
296
|
+
"title": "string - Brief title",
|
|
297
|
+
"type": "blocking|suggested",
|
|
298
|
+
"priority": "critical|high|medium|low",
|
|
299
|
+
"estimatedCost": "string - Cost estimate",
|
|
300
|
+
"description": "string - Detailed description",
|
|
301
|
+
"dependencies": "array[] - Related recommendations"
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
"costAnalysis": {
|
|
305
|
+
"category": "string - Cost category",
|
|
306
|
+
"amount": "string - Estimated cost"
|
|
307
|
+
},
|
|
308
|
+
"confidence": "number - 0.0-1.0",
|
|
309
|
+
"metadata": {
|
|
310
|
+
"model": "string - AI model used",
|
|
311
|
+
"tokens": "number - Tokens consumed",
|
|
312
|
+
"version": "string - Persona version"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
**EpicResponse:**
|
|
318
|
+
```json
|
|
319
|
+
{
|
|
320
|
+
"epic": {
|
|
321
|
+
"id": "string - Epic identifier",
|
|
322
|
+
"title": "string - Extracted title",
|
|
323
|
+
"description": "string - Full description",
|
|
324
|
+
"priority": "string - Priority level",
|
|
325
|
+
"estimatedDuration": "string - Duration estimate",
|
|
326
|
+
"budget": "string - Budget estimate",
|
|
327
|
+
"status": "string - Current status",
|
|
328
|
+
"metadata": {
|
|
329
|
+
"createdAt": "string - ISO timestamp",
|
|
330
|
+
"completedAt": "string - ISO timestamp",
|
|
331
|
+
"reviewMode": "mvp|standard|enterprise",
|
|
332
|
+
"devopsEnforced": "boolean",
|
|
333
|
+
"totalExecutionTime": "number - Milliseconds"
|
|
334
|
+
},
|
|
335
|
+
"personas": "PersonaOutput[] - All persona reviews",
|
|
336
|
+
"implementationRoadmap": "array[] - Suggested roadmap",
|
|
337
|
+
"totalCostBreakdown": "object - Cost summary",
|
|
338
|
+
"riskAssessment": "object - Risk analysis"
|
|
339
|
+
},
|
|
340
|
+
"summary": {
|
|
341
|
+
"totalRecommendations": "number",
|
|
342
|
+
"blockingCount": "number",
|
|
343
|
+
"suggestedCount": "number",
|
|
344
|
+
"estimatedTotalCost": "string",
|
|
345
|
+
"personasCompleted": "number",
|
|
346
|
+
"personasSkipped": "array[]"
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
## Performance Considerations
|
|
352
|
+
|
|
353
|
+
### 1. Caching Strategy
|
|
354
|
+
|
|
355
|
+
**Persona Output Caching:**
|
|
356
|
+
```typescript
|
|
357
|
+
interface CacheEntry {
|
|
358
|
+
key: string; // hash(epic_description + persona + mode)
|
|
359
|
+
personaOutput: PersonaOutput;
|
|
360
|
+
createdAt: Date;
|
|
361
|
+
ttl: number; // Time to live in seconds
|
|
362
|
+
version: string; // Persona version
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Cache key generation
|
|
366
|
+
function generateCacheKey(description: string, persona: string, mode: string): string {
|
|
367
|
+
const normalized = description.toLowerCase().trim();
|
|
368
|
+
return crypto.createHash('sha256')
|
|
369
|
+
.update(`${normalized}:${persona}:${mode}`)
|
|
370
|
+
.digest('hex');
|
|
371
|
+
}
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
**Cache Invalidation:**
|
|
375
|
+
- TTL-based expiration (default: 24 hours)
|
|
376
|
+
- Version-based invalidation when personas update
|
|
377
|
+
- Manual invalidation for urgent updates
|
|
378
|
+
- Smart invalidation based on description similarity
|
|
379
|
+
|
|
380
|
+
### 2. Timeout Management
|
|
381
|
+
|
|
382
|
+
**Hierarchical Timeouts:**
|
|
383
|
+
```typescript
|
|
384
|
+
const TIMEOUTS = {
|
|
385
|
+
workflow: 1800, // 30 minutes total
|
|
386
|
+
persona: 300, // 5 minutes per persona
|
|
387
|
+
agent: 240, // 4 minutes for agent response
|
|
388
|
+
network: 30 // 30 seconds for network calls
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
// Timeout enforcement
|
|
392
|
+
function executeWithTimeout<T>(
|
|
393
|
+
fn: () => Promise<T>,
|
|
394
|
+
timeout: number,
|
|
395
|
+
context: string
|
|
396
|
+
): Promise<T> {
|
|
397
|
+
return Promise.race([
|
|
398
|
+
fn(),
|
|
399
|
+
new Promise<never>((_, reject) =>
|
|
400
|
+
setTimeout(() => reject(new Error(`${context} timed out`)), timeout * 1000)
|
|
401
|
+
)
|
|
402
|
+
]);
|
|
403
|
+
}
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### 3. Resource Optimization
|
|
407
|
+
|
|
408
|
+
**Memory Management:**
|
|
409
|
+
- Stream processing for large epic descriptions
|
|
410
|
+
- Incremental JSON building to avoid memory spikes
|
|
411
|
+
- Garbage collection hints between persona executions
|
|
412
|
+
- Memory usage monitoring and alerts
|
|
413
|
+
|
|
414
|
+
**Concurrent Execution:**
|
|
415
|
+
- Worker pool for parallel persona execution
|
|
416
|
+
- Resource limits per worker (CPU, memory)
|
|
417
|
+
- Queue management for high-throughput scenarios
|
|
418
|
+
- Backpressure handling when overloaded
|
|
419
|
+
|
|
420
|
+
## Error Handling & Recovery
|
|
421
|
+
|
|
422
|
+
### 1. Error Classification
|
|
423
|
+
|
|
424
|
+
```typescript
|
|
425
|
+
enum ErrorType {
|
|
426
|
+
PERSONA_UNAVAILABLE = 'PERSONA_UNAVAILABLE',
|
|
427
|
+
TIMEOUT = 'TIMEOUT',
|
|
428
|
+
INVALID_INPUT = 'INVALID_INPUT',
|
|
429
|
+
VALIDATION_FAILED = 'VALIDATION_FAILED',
|
|
430
|
+
SYSTEM_ERROR = 'SYSTEM_ERROR',
|
|
431
|
+
NETWORK_ERROR = 'NETWORK_ERROR'
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
interface WorkflowError {
|
|
435
|
+
type: ErrorType;
|
|
436
|
+
persona?: string;
|
|
437
|
+
message: string;
|
|
438
|
+
details?: any;
|
|
439
|
+
timestamp: Date;
|
|
440
|
+
recoverable: boolean;
|
|
441
|
+
retryCount: number;
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### 2. Recovery Strategies
|
|
446
|
+
|
|
447
|
+
**Persona-Level Recovery:**
|
|
448
|
+
- Retry with exponential backoff
|
|
449
|
+
- Fallback to cached output if available
|
|
450
|
+
- Skip optional personas with warning
|
|
451
|
+
- Use alternative persona if configured
|
|
452
|
+
|
|
453
|
+
**Workflow-Level Recovery:**
|
|
454
|
+
- Resume from last checkpoint
|
|
455
|
+
- Parallel retry of failed personas
|
|
456
|
+
- Partial completion with gaps marked
|
|
457
|
+
- Complete restart after configuration changes
|
|
458
|
+
|
|
459
|
+
### 3. Monitoring & Alerting
|
|
460
|
+
|
|
461
|
+
**Health Checks:**
|
|
462
|
+
```typescript
|
|
463
|
+
interface HealthCheck {
|
|
464
|
+
personaAvailability: Record<string, boolean>;
|
|
465
|
+
averageResponseTime: Record<string, number>;
|
|
466
|
+
errorRate: Record<string, number>;
|
|
467
|
+
cacheHitRate: number;
|
|
468
|
+
activeWorkflows: number;
|
|
469
|
+
queueDepth: number;
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Alert Conditions:**
|
|
474
|
+
- Persona unavailable > 5 minutes
|
|
475
|
+
- Error rate > 10% for any persona
|
|
476
|
+
- Average response time > 2x baseline
|
|
477
|
+
- Cache hit rate < 50%
|
|
478
|
+
- Workflow queue depth > 100
|
|
479
|
+
|
|
480
|
+
## Extensibility Framework
|
|
481
|
+
|
|
482
|
+
### 1. Adding New Personas
|
|
483
|
+
|
|
484
|
+
**Registration Process:**
|
|
485
|
+
1. Create persona agent following standard template
|
|
486
|
+
2. Register in persona registry
|
|
487
|
+
3. Define review order and dependencies
|
|
488
|
+
4. Add input/output transformation logic
|
|
489
|
+
5. Update workflow configuration
|
|
490
|
+
|
|
491
|
+
**Persona Registration:**
|
|
492
|
+
```typescript
|
|
493
|
+
interface PersonaRegistration {
|
|
494
|
+
name: string;
|
|
495
|
+
agentPath: string;
|
|
496
|
+
reviewOrder: number;
|
|
497
|
+
required: boolean;
|
|
498
|
+
dependencies: string[];
|
|
499
|
+
supportedModes: ('mvp' | 'standard' | 'enterprise')[];
|
|
500
|
+
transformer: PersonaTransformer;
|
|
501
|
+
}
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### 2. Custom Workflow Extensions
|
|
505
|
+
|
|
506
|
+
**Extension Points:**
|
|
507
|
+
- Pre-processing hooks for input validation
|
|
508
|
+
- Post-processing hooks for output transformation
|
|
509
|
+
- Custom aggregation logic for persona outputs
|
|
510
|
+
- External system integrations
|
|
511
|
+
- Custom notification channels
|
|
512
|
+
|
|
513
|
+
**Plugin Architecture:**
|
|
514
|
+
```typescript
|
|
515
|
+
interface WorkflowPlugin {
|
|
516
|
+
name: string;
|
|
517
|
+
version: string;
|
|
518
|
+
hooks: {
|
|
519
|
+
beforePersona?: (persona: string, input: PersonaInput) => Promise<PersonaInput>;
|
|
520
|
+
afterPersona?: (persona: string, output: PersonaOutput) => Promise<PersonaOutput>;
|
|
521
|
+
beforeAggregation?: (outputs: PersonaOutput[]) => Promise<PersonaOutput[]>;
|
|
522
|
+
afterCompletion?: (epic: EpicResponse) => Promise<EpicResponse>;
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
## Security Considerations
|
|
528
|
+
|
|
529
|
+
### 1. Input Sanitization
|
|
530
|
+
- Validate epic description for malicious content
|
|
531
|
+
- Sanitize persona outputs before aggregation
|
|
532
|
+
- Rate limiting to prevent abuse
|
|
533
|
+
- Input size limits to prevent DoS
|
|
534
|
+
|
|
535
|
+
### 2. Access Control
|
|
536
|
+
- Role-based access to workflow features
|
|
537
|
+
- Persona execution permissions
|
|
538
|
+
- Audit logging for all actions
|
|
539
|
+
- Secure credential management
|
|
540
|
+
|
|
541
|
+
### 3. Data Privacy
|
|
542
|
+
- Epic description encryption at rest
|
|
543
|
+
- Persona output PII redaction
|
|
544
|
+
- Secure cache with TTL
|
|
545
|
+
- GDPR compliance for data retention
|
|
546
|
+
|
|
547
|
+
## Implementation Guidelines
|
|
548
|
+
|
|
549
|
+
### 1. Development Setup
|
|
550
|
+
```bash
|
|
551
|
+
# Required dependencies
|
|
552
|
+
npm install @claude-flow-novice/coordination
|
|
553
|
+
npm install @claude-flow-novice/state-management
|
|
554
|
+
npm install @claude-flow-novice/cache
|
|
555
|
+
|
|
556
|
+
# Development tools
|
|
557
|
+
npm install --save-dev @types/node
|
|
558
|
+
npm install --save-dev jest
|
|
559
|
+
npm install --save-dev eslint
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
### 2. Configuration Management
|
|
563
|
+
```yaml
|
|
564
|
+
# config/epic-creator-v2.yml
|
|
565
|
+
coordination:
|
|
566
|
+
defaultMode: standard
|
|
567
|
+
defaultTimeout: 300
|
|
568
|
+
maxRetries: 3
|
|
569
|
+
cacheTTL: 86400
|
|
570
|
+
|
|
571
|
+
personas:
|
|
572
|
+
product-owner:
|
|
573
|
+
required: true
|
|
574
|
+
timeout: 180
|
|
575
|
+
architect:
|
|
576
|
+
required: true
|
|
577
|
+
timeout: 240
|
|
578
|
+
security-specialist:
|
|
579
|
+
required: true
|
|
580
|
+
timeout: 200
|
|
581
|
+
|
|
582
|
+
performance:
|
|
583
|
+
maxConcurrentPersonas: 3
|
|
584
|
+
memoryLimit: 1GB
|
|
585
|
+
checkpointInterval: 60000
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### 3. Testing Strategy
|
|
589
|
+
- Unit tests for each component
|
|
590
|
+
- Integration tests for persona workflows
|
|
591
|
+
- Performance tests for scalability
|
|
592
|
+
- Chaos engineering for resilience
|
|
593
|
+
- Security tests for vulnerabilities
|
|
594
|
+
|
|
595
|
+
## Migration Path
|
|
596
|
+
|
|
597
|
+
### From Epic Creator v1
|
|
598
|
+
1. **Phase 1: Compatibility Layer**
|
|
599
|
+
- Wrap v1 script in coordinator
|
|
600
|
+
- Maintain existing output format
|
|
601
|
+
- Add new features behind flags
|
|
602
|
+
|
|
603
|
+
2. **Phase 2: Parallel Execution**
|
|
604
|
+
- Run both versions in parallel
|
|
605
|
+
- Compare outputs for validation
|
|
606
|
+
- Gradually migrate traffic
|
|
607
|
+
|
|
608
|
+
3. **Phase 3: Full Migration**
|
|
609
|
+
- Decommission v1 implementation
|
|
610
|
+
- Enable all v2 features
|
|
611
|
+
- Optimize performance
|
|
612
|
+
|
|
613
|
+
### Future Enhancements
|
|
614
|
+
- AI-powered persona selection
|
|
615
|
+
- Dynamic review order based on epic content
|
|
616
|
+
- Real-time collaborative review capabilities
|
|
617
|
+
- Integration with external project management systems
|
|
618
|
+
- Custom persona marketplace
|
|
619
|
+
|
|
620
|
+
## Conclusion
|
|
621
|
+
|
|
622
|
+
The Epic Creator v2 coordination architecture provides a robust, scalable foundation for persona-based epic analysis. Its modular design ensures maintainability while supporting future enhancements. The architecture emphasizes reliability, performance, and extensibility to meet enterprise requirements.
|
|
623
|
+
|
|
624
|
+
Key benefits:
|
|
625
|
+
- **Scalability:** Handles increased throughput with horizontal scaling
|
|
626
|
+
- **Reliability:** Graceful failure handling and recovery mechanisms
|
|
627
|
+
- **Flexibility:** Easy to add, remove, or modify personas
|
|
628
|
+
- **Performance:** Optimized execution with caching and parallel processing
|
|
629
|
+
- **Maintainability:** Clean separation of concerns and standardized interfaces
|