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,525 @@
|
|
|
1
|
+
# TDD Conversation Coordinator
|
|
2
|
+
|
|
3
|
+
Iterative Test-Driven Development with Cerebras LLM and conversation memory for error recovery.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This coordinator implements a complete TDD workflow (Red-Green-Refactor) with:
|
|
8
|
+
- **Conversation Memory**: Full history tracked across iterations for context-aware fixes
|
|
9
|
+
- **Context Gathering**: RuVector pattern queries + explicit context files
|
|
10
|
+
- **Iterative Refinement**: Failed tests trigger fix loops with error context
|
|
11
|
+
- **Success Logging**: Successful patterns indexed to RuVector for learning
|
|
12
|
+
|
|
13
|
+
## Workflow Phases
|
|
14
|
+
|
|
15
|
+
### Phase 1: Context Gathering
|
|
16
|
+
- Query RuVector for similar patterns in codebase
|
|
17
|
+
- Load explicit context files (types, utilities, related code)
|
|
18
|
+
- Store context in conversation metadata
|
|
19
|
+
|
|
20
|
+
### Phase 2: RED - Generate Tests
|
|
21
|
+
- Cerebras generates comprehensive failing tests
|
|
22
|
+
- Uses Given/When/Then structure
|
|
23
|
+
- Covers happy path and edge cases
|
|
24
|
+
- Framework-appropriate (Jest, pytest, Go testing, etc.)
|
|
25
|
+
|
|
26
|
+
### Phase 3: RED - Verify Failure
|
|
27
|
+
- Run tests to ensure they fail (no implementation exists)
|
|
28
|
+
- Validates Red phase before proceeding
|
|
29
|
+
|
|
30
|
+
### Phase 4: GREEN - Generate Implementation
|
|
31
|
+
- Cerebras generates minimal implementation
|
|
32
|
+
- Guided by test requirements
|
|
33
|
+
- Follows patterns from context
|
|
34
|
+
|
|
35
|
+
### Phase 5: GREEN - Verify Pass
|
|
36
|
+
- Run tests to check if implementation works
|
|
37
|
+
- If pass: success, log to RuVector
|
|
38
|
+
- If fail: enter fix loop
|
|
39
|
+
|
|
40
|
+
### Phase 6: FIX - Iterative Refinement
|
|
41
|
+
- Send full error output + conversation history to Cerebras
|
|
42
|
+
- Cerebras analyzes previous attempts and errors
|
|
43
|
+
- Generates fixed implementation
|
|
44
|
+
- Repeat until tests pass or max iterations reached
|
|
45
|
+
|
|
46
|
+
### Phase 7: Success Logging
|
|
47
|
+
- Index successful pattern to RuVector
|
|
48
|
+
- Save full conversation JSON for learning
|
|
49
|
+
- Store in `conversations/` directory
|
|
50
|
+
|
|
51
|
+
## Usage
|
|
52
|
+
|
|
53
|
+
### Basic Example
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
./.claude/skills/cfn-cerebras-coordinator/tdd-conversation-coordinator.sh \
|
|
57
|
+
--agent-id tdd-001 \
|
|
58
|
+
--feature "Email validation function" \
|
|
59
|
+
--file ./src/validators/email.ts \
|
|
60
|
+
--test-command "npm test email.test.ts" \
|
|
61
|
+
--max-iterations 5
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### With Context Files
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
./.claude/skills/cfn-cerebras-coordinator/tdd-conversation-coordinator.sh \
|
|
68
|
+
--agent-id tdd-002 \
|
|
69
|
+
--feature "User authentication with JWT" \
|
|
70
|
+
--file ./src/auth/jwt-validator.ts \
|
|
71
|
+
--test-command "npm test jwt-validator.test.ts" \
|
|
72
|
+
--context "./src/auth/types.ts,./src/utils/crypto.ts,./src/config/jwt.ts" \
|
|
73
|
+
--max-iterations 3 \
|
|
74
|
+
--verbose
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Python Example
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
./.claude/skills/cfn-cerebras-coordinator/tdd-conversation-coordinator.sh \
|
|
81
|
+
--agent-id tdd-003 \
|
|
82
|
+
--feature "Data sanitization for SQL injection prevention" \
|
|
83
|
+
--file ./src/sanitizers/sql.py \
|
|
84
|
+
--test-command "pytest test_sql.py -v" \
|
|
85
|
+
--context "./src/types.py,./src/database/connection.py" \
|
|
86
|
+
--max-iterations 5
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Go Example
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
./.claude/skills/cfn-cerebras-coordinator/tdd-conversation-coordinator.sh \
|
|
93
|
+
--agent-id tdd-004 \
|
|
94
|
+
--feature "Rate limiter with token bucket algorithm" \
|
|
95
|
+
--file ./pkg/limiter/rate_limiter.go \
|
|
96
|
+
--test-command "go test -v ./pkg/limiter/..." \
|
|
97
|
+
--context "./pkg/limiter/types.go,./pkg/config/limits.go" \
|
|
98
|
+
--max-iterations 5
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Arguments
|
|
102
|
+
|
|
103
|
+
### Required
|
|
104
|
+
|
|
105
|
+
- `--agent-id ID` - Unique agent identifier for tracking
|
|
106
|
+
- `--feature DESCRIPTION` - Clear description of feature to implement
|
|
107
|
+
- `--file PATH` - Target implementation file path
|
|
108
|
+
- `--test-command CMD` - Shell command to run tests
|
|
109
|
+
|
|
110
|
+
### Optional
|
|
111
|
+
|
|
112
|
+
- `--context FILES` - Comma-separated list of context file paths
|
|
113
|
+
- `--max-iterations N` - Maximum fix iterations (default: 5)
|
|
114
|
+
- `--verbose` - Enable detailed logging
|
|
115
|
+
- `--help` - Show usage information
|
|
116
|
+
|
|
117
|
+
## Environment Variables
|
|
118
|
+
|
|
119
|
+
### Required
|
|
120
|
+
|
|
121
|
+
- `CEREBRAS_API_KEY` - API key for Cerebras Cloud SDK access
|
|
122
|
+
- **Auto-loaded by SessionStart hook**: The `.claude/hooks/cfn-load-cerebras-env.sh` hook automatically checks for this variable at session start
|
|
123
|
+
- Can be set via: `export CEREBRAS_API_KEY=your_key` or in project root `.env` file
|
|
124
|
+
- Hook will warn if not found and provide setup instructions
|
|
125
|
+
|
|
126
|
+
### Optional
|
|
127
|
+
|
|
128
|
+
- `CEREBRAS_MODEL` - Model name (default: `zai-glm-4.6`)
|
|
129
|
+
- Recommended: `zai-glm-4.6` for fast code generation
|
|
130
|
+
- Alternative: `llama3.1-70b` for complex reasoning
|
|
131
|
+
- `MAX_TDD_ITERATIONS` - Default max iterations (default: 5)
|
|
132
|
+
- `RUVECTOR_INDEX_PATH` - RuVector index location (default: `./.claude/skills/cfn-local-ruvector-accelerator`)
|
|
133
|
+
|
|
134
|
+
### SessionStart Hook Integration
|
|
135
|
+
|
|
136
|
+
The SessionStart hook (`.claude/hooks/cfn-load-cerebras-env.sh`) runs automatically when you start a Claude Code session:
|
|
137
|
+
|
|
138
|
+
1. **Checks** if `CEREBRAS_API_KEY` is already set in your shell environment
|
|
139
|
+
2. **If not found**, attempts to load from `.env` file in project root
|
|
140
|
+
3. **Outputs** confirmation message: `"Cerebras API configured: model=zai-glm-4.6, key=22f73578***"`
|
|
141
|
+
4. **Or warns** if API key is missing with setup instructions
|
|
142
|
+
|
|
143
|
+
**To set up your API key:**
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# Option 1: Export in shell (temporary, session-only)
|
|
147
|
+
export CEREBRAS_API_KEY=your_api_key_here
|
|
148
|
+
|
|
149
|
+
# Option 2: Add to project .env file (persistent)
|
|
150
|
+
echo "CEREBRAS_API_KEY=your_api_key_here" >> .env
|
|
151
|
+
echo "CEREBRAS_MODEL=zai-glm-4.6" >> .env
|
|
152
|
+
|
|
153
|
+
# Option 3: Add to shell profile (global, all sessions)
|
|
154
|
+
echo 'export CEREBRAS_API_KEY=your_api_key_here' >> ~/.bashrc
|
|
155
|
+
source ~/.bashrc
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Conversation Memory Format
|
|
159
|
+
|
|
160
|
+
Each TDD session creates a JSON file with full conversation history:
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"messages": [
|
|
165
|
+
{
|
|
166
|
+
"role": "system",
|
|
167
|
+
"content": "You are a TDD expert...",
|
|
168
|
+
"timestamp": "2025-12-10T10:30:00Z"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"role": "user",
|
|
172
|
+
"content": "# TDD Red Phase: Write Failing Tests...",
|
|
173
|
+
"timestamp": "2025-12-10T10:30:05Z"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"role": "assistant",
|
|
177
|
+
"content": "describe('EmailValidator', () => { ... })",
|
|
178
|
+
"timestamp": "2025-12-10T10:30:12Z"
|
|
179
|
+
}
|
|
180
|
+
],
|
|
181
|
+
"metadata": {
|
|
182
|
+
"agent_id": "tdd-001",
|
|
183
|
+
"feature": "Email validation function",
|
|
184
|
+
"file_path": "./src/validators/email.ts",
|
|
185
|
+
"test_file": "./src/validators/email.test.ts",
|
|
186
|
+
"started_at": "2025-12-10T10:30:00Z",
|
|
187
|
+
"completed_at": "2025-12-10T10:35:42Z",
|
|
188
|
+
"iterations": 2,
|
|
189
|
+
"phase": "success",
|
|
190
|
+
"context_files_count": 1,
|
|
191
|
+
"patterns_found": 3
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Test File Path Detection
|
|
197
|
+
|
|
198
|
+
The coordinator automatically determines test file paths based on language:
|
|
199
|
+
|
|
200
|
+
| Language | Implementation | Test File |
|
|
201
|
+
|----------|---------------|-----------|
|
|
202
|
+
| TypeScript | `src/auth.ts` | `src/auth.test.ts` |
|
|
203
|
+
| JavaScript | `src/utils.js` | `src/utils.test.js` |
|
|
204
|
+
| Python | `src/validator.py` | `src/test_validator.py` |
|
|
205
|
+
| Go | `pkg/handler.go` | `pkg/handler_test.go` |
|
|
206
|
+
| Other | `path/file.ext` | `path/file.test.ext` |
|
|
207
|
+
|
|
208
|
+
## Integration with RuVector
|
|
209
|
+
|
|
210
|
+
### Query Phase (Phase 1)
|
|
211
|
+
```bash
|
|
212
|
+
# Queries RuVector for similar patterns
|
|
213
|
+
./.claude/skills/cfn-local-ruvector-accelerator/query-local.sh \
|
|
214
|
+
--pattern "Email validation function" \
|
|
215
|
+
--limit 3
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Success Phase (Phase 7)
|
|
219
|
+
```bash
|
|
220
|
+
# Indexes successful implementation
|
|
221
|
+
./.claude/skills/cfn-local-ruvector-accelerator/index-code.sh \
|
|
222
|
+
--path ./src/validators/email.ts \
|
|
223
|
+
--source tdd-cerebras \
|
|
224
|
+
--success true
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Error Recovery
|
|
228
|
+
|
|
229
|
+
The conversation memory enables sophisticated error recovery:
|
|
230
|
+
|
|
231
|
+
### Iteration 1 Failure
|
|
232
|
+
```
|
|
233
|
+
Tests failed:
|
|
234
|
+
- Expected valid email to return true
|
|
235
|
+
- Got false instead
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Cerebras Response (with full context)
|
|
239
|
+
- Reviews original requirements
|
|
240
|
+
- Analyzes previous implementation attempt
|
|
241
|
+
- Identifies regex pattern issue
|
|
242
|
+
- Generates fix addressing specific failure
|
|
243
|
+
|
|
244
|
+
### Iteration 2 Failure
|
|
245
|
+
```
|
|
246
|
+
Tests failed:
|
|
247
|
+
- Handling of edge case emails (plus signs)
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Cerebras Response (with even more context)
|
|
251
|
+
- Reviews both previous attempts
|
|
252
|
+
- Sees pattern of regex issues
|
|
253
|
+
- Generates more robust regex
|
|
254
|
+
- Tests pass on iteration 3
|
|
255
|
+
|
|
256
|
+
## Output Files
|
|
257
|
+
|
|
258
|
+
### During Execution
|
|
259
|
+
- `/tmp/cerebras-tdd-{agent-id}-{timestamp}.json` - Active conversation
|
|
260
|
+
- `{implementation-file}` - Generated implementation
|
|
261
|
+
- `{test-file}` - Generated tests
|
|
262
|
+
|
|
263
|
+
### After Success
|
|
264
|
+
- `./.claude/skills/cfn-cerebras-coordinator/conversations/{date}-{agent-id}.json` - Saved conversation
|
|
265
|
+
- RuVector index updated with successful pattern
|
|
266
|
+
|
|
267
|
+
## Best Practices
|
|
268
|
+
|
|
269
|
+
### 1. Provide Rich Context
|
|
270
|
+
```bash
|
|
271
|
+
# Good - includes related types and utilities
|
|
272
|
+
--context "./src/types.ts,./src/utils/validation.ts"
|
|
273
|
+
|
|
274
|
+
# Less helpful - no context
|
|
275
|
+
# (Cerebras may generate code incompatible with existing patterns)
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### 2. Use Descriptive Features
|
|
279
|
+
```bash
|
|
280
|
+
# Good - specific and testable
|
|
281
|
+
--feature "JWT token validator that checks signature, expiration, and issuer"
|
|
282
|
+
|
|
283
|
+
# Less helpful - too vague
|
|
284
|
+
--feature "JWT stuff"
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### 3. Set Appropriate Iterations
|
|
288
|
+
```bash
|
|
289
|
+
# Simple function
|
|
290
|
+
--max-iterations 3
|
|
291
|
+
|
|
292
|
+
# Complex algorithm
|
|
293
|
+
--max-iterations 5
|
|
294
|
+
|
|
295
|
+
# Critical security code
|
|
296
|
+
--max-iterations 7
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 4. Use Verbose Mode for Debugging
|
|
300
|
+
```bash
|
|
301
|
+
# Enable verbose logging
|
|
302
|
+
--verbose
|
|
303
|
+
|
|
304
|
+
# Check conversation file during execution
|
|
305
|
+
cat /tmp/cerebras-tdd-*.json | jq '.messages[-1]'
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### 5. Learn from Conversations
|
|
309
|
+
```bash
|
|
310
|
+
# Review successful patterns
|
|
311
|
+
find ./.claude/skills/cfn-cerebras-coordinator/conversations/ \
|
|
312
|
+
-name "*.json" \
|
|
313
|
+
-exec jq '.metadata | {feature, iterations, completed_at}' {} \;
|
|
314
|
+
|
|
315
|
+
# Extract lessons
|
|
316
|
+
jq '.messages[] | select(.role == "assistant") | .content' \
|
|
317
|
+
conversations/20251210-tdd-001.json
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Troubleshooting
|
|
321
|
+
|
|
322
|
+
### Tests Don't Fail in Red Phase
|
|
323
|
+
**Symptom**: Red phase validation fails because tests pass unexpectedly
|
|
324
|
+
|
|
325
|
+
**Causes**:
|
|
326
|
+
- Implementation already exists at target path
|
|
327
|
+
- Test file path detection incorrect
|
|
328
|
+
- Test command not isolated
|
|
329
|
+
|
|
330
|
+
**Solutions**:
|
|
331
|
+
```bash
|
|
332
|
+
# Remove existing implementation
|
|
333
|
+
rm ./src/validators/email.ts
|
|
334
|
+
|
|
335
|
+
# Check test file path
|
|
336
|
+
--verbose # Shows detected test file path
|
|
337
|
+
|
|
338
|
+
# Isolate test command
|
|
339
|
+
--test-command "npm test -- email.test.ts --testPathPattern=email"
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### API Errors
|
|
343
|
+
**Symptom**: `API returned HTTP 401` or similar
|
|
344
|
+
|
|
345
|
+
**Causes**:
|
|
346
|
+
- Missing or invalid `ZAI_API_KEY`
|
|
347
|
+
- Incorrect `ZAI_BASE_URL`
|
|
348
|
+
- Network issues
|
|
349
|
+
|
|
350
|
+
**Solutions**:
|
|
351
|
+
```bash
|
|
352
|
+
# Verify API key
|
|
353
|
+
echo $ZAI_API_KEY
|
|
354
|
+
|
|
355
|
+
# Test API directly
|
|
356
|
+
curl -H "Authorization: Bearer $ZAI_API_KEY" \
|
|
357
|
+
${ZAI_BASE_URL}/models
|
|
358
|
+
|
|
359
|
+
# Check network
|
|
360
|
+
curl -I https://api.zai.ai
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### Max Iterations Reached
|
|
364
|
+
**Symptom**: Script exits after N iterations without passing tests
|
|
365
|
+
|
|
366
|
+
**Causes**:
|
|
367
|
+
- Feature too complex for current context
|
|
368
|
+
- Test command incorrect
|
|
369
|
+
- Implementation fundamentally flawed
|
|
370
|
+
|
|
371
|
+
**Solutions**:
|
|
372
|
+
```bash
|
|
373
|
+
# Review conversation for patterns
|
|
374
|
+
cat /tmp/cerebras-tdd-*.json | jq '.messages[] | select(.role == "user") | .content' | tail -20
|
|
375
|
+
|
|
376
|
+
# Add more context files
|
|
377
|
+
--context "./src/types.ts,./src/utils/*.ts,./docs/patterns.md"
|
|
378
|
+
|
|
379
|
+
# Simplify feature scope
|
|
380
|
+
# Instead of: "Complete authentication system"
|
|
381
|
+
# Try: "JWT signature validation only"
|
|
382
|
+
|
|
383
|
+
# Increase iterations cautiously
|
|
384
|
+
--max-iterations 10 # May indicate deeper issues
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
### RuVector Integration Issues
|
|
388
|
+
**Symptom**: Context gathering or success logging fails
|
|
389
|
+
|
|
390
|
+
**Causes**:
|
|
391
|
+
- RuVector index not initialized
|
|
392
|
+
- Incorrect `RUVECTOR_INDEX_PATH`
|
|
393
|
+
- Permission issues
|
|
394
|
+
|
|
395
|
+
**Solutions**:
|
|
396
|
+
```bash
|
|
397
|
+
# Check RuVector installation
|
|
398
|
+
ls -la ./.claude/skills/cfn-local-ruvector-accelerator/
|
|
399
|
+
|
|
400
|
+
# Initialize index if needed
|
|
401
|
+
./.claude/skills/cfn-local-ruvector-accelerator/initialize-index.sh
|
|
402
|
+
|
|
403
|
+
# Set custom path
|
|
404
|
+
export RUVECTOR_INDEX_PATH="/path/to/ruvector"
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
## Testing
|
|
408
|
+
|
|
409
|
+
Run the test suite:
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
./.claude/skills/cfn-cerebras-coordinator/test-tdd-coordinator.sh
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
Tests validate:
|
|
416
|
+
- Argument parsing and validation
|
|
417
|
+
- Conversation file structure
|
|
418
|
+
- Test file path generation logic
|
|
419
|
+
- Error handling
|
|
420
|
+
|
|
421
|
+
## Integration with CFN Agents
|
|
422
|
+
|
|
423
|
+
### Spawn from Agent
|
|
424
|
+
|
|
425
|
+
```javascript
|
|
426
|
+
Task("backend-dev", `
|
|
427
|
+
Use TDD coordinator to implement feature:
|
|
428
|
+
|
|
429
|
+
./.claude/skills/cfn-cerebras-coordinator/tdd-conversation-coordinator.sh \\
|
|
430
|
+
--agent-id tdd-${Date.now()} \\
|
|
431
|
+
--feature "Rate limiter with token bucket" \\
|
|
432
|
+
--file ./src/middleware/rate-limiter.ts \\
|
|
433
|
+
--test-command "npm test rate-limiter.test.ts" \\
|
|
434
|
+
--context "./src/types.ts,./src/config/rate-limits.ts" \\
|
|
435
|
+
--max-iterations 5 \\
|
|
436
|
+
--verbose
|
|
437
|
+
|
|
438
|
+
After completion:
|
|
439
|
+
1. Review generated tests and implementation
|
|
440
|
+
2. Run full test suite
|
|
441
|
+
3. Report confidence and next steps
|
|
442
|
+
`)
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### CLI Loop Integration
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
# From CFN Loop CLI coordinator
|
|
449
|
+
AGENT_ID="tdd-backend-$(date +%s)"
|
|
450
|
+
|
|
451
|
+
./.claude/skills/cfn-cerebras-coordinator/tdd-conversation-coordinator.sh \
|
|
452
|
+
--agent-id "$AGENT_ID" \
|
|
453
|
+
--feature "$FEATURE_DESCRIPTION" \
|
|
454
|
+
--file "$TARGET_FILE" \
|
|
455
|
+
--test-command "$TEST_CMD" \
|
|
456
|
+
--context "$CONTEXT_FILES" \
|
|
457
|
+
--max-iterations "${MAX_ITERATIONS:-5}"
|
|
458
|
+
|
|
459
|
+
# Check exit code
|
|
460
|
+
if [[ $? -eq 0 ]]; then
|
|
461
|
+
echo "TDD cycle completed successfully"
|
|
462
|
+
# Proceed with Loop 3 validation
|
|
463
|
+
else
|
|
464
|
+
echo "TDD cycle failed after max iterations"
|
|
465
|
+
# Trigger iteration or escalation
|
|
466
|
+
fi
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
## Performance Characteristics
|
|
470
|
+
|
|
471
|
+
### Typical Execution Times
|
|
472
|
+
|
|
473
|
+
| Complexity | Iterations | Duration | Cost Estimate |
|
|
474
|
+
|------------|-----------|----------|---------------|
|
|
475
|
+
| Simple validator | 1-2 | 30-60s | ~$0.02-0.05 |
|
|
476
|
+
| Medium algorithm | 2-3 | 60-120s | ~$0.05-0.10 |
|
|
477
|
+
| Complex feature | 3-5 | 120-300s | ~$0.10-0.25 |
|
|
478
|
+
|
|
479
|
+
### Token Usage
|
|
480
|
+
|
|
481
|
+
- Context gathering: 500-2000 tokens
|
|
482
|
+
- Test generation: 1000-3000 tokens
|
|
483
|
+
- Implementation: 1000-4000 tokens
|
|
484
|
+
- Fix iteration: 2000-5000 tokens (includes history)
|
|
485
|
+
|
|
486
|
+
### Cost Optimization
|
|
487
|
+
|
|
488
|
+
```bash
|
|
489
|
+
# Reduce context size
|
|
490
|
+
--context "./src/types.ts" # Only essential files
|
|
491
|
+
|
|
492
|
+
# Lower max iterations
|
|
493
|
+
--max-iterations 3
|
|
494
|
+
|
|
495
|
+
# Use cheaper model if available
|
|
496
|
+
export ZAI_MODEL="glm-4.6" # vs more expensive alternatives
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
## Future Enhancements
|
|
500
|
+
|
|
501
|
+
### Planned Features
|
|
502
|
+
- [ ] Parallel test generation (multiple test suites)
|
|
503
|
+
- [ ] Incremental test addition (add tests to existing suite)
|
|
504
|
+
- [ ] Refactor phase after Green (Red-Green-Refactor complete)
|
|
505
|
+
- [ ] Performance benchmarking integration
|
|
506
|
+
- [ ] Security vulnerability scanning
|
|
507
|
+
- [ ] Code coverage analysis and gap filling
|
|
508
|
+
|
|
509
|
+
### Experimental Ideas
|
|
510
|
+
- Adaptive iteration limits based on complexity
|
|
511
|
+
- Multi-agent collaboration (separate test writer and implementer)
|
|
512
|
+
- Learning rate optimization (adjust based on past success)
|
|
513
|
+
- Automated context file discovery via import analysis
|
|
514
|
+
|
|
515
|
+
## References
|
|
516
|
+
|
|
517
|
+
- [Test-Driven Development](https://en.wikipedia.org/wiki/Test-driven_development)
|
|
518
|
+
- [Given-When-Then](https://martinfowler.com/bliki/GivenWhenThen.html)
|
|
519
|
+
- [RuVector Semantic Search](..//cfn-local-ruvector-accelerator/README.md)
|
|
520
|
+
- [CFN Agent Spawning](../cfn-agent-spawning/SKILL.md)
|
|
521
|
+
- [Project Tests Guide](../../../tests/CLAUDE.md)
|
|
522
|
+
|
|
523
|
+
## License
|
|
524
|
+
|
|
525
|
+
Part of Claude Flow Novice (CFN) framework. See project LICENSE.
|