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
|
@@ -1,15 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
---
|
|
2
|
+
name: cfn-task-planning
|
|
3
|
+
description: Classify tasks, initialize structured configs with scope boundaries, decompose complex tasks
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
tags: planning, classification, scope, decomposition, task-mode
|
|
6
|
+
status: production
|
|
7
|
+
---
|
|
5
8
|
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
## What it does
|
|
10
|
+
Three-phase planning: (1) classify by type/complexity → agent specializations, (2) initialize config with scope boundaries, deliverables, acceptance criteria, (3) decompose large tasks into subtasks within tool budgets.
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
## When to use (4 triggers)
|
|
13
|
+
1. Starting CFN Loop Task Mode → Generate scope config before spawning
|
|
14
|
+
2. Analyzing complexity → Select right agents and iteration thresholds
|
|
15
|
+
3. Breaking down epics → Sequential subtasks when one agent can't complete
|
|
16
|
+
4. Scope contracts → Establish in/out-of-scope before implementation
|
|
13
17
|
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
## When NOT to use (4 anti-patterns)
|
|
19
|
+
1. Well-defined and scoped → Go straight to spawning
|
|
20
|
+
2. Real-time classification during execution → Planning phase only
|
|
21
|
+
3. CLI mode with Redis → CLI stores in Redis, this is for Task Mode configs
|
|
22
|
+
4. Simple single-step → Skip for trivial changes
|
|
23
|
+
|
|
24
|
+
## How to use
|
|
25
|
+
Step 1 Classify: `./classify-task.sh "Create REST API..." --format=json`
|
|
26
|
+
Step 2 Init: `./init-config.sh --task-id cfn-phase-123 --task-description "..." --mode standard`
|
|
27
|
+
Step 3 Decompose: `./decompose-task.sh --task-id ... --description "..." --complexity high`
|
|
28
|
+
|
|
29
|
+
## Parameters
|
|
30
|
+
- **classify**: TASK_DESCRIPTION, --format (json/simple)
|
|
31
|
+
- **init**: --task-id, --task-description, --mode (mvp/standard/enterprise)
|
|
32
|
+
- **decompose**: --task-id, --description, --tool-budget, --complexity
|
|
33
|
+
|
|
34
|
+
## Expected output
|
|
35
|
+
- **Classify**: `{task_type, complexity, keywords_matched, suggested_agents}`
|
|
36
|
+
- **Init**: `.cfn/task-configs/task-{id}.json` with scope, agents, thresholds, acceptance criteria
|
|
37
|
+
- **Decompose**: JSON array of subtasks with deliverables, tool_budget, estimated_effort
|
|
38
|
+
|
|
39
|
+
## Real-world example
|
|
40
|
+
"Add JWT auth" → classify backend → init config with deliverables `[src/auth/jwt.ts, tests/]` + acceptance criteria → spawn agents with known scope
|
|
@@ -1,60 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
tags: [mega-skill, validation, quality, testing]
|
|
6
|
-
status: production
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Validation Framework Skill (Mega-Skill)
|
|
10
|
-
|
|
11
|
-
**Version:** 1.0.0
|
|
12
|
-
**Purpose:** Multi-layer validation for CFN Loop
|
|
13
|
-
**Status:** Production
|
|
14
|
-
**Consolidates:** cfn-validation-templates, cfn-defense-in-depth, cfn-deliverable-validation, cfn-validation-runner-instrumentation, json-validation
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Overview
|
|
19
|
-
|
|
20
|
-
This mega-skill provides complete validation capabilities:
|
|
21
|
-
- **Templates** - Task-type specific validation templates
|
|
22
|
-
- **Layers** - Defense-in-depth multi-layer validation
|
|
23
|
-
- **Deliverables** - File and content validation
|
|
24
|
-
- **Instrumentation** - Validation runner metrics
|
|
25
|
-
- **JSON** - Schema validation and sanitization
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## Directory Structure
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
validation-framework/
|
|
33
|
-
├── SKILL.md
|
|
34
|
-
├── lib/
|
|
35
|
-
│ ├── templates/ # From cfn-validation-templates
|
|
36
|
-
│ ├── layers/ # From cfn-defense-in-depth
|
|
37
|
-
│ ├── deliverables/ # From cfn-deliverable-validation
|
|
38
|
-
│ ├── instrumentation/ # From cfn-validation-runner-instrumentation
|
|
39
|
-
│ └── json/ # From json-validation
|
|
40
|
-
└── cli/
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## Migration Paths
|
|
46
|
-
|
|
47
|
-
| Old Path | New Path |
|
|
48
|
-
|----------|----------|
|
|
49
|
-
| cfn-validation-templates/ | validation-framework/lib/templates/ |
|
|
50
|
-
| cfn-defense-in-depth/ | validation-framework/lib/layers/ |
|
|
51
|
-
| cfn-deliverable-validation/ | validation-framework/lib/deliverables/ |
|
|
52
|
-
| cfn-validation-runner-instrumentation/ | validation-framework/lib/instrumentation/ |
|
|
53
|
-
| json-validation/ | validation-framework/lib/json/ |
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Version History
|
|
58
|
-
|
|
59
|
-
### 1.0.0 (2025-12-02)
|
|
60
|
-
- Consolidated 5 validation skills into mega-skill
|
|
1
|
+
./execute.sh validate-json --file deliverables.json --schema schema.json
|
|
2
|
+
./execute.sh calculate-deliverable-confidence --deliverables ./artifacts/
|
|
3
|
+
./execute.sh run-instrumented --command "npm test" --output-dir ./test-results/
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
tags: [vision, image, analysis, screenshots]
|
|
6
|
-
status: production
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# CFN Vision Analysis Skill
|
|
10
|
-
|
|
11
|
-
## Purpose
|
|
12
|
-
|
|
13
|
-
Provides image and vision analysis capabilities for validating screenshots, mockups, and visual content in the CFN Loop workflow.
|
|
14
|
-
|
|
15
|
-
## Use Cases
|
|
16
|
-
|
|
17
|
-
- Screenshot validation against mockups
|
|
18
|
-
- UI consistency checking
|
|
19
|
-
- Visual regression detection
|
|
20
|
-
- Brand guideline compliance
|
|
1
|
+
do {
|
|
2
|
+
implement → screenshot → analyze_image → video → analyze_video → score
|
|
3
|
+
} while (score < 85%)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"startTime":
|
|
3
|
-
"sessionId": "session-
|
|
4
|
-
"lastActivity":
|
|
2
|
+
"startTime": 1765330300775,
|
|
3
|
+
"sessionId": "session-1765330300775",
|
|
4
|
+
"lastActivity": 1765330300775,
|
|
5
5
|
"sessionDuration": 0,
|
|
6
6
|
"totalTasks": 1,
|
|
7
7
|
"successfulTasks": 1,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
[
|
|
2
2
|
{
|
|
3
|
-
"id": "cmd-hooks-
|
|
3
|
+
"id": "cmd-hooks-1765330300826",
|
|
4
4
|
"type": "hooks",
|
|
5
5
|
"success": true,
|
|
6
|
-
"duration":
|
|
7
|
-
"timestamp":
|
|
6
|
+
"duration": 25.54045400000001,
|
|
7
|
+
"timestamp": 1765330300852,
|
|
8
8
|
"metadata": {}
|
|
9
9
|
}
|
|
10
10
|
]
|
|
Binary file
|
|
Binary file
|
package/CLAUDE.md
CHANGED
|
@@ -46,9 +46,17 @@ Always provide `context_files` when code needs imports from existing files.
|
|
|
46
46
|
|
|
47
47
|
### Context Discovery Priority (fastest to slowest)
|
|
48
48
|
1. **RuVector semantic search** (for "where is X?" queries):
|
|
49
|
+
- **Centralized index:** `~/.local/share/ruvector/index_v2.db` (shared across all projects)
|
|
50
|
+
- **Dual storage:** V1 (semantic/fuzzy) + V2 (structural/SQL)
|
|
51
|
+
- **V1 queries:** "Find similar code" via vector embeddings (cosine similarity)
|
|
52
|
+
- **V2 queries:** "Find callers/refs" via SQL on AST entities
|
|
49
53
|
```bash
|
|
54
|
+
# Semantic search
|
|
50
55
|
/codebase-search "authentication middleware pattern"
|
|
51
|
-
./.claude/skills/cfn-ruvector-
|
|
56
|
+
./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector query --pattern "auth"
|
|
57
|
+
|
|
58
|
+
# Structural SQL query
|
|
59
|
+
sqlite3 ~/.local/share/ruvector/index_v2.db "SELECT * FROM refs WHERE target_name = 'MyFunction';"
|
|
52
60
|
```
|
|
53
61
|
2. **Query past errors** before similar work:
|
|
54
62
|
```bash
|
package/README.md
CHANGED
|
@@ -219,6 +219,62 @@ bash tests/cli-mode/test-*.sh
|
|
|
219
219
|
bash tests/docker/validation/validate-bug6-redis-vars.sh
|
|
220
220
|
```
|
|
221
221
|
|
|
222
|
+
## RuVector - Semantic Codebase Search
|
|
223
|
+
|
|
224
|
+
**Centralized Index:** `~/.local/share/ruvector/index_v2.db`
|
|
225
|
+
|
|
226
|
+
RuVector provides dual-mode code intelligence with a centralized index shared across all projects:
|
|
227
|
+
|
|
228
|
+
### Dual Storage Architecture
|
|
229
|
+
|
|
230
|
+
| Schema | Purpose | Query Type | Use Case |
|
|
231
|
+
|--------|---------|------------|----------|
|
|
232
|
+
| **V1** (embeddings, files) | Semantic similarity | Vector distance | "Find code similar to X" |
|
|
233
|
+
| **V2** (entities, refs, modules) | Structured relationships | SQL joins | "Who calls this function?" |
|
|
234
|
+
|
|
235
|
+
**V1 - Semantic Search:**
|
|
236
|
+
- Stores text chunks with OpenAI embeddings (text-embedding-3-small, 1536 dims)
|
|
237
|
+
- Queries: Fuzzy semantic similarity via cosine distance
|
|
238
|
+
- Returns: Code that's semantically related regardless of exact syntax
|
|
239
|
+
|
|
240
|
+
**V2 - Code Intelligence:**
|
|
241
|
+
- Stores AST entities (functions, classes, interfaces) with relationships
|
|
242
|
+
- Queries: Precise SQL on structured code graph
|
|
243
|
+
- Returns: Exact references, callers, type usage, module dependencies
|
|
244
|
+
|
|
245
|
+
### Usage
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
# Build RuVector
|
|
249
|
+
cd .claude/skills/cfn-local-ruvector-accelerator
|
|
250
|
+
cargo build --release
|
|
251
|
+
|
|
252
|
+
# Initialize centralized index
|
|
253
|
+
./target/release/local-ruvector init
|
|
254
|
+
|
|
255
|
+
# Index current project (all file types)
|
|
256
|
+
./target/release/local-ruvector index --path . --types rs,ts,js,json,md,sh
|
|
257
|
+
|
|
258
|
+
# Semantic search across all indexed projects
|
|
259
|
+
./target/release/local-ruvector query --pattern "authentication middleware"
|
|
260
|
+
|
|
261
|
+
# SQL queries on code structure
|
|
262
|
+
sqlite3 ~/.local/share/ruvector/index_v2.db "
|
|
263
|
+
SELECT * FROM refs WHERE target_name = 'MyFunction';
|
|
264
|
+
"
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Supported Files:**
|
|
268
|
+
- AST extraction: Rust (.rs), TypeScript/JavaScript (.ts, .tsx, .js, .jsx)
|
|
269
|
+
- Text indexing: JSON, YAML, Markdown (.md), Shell scripts (.sh)
|
|
270
|
+
- Auto-excluded: `.artifacts/` (logs/reports)
|
|
271
|
+
|
|
272
|
+
**Benefits:**
|
|
273
|
+
- Cross-project semantic search
|
|
274
|
+
- Shared learnings across codebases
|
|
275
|
+
- Dual query modes (semantic + structural)
|
|
276
|
+
- Full paths preserve project context
|
|
277
|
+
|
|
222
278
|
## Support
|
|
223
279
|
|
|
224
280
|
- **Documentation Issues**: File issue at GitHub repo
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
# Agent Production Feedback Patterns
|
|
2
|
+
|
|
3
|
+
**Question**: When agents use the TDD Coordinator in production and encounter failures, can they adapt based on feedback, or are they fully dependent on the coordinator's code?
|
|
4
|
+
|
|
5
|
+
## TL;DR
|
|
6
|
+
|
|
7
|
+
**Agents CAN and SHOULD adapt based on feedback.** The coordinator is a tool, not a black box. Agents can:
|
|
8
|
+
1. See error outputs and adjust their approach
|
|
9
|
+
2. Retry with modified parameters
|
|
10
|
+
3. Read conversation logs to understand failures
|
|
11
|
+
4. Switch strategies if the coordinator repeatedly fails
|
|
12
|
+
|
|
13
|
+
## Architecture Overview
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
┌─────────────────────────────────────────────────────────┐
|
|
17
|
+
│ Agent (backend-developer, fullstack, etc.) │
|
|
18
|
+
│ │
|
|
19
|
+
│ 1. Decides to use TDD approach │
|
|
20
|
+
│ 2. Calls TDD Coordinator with parameters │
|
|
21
|
+
│ 3. Receives result (success/failure + details) │
|
|
22
|
+
│ 4. ANALYZES result and decides next action │
|
|
23
|
+
│ ├─ Success: Continue with generated code │
|
|
24
|
+
│ ├─ Partial: Adjust parameters and retry │
|
|
25
|
+
│ └─ Failure: Try different approach or manual coding │
|
|
26
|
+
└─────────────────────────────────────────────────────────┘
|
|
27
|
+
│
|
|
28
|
+
▼
|
|
29
|
+
┌─────────────────────────────────────────────────────────┐
|
|
30
|
+
│ TDD Coordinator (Skill) │
|
|
31
|
+
│ │
|
|
32
|
+
│ - Receives: feature, filePath, testCommand, context │
|
|
33
|
+
│ - Executes: RED → GREEN → FIX loop │
|
|
34
|
+
│ - Returns: JSON with success, files, errors, etc. │
|
|
35
|
+
│ - Saves: Conversation log for debugging │
|
|
36
|
+
└─────────────────────────────────────────────────────────┘
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Return Value Structure
|
|
40
|
+
|
|
41
|
+
The coordinator returns detailed feedback that agents can use for adaptation:
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
interface TDDResult {
|
|
45
|
+
success: boolean; // Did tests pass?
|
|
46
|
+
implementationFile: string; // Path to generated impl
|
|
47
|
+
testFile: string; // Path to generated tests
|
|
48
|
+
iterations: number; // How many fix attempts
|
|
49
|
+
conversationId: string; // For debugging
|
|
50
|
+
error?: string; // Error message if failed
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Agent Adaptation Patterns
|
|
55
|
+
|
|
56
|
+
### Pattern 1: Parameter Adjustment (Most Common)
|
|
57
|
+
|
|
58
|
+
**Scenario**: Coordinator fails with timezone issue
|
|
59
|
+
|
|
60
|
+
**Agent Response**:
|
|
61
|
+
```typescript
|
|
62
|
+
// First attempt
|
|
63
|
+
let result = await callTDDCoordinator({
|
|
64
|
+
feature: "Date formatter that formats dates as YYYY-MM-DD",
|
|
65
|
+
// ... other params
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// Agent sees failure in result.error
|
|
69
|
+
if (!result.success && result.error.includes('timezone')) {
|
|
70
|
+
console.log('🔄 Retrying with UTC hint...');
|
|
71
|
+
|
|
72
|
+
// Second attempt with adjusted feature description
|
|
73
|
+
result = await callTDDCoordinator({
|
|
74
|
+
feature: "Date formatter that formats dates as YYYY-MM-DD using UTC methods",
|
|
75
|
+
// ... same other params
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Pattern 2: Test Command Adjustment
|
|
81
|
+
|
|
82
|
+
**Scenario**: Test framework has path issues
|
|
83
|
+
|
|
84
|
+
**Agent Response**:
|
|
85
|
+
```typescript
|
|
86
|
+
// First attempt with absolute path
|
|
87
|
+
let result = await callTDDCoordinator({
|
|
88
|
+
testCommand: `npx vitest run ${absolutePath}/test.ts`
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// Agent detects "No test files found"
|
|
92
|
+
if (!result.success && result.error.includes('No test files found')) {
|
|
93
|
+
console.log('🔄 Adjusting test command to use relative path...');
|
|
94
|
+
|
|
95
|
+
// Retry with relative path
|
|
96
|
+
result = await callTDDCoordinator({
|
|
97
|
+
testCommand: `npx vitest run ${basename(testFile)}`
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Pattern 3: Context File Addition
|
|
103
|
+
|
|
104
|
+
**Scenario**: Generated code missing necessary types
|
|
105
|
+
|
|
106
|
+
**Agent Response**:
|
|
107
|
+
```typescript
|
|
108
|
+
// First attempt without context
|
|
109
|
+
let result = await callTDDCoordinator({
|
|
110
|
+
feature: "User authentication",
|
|
111
|
+
contextFiles: []
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// Agent sees import errors in result.error
|
|
115
|
+
if (!result.success && result.error.includes('Cannot find type')) {
|
|
116
|
+
console.log('🔄 Adding type definition context...');
|
|
117
|
+
|
|
118
|
+
// Retry with context files
|
|
119
|
+
result = await callTDDCoordinator({
|
|
120
|
+
feature: "User authentication",
|
|
121
|
+
contextFiles: ['./src/types/User.ts', './src/types/Auth.ts']
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Pattern 4: Strategy Switch
|
|
127
|
+
|
|
128
|
+
**Scenario**: Coordinator fails repeatedly (3+ times)
|
|
129
|
+
|
|
130
|
+
**Agent Response**:
|
|
131
|
+
```typescript
|
|
132
|
+
const MAX_RETRIES = 3;
|
|
133
|
+
let attempts = 0;
|
|
134
|
+
let result;
|
|
135
|
+
|
|
136
|
+
while (attempts < MAX_RETRIES) {
|
|
137
|
+
result = await callTDDCoordinator({ /* params */ });
|
|
138
|
+
|
|
139
|
+
if (result.success) break;
|
|
140
|
+
|
|
141
|
+
attempts++;
|
|
142
|
+
console.log(`⚠️ Attempt ${attempts}/${MAX_RETRIES} failed`);
|
|
143
|
+
|
|
144
|
+
// Try adjusting parameters based on error
|
|
145
|
+
// (parameter adjustment logic here)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (!result.success) {
|
|
149
|
+
console.log('❌ TDD Coordinator failed after 3 attempts');
|
|
150
|
+
console.log('🔄 Switching to manual code generation...');
|
|
151
|
+
|
|
152
|
+
// Agent falls back to direct code generation
|
|
153
|
+
return await generateCodeManually({ /* params */ });
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Pattern 5: Conversation Log Analysis
|
|
158
|
+
|
|
159
|
+
**Scenario**: Agent needs to understand WHY coordinator failed
|
|
160
|
+
|
|
161
|
+
**Agent Response**:
|
|
162
|
+
```typescript
|
|
163
|
+
const result = await callTDDCoordinator({ /* params */ });
|
|
164
|
+
|
|
165
|
+
if (!result.success) {
|
|
166
|
+
// Read the conversation log
|
|
167
|
+
const conversationPath = `./conversations/${result.conversationId}.json`;
|
|
168
|
+
const conversation = JSON.parse(readFileSync(conversationPath, 'utf-8'));
|
|
169
|
+
|
|
170
|
+
// Analyze the conversation to find patterns
|
|
171
|
+
const messages = conversation.conversation;
|
|
172
|
+
const lastError = messages[messages.length - 1].content;
|
|
173
|
+
|
|
174
|
+
console.log('🔍 Analyzing conversation log...');
|
|
175
|
+
console.log('Last error:', lastError);
|
|
176
|
+
|
|
177
|
+
// Agent uses this to make intelligent retry decisions
|
|
178
|
+
if (lastError.includes('module resolution')) {
|
|
179
|
+
// Adjust test command or add tsconfig
|
|
180
|
+
} else if (lastError.includes('type mismatch')) {
|
|
181
|
+
// Add type context files
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Production Integration Examples
|
|
187
|
+
|
|
188
|
+
### Example 1: Backend Developer Agent
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
async function implementFeature(featureDescription: string) {
|
|
192
|
+
// Agent decides to use TDD approach
|
|
193
|
+
console.log('📝 Using TDD approach for feature implementation...');
|
|
194
|
+
|
|
195
|
+
const result = await callTDDCoordinator({
|
|
196
|
+
agentId: this.agentId,
|
|
197
|
+
feature: featureDescription,
|
|
198
|
+
filePath: './src/features/newFeature.ts',
|
|
199
|
+
testCommand: 'npm test newFeature',
|
|
200
|
+
contextFiles: await this.gatherRelevantContext(),
|
|
201
|
+
maxIterations: 3
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
if (result.success) {
|
|
205
|
+
console.log('✅ TDD generation successful!');
|
|
206
|
+
console.log(`Generated: ${result.implementationFile}`);
|
|
207
|
+
console.log(`Tests: ${result.testFile}`);
|
|
208
|
+
console.log(`Iterations: ${result.iterations}`);
|
|
209
|
+
return result;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// ADAPTIVE BEHAVIOR: Agent analyzes failure and decides what to do
|
|
213
|
+
console.log('⚠️ TDD generation failed:', result.error);
|
|
214
|
+
|
|
215
|
+
// Check if it's a recoverable error
|
|
216
|
+
if (result.iterations < 3) {
|
|
217
|
+
// Coordinator gave up early, might be a parameter issue
|
|
218
|
+
console.log('🔄 Coordinator gave up early, trying with more context...');
|
|
219
|
+
|
|
220
|
+
return await callTDDCoordinator({
|
|
221
|
+
...previousParams,
|
|
222
|
+
contextFiles: await this.gatherMoreContext(),
|
|
223
|
+
feature: `${featureDescription} (use TypeScript strict mode)`
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// If coordinator tried hard but failed, fall back to manual approach
|
|
228
|
+
console.log('🔄 Falling back to manual implementation...');
|
|
229
|
+
return await this.manualImplementation(featureDescription);
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Example 2: CFN Loop Integration
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
// In CFN Loop orchestration
|
|
237
|
+
async function executeTaskWithTDD(task: Task) {
|
|
238
|
+
const tddResult = await spawnAgent('tdd-coordinator', {
|
|
239
|
+
feature: task.description,
|
|
240
|
+
filePath: task.targetFile,
|
|
241
|
+
testCommand: task.testCommand
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
// CFN Loop reads the result and decides next steps
|
|
245
|
+
if (tddResult.success) {
|
|
246
|
+
// Continue to validation phase
|
|
247
|
+
await spawnAgent('code-reviewer', {
|
|
248
|
+
files: [tddResult.implementationFile, tddResult.testFile]
|
|
249
|
+
});
|
|
250
|
+
} else {
|
|
251
|
+
// ADAPTIVE: CFN Loop can spawn different agents based on error type
|
|
252
|
+
if (tddResult.error.includes('test framework')) {
|
|
253
|
+
// Spawn a specialist to set up test framework first
|
|
254
|
+
await spawnAgent('test-framework-setup', {
|
|
255
|
+
framework: 'vitest',
|
|
256
|
+
directory: dirname(task.targetFile)
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
// Then retry TDD coordinator
|
|
260
|
+
tddResult = await spawnAgent('tdd-coordinator', { /* same params */ });
|
|
261
|
+
} else {
|
|
262
|
+
// Different recovery strategy based on error type
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Error Categories and Agent Responses
|
|
269
|
+
|
|
270
|
+
| Error Type | Agent Detection | Recommended Response |
|
|
271
|
+
|------------|----------------|----------------------|
|
|
272
|
+
| **Timezone/Date Issues** | `error.includes('expected') && error.includes('date')` | Add "using UTC" to feature description |
|
|
273
|
+
| **Import Errors** | `error.includes('Cannot find') \|\| error.includes('is not defined')` | Add context files with type definitions |
|
|
274
|
+
| **Test Framework Issues** | `error.includes('No test files')` | Check test command format or install framework |
|
|
275
|
+
| **Syntax Errors** | `error.includes('SyntaxError')` | Review generated code, might need linting setup |
|
|
276
|
+
| **Type Errors** | `error.includes('Type') && error.includes('expected')` | Add tsconfig or type declaration files |
|
|
277
|
+
| **Logic Errors** | `iterations === maxIterations && !success` | Coordinator tried hard, consider manual implementation |
|
|
278
|
+
|
|
279
|
+
## Design Philosophy: Tools, Not Oracles
|
|
280
|
+
|
|
281
|
+
The TDD Coordinator is designed as a **tool** that agents use, not an **oracle** they blindly trust.
|
|
282
|
+
|
|
283
|
+
### What Agents SHOULD Do ✅
|
|
284
|
+
- Read and interpret coordinator results
|
|
285
|
+
- Adjust parameters based on errors
|
|
286
|
+
- Retry with different approaches
|
|
287
|
+
- Fall back to alternative strategies if needed
|
|
288
|
+
- Learn from conversation logs
|
|
289
|
+
- Provide better context on retry
|
|
290
|
+
|
|
291
|
+
### What Agents SHOULD NOT Do ❌
|
|
292
|
+
- Blindly accept coordinator failures
|
|
293
|
+
- Ignore error messages
|
|
294
|
+
- Retry indefinitely with same parameters
|
|
295
|
+
- Skip reading the result structure
|
|
296
|
+
- Assume coordinator is always right
|
|
297
|
+
|
|
298
|
+
## Feedback Loop Architecture
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
Agent Request → Coordinator Execution → Result Analysis → Decision
|
|
302
|
+
↑ │
|
|
303
|
+
│ │
|
|
304
|
+
└──────────────── Adaptive Retry ───────────────────────┘
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
**Key Point**: The loop includes an **Adaptive Retry** path where agents can modify their approach based on what they learned.
|
|
308
|
+
|
|
309
|
+
## Real-World Scenario: vitest Path Issue
|
|
310
|
+
|
|
311
|
+
### Without Adaptation (BAD)
|
|
312
|
+
```typescript
|
|
313
|
+
// Agent blindly accepts failure
|
|
314
|
+
const result = await callTDDCoordinator({
|
|
315
|
+
testCommand: 'npx vitest run /abs/path/test.ts'
|
|
316
|
+
});
|
|
317
|
+
|
|
318
|
+
if (!result.success) {
|
|
319
|
+
console.log('❌ TDD failed, giving up');
|
|
320
|
+
return null; // 😢 Agent gives up
|
|
321
|
+
}
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### With Adaptation (GOOD)
|
|
325
|
+
```typescript
|
|
326
|
+
// Agent analyzes and adapts
|
|
327
|
+
let result = await callTDDCoordinator({
|
|
328
|
+
testCommand: 'npx vitest run /abs/path/test.ts'
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
if (!result.success && result.error.includes('No test files found')) {
|
|
332
|
+
console.log('🔍 Detected test path issue, trying relative path...');
|
|
333
|
+
|
|
334
|
+
result = await callTDDCoordinator({
|
|
335
|
+
testCommand: 'npx vitest run test.ts' // Relative path
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
if (result.success) {
|
|
340
|
+
console.log('✅ Recovered from path issue!');
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### With Code Fix (BEST)
|
|
345
|
+
```typescript
|
|
346
|
+
// Now that we fixed the coordinator code to use `cwd`,
|
|
347
|
+
// agents don't need to worry about this specific issue anymore!
|
|
348
|
+
|
|
349
|
+
const result = await callTDDCoordinator({
|
|
350
|
+
testCommand: 'npx vitest run /abs/path/test.ts'
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
// Works because coordinator runs from correct directory ✅
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
## Current State After 5 Rounds
|
|
357
|
+
|
|
358
|
+
### Fixed in Code (No Agent Adaptation Needed)
|
|
359
|
+
- ✅ ESM `__dirname` issue
|
|
360
|
+
- ✅ Import statement generation
|
|
361
|
+
- ✅ Vitest syntax usage
|
|
362
|
+
- ✅ FIX phase file targeting
|
|
363
|
+
- ✅ Test command working directory
|
|
364
|
+
|
|
365
|
+
### Requires Agent Adaptation (Can't Fix in Code)
|
|
366
|
+
- Feature description hints (e.g., "using UTC")
|
|
367
|
+
- Context file selection (agent knows codebase better)
|
|
368
|
+
- Test command format per project
|
|
369
|
+
- Framework-specific configurations
|
|
370
|
+
- Domain-specific edge cases
|
|
371
|
+
|
|
372
|
+
## Conclusion
|
|
373
|
+
|
|
374
|
+
**Answer to Original Question**:
|
|
375
|
+
|
|
376
|
+
Agents are **NOT fully dependent on the code** - they **CAN and SHOULD adapt** based on feedback.
|
|
377
|
+
|
|
378
|
+
The TDD Coordinator provides rich feedback (success status, error messages, iteration count, conversation logs) that agents can use to:
|
|
379
|
+
1. Diagnose issues
|
|
380
|
+
2. Adjust parameters
|
|
381
|
+
3. Retry with better context
|
|
382
|
+
4. Switch strategies if needed
|
|
383
|
+
|
|
384
|
+
**Design Goal**: Create a **collaborative relationship** where:
|
|
385
|
+
- Coordinator handles TDD mechanics (RED-GREEN-REFACTOR loop)
|
|
386
|
+
- Agents handle high-level strategy and adaptation
|
|
387
|
+
- Together they solve complex problems that neither could solve alone
|
|
388
|
+
|
|
389
|
+
**Production Readiness**: The coordinator is now robust enough that most common issues are handled automatically, but agents still have full visibility and control to adapt when needed.
|