claude-flow-novice 2.18.13 → 2.18.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  2. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  3. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  4. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  5. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  6. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  7. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  8. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  9. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  10. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/metadata.json +8 -0
  11. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/original +1212 -0
  12. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/revert.sh +7 -0
  13. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/metadata.json +8 -0
  14. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/original +1212 -0
  15. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/revert.sh +7 -0
  16. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/metadata.json +8 -0
  17. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/original +1212 -0
  18. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/revert.sh +7 -0
  19. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/metadata.json +8 -0
  20. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/original +1228 -0
  21. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/revert.sh +7 -0
  22. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/metadata.json +8 -0
  23. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/original +1237 -0
  24. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/revert.sh +7 -0
  25. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/metadata.json +8 -0
  26. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/original +1240 -0
  27. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/revert.sh +7 -0
  28. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/metadata.json +8 -0
  29. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/original +1216 -0
  30. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/revert.sh +7 -0
  31. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/metadata.json +8 -0
  32. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/original +1238 -0
  33. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/revert.sh +7 -0
  34. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/metadata.json +8 -0
  35. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/original +1167 -0
  36. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/revert.sh +7 -0
  37. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/metadata.json +8 -0
  38. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/original +1242 -0
  39. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/revert.sh +7 -0
  40. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/metadata.json +8 -0
  41. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/original +2 -0
  42. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/revert.sh +7 -0
  43. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/metadata.json +8 -0
  44. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/original +1169 -0
  45. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/revert.sh +7 -0
  46. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/metadata.json +8 -0
  47. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/original +1171 -0
  48. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/revert.sh +7 -0
  49. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/metadata.json +8 -0
  50. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/original +1170 -0
  51. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/revert.sh +7 -0
  52. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/metadata.json +8 -0
  53. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/original +1173 -0
  54. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/revert.sh +7 -0
  55. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/metadata.json +8 -0
  56. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/original +1170 -0
  57. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/revert.sh +7 -0
  58. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/metadata.json +8 -0
  59. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/original +1172 -0
  60. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/revert.sh +7 -0
  61. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/metadata.json +8 -0
  62. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/original +1175 -0
  63. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/revert.sh +7 -0
  64. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/metadata.json +8 -0
  65. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/original +1178 -0
  66. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/revert.sh +7 -0
  67. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/metadata.json +8 -0
  68. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/original +1174 -0
  69. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/revert.sh +7 -0
  70. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/metadata.json +8 -0
  71. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/original +1194 -0
  72. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/revert.sh +7 -0
  73. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/metadata.json +8 -0
  74. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/original +1186 -0
  75. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/revert.sh +7 -0
  76. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/metadata.json +8 -0
  77. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/original +1180 -0
  78. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/revert.sh +7 -0
  79. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/metadata.json +8 -0
  80. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/original +1198 -0
  81. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/revert.sh +7 -0
  82. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/metadata.json +8 -0
  83. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/original +1202 -0
  84. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/revert.sh +7 -0
  85. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/metadata.json +8 -0
  86. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/original +1202 -0
  87. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/revert.sh +7 -0
  88. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/metadata.json +8 -0
  89. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/original +1209 -0
  90. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/revert.sh +7 -0
  91. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/metadata.json +8 -0
  92. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/original +1207 -0
  93. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/revert.sh +7 -0
  94. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/metadata.json +8 -0
  95. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/original +1207 -0
  96. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/revert.sh +7 -0
  97. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/metadata.json +8 -0
  98. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/original +1193 -0
  99. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/revert.sh +7 -0
  100. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/metadata.json +8 -0
  101. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/original +1194 -0
  102. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/revert.sh +7 -0
  103. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/metadata.json +8 -0
  104. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/original +1193 -0
  105. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/revert.sh +7 -0
  106. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/metadata.json +8 -0
  107. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/original +1191 -0
  108. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/revert.sh +7 -0
  109. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/metadata.json +8 -0
  110. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/original +1190 -0
  111. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/revert.sh +7 -0
  112. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/metadata.json +8 -0
  113. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/original +1191 -0
  114. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/revert.sh +7 -0
  115. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/metadata.json +8 -0
  116. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/original +1189 -0
  117. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/revert.sh +7 -0
  118. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/metadata.json +8 -0
  119. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/original +1197 -0
  120. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/revert.sh +7 -0
  121. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/metadata.json +8 -0
  122. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/original +1190 -0
  123. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/revert.sh +7 -0
  124. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/metadata.json +8 -0
  125. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/original +1197 -0
  126. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/revert.sh +7 -0
  127. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/metadata.json +8 -0
  128. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/original +1197 -0
  129. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/revert.sh +7 -0
  130. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.md +194 -2
  131. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.sh +264 -0
  132. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.sh.backup +698 -0
  133. package/.claude/hooks/README.md +148 -0
  134. package/.claude/hooks/SessionStart:cfn-load-openai-key.sh +35 -0
  135. package/.claude/hooks/cfn-invoke-pre-edit.sh +1 -1
  136. package/.claude/hooks/cfn-load-cerebras-env.sh +65 -0
  137. package/.claude/hooks/cfn-precompact-enhanced.sh +283 -0
  138. package/.claude/hooks/deprecated/README.md +27 -0
  139. package/.claude/settings.json +71 -6
  140. package/.claude/skills/cfn-cerebras-coordinator/QUICKSTART.md +348 -0
  141. package/.claude/skills/cfn-cerebras-coordinator/README.md +525 -0
  142. package/.claude/skills/cfn-cerebras-coordinator/TDD_COORDINATOR_OVERVIEW.md +284 -0
  143. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-py-v2-test-1733854200.json +36 -0
  144. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-py-v3-test-1765383241.json +36 -0
  145. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-rust-v2-test-1765381361.json +36 -0
  146. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-rust-v3-test-1765383242.json +46 -0
  147. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v2-test-1733864400.json +66 -0
  148. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v3-test-1765383238.json +66 -0
  149. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v4-test-1765386506.json +66 -0
  150. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v5-test-1765393100.json +66 -0
  151. package/.claude/skills/cfn-cerebras-coordinator/example-usage.sh +206 -0
  152. package/.claude/skills/cfn-cerebras-coordinator/lib/tdd-conversation-coordinator.ts +569 -0
  153. package/.claude/skills/cfn-cerebras-coordinator/test-tdd-coordinator.sh +250 -0
  154. package/.claude/skills/cfn-epic-creator/SKILL.md +392 -0
  155. package/.claude/skills/cfn-epic-creator/estimate-costs.sh +524 -0
  156. package/.claude/skills/cfn-epic-creator/invoke.sh +445 -0
  157. package/.claude/skills/cfn-epic-creator/parse-personas.sh +533 -0
  158. package/.claude/skills/cfn-epic-creator/security-utils.sh +268 -0
  159. package/.claude/skills/cfn-epic-creator/security-verification-demo.sh +127 -0
  160. package/.claude/skills/cfn-epic-creator/test-invoke.sh +620 -0
  161. package/.claude/skills/cfn-epic-creator/test-security-fixes.sh +195 -0
  162. package/.claude/skills/cfn-epic-creator/test-security-simple.sh +165 -0
  163. package/.claude/skills/cfn-epic-creator/validate-epic.sh +474 -0
  164. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/metadata.json +8 -0
  165. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/original +209 -0
  166. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/revert.sh +7 -0
  167. package/.claude/skills/cfn-local-ruvector-accelerator/AGENT_INTEGRATION_PATTERNS.md +255 -0
  168. package/.claude/skills/cfn-local-ruvector-accelerator/Cargo.toml +8 -1
  169. package/.claude/skills/cfn-local-ruvector-accelerator/Cargo.toml.backup +47 -0
  170. package/.claude/skills/cfn-local-ruvector-accelerator/EXTRACTION_EXAMPLES.md +287 -0
  171. package/.claude/skills/cfn-local-ruvector-accelerator/README.md +2 -563
  172. package/.claude/skills/cfn-local-ruvector-accelerator/SCHEMA_V2_IMPLEMENTATION.md +151 -0
  173. package/.claude/skills/cfn-local-ruvector-accelerator/SECURITY_IMPLEMENTATION.md +185 -0
  174. package/.claude/skills/cfn-local-ruvector-accelerator/SKILL.md +8 -351
  175. package/.claude/skills/cfn-local-ruvector-accelerator/docs/EXECUTIVE_SUMMARY.txt +90 -0
  176. package/.claude/skills/cfn-local-ruvector-accelerator/docs/PHASE_4_QUERY_API.md +210 -0
  177. package/.claude/skills/cfn-local-ruvector-accelerator/docs/RUST_AST_EXTRACTOR_IMPLEMENTATION.md +222 -0
  178. package/.claude/skills/cfn-local-ruvector-accelerator/docs/TRANSACTION_MANAGEMENT.md +241 -0
  179. package/.claude/skills/cfn-local-ruvector-accelerator/docs/VALIDATION_FINDINGS.txt +250 -0
  180. package/.claude/skills/cfn-local-ruvector-accelerator/epic-ast-indexer.json +335 -0
  181. package/.claude/skills/cfn-local-ruvector-accelerator/index-code.sh +292 -96
  182. package/.claude/skills/cfn-local-ruvector-accelerator/index-code.sh.backup +249 -0
  183. package/.claude/skills/cfn-local-ruvector-accelerator/index_all.sh +65 -0
  184. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/find.rs +214 -0
  185. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index.rs +259 -103
  186. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index_ast.rs +767 -0
  187. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index_modified.rs +37 -0
  188. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/init.rs +17 -12
  189. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/migration.rs +34 -1
  190. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/mod.rs +6 -0
  191. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/refs.rs +209 -0
  192. package/.claude/skills/cfn-local-ruvector-accelerator/src/embeddings.rs +82 -33
  193. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/mod.rs +251 -0
  194. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust.rs +425 -0
  195. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust_placeholder.rs +420 -0
  196. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/text_fallback.rs +490 -0
  197. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/typescript.rs +520 -0
  198. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/typescript_full.rs +531 -0
  199. package/.claude/skills/cfn-local-ruvector-accelerator/src/lib.rs +20 -0
  200. package/.claude/skills/cfn-local-ruvector-accelerator/src/main.rs +33 -2
  201. package/.claude/skills/cfn-local-ruvector-accelerator/src/main.rs.backup +360 -0
  202. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration.rs +325 -318
  203. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration_backup.rs +325 -0
  204. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration_tx.rs +513 -0
  205. package/.claude/skills/cfn-local-ruvector-accelerator/src/paths.rs +29 -0
  206. package/.claude/skills/cfn-local-ruvector-accelerator/src/query_api.rs +609 -0
  207. package/.claude/skills/cfn-local-ruvector-accelerator/src/schema_v2.rs +603 -0
  208. package/.claude/skills/cfn-local-ruvector-accelerator/src/security_tests.rs +154 -0
  209. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2.rs +583 -0
  210. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_backup.rs +560 -0
  211. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_fixed.rs +0 -0
  212. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_tx.rs +397 -0
  213. package/.claude/skills/cfn-local-ruvector-accelerator/src/test_schema.rs +228 -0
  214. package/.claude/skills/cfn-local-ruvector-accelerator/src/transaction_tests.rs +410 -0
  215. package/.claude/skills/cfn-local-ruvector-accelerator/test_ast_indexing.rs +59 -0
  216. package/.claude/skills/cfn-local-ruvector-accelerator/test_query_api.sh +103 -0
  217. package/.claude/skills/cfn-local-ruvector-accelerator/test_schema.sql +158 -0
  218. package/.claude/skills/cfn-local-ruvector-accelerator/test_schema_v2.sql +147 -0
  219. package/.claude/skills/cfn-mdap-context-injection/SKILL.md +31 -10
  220. package/.claude/skills/cfn-mdap-error-fixer/skill.md +15 -205
  221. package/.claude/skills/cfn-session-handoff/SKILL.md +1 -53
  222. package/.claude/skills/cfn-task-decomposition/SKILL.md +1 -0
  223. package/.claude/skills/cfn-task-intelligence/SKILL.md +39 -18
  224. package/.claude/skills/cfn-task-planning/SKILL.md +37 -12
  225. package/.claude/skills/cfn-validation-framework/SKILL.md +3 -60
  226. package/.claude/skills/cfn-vision-analysis/SKILL.md +3 -20
  227. package/.claude-flow/metrics/performance.json +3 -3
  228. package/.claude-flow/metrics/task-metrics.json +3 -3
  229. package/.ruvector/index_v2.db-shm +0 -0
  230. package/.ruvector/index_v2.db-wal +0 -0
  231. package/CLAUDE.md +9 -1
  232. package/README.md +56 -0
  233. package/docs/AGENT_PRODUCTION_FEEDBACK_PATTERNS.md +389 -0
  234. package/docs/CEREBRAS_TDD_COORDINATOR_TEST_RESULTS.md +213 -0
  235. package/docs/CEREBRAS_TDD_ROUND1_VS_ROUND2_COMPARISON.md +225 -0
  236. package/docs/CEREBRAS_TDD_ROUND3_FINAL_RESULTS.md +264 -0
  237. package/docs/EPIC_CREATOR_V2_ARCHITECTURE.md +629 -0
  238. package/docs/HOOKS_IMPLEMENTATION_PRIORITY.md +585 -0
  239. package/docs/SKILLS_HOOKS_INTEGRATION.md +1074 -0
  240. package/epic-with-personas-2025-12-09-17-15-13.json +253 -0
  241. package/package.json +2 -1
  242. package/test-epic-creator-security.sh +203 -0
  243. package/.claude/skills/cfn-local-ruvector-accelerator/__pycache__/search_engine_v2.cpython-312.pyc +0 -0
  244. package/.claude/skills/cfn-local-ruvector-accelerator/search_engine.py +0 -200
  245. package/jest.config.ts.cjs +0 -17
  246. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/SKILL.md +0 -0
  247. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/context-analyzer.sh +0 -0
  248. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/generate-code.sh +0 -0
  249. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/SKILL.md +0 -0
  250. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/execute.sh +0 -0
  251. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/INTEGRATION.md +0 -0
  252. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/SAMPLE_OUTPUTS.md +0 -0
  253. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/SKILL.md +0 -0
  254. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/capture-container-logs.sh +0 -0
  255. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/enable-logging.sh +0 -0
  256. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/init-hybrid-logging.sh +0 -0
  257. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/analytics-summary.sh +0 -0
  258. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-agent-timeline.sh +0 -0
  259. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-consensus-history.sh +0 -0
  260. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-coordination-timeline.sh +0 -0
  261. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-failed-containers.sh +0 -0
  262. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-gate-checks.sh +0 -0
  263. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/schema.sql +0 -0
  264. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/sqlite-helpers.sh +0 -0
  265. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/test-hybrid-logging.sh +0 -0
  266. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/mcp/SKILL.md +0 -0
  267. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/mcp/skill-mcp-selector.js +0 -0
  268. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/orchestration/SKILL.md +0 -0
  269. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/orchestration/orchestrate.sh +0 -0
  270. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/spawning/SKILL.md +0 -0
  271. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/spawning/spawn-agent.sh +0 -0
  272. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/SKILL.md +0 -0
  273. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/cleanup-wave.sh +0 -0
  274. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/lib/docker-helpers.sh +0 -0
  275. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/monitor-wave.sh +0 -0
  276. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/spawn-wave.sh +0 -0
  277. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-node-heap-sizer/SKILL.md +0 -0
  278. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-node-heap-sizer/task-mode-heap-limiter.sh +0 -0
  279. /package/.claude/{skills → cfn-extras/skills/deprecated}/deprecated/analyze-patterns.sh +0 -0
  280. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/README.md +0 -0
  281. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/SECURITY.md +0 -0
  282. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/SKILL.md +0 -0
  283. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/package.json +0 -0
  284. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/solve.sh +0 -0
  285. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test-equation-solver-minimal.sh +0 -0
  286. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test-equation-solver.sh +0 -0
  287. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test.cjs +0 -0
  288. /package/.claude/hooks/{cfn-credential-scanner.sh → deprecated/cfn-credential-scanner.sh} +0 -0
  289. /package/.claude/hooks/{cfn-detect-hardcoded-credentials.sh → deprecated/cfn-detect-hardcoded-credentials.sh} +0 -0
  290. /package/.claude/hooks/{cfn-invoke-post-edit-ts.sh → deprecated/cfn-invoke-post-edit-ts.sh} +0 -0
  291. /package/.claude/hooks/{cfn-invoke-pre-edit-ts.sh → deprecated/cfn-invoke-pre-edit-ts.sh} +0 -0
  292. /package/.claude/hooks/{cfn-invoke-security-validation.sh → deprecated/cfn-invoke-security-validation.sh} +0 -0
  293. /package/.claude/hooks/{cfn-lint-sql-injection.sh → deprecated/cfn-lint-sql-injection.sh} +0 -0
  294. /package/.claude/hooks/{cfn-post-edit.sh → deprecated/cfn-post-edit.sh} +0 -0
  295. /package/.claude/hooks/{cfn-pre-edit-backup.sh → deprecated/cfn-pre-edit-backup.sh} +0 -0
  296. /package/.claude/skills/cfn-local-ruvector-accelerator/{embeddings_manager.py → embeddings_manager.py.backup} +0 -0
  297. /package/{.ruvector → .claude/skills/cfn-local-ruvector-accelerator/index}/index.bin +0 -0
  298. /package/{.ruvector → .claude/skills/cfn-local-ruvector-accelerator/index}/metadata.json +0 -0
  299. /package/.claude/skills/cfn-local-ruvector-accelerator/{search_engine_v2.py → search_engine_v2.py.backup} +0 -0
  300. /package/.claude/skills/cfn-local-ruvector-accelerator/{sqlite_store.py → sqlite_store.py.backup} +0 -0
@@ -0,0 +1,148 @@
1
+ # Claude Code Hooks
2
+
3
+ This directory contains hooks that integrate with Claude Code's lifecycle events.
4
+
5
+ ## cfn-precompact-enhanced.sh
6
+
7
+ Enhanced PreCompact hook that preserves context before conversation compaction (manual or auto).
8
+
9
+ ### Features
10
+
11
+ **Context Preservation:**
12
+ - Captures current git state (branch, status, recent commits)
13
+ - Saves uncommitted and staged changes
14
+ - Records modified files
15
+
16
+ **Session Metrics:**
17
+ - Counts recently edited files
18
+ - Estimates session duration from git history
19
+ - Detects test execution and status
20
+ - Tracks tool usage (if transcript available)
21
+ - Approximates token usage
22
+
23
+ **CFN-Specific Detection:**
24
+ - Active CFN Loop tasks
25
+ - Running CFN Docker containers
26
+ - Redis coordination state
27
+ - Recent pre-edit backups
28
+
29
+ **Output:**
30
+ - Prints structured summary to stdout (injected into Claude's context)
31
+ - Saves detailed JSON log to `.artifacts/precompact/session-{timestamp}.json`
32
+ - Includes CLAUDE.md reminders for best practices
33
+
34
+ ### Configuration
35
+
36
+ The hook is configured in `.claude/settings.json`:
37
+
38
+ ```json
39
+ {
40
+ "hooks": {
41
+ "PreCompact": [
42
+ {
43
+ "matcher": "manual",
44
+ "hooks": [
45
+ {
46
+ "type": "command",
47
+ "command": "/bin/bash .claude/hooks/cfn-precompact-enhanced.sh"
48
+ }
49
+ ]
50
+ },
51
+ {
52
+ "matcher": "auto",
53
+ "hooks": [
54
+ {
55
+ "type": "command",
56
+ "command": "/bin/bash .claude/hooks/cfn-precompact-enhanced.sh"
57
+ }
58
+ ]
59
+ }
60
+ ]
61
+ }
62
+ }
63
+ ```
64
+
65
+ ### Performance
66
+
67
+ - **Timeout Protection**: 9-second overall script timeout
68
+ - **Non-Blocking**: Always exits with code 0
69
+ - **Optimized for WSL2**: Limits `find` depth and targets specific directories
70
+ - **Graceful Degradation**: Continues if git/jq unavailable
71
+
72
+ ### Testing
73
+
74
+ ```bash
75
+ # Test without stdin
76
+ ./.claude/hooks/cfn-precompact-enhanced.sh
77
+
78
+ # Test with simulated input
79
+ echo '{"type": "manual", "compact_type": "manual"}' | \
80
+ CLAUDE_PROJECT_DIR=$(pwd) bash .claude/hooks/cfn-precompact-enhanced.sh
81
+ ```
82
+
83
+ ### Output Example
84
+
85
+ ```
86
+ === PRE-COMPACT CONTEXT PRESERVATION ===
87
+
88
+ Compact Type: manual
89
+ Timestamp: 2025-12-10 04:46:26
90
+
91
+ Git State:
92
+ Branch: feature/auth-system
93
+ Uncommitted: 3 files
94
+ Modified: 2 files
95
+ Staged: 1 files
96
+ Last commit: abc123 - "Add JWT validation" (2 hours ago)
97
+
98
+ Session Summary:
99
+ Recent file edits: 5
100
+ Duration: 45 minutes
101
+ Tests run: true
102
+ Test status: passing
103
+ Tools used: 12 (Bash: 8, Edit: 4)
104
+ Approx tokens: ~800
105
+
106
+ Key Context:
107
+ - Working directory: /path/to/project
108
+ - Uncommitted changes
109
+ - 2 CFN container(s) running
110
+
111
+ Full context saved to: .artifacts/precompact/session-1765370786.json
112
+
113
+ === CLAUDE.md REMINDERS ===
114
+ • Use CFN Loop for multi-step tasks
115
+ • Batch operations in single messages
116
+ • Pre-edit backup required before edits
117
+ • Run tests before commits
118
+ • Use service names in Docker networks
119
+ ```
120
+
121
+ ### Artifacts
122
+
123
+ Session data is preserved in:
124
+ - `.artifacts/precompact/session-{timestamp}.json` - Full JSON context
125
+ - `.artifacts/precompact/{timestamp}-git.diff` - Git diff (if changes exist)
126
+ - `.artifacts/precompact/{timestamp}-commits.txt` - Recent commit history
127
+ - `.artifacts/precompact/backup-{todo-file}-{timestamp}` - Copied todo files
128
+
129
+ ### Environment Variables
130
+
131
+ - `CLAUDE_PROJECT_DIR` - Project root (defaults to `pwd`)
132
+ - `TRANSCRIPT_PATH` - Path to conversation transcript (optional, for tool usage stats)
133
+ - `INPUT` - JSON input from Claude Code (compact_type, custom_instructions)
134
+
135
+ ### Troubleshooting
136
+
137
+ **Hook times out:**
138
+ - Check if running on Windows mount (should be Linux filesystem)
139
+ - Verify timeout settings in script (default 9 seconds)
140
+ - Reduce `find` depth or target fewer directories
141
+
142
+ **No JSON output:**
143
+ - Ensure `.artifacts/precompact/` directory exists
144
+ - Check for `jq` availability (gracefully degrades if missing)
145
+
146
+ **Line ending issues:**
147
+ - Convert to Unix line endings: `dos2unix .claude/hooks/cfn-precompact-enhanced.sh`
148
+ - Or use: `sed -i 's/\r$//' .claude/hooks/cfn-precompact-enhanced.sh`
@@ -0,0 +1,35 @@
1
+ #!/bin/bash
2
+
3
+ # SessionStart hook: Load OpenAI API key from root .env file
4
+ # This ensures OPENAI_API_KEY is available for embedding generation
5
+
6
+ set -e
7
+
8
+ # Path to root .env file
9
+ ROOT_ENV="${PROJECT_ROOT:-.}/.env"
10
+
11
+ # Check if .env exists
12
+ if [[ ! -f "$ROOT_ENV" ]]; then
13
+ echo "⚠️ Warning: $ROOT_ENV not found. OpenAI embeddings will not work." >&2
14
+ exit 0
15
+ fi
16
+
17
+ # Extract OPENAI_API_KEY from .env
18
+ if grep -q "^OPENAI_API_KEY=" "$ROOT_ENV"; then
19
+ # Export the key for this session
20
+ export OPENAI_API_KEY=$(grep "^OPENAI_API_KEY=" "$ROOT_ENV" | cut -d'=' -f2- | tr -d '"')
21
+
22
+ # Verify key is set
23
+ if [[ -n "$OPENAI_API_KEY" ]]; then
24
+ echo "✅ Loaded OPENAI_API_KEY from root .env" >&2
25
+ else
26
+ echo "⚠️ Warning: OPENAI_API_KEY found but empty in $ROOT_ENV" >&2
27
+ fi
28
+ else
29
+ echo "⚠️ Warning: OPENAI_API_KEY not found in $ROOT_ENV. OpenAI embeddings will not work." >&2
30
+ fi
31
+
32
+ # Make it available to subprocesses
33
+ export OPENAI_API_KEY
34
+
35
+ exit 0
@@ -92,7 +92,7 @@ fi
92
92
  # === Execute Pre-Edit Backup ===
93
93
 
94
94
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
95
- BACKUP_SCRIPT="${SCRIPT_DIR}/../skills/pre-edit-backup/backup.sh"
95
+ BACKUP_SCRIPT="${SCRIPT_DIR}/../skills/cfn-edit-safety/lib/backup/backup.sh"
96
96
 
97
97
  if [[ ! -f "$BACKUP_SCRIPT" ]]; then
98
98
  echo "Error: Backup script not found: $BACKUP_SCRIPT" >&2
@@ -0,0 +1,65 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ log_prefix="[Cerebras-SessionStart]"
5
+
6
+ if [[ -n "${CEREBRAS_API_KEY:-}" ]]; then
7
+ exit 0
8
+ fi
9
+
10
+ env_file="${CLAUDE_PROJECT_DIR:-.}/.env"
11
+
12
+ if [[ ! -f "$env_file" ]]; then
13
+ echo "$log_prefix Warning: .env file not found at $env_file. Set via: export CEREBRAS_API_KEY=your_key" >&2
14
+ exit 0
15
+ fi
16
+
17
+ if [[ ! -r "$env_file" ]]; then
18
+ echo "$log_prefix Warning: .env file at $env_file is not readable. Check permissions." >&2
19
+ exit 0
20
+ fi
21
+
22
+ if [[ ! -s "$env_file" ]]; then
23
+ echo "$log_prefix Warning: .env file at $env_file is empty." >&2
24
+ exit 0
25
+ fi
26
+
27
+ api_key=""
28
+ model="zai-glm-4.6"
29
+ line_num=0
30
+
31
+ while IFS= read -r line || [[ -n "$line" ]]; do
32
+ ((line_num++))
33
+
34
+ [[ "$line" =~ ^[[:space:]]*# ]] && continue
35
+ [[ -z "${line// }" ]] && continue
36
+
37
+ if [[ "$line" =~ ^CEREBRAS_API_KEY[[:space:]]*= ]]; then
38
+ if [[ "$line" =~ ^CEREBRAS_API_KEY[[:space:]]*=[[:space:]]*$ ]]; then
39
+ echo "$log_prefix Warning: Empty CEREBRAS_API_KEY at line $line_num in $env_file" >&2
40
+ else
41
+ api_key=$(echo "$line" | cut -d= -f2-)
42
+ api_key="${api_key#"${api_key%%[![:space:]]*}"}"
43
+ api_key="${api_key%"${api_key##*[![:space:]]}"}"
44
+ fi
45
+ elif [[ "$line" =~ ^CEREBRAS_MODEL[[:space:]]*= ]]; then
46
+ if [[ ! "$line" =~ ^CEREBRAS_MODEL[[:space:]]*=[[:space:]]*$ ]]; then
47
+ model=$(echo "$line" | cut -d= -f2-)
48
+ model="${model#"${model%%[![:space:]]*}"}"
49
+ model="${model%"${model##*[![:space:]]}"}"
50
+ fi
51
+ fi
52
+ done < "$env_file"
53
+
54
+ if [[ -z "$api_key" ]]; then
55
+ echo "$log_prefix Warning: CEREBRAS_API_KEY not found in $env_file. Set via: export CEREBRAS_API_KEY=your_key" >&2
56
+ exit 0
57
+ fi
58
+
59
+ redacted_key="${api_key:0:8}***"
60
+
61
+ cat <<EOF
62
+ {
63
+ "additionalContext": "Cerebras API configured: model=$model, key=$redacted_key"
64
+ }
65
+ EOF
@@ -0,0 +1,283 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+
4
+ # Enhanced PreCompact Hook for Claude Code
5
+ # Preserves context before conversation compaction
6
+ # Exit 0 always to ensure non-blocking behavior
7
+
8
+ # Overall script timeout (9 seconds, allowing 1 second buffer)
9
+ (
10
+ sleep 9
11
+ kill -TERM $$ 2>/dev/null || true
12
+ ) &
13
+ TIMEOUT_PID=$!
14
+
15
+ SCRIPT_START=$(date +%s)
16
+ TIMEOUT_SECONDS=2
17
+
18
+ # Timeout wrapper for all operations
19
+ timeout_wrapper() {
20
+ timeout ${TIMEOUT_SECONDS}s "$@" 2>/dev/null || true
21
+ }
22
+
23
+ # Ensure we kill timeout watcher on exit
24
+ trap "kill $TIMEOUT_PID 2>/dev/null || true" EXIT
25
+
26
+ # Setup
27
+ PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
28
+ ARTIFACTS_DIR="${PROJECT_DIR}/.artifacts/precompact"
29
+ TIMESTAMP=$(date +%s)
30
+ SESSION_FILE="${ARTIFACTS_DIR}/session-${TIMESTAMP}.json"
31
+
32
+ # Create artifacts directory
33
+ mkdir -p "${ARTIFACTS_DIR}" 2>/dev/null || true
34
+
35
+ # Parse INPUT from stdin (if available) - non-blocking read
36
+ if [ -t 0 ]; then
37
+ # No stdin available (terminal)
38
+ INPUT="{}"
39
+ else
40
+ # Read from stdin with timeout
41
+ INPUT=$(timeout 1s cat 2>/dev/null || echo "{}")
42
+ fi
43
+
44
+ COMPACT_TYPE=$(echo "$INPUT" | jq -r '.compact_type // .type // "unknown"' 2>/dev/null || echo "unknown")
45
+ CUSTOM_INSTRUCTIONS=$(echo "$INPUT" | jq -r '.custom_instructions // ""' 2>/dev/null || echo "")
46
+
47
+ # Check for transcript path (if available from environment)
48
+ TRANSCRIPT_PATH="${TRANSCRIPT_PATH:-}"
49
+
50
+ # Initialize context object
51
+ CONTEXT="{}"
52
+
53
+ # === GIT STATE PRESERVATION ===
54
+ git_available() {
55
+ command -v git >/dev/null 2>&1 && [ -d "${PROJECT_DIR}/.git" ]
56
+ }
57
+
58
+ if git_available; then
59
+ GIT_BRANCH=$(timeout_wrapper git -C "${PROJECT_DIR}" rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
60
+ GIT_STATUS=$(timeout_wrapper git -C "${PROJECT_DIR}" status --short 2>/dev/null || echo "")
61
+ GIT_UNCOMMITTED_COUNT=$(echo "$GIT_STATUS" | grep -c "^" 2>/dev/null || echo "0")
62
+
63
+ # Recent commits
64
+ GIT_LAST_COMMIT=$(timeout_wrapper git -C "${PROJECT_DIR}" log -1 --pretty=format:"%h - %s (%ar)" 2>/dev/null || echo "unknown")
65
+ GIT_RECENT_COMMITS=$(timeout_wrapper git -C "${PROJECT_DIR}" log -5 --pretty=format:"%h - %s" 2>/dev/null || echo "")
66
+
67
+ # Modified files
68
+ MODIFIED_FILES=$(timeout_wrapper git -C "${PROJECT_DIR}" diff --name-only HEAD 2>/dev/null | head -20 || echo "")
69
+ MODIFIED_COUNT=$(echo "$MODIFIED_FILES" | grep -c "^" 2>/dev/null || echo "0")
70
+
71
+ # Staged files
72
+ STAGED_FILES=$(timeout_wrapper git -C "${PROJECT_DIR}" diff --cached --name-only 2>/dev/null | head -20 || echo "")
73
+ STAGED_COUNT=$(echo "$STAGED_FILES" | grep -c "^" 2>/dev/null || echo "0")
74
+
75
+ CONTEXT=$(echo "$CONTEXT" | jq --arg branch "$GIT_BRANCH" \
76
+ --arg last_commit "$GIT_LAST_COMMIT" \
77
+ --arg uncommitted "$GIT_UNCOMMITTED_COUNT" \
78
+ --arg modified "$MODIFIED_COUNT" \
79
+ --arg staged "$STAGED_COUNT" \
80
+ '. + {git: {branch: $branch, last_commit: $last_commit, uncommitted_files: $uncommitted, modified_files: $modified, staged_files: $staged}}' 2>/dev/null || echo "$CONTEXT")
81
+ fi
82
+
83
+ # === TODO PRESERVATION ===
84
+ TODO_FILES=()
85
+ for todo_path in ".claude/todos.json" "TODO.md" ".todos" "todos.json"; do
86
+ if [ -f "${PROJECT_DIR}/${todo_path}" ]; then
87
+ TODO_FILES+=("$todo_path")
88
+ # Copy to artifacts
89
+ cp "${PROJECT_DIR}/${todo_path}" "${ARTIFACTS_DIR}/backup-${todo_path##*/}-${TIMESTAMP}" 2>/dev/null || true
90
+ fi
91
+ done
92
+
93
+ TODO_COUNT=${#TODO_FILES[@]}
94
+ CONTEXT=$(echo "$CONTEXT" | jq --arg count "$TODO_COUNT" '. + {todos: {files_found: $count}}' 2>/dev/null || echo "$CONTEXT")
95
+
96
+ # === SESSION METRICS ===
97
+ # Count recently modified files in artifacts and project (with timeout to avoid hanging on slow mounts)
98
+ # Only search specific directories to avoid slow Windows mount traversal
99
+ RECENT_EDITS=0
100
+ for dir in "src" ".claude" "tests" "scripts"; do
101
+ if [ -d "${PROJECT_DIR}/${dir}" ]; then
102
+ DIR_COUNT=$(timeout 1s find "${PROJECT_DIR}/${dir}" -maxdepth 2 -type f -mmin -60 \( -name "*.ts" -o -name "*.js" -o -name "*.sh" -o -name "*.md" \) 2>/dev/null | wc -l)
103
+ DIR_COUNT=${DIR_COUNT:-0}
104
+ RECENT_EDITS=$((RECENT_EDITS + DIR_COUNT))
105
+ fi
106
+ done
107
+
108
+ # Check for common work indicators
109
+ TESTS_RUN=false
110
+ TEST_STATUS="none"
111
+ if [ -d "${PROJECT_DIR}/.artifacts/test-results" ]; then
112
+ RECENT_TEST_FILES=$(timeout_wrapper find "${PROJECT_DIR}/.artifacts/test-results" -type f -mmin -60 2>/dev/null | wc -l || echo "0")
113
+ if [ "$RECENT_TEST_FILES" -gt 0 ]; then
114
+ TESTS_RUN=true
115
+ # Try to extract test pass/fail status
116
+ LATEST_TEST_LOG=$(timeout_wrapper find "${PROJECT_DIR}/.artifacts/test-results" -type f -mmin -60 -name "*.log" 2>/dev/null | head -1)
117
+ if [ -n "$LATEST_TEST_LOG" ] && [ -f "$LATEST_TEST_LOG" ]; then
118
+ if grep -q "All tests passed" "$LATEST_TEST_LOG" 2>/dev/null; then
119
+ TEST_STATUS="passing"
120
+ elif grep -q "FAIL" "$LATEST_TEST_LOG" 2>/dev/null; then
121
+ TEST_STATUS="failing"
122
+ else
123
+ TEST_STATUS="unknown"
124
+ fi
125
+ fi
126
+ fi
127
+ fi
128
+
129
+ # Estimate session duration from git log (more reliable than file times on Windows mounts)
130
+ SESSION_DURATION="unknown"
131
+ if git_available; then
132
+ FIRST_COMMIT_TODAY=$(timeout_wrapper git -C "${PROJECT_DIR}" log --since="24 hours ago" --format=%ct --reverse 2>/dev/null | head -1 || echo "")
133
+ if [ -n "$FIRST_COMMIT_TODAY" ]; then
134
+ DURATION_MIN=$(( (SCRIPT_START - FIRST_COMMIT_TODAY) / 60 ))
135
+ if [ "$DURATION_MIN" -lt 60 ]; then
136
+ SESSION_DURATION="${DURATION_MIN} minutes"
137
+ else
138
+ DURATION_HOURS=$((DURATION_MIN / 60))
139
+ SESSION_DURATION="${DURATION_HOURS} hour(s)"
140
+ fi
141
+ fi
142
+ fi
143
+
144
+ # Tool usage extraction (if transcript available)
145
+ TOOL_COUNT=0
146
+ BASH_CALLS=0
147
+ EDIT_CALLS=0
148
+ if [ -n "$TRANSCRIPT_PATH" ] && [ -f "$TRANSCRIPT_PATH" ]; then
149
+ TOOL_COUNT=$(timeout_wrapper grep -c '"type":"tool_use"' "$TRANSCRIPT_PATH" 2>/dev/null || echo "0")
150
+ BASH_CALLS=$(timeout_wrapper grep -c '"name":"Bash"' "$TRANSCRIPT_PATH" 2>/dev/null || echo "0")
151
+ EDIT_CALLS=$(timeout_wrapper grep -c '"name":"Edit"' "$TRANSCRIPT_PATH" 2>/dev/null || echo "0")
152
+ fi
153
+
154
+ # Approximate token usage (very rough estimate based on file changes)
155
+ APPROX_TOKENS="unknown"
156
+ if [ "$MODIFIED_COUNT" -gt 0 ]; then
157
+ # Rough: 100 tokens per modified file + 50 per Bash call + 200 per Edit
158
+ APPROX_TOKENS=$((MODIFIED_COUNT * 100 + BASH_CALLS * 50 + EDIT_CALLS * 200))
159
+ fi
160
+
161
+ CONTEXT=$(echo "$CONTEXT" | jq --arg recent "$RECENT_EDITS" \
162
+ --arg duration "$SESSION_DURATION" \
163
+ --argjson tests "$TESTS_RUN" \
164
+ --arg test_status "$TEST_STATUS" \
165
+ --arg tool_count "$TOOL_COUNT" \
166
+ --arg bash_calls "$BASH_CALLS" \
167
+ --arg edit_calls "$EDIT_CALLS" \
168
+ --arg approx_tokens "$APPROX_TOKENS" \
169
+ '. + {session: {recent_file_edits: $recent, estimated_duration: $duration, tests_run: $tests, test_status: $test_status, tool_count: $tool_count, bash_calls: $bash_calls, edit_calls: $edit_calls, approx_tokens: $approx_tokens}}' 2>/dev/null || echo "$CONTEXT")
170
+
171
+ # === IN-PROGRESS WORK DETECTION ===
172
+ WORK_INDICATORS=()
173
+ [ -f "${PROJECT_DIR}/.artifacts/runtime/task-in-progress" ] && WORK_INDICATORS+=("Task in progress")
174
+ [ -f "${PROJECT_DIR}/.claude/agents/spawned" ] && WORK_INDICATORS+=("Agents spawned")
175
+ [ "$GIT_UNCOMMITTED_COUNT" -gt 0 ] && WORK_INDICATORS+=("Uncommitted changes")
176
+
177
+ # Check for CFN Loop state
178
+ if [ -f "${PROJECT_DIR}/.artifacts/runtime/cfn-loop-state.json" ]; then
179
+ LOOP_STATUS=$(timeout_wrapper jq -r '.status // "unknown"' "${PROJECT_DIR}/.artifacts/runtime/cfn-loop-state.json" 2>/dev/null || echo "unknown")
180
+ [ "$LOOP_STATUS" != "unknown" ] && WORK_INDICATORS+=("CFN Loop: ${LOOP_STATUS}")
181
+ fi
182
+
183
+ # Check for Redis coordination (CLI mode)
184
+ if command -v redis-cli >/dev/null 2>&1; then
185
+ REDIS_TASKS=$(timeout_wrapper redis-cli --scan --pattern "cfn:task:*" 2>/dev/null | wc -l || echo "0")
186
+ [ "$REDIS_TASKS" -gt 0 ] && WORK_INDICATORS+=("${REDIS_TASKS} active CFN task(s)")
187
+ fi
188
+
189
+ # Check for running Docker containers
190
+ if command -v docker >/dev/null 2>&1; then
191
+ CFN_CONTAINERS=$(timeout_wrapper docker ps --filter "name=cfn-" --format "{{.Names}}" 2>/dev/null | wc -l || echo "0")
192
+ [ "$CFN_CONTAINERS" -gt 0 ] && WORK_INDICATORS+=("${CFN_CONTAINERS} CFN container(s) running")
193
+ fi
194
+
195
+ # Check for recent backups (pre-edit)
196
+ if [ -d "${PROJECT_DIR}/.artifacts/backups" ]; then
197
+ RECENT_BACKUPS=$(timeout_wrapper find "${PROJECT_DIR}/.artifacts/backups" -type f -mmin -60 2>/dev/null | wc -l || echo "0")
198
+ [ "$RECENT_BACKUPS" -gt 0 ] && WORK_INDICATORS+=("${RECENT_BACKUPS} recent backup(s)")
199
+ fi
200
+
201
+ # === GENERATE OUTPUT FOR CLAUDE ===
202
+ echo ""
203
+ echo "=== PRE-COMPACT CONTEXT PRESERVATION ==="
204
+ echo ""
205
+ echo "Compact Type: ${COMPACT_TYPE}"
206
+ [ -n "$CUSTOM_INSTRUCTIONS" ] && echo "Custom Instructions: ${CUSTOM_INSTRUCTIONS}"
207
+ echo ""
208
+
209
+ if git_available; then
210
+ echo "Git State:"
211
+ echo " Branch: ${GIT_BRANCH}"
212
+ echo " Uncommitted: ${GIT_UNCOMMITTED_COUNT} files"
213
+ [ "$MODIFIED_COUNT" -gt 0 ] && echo " Modified: ${MODIFIED_COUNT} files"
214
+ [ "$STAGED_COUNT" -gt 0 ] && echo " Staged: ${STAGED_COUNT} files"
215
+ echo " Last commit: ${GIT_LAST_COMMIT}"
216
+ echo ""
217
+ fi
218
+
219
+ echo "Session Summary:"
220
+ echo " Recent file edits: ${RECENT_EDITS}"
221
+ echo " Duration: ${SESSION_DURATION}"
222
+ echo " Tests run: ${TESTS_RUN}"
223
+ [ "$TEST_STATUS" != "none" ] && echo " Test status: ${TEST_STATUS}"
224
+ [ "$TOOL_COUNT" -gt 0 ] && echo " Tools used: ${TOOL_COUNT} (Bash: ${BASH_CALLS}, Edit: ${EDIT_CALLS})"
225
+ [ "$APPROX_TOKENS" != "unknown" ] && echo " Approx tokens: ~${APPROX_TOKENS}"
226
+ [ ${#WORK_INDICATORS[@]} -gt 0 ] && echo " In-progress work: ${WORK_INDICATORS[*]}"
227
+ echo ""
228
+
229
+ if [ ${#TODO_FILES[@]} -gt 0 ]; then
230
+ echo "Todo Files Preserved:"
231
+ for todo in "${TODO_FILES[@]}"; do
232
+ echo " - ${todo}"
233
+ done
234
+ echo ""
235
+ fi
236
+
237
+ if git_available && [ "$MODIFIED_COUNT" -gt 0 ]; then
238
+ echo "Recently Modified Files:"
239
+ echo "$MODIFIED_FILES" | head -10 | sed 's/^/ - /'
240
+ [ "$MODIFIED_COUNT" -gt 10 ] && echo " ... and $(($MODIFIED_COUNT - 10)) more"
241
+ echo ""
242
+ fi
243
+
244
+ echo "Key Context:"
245
+ echo " - Working directory: ${PROJECT_DIR}"
246
+ if [ ${#WORK_INDICATORS[@]} -gt 0 ]; then
247
+ for indicator in "${WORK_INDICATORS[@]}"; do
248
+ echo " - ${indicator}"
249
+ done
250
+ fi
251
+ echo ""
252
+
253
+ echo "Full context saved to: ${SESSION_FILE#${PROJECT_DIR}/}"
254
+ echo ""
255
+
256
+ echo "=== CLAUDE.md REMINDERS ==="
257
+ echo "• Use CFN Loop for multi-step tasks"
258
+ echo "• Batch operations in single messages"
259
+ echo "• Pre-edit backup required before edits"
260
+ echo "• Run tests before commits"
261
+ echo "• Use service names in Docker networks"
262
+ echo ""
263
+
264
+ # === SAVE DETAILED JSON LOG ===
265
+ FINAL_CONTEXT=$(echo "$CONTEXT" | jq --arg type "$COMPACT_TYPE" \
266
+ --arg custom "$CUSTOM_INSTRUCTIONS" \
267
+ --arg timestamp "$TIMESTAMP" \
268
+ --argjson indicators "$(printf '%s\n' "${WORK_INDICATORS[@]}" | jq -R . | jq -s . 2>/dev/null || echo '[]')" \
269
+ --arg modified_files "$MODIFIED_FILES" \
270
+ --arg staged_files "$STAGED_FILES" \
271
+ --arg recent_commits "$GIT_RECENT_COMMITS" \
272
+ '. + {
273
+ compact_type: $type,
274
+ custom_instructions: $custom,
275
+ timestamp: $timestamp,
276
+ work_indicators: $indicators,
277
+ git: (.git + {modified_file_list: $modified_files, staged_file_list: $staged_files, recent_commits: $recent_commits})
278
+ }' 2>/dev/null || echo "$CONTEXT")
279
+
280
+ echo "$FINAL_CONTEXT" > "${SESSION_FILE}" 2>/dev/null || true
281
+
282
+ # Always exit 0 (non-blocking)
283
+ exit 0
@@ -0,0 +1,27 @@
1
+ # Deprecated Hooks
2
+
3
+ These hooks have been superseded by the integrated post-edit pipeline (`config/hooks/post-edit-pipeline.js`) and settings.json hook configuration.
4
+
5
+ ## Deprecation Date: 2025-12-10
6
+
7
+ ## Why Deprecated
8
+
9
+ | Script | Superseded By |
10
+ |--------|---------------|
11
+ | cfn-credential-scanner.sh | Pipeline Phase 2 security scanner |
12
+ | cfn-lint-sql-injection.sh | Pipeline Phase 2.6 SQL injection detection |
13
+ | cfn-detect-hardcoded-credentials.sh | Pipeline Phase 2 security scanner |
14
+ | cfn-invoke-security-validation.sh | Pipeline Phase 2 security scanner |
15
+ | cfn-post-edit.sh | Full pipeline via PostToolUse hook |
16
+ | cfn-pre-edit-backup.sh | cfn-invoke-pre-edit.sh (wired in settings.json) |
17
+ | cfn-invoke-post-edit-ts.sh | Pipeline handles TypeScript directly |
18
+ | cfn-invoke-pre-edit-ts.sh | Pre-edit backup wired in settings.json |
19
+
20
+ ## Active Hooks (in parent directory)
21
+
22
+ - `cfn-invoke-pre-edit.sh` - Pre-edit backup (WIRED)
23
+ - `cfn-precompact-enhanced.sh` - Context preservation (WIRED)
24
+ - `cfn-restore-from-backup.sh` - Revert capability
25
+ - `cfn-subagent-start.sh` - Future use
26
+ - `cfn-subagent-stop.sh` - Future use
27
+ - `install-git-hooks.sh` - Git integration