devflow-kit 0.8.1 → 1.0.0

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 (395) hide show
  1. package/CHANGELOG.md +185 -29
  2. package/LICENSE +1 -1
  3. package/README.md +179 -308
  4. package/dist/cli.js +3 -1
  5. package/dist/commands/init.d.ts +21 -0
  6. package/dist/commands/init.js +311 -575
  7. package/dist/commands/list.d.ts +3 -0
  8. package/dist/commands/list.js +20 -0
  9. package/dist/commands/uninstall.d.ts +10 -0
  10. package/dist/commands/uninstall.js +351 -78
  11. package/dist/plugins.d.ts +46 -0
  12. package/dist/plugins.js +162 -0
  13. package/dist/utils/cli.d.ts +5 -0
  14. package/dist/utils/cli.js +14 -0
  15. package/dist/utils/installer.d.ts +41 -0
  16. package/dist/utils/installer.js +177 -0
  17. package/dist/utils/paths.d.ts +10 -0
  18. package/dist/utils/paths.js +23 -3
  19. package/dist/utils/post-install.d.ts +68 -0
  20. package/dist/utils/post-install.js +427 -0
  21. package/dist/utils/safe-delete-install.d.ts +22 -0
  22. package/dist/utils/safe-delete-install.js +156 -0
  23. package/dist/utils/safe-delete.d.ts +12 -0
  24. package/dist/utils/safe-delete.js +83 -0
  25. package/package.json +18 -8
  26. package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
  27. package/plugins/devflow-audit-claude/README.md +46 -0
  28. package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
  29. package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
  30. package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
  31. package/plugins/devflow-code-review/README.md +73 -0
  32. package/plugins/devflow-code-review/agents/git.md +272 -0
  33. package/plugins/devflow-code-review/agents/reviewer.md +119 -0
  34. package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
  35. package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
  36. package/plugins/devflow-code-review/commands/code-review.md +141 -0
  37. package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
  38. package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
  39. package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
  40. package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
  41. package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
  42. package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
  43. package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
  44. package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
  45. package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
  46. package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
  47. package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
  48. package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
  49. package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
  50. package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
  51. package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
  52. package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
  53. package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
  54. package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
  55. package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
  56. package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
  57. package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
  58. package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
  59. package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
  60. package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
  61. package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
  62. package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
  63. package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
  64. package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
  65. package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
  66. package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
  67. package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
  68. package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
  69. package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
  70. package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
  71. package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
  72. package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
  73. package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
  74. package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
  75. package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
  76. package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
  77. package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
  78. package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
  79. package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
  80. package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
  81. package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
  82. package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
  83. package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
  84. package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
  85. package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
  86. package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
  87. package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
  88. package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
  89. package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
  90. package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
  91. package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
  92. package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
  93. package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
  94. package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
  95. package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
  96. package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
  97. package/plugins/devflow-core-skills/.claude-plugin/plugin.json +27 -0
  98. package/plugins/devflow-core-skills/README.md +50 -0
  99. package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
  100. package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
  101. package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
  102. package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
  103. package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
  104. package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
  105. package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
  106. package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
  107. package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
  108. package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
  109. package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +134 -0
  110. package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
  111. package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
  112. package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
  113. package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
  114. package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
  115. package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
  116. package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
  117. package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
  118. package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
  119. package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
  120. package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
  121. package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
  122. package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
  123. package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
  124. package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
  125. package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
  126. package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
  127. package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
  128. package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
  129. package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
  130. package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
  131. package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
  132. package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
  133. package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
  134. package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
  135. package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
  136. package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
  137. package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
  138. package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
  139. package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
  140. package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
  141. package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
  142. package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
  143. package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
  144. package/plugins/devflow-debug/README.md +65 -0
  145. package/plugins/devflow-debug/agents/git.md +272 -0
  146. package/plugins/devflow-debug/commands/debug-teams.md +231 -0
  147. package/plugins/devflow-debug/commands/debug.md +160 -0
  148. package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
  149. package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
  150. package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
  151. package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
  152. package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
  153. package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
  154. package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
  155. package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
  156. package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
  157. package/plugins/devflow-implement/README.md +71 -0
  158. package/plugins/devflow-implement/agents/coder.md +122 -0
  159. package/plugins/devflow-implement/agents/git.md +272 -0
  160. package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
  161. package/plugins/devflow-implement/agents/shepherd.md +94 -0
  162. package/plugins/devflow-implement/agents/simplifier.md +62 -0
  163. package/plugins/devflow-implement/agents/skimmer.md +88 -0
  164. package/plugins/devflow-implement/agents/synthesizer.md +204 -0
  165. package/plugins/devflow-implement/agents/validator.md +86 -0
  166. package/plugins/devflow-implement/commands/implement-teams.md +608 -0
  167. package/plugins/devflow-implement/commands/implement.md +426 -0
  168. package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
  169. package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
  170. package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
  171. package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
  172. package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
  173. package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
  174. package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
  175. package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
  176. package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
  177. package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
  178. package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
  179. package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
  180. package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
  181. package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
  182. package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
  183. package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
  184. package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
  185. package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
  186. package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
  187. package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
  188. package/plugins/devflow-resolve/README.md +65 -0
  189. package/plugins/devflow-resolve/agents/git.md +272 -0
  190. package/plugins/devflow-resolve/agents/resolver.md +131 -0
  191. package/plugins/devflow-resolve/agents/simplifier.md +62 -0
  192. package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
  193. package/plugins/devflow-resolve/commands/resolve.md +237 -0
  194. package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
  195. package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
  196. package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
  197. package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
  198. package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
  199. package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
  200. package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
  201. package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
  202. package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
  203. package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
  204. package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
  205. package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
  206. package/plugins/devflow-self-review/README.md +38 -0
  207. package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
  208. package/plugins/devflow-self-review/agents/simplifier.md +62 -0
  209. package/plugins/devflow-self-review/agents/validator.md +86 -0
  210. package/plugins/devflow-self-review/commands/self-review.md +126 -0
  211. package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
  212. package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
  213. package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
  214. package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
  215. package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
  216. package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
  217. package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
  218. package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
  219. package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
  220. package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
  221. package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
  222. package/plugins/devflow-specify/README.md +46 -0
  223. package/plugins/devflow-specify/agents/skimmer.md +88 -0
  224. package/plugins/devflow-specify/agents/synthesizer.md +204 -0
  225. package/plugins/devflow-specify/commands/specify-teams.md +314 -0
  226. package/plugins/devflow-specify/commands/specify.md +179 -0
  227. package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
  228. package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
  229. package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
  230. package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
  231. package/scripts/hooks/background-memory-update.sh +167 -0
  232. package/scripts/hooks/pre-compact-memory.sh +81 -0
  233. package/scripts/hooks/session-start-memory.sh +84 -0
  234. package/scripts/hooks/stop-update-memory.sh +81 -0
  235. package/shared/agents/coder.md +122 -0
  236. package/shared/agents/git.md +272 -0
  237. package/shared/agents/resolver.md +131 -0
  238. package/shared/agents/reviewer.md +119 -0
  239. package/shared/agents/scrutinizer.md +80 -0
  240. package/shared/agents/shepherd.md +94 -0
  241. package/shared/agents/simplifier.md +62 -0
  242. package/shared/agents/skimmer.md +88 -0
  243. package/shared/agents/synthesizer.md +204 -0
  244. package/shared/agents/validator.md +86 -0
  245. package/shared/skills/accessibility/SKILL.md +229 -0
  246. package/shared/skills/accessibility/references/detection.md +171 -0
  247. package/shared/skills/accessibility/references/patterns.md +670 -0
  248. package/shared/skills/accessibility/references/violations.md +419 -0
  249. package/shared/skills/agent-teams/SKILL.md +124 -0
  250. package/shared/skills/agent-teams/references/cleanup.md +104 -0
  251. package/shared/skills/agent-teams/references/communication.md +122 -0
  252. package/shared/skills/agent-teams/references/team-patterns.md +217 -0
  253. package/shared/skills/architecture-patterns/SKILL.md +153 -0
  254. package/shared/skills/architecture-patterns/references/detection.md +337 -0
  255. package/shared/skills/architecture-patterns/references/patterns.md +873 -0
  256. package/shared/skills/architecture-patterns/references/violations.md +575 -0
  257. package/shared/skills/complexity-patterns/SKILL.md +143 -0
  258. package/shared/skills/complexity-patterns/references/detection.md +264 -0
  259. package/shared/skills/complexity-patterns/references/patterns.md +487 -0
  260. package/shared/skills/complexity-patterns/references/violations.md +361 -0
  261. package/shared/skills/consistency-patterns/SKILL.md +140 -0
  262. package/shared/skills/consistency-patterns/references/detection.md +207 -0
  263. package/shared/skills/consistency-patterns/references/patterns.md +202 -0
  264. package/shared/skills/consistency-patterns/references/violations.md +213 -0
  265. package/shared/skills/core-patterns/SKILL.md +162 -0
  266. package/shared/skills/core-patterns/references/checklist.md +276 -0
  267. package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
  268. package/shared/skills/core-patterns/references/detection.md +303 -0
  269. package/shared/skills/core-patterns/references/patterns.md +576 -0
  270. package/shared/skills/core-patterns/references/violations.md +369 -0
  271. package/shared/skills/database-patterns/SKILL.md +134 -0
  272. package/shared/skills/database-patterns/references/detection.md +208 -0
  273. package/shared/skills/database-patterns/references/patterns.md +394 -0
  274. package/shared/skills/database-patterns/references/violations.md +332 -0
  275. package/shared/skills/dependencies-patterns/SKILL.md +141 -0
  276. package/shared/skills/dependencies-patterns/references/detection.md +181 -0
  277. package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
  278. package/shared/skills/dependencies-patterns/references/violations.md +247 -0
  279. package/shared/skills/docs-framework/SKILL.md +134 -0
  280. package/shared/skills/docs-framework/references/patterns.md +346 -0
  281. package/shared/skills/docs-framework/references/violations.md +221 -0
  282. package/shared/skills/documentation-patterns/SKILL.md +125 -0
  283. package/shared/skills/documentation-patterns/references/detection.md +190 -0
  284. package/shared/skills/documentation-patterns/references/patterns.md +189 -0
  285. package/shared/skills/documentation-patterns/references/violations.md +163 -0
  286. package/shared/skills/frontend-design/SKILL.md +254 -0
  287. package/shared/skills/frontend-design/references/detection.md +184 -0
  288. package/shared/skills/frontend-design/references/patterns.md +511 -0
  289. package/shared/skills/frontend-design/references/violations.md +453 -0
  290. package/shared/skills/git-safety/SKILL.md +122 -0
  291. package/shared/skills/git-safety/references/detection.md +290 -0
  292. package/shared/skills/git-safety/references/patterns.md +289 -0
  293. package/shared/skills/git-safety/references/violations.md +18 -0
  294. package/shared/skills/git-workflow/SKILL.md +158 -0
  295. package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
  296. package/shared/skills/git-workflow/references/commit-violations.md +77 -0
  297. package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
  298. package/shared/skills/git-workflow/references/pr-violations.md +96 -0
  299. package/shared/skills/github-patterns/SKILL.md +153 -0
  300. package/shared/skills/github-patterns/references/patterns.md +572 -0
  301. package/shared/skills/github-patterns/references/violations.md +298 -0
  302. package/shared/skills/implementation-patterns/SKILL.md +162 -0
  303. package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
  304. package/shared/skills/implementation-patterns/references/violations.md +483 -0
  305. package/shared/skills/input-validation/SKILL.md +148 -0
  306. package/shared/skills/input-validation/references/detection.md +283 -0
  307. package/shared/skills/input-validation/references/patterns.md +361 -0
  308. package/shared/skills/input-validation/references/violations.md +224 -0
  309. package/shared/skills/performance-patterns/SKILL.md +154 -0
  310. package/shared/skills/performance-patterns/references/detection.md +351 -0
  311. package/shared/skills/performance-patterns/references/patterns.md +503 -0
  312. package/shared/skills/performance-patterns/references/violations.md +354 -0
  313. package/shared/skills/react/SKILL.md +276 -0
  314. package/shared/skills/react/references/patterns.md +1331 -0
  315. package/shared/skills/react/references/violations.md +565 -0
  316. package/shared/skills/regression-patterns/SKILL.md +146 -0
  317. package/shared/skills/regression-patterns/references/detection.md +237 -0
  318. package/shared/skills/regression-patterns/references/patterns.md +226 -0
  319. package/shared/skills/regression-patterns/references/violations.md +225 -0
  320. package/shared/skills/review-methodology/SKILL.md +119 -0
  321. package/shared/skills/review-methodology/references/patterns.md +186 -0
  322. package/shared/skills/review-methodology/references/report-template.md +142 -0
  323. package/shared/skills/review-methodology/references/violations.md +125 -0
  324. package/shared/skills/security-patterns/SKILL.md +156 -0
  325. package/shared/skills/security-patterns/references/detection.md +287 -0
  326. package/shared/skills/security-patterns/references/patterns.md +507 -0
  327. package/shared/skills/security-patterns/references/violations.md +237 -0
  328. package/shared/skills/self-review/SKILL.md +149 -0
  329. package/shared/skills/self-review/references/patterns.md +405 -0
  330. package/shared/skills/self-review/references/report-template.md +253 -0
  331. package/shared/skills/self-review/references/violations.md +308 -0
  332. package/shared/skills/test-patterns/SKILL.md +183 -0
  333. package/shared/skills/test-patterns/references/detection.md +149 -0
  334. package/shared/skills/test-patterns/references/patterns.md +220 -0
  335. package/shared/skills/test-patterns/references/report-template.md +108 -0
  336. package/shared/skills/test-patterns/references/violations.md +221 -0
  337. package/shared/skills/typescript/SKILL.md +176 -0
  338. package/shared/skills/typescript/references/patterns.md +1105 -0
  339. package/shared/skills/typescript/references/violations.md +433 -0
  340. package/src/templates/claudeignore.template +188 -0
  341. package/src/templates/managed-settings.json +146 -0
  342. package/src/templates/settings.json +59 -0
  343. package/dist/cli.d.ts.map +0 -1
  344. package/dist/cli.js.map +0 -1
  345. package/dist/commands/init.d.ts.map +0 -1
  346. package/dist/commands/init.js.map +0 -1
  347. package/dist/commands/uninstall.d.ts.map +0 -1
  348. package/dist/commands/uninstall.js.map +0 -1
  349. package/dist/utils/git.d.ts.map +0 -1
  350. package/dist/utils/git.js.map +0 -1
  351. package/dist/utils/paths.d.ts.map +0 -1
  352. package/dist/utils/paths.js.map +0 -1
  353. package/src/claude/CLAUDE.md +0 -400
  354. package/src/claude/agents/devflow/audit-architecture.md +0 -132
  355. package/src/claude/agents/devflow/audit-complexity.md +0 -132
  356. package/src/claude/agents/devflow/audit-database.md +0 -132
  357. package/src/claude/agents/devflow/audit-dependencies.md +0 -132
  358. package/src/claude/agents/devflow/audit-documentation.md +0 -132
  359. package/src/claude/agents/devflow/audit-performance.md +0 -256
  360. package/src/claude/agents/devflow/audit-security.md +0 -259
  361. package/src/claude/agents/devflow/audit-tests.md +0 -132
  362. package/src/claude/agents/devflow/audit-typescript.md +0 -132
  363. package/src/claude/agents/devflow/brainstorm.md +0 -279
  364. package/src/claude/agents/devflow/catch-up.md +0 -345
  365. package/src/claude/agents/devflow/code-review.md +0 -307
  366. package/src/claude/agents/devflow/commit.md +0 -380
  367. package/src/claude/agents/devflow/debug.md +0 -476
  368. package/src/claude/agents/devflow/design.md +0 -491
  369. package/src/claude/agents/devflow/pr-comments.md +0 -285
  370. package/src/claude/agents/devflow/project-state.md +0 -419
  371. package/src/claude/agents/devflow/pull-request.md +0 -423
  372. package/src/claude/agents/devflow/release.md +0 -1137
  373. package/src/claude/agents/devflow/tech-debt.md +0 -338
  374. package/src/claude/commands/devflow/brainstorm.md +0 -68
  375. package/src/claude/commands/devflow/breakdown.md +0 -125
  376. package/src/claude/commands/devflow/catch-up.md +0 -29
  377. package/src/claude/commands/devflow/code-review.md +0 -237
  378. package/src/claude/commands/devflow/commit.md +0 -17
  379. package/src/claude/commands/devflow/debug.md +0 -56
  380. package/src/claude/commands/devflow/design.md +0 -82
  381. package/src/claude/commands/devflow/devlog.md +0 -408
  382. package/src/claude/commands/devflow/implement.md +0 -100
  383. package/src/claude/commands/devflow/plan.md +0 -223
  384. package/src/claude/commands/devflow/pull-request.md +0 -269
  385. package/src/claude/commands/devflow/release.md +0 -251
  386. package/src/claude/commands/devflow/resolve-comments.md +0 -583
  387. package/src/claude/scripts/statusline.sh +0 -47
  388. package/src/claude/settings.json +0 -6
  389. package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
  390. package/src/claude/skills/devflow/debug/SKILL.md +0 -119
  391. package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
  392. package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
  393. package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
  394. package/src/claude/skills/devflow/research/SKILL.md +0 -138
  395. package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
@@ -0,0 +1,104 @@
1
+ # Session Management and Cleanup
2
+
3
+ ## Team Lifecycle
4
+
5
+ ```
6
+ 1. Lead creates team
7
+ 2. Lead spawns teammates
8
+ 3. Teammates work independently
9
+ 4. Debate rounds (teammates message directly)
10
+ 5. Lead collects consensus
11
+ 6. Lead shuts down teammates
12
+ 7. Lead calls cleanup
13
+ 8. Lead verifies no orphans
14
+ ```
15
+
16
+ ---
17
+
18
+ ## Cleanup Rules
19
+
20
+ ### Lead Responsibilities
21
+
22
+ 1. **Always call cleanup** - Even if team work was interrupted or errored
23
+ 2. **Shut down teammates first** - Before calling cleanup
24
+ 3. **Verify completion** - Check that no orphaned sessions remain
25
+
26
+ ### Error Handling
27
+
28
+ If a teammate errors or hangs:
29
+ 1. Send shutdown message to the teammate
30
+ 2. Wait briefly for graceful shutdown
31
+ 3. Proceed with cleanup for remaining team
32
+ 4. Report the failed teammate in final output
33
+
34
+ ### Orphan Detection
35
+
36
+ After cleanup, verify:
37
+ - No tmux sessions from the team remain (split-pane mode)
38
+ - No background processes from teammates
39
+ - Team config at `~/.claude/teams/{team-name}/` is cleaned up
40
+
41
+ ---
42
+
43
+ ## Known Limitations
44
+
45
+ | Limitation | Mitigation |
46
+ |-----------|------------|
47
+ | No session resumption for teammates | Start fresh; don't rely on teammate state persistence |
48
+ | One team per session | Queue team work sequentially if needed |
49
+ | Task status may lag | Use direct messages for time-sensitive coordination |
50
+ | No nested teams | Teammates cannot spawn sub-teams; keep hierarchy flat |
51
+ | Split-pane requires tmux/iTerm2 | Fall back to in-process mode if unavailable |
52
+
53
+ ---
54
+
55
+ ## Cost Management
56
+
57
+ ### Token Optimization
58
+
59
+ | Strategy | Savings |
60
+ |----------|---------|
61
+ | Use haiku for validation teammates | ~70% per validation agent |
62
+ | Limit debate to 2 rounds | Prevents runaway token usage |
63
+ | Size teams to task (don't over-spawn) | Fewer agents = fewer tokens |
64
+ | Shut down teammates promptly | No idle token consumption |
65
+
66
+ ### When NOT to Use Teams
67
+
68
+ - Simple, single-focus tasks (use regular subagent)
69
+ - Tasks requiring sequential dependency (no parallelism benefit)
70
+ - Cost-sensitive operations where subagent is sufficient
71
+ - Tasks where debate adds no value (e.g., formatting, simple fixes)
72
+
73
+ ---
74
+
75
+ ## Sequential Team Transition Protocol
76
+
77
+ Commands that create multiple teams (e.g., `/implement`, `/specify`) MUST follow this 4-step protocol between teams. Skipping steps causes silent failures due to the one-team-per-session constraint.
78
+
79
+ ```
80
+ Step 1: SHUTDOWN — Send shutdown_request to each teammate by name
81
+ SendMessage(type: "shutdown_request", recipient: "{name}", content: "Phase complete")
82
+ Wait for each shutdown_response (approve: true)
83
+
84
+ Step 2: DELETE — Remove team resources
85
+ TeamDelete
86
+
87
+ Step 3: VERIFY — Confirm cleanup succeeded
88
+ If TeamDelete returned success → proceed
89
+ If TeamDelete failed → retry once after 5s
90
+ If retry fails → HALT and report to user:
91
+ "Team cleanup failed for {team-name}. Cannot create next team."
92
+
93
+ Step 4: CREATE — Only now create the next team
94
+ TeamCreate(team_name: "{next-team-name}")
95
+ ```
96
+
97
+ ### Failure Modes
98
+
99
+ | Failure | Action |
100
+ |---------|--------|
101
+ | Teammate ignores shutdown_request | Wait 30s, then proceed to TeamDelete (force cleanup) |
102
+ | TeamDelete fails | Retry once after 5s delay |
103
+ | TeamDelete retry fails | HALT execution, report to user |
104
+ | TeamCreate fails after successful delete | Retry once; if fails, fall back to parallel Task() subagents |
@@ -0,0 +1,122 @@
1
+ # Communication Protocols
2
+
3
+ ## Message Types
4
+
5
+ ### Direct Message (one-to-one)
6
+
7
+ Use when challenging a specific teammate's finding:
8
+
9
+ ```
10
+ To [Security Reviewer]:
11
+ "Your finding about SQL injection at api/users.ts:42 - I disagree.
12
+ The parameterized query at line 45 handles this. Check the query builder
13
+ pattern used throughout this codebase."
14
+ ```
15
+
16
+ ### Broadcast (one-to-all)
17
+
18
+ Use when sharing findings that affect all teammates:
19
+
20
+ ```
21
+ Broadcast:
22
+ "I found that the auth middleware is bypassed for /api/internal/* routes.
23
+ This affects security, architecture, and testing perspectives."
24
+ ```
25
+
26
+ ---
27
+
28
+ ## Debate Protocol
29
+
30
+ ### Round Structure
31
+
32
+ ```
33
+ Round 1: Initial findings (each teammate shares top findings)
34
+ Round 2: Challenge round (teammates dispute or validate)
35
+ Round 3: Resolution (update, withdraw, or escalate)
36
+ ```
37
+
38
+ **Cap: 2 challenge exchanges per topic.** If unresolved, escalate to lead.
39
+
40
+ ### Challenge Format
41
+
42
+ When challenging another teammate:
43
+
44
+ ```
45
+ CHALLENGE to [Teammate]:
46
+ - Finding: [what they claimed]
47
+ - Evidence against: [your counter-evidence with file:line references]
48
+ - Suggested resolution: [what you think is correct]
49
+ ```
50
+
51
+ ### Concession Format
52
+
53
+ When accepting a challenge:
54
+
55
+ ```
56
+ UPDATED based on [Teammate]'s challenge:
57
+ - Original: [what I originally claimed]
58
+ - Revised: [updated finding incorporating their evidence]
59
+ ```
60
+
61
+ ### Escalation Format
62
+
63
+ When debate is unresolved after 2 exchanges:
64
+
65
+ ```
66
+ ESCALATION to Lead:
67
+ - Topic: [what we disagree about]
68
+ - Position A: [first perspective with evidence]
69
+ - Position B: [second perspective with evidence]
70
+ - Recommendation: [which has stronger evidence, or "genuinely split"]
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Lead Coordination Messages
76
+
77
+ ### Initiating Debate
78
+
79
+ ```
80
+ Lead broadcast:
81
+ "All teammates: Share your top 3-5 findings. After sharing, challenge
82
+ any finding you disagree with. Provide evidence (file:line references).
83
+ You have 2 exchange rounds to resolve disagreements."
84
+ ```
85
+
86
+ ### Ending Debate
87
+
88
+ ```
89
+ Lead broadcast:
90
+ "Debate round complete. Submit final findings with confidence levels:
91
+ - HIGH: Unanimous or unchallenged with evidence
92
+ - MEDIUM: Majority agreed, dissent noted
93
+ - LOW: Split opinion, both perspectives included"
94
+ ```
95
+
96
+ ### Requesting Clarification
97
+
98
+ ```
99
+ Lead to [Teammate]:
100
+ "Your finding about X contradicts [Other Teammate]'s finding about Y.
101
+ Can you address their evidence at [file:line]?"
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Output Aggregation
107
+
108
+ ### Consensus Report Structure
109
+
110
+ ```markdown
111
+ ## Confirmed Findings (HIGH confidence)
112
+ [Findings all teammates agreed on or that survived challenge]
113
+
114
+ ## Majority Findings (MEDIUM confidence)
115
+ [Findings most agreed on, with dissenting view noted]
116
+
117
+ ## Split Findings (LOW confidence)
118
+ [Genuinely contested findings with both perspectives and evidence]
119
+
120
+ ## Withdrawn Findings
121
+ [Findings that were disproved during debate]
122
+ ```
@@ -0,0 +1,217 @@
1
+ # Team Patterns by Workflow
2
+
3
+ ## Task-Based Coordination
4
+
5
+ All team workflows should use the shared task list for structured progress tracking:
6
+
7
+ ```
8
+ 1. Lead creates team
9
+ 2. Lead creates tasks (TaskCreate) for each teammate's work unit
10
+ 3. Lead spawns teammates, assigning tasks via TaskUpdate(owner)
11
+ 4. Teammates work, mark tasks completed via TaskUpdate(status: completed)
12
+ 5. Lead checks TaskList before proceeding to next phase
13
+ 6. Lead shuts down teammates, calls TeamDelete
14
+ ```
15
+
16
+ **Example task creation for a review team:**
17
+
18
+ ```
19
+ TaskCreate: "Security review of auth module" → assigned to Security Reviewer
20
+ TaskCreate: "Architecture review of auth module" → assigned to Architecture Reviewer
21
+ TaskCreate: "Performance review of auth module" → assigned to Performance Reviewer
22
+ ```
23
+
24
+ ---
25
+
26
+ ## Review Team
27
+
28
+ ### Standard Review (4 perspectives)
29
+
30
+ ```
31
+ Lead spawns:
32
+ ├── Security reviewer → vulnerabilities, injection, auth, crypto
33
+ ├── Architecture reviewer → SOLID, coupling, layering, modularity
34
+ ├── Performance reviewer → queries, algorithms, caching, I/O
35
+ └── Quality reviewer → complexity, tests, consistency, naming
36
+ ```
37
+
38
+ ### Extended Review (add conditionally)
39
+
40
+ ```
41
+ Additional teammates based on changed files:
42
+ ├── TypeScript reviewer → type safety, generics (if .ts/.tsx changed)
43
+ ├── React reviewer → hooks, state, rendering (if .tsx/.jsx changed)
44
+ ├── Database reviewer → schema, queries, migrations (if DB files changed)
45
+ └── Dependencies reviewer → CVEs, versions, licenses (if package files changed)
46
+ ```
47
+
48
+ ### Review Debate Flow
49
+
50
+ ```
51
+ 1. Each reviewer analyzes independently
52
+ 2. Lead broadcasts: "Share top 3 findings and challenge others"
53
+ 3. Security challenges architecture: "This coupling creates attack surface"
54
+ 4. Architecture challenges performance: "Your caching suggestion breaks separation"
55
+ 5. Quality validates: "Tests don't cover the security concern raised"
56
+ 6. Lead collects consensus after max 2 exchange rounds
57
+ ```
58
+
59
+ ---
60
+
61
+ ## Implementation Team
62
+
63
+ ### Exploration Team (4 perspectives)
64
+
65
+ ```
66
+ Lead spawns:
67
+ ├── Architecture explorer → existing patterns, module structure
68
+ ├── Integration explorer → entry points, services, config
69
+ ├── Reusable code explorer → utilities, helpers, shared logic
70
+ └── Edge case explorer → error conditions, boundaries, race conditions
71
+ ```
72
+
73
+ ### Planning Team (3 perspectives)
74
+
75
+ ```
76
+ Lead spawns:
77
+ ├── Implementation planner → step-by-step coding approach
78
+ ├── Testing planner → test strategy and coverage plan
79
+ └── Risk planner → potential issues, rollback strategy
80
+ ```
81
+
82
+ ### Implementation Debate
83
+
84
+ ```
85
+ 1. Explorers share findings
86
+ 2. Architecture challenges edge cases: "This boundary isn't handled"
87
+ 3. Integration challenges reusable code: "That helper doesn't cover our case"
88
+ 4. Lead synthesizes consensus exploration
89
+
90
+ 5. Planners propose approaches
91
+ 6. Testing challenges implementation: "This approach is untestable"
92
+ 7. Risk challenges both: "Rollback is impossible with this migration"
93
+ 8. Lead synthesizes consensus plan
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Specification Team
99
+
100
+ ### Requirements Exploration Team (4 perspectives)
101
+
102
+ ```
103
+ Lead spawns:
104
+ ├── User Perspective Explorer → target users, goals, pain points, user journeys
105
+ ├── Similar Features Explorer → comparable features, scope patterns, precedents
106
+ ├── Constraints Explorer → dependencies, business rules, security, performance
107
+ └── Failure Mode Explorer → error states, edge cases, validation needs
108
+ ```
109
+
110
+ ### Requirements Debate Flow
111
+
112
+ ```
113
+ 1. Each explorer shares findings from their perspective
114
+ 2. Constraints challenges user perspective: "This requirement conflicts with X constraint"
115
+ 3. Failure modes challenges similar features: "That pattern failed in Y scenario"
116
+ 4. Similar features validates user perspective: "This UX pattern works well in Z"
117
+ 5. Lead collects consensus after max 2 exchange rounds
118
+ ```
119
+
120
+ ### Scope Planning Team (3 perspectives)
121
+
122
+ ```
123
+ Lead spawns:
124
+ ├── User Stories Planner → actors, actions, outcomes ("As X, I want Y, so that Z")
125
+ ├── Scope Boundaries Planner → v1 MVP, v2 deferred, out of scope, dependencies
126
+ └── Acceptance Criteria Planner → success/failure/edge case criteria (testable)
127
+ ```
128
+
129
+ ### Scope Debate Flow
130
+
131
+ ```
132
+ 1. Each planner presents their analysis
133
+ 2. Scope challenges user stories: "This story is too broad for v1"
134
+ 3. Acceptance challenges scope: "These boundaries leave this edge case uncovered"
135
+ 4. User stories challenges acceptance: "This criterion is untestable"
136
+ 5. Lead collects consensus after max 2 exchange rounds
137
+ ```
138
+
139
+ **Note**: Specification teams complement (not replace) the 3 mandatory clarification gates. User still drives all decisions via Gate 0, Gate 1, and Gate 2.
140
+
141
+ ---
142
+
143
+ ## Resolution Team
144
+
145
+ ### Cross-Validation Resolution Team
146
+
147
+ ```
148
+ Lead spawns resolvers based on batches:
149
+ ├── Resolver A → Batch 1 issues (file-a cluster)
150
+ ├── Resolver B → Batch 2 issues (file-b cluster)
151
+ └── Resolver C → Batch 3 issues (file-c cluster)
152
+ ```
153
+
154
+ ### Resolution Debate Flow
155
+
156
+ ```
157
+ 1. Each resolver independently validates + fixes their batch
158
+ 2. Lead broadcasts: "Review each other's fixes for cross-batch conflicts"
159
+ 3. Resolver A: "My fix in file-a.ts changes the interface that Resolver B depends on"
160
+ 4. Resolver B: "Confirmed — my fix in file-b.ts imports from that interface"
161
+ 5. Resolvers coordinate the fix or escalate conflict to lead
162
+ 6. Lead collects consensus after max 2 exchange rounds
163
+ ```
164
+
165
+ ### When Cross-Validation Adds Value
166
+
167
+ - Fixes touch shared interfaces or types
168
+ - Resolvers modify files that import from each other
169
+ - Batch fixes could introduce conflicting patterns
170
+ - Large resolution sets (>5 issues across multiple files)
171
+
172
+ ### When to Skip Cross-Validation
173
+
174
+ - All fixes are in completely independent files
175
+ - Only 1-2 batches with no shared dependencies
176
+ - Fixes are trivial (typos, formatting, naming)
177
+
178
+ ---
179
+
180
+ ## Debug Team
181
+
182
+ ### Hypothesis Investigation (3-5 hypotheses)
183
+
184
+ ```
185
+ Lead spawns (one per hypothesis):
186
+ ├── Hypothesis A investigator → state management / race condition
187
+ ├── Hypothesis B investigator → configuration / environment
188
+ ├── Hypothesis C investigator → edge case / input validation
189
+ └── Hypothesis D investigator → dependency / version issue
190
+ ```
191
+
192
+ ### Debug Debate Flow
193
+
194
+ ```
195
+ 1. Each investigator gathers evidence for their hypothesis
196
+ 2. Lead broadcasts: "Present evidence. Disprove each other."
197
+ 3. Investigator A: "Found race condition at file:line"
198
+ 4. Investigator B: "My config theory is disproved by A's evidence"
199
+ 5. Investigator C: "A's race condition doesn't explain the timing"
200
+ 6. Converge on surviving hypothesis with strongest evidence
201
+ ```
202
+
203
+ ---
204
+
205
+ ## Team Size Guidelines
206
+
207
+ | Scenario | Min | Max | Rationale |
208
+ |----------|-----|-----|-----------|
209
+ | Quick review | 2 | 3 | Focused, low cost |
210
+ | Full review | 4 | 5 | Core perspectives |
211
+ | Exploration | 3 | 4 | Diminishing returns beyond 4 |
212
+ | Planning | 2 | 3 | Too many cooks |
213
+ | Specification (explore) | 3 | 4 | Requirements need diverse perspectives |
214
+ | Specification (scope) | 2 | 3 | Scope planning benefits from focus |
215
+ | Resolution | 2 | 4 | One per independent batch |
216
+ | Debugging | 3 | 5 | One per viable hypothesis |
217
+ | Parallel coding | 2 | 3 | Merge complexity grows fast |
@@ -0,0 +1,167 @@
1
+ #!/bin/bash
2
+
3
+ # Background Working Memory Updater
4
+ # Called by stop-update-memory.sh as a detached background process.
5
+ # Resumes the parent session headlessly to update .docs/WORKING-MEMORY.md.
6
+ # On failure: logs error, does nothing (no fallback).
7
+
8
+ set -euo pipefail
9
+
10
+ CWD="$1"
11
+ SESSION_ID="$2"
12
+ MEMORY_FILE="$3"
13
+ CLAUDE_BIN="$4"
14
+
15
+ LOG_FILE="$CWD/.docs/.working-memory-update.log"
16
+ LOCK_DIR="$CWD/.docs/.working-memory.lock"
17
+
18
+ # --- Logging ---
19
+
20
+ log() {
21
+ echo "[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] $1" >> "$LOG_FILE"
22
+ }
23
+
24
+ rotate_log() {
25
+ if [ -f "$LOG_FILE" ] && [ "$(wc -l < "$LOG_FILE")" -gt 100 ]; then
26
+ tail -50 "$LOG_FILE" > "$LOG_FILE.tmp" && mv "$LOG_FILE.tmp" "$LOG_FILE"
27
+ fi
28
+ }
29
+
30
+ # --- Stale Lock Recovery ---
31
+
32
+ # Portable mtime in epoch seconds (same pattern as stop-update-memory.sh:35-39)
33
+ get_mtime() {
34
+ if stat --version &>/dev/null 2>&1; then
35
+ stat -c %Y "$1"
36
+ else
37
+ stat -f %m "$1"
38
+ fi
39
+ }
40
+
41
+ STALE_THRESHOLD=300 # 5 min — generous vs 30-60s normal runtime
42
+
43
+ break_stale_lock() {
44
+ if [ ! -d "$LOCK_DIR" ]; then return; fi
45
+ local lock_mtime now age
46
+ lock_mtime=$(get_mtime "$LOCK_DIR")
47
+ now=$(date +%s)
48
+ age=$(( now - lock_mtime ))
49
+ if [ "$age" -gt "$STALE_THRESHOLD" ]; then
50
+ log "Breaking stale lock (age: ${age}s, threshold: ${STALE_THRESHOLD}s)"
51
+ rmdir "$LOCK_DIR" 2>/dev/null || true
52
+ fi
53
+ }
54
+
55
+ # --- Locking (mkdir-based, POSIX-atomic) ---
56
+
57
+ acquire_lock() {
58
+ local timeout=90
59
+ local waited=0
60
+ while ! mkdir "$LOCK_DIR" 2>/dev/null; do
61
+ if [ "$waited" -ge "$timeout" ]; then
62
+ return 1
63
+ fi
64
+ sleep 1
65
+ waited=$((waited + 1))
66
+ done
67
+ return 0
68
+ }
69
+
70
+ cleanup() {
71
+ rmdir "$LOCK_DIR" 2>/dev/null || true
72
+ }
73
+ trap cleanup EXIT
74
+
75
+ # --- Main ---
76
+
77
+ # Wait for parent session to flush transcript.
78
+ # 3s provides ~6-10x margin over typical flush times.
79
+ # If --resume shows stale transcripts, bump to 5s.
80
+ sleep 3
81
+
82
+ log "Starting update for session $SESSION_ID"
83
+
84
+ # Break stale locks from previous zombie processes
85
+ break_stale_lock
86
+
87
+ # Acquire lock (other sessions may be updating concurrently)
88
+ if ! acquire_lock; then
89
+ log "Lock timeout after 90s — skipping update for session $SESSION_ID"
90
+ # Don't clean up lock we don't own
91
+ trap - EXIT
92
+ exit 0
93
+ fi
94
+
95
+ rotate_log
96
+
97
+ # Read existing memory for merge context
98
+ EXISTING_MEMORY=""
99
+ if [ -f "$MEMORY_FILE" ]; then
100
+ EXISTING_MEMORY=$(cat "$MEMORY_FILE")
101
+ fi
102
+
103
+ # Build instruction
104
+ if [ -n "$EXISTING_MEMORY" ]; then
105
+ INSTRUCTION="Update the file $MEMORY_FILE with working memory from this session. The file already has content — possibly from a concurrent session that just wrote it moments ago. Merge this session's context with the existing content to produce a single unified working memory snapshot. Both this session and the existing content represent fresh, concurrent work — integrate both fully. Working memory captures what's active now, not a changelog. Deduplicate overlapping information. Keep under 100 lines total. Use the same structure: ## Now, ## Decisions, ## Modified Files, ## Context, ## Session Log.
106
+
107
+ Existing content:
108
+ $EXISTING_MEMORY"
109
+ else
110
+ INSTRUCTION="Create the file $MEMORY_FILE with working memory from this session. Keep under 100 lines. Use this structure:
111
+
112
+ # Working Memory
113
+
114
+ ## Now
115
+ <!-- Current focus, status, blockers (1-3 bullets) -->
116
+
117
+ ## Decisions
118
+ <!-- Key decisions made this session with brief rationale -->
119
+
120
+ ## Modified Files
121
+ <!-- File paths only, most recent first -->
122
+
123
+ ## Context
124
+ <!-- Branch, PR, architectural context, open questions -->
125
+
126
+ ## Session Log
127
+
128
+ ### Today
129
+ <!-- Chronological summary of work done today (2-5 bullets) -->
130
+
131
+ ### This Week
132
+ <!-- Broader multi-day context if relevant -->"
133
+ fi
134
+
135
+ # Resume session headlessly to perform the update
136
+ TIMEOUT=120 # Normal runtime 30-60s; 2x margin
137
+
138
+ DEVFLOW_BG_UPDATER=1 env -u CLAUDECODE "$CLAUDE_BIN" -p \
139
+ --resume "$SESSION_ID" \
140
+ --model haiku \
141
+ --dangerously-skip-permissions \
142
+ --no-session-persistence \
143
+ --output-format text \
144
+ "$INSTRUCTION" \
145
+ > /dev/null 2>> "$LOG_FILE" &
146
+ CLAUDE_PID=$!
147
+
148
+ # Watchdog: kill claude if it exceeds timeout
149
+ ( sleep "$TIMEOUT" && kill "$CLAUDE_PID" 2>/dev/null ) &
150
+ WATCHDOG_PID=$!
151
+
152
+ if wait "$CLAUDE_PID" 2>/dev/null; then
153
+ log "Update completed for session $SESSION_ID"
154
+ else
155
+ EXIT_CODE=$?
156
+ if [ "$EXIT_CODE" -gt 128 ]; then
157
+ log "Update timed out (killed after ${TIMEOUT}s) for session $SESSION_ID"
158
+ else
159
+ log "Update failed for session $SESSION_ID (exit code $EXIT_CODE)"
160
+ fi
161
+ fi
162
+
163
+ # Clean up watchdog
164
+ kill "$WATCHDOG_PID" 2>/dev/null || true
165
+ wait "$WATCHDOG_PID" 2>/dev/null || true
166
+
167
+ exit 0
@@ -0,0 +1,81 @@
1
+ #!/bin/bash
2
+
3
+ # Working Memory: PreCompact Hook
4
+ # Safety net that captures git state to a backup JSON file before context compaction.
5
+ # Also bootstraps a minimal WORKING-MEMORY.md if none exists yet, so SessionStart
6
+ # has something to inject after compaction.
7
+ # PreCompact hooks cannot block compaction — this is informational only.
8
+
9
+ set -euo pipefail
10
+
11
+ # jq is required to parse hook input JSON — silently no-op if missing
12
+ if ! command -v jq &>/dev/null; then exit 0; fi
13
+
14
+ INPUT=$(cat)
15
+
16
+ CWD=$(echo "$INPUT" | jq -r '.cwd // ""' 2>/dev/null)
17
+ if [ -z "$CWD" ]; then
18
+ exit 0
19
+ fi
20
+
21
+ # Only activate in DevFlow-initialized projects
22
+ if [ ! -d "$CWD/.docs" ]; then
23
+ exit 0
24
+ fi
25
+
26
+ BACKUP_FILE="$CWD/.docs/working-memory-backup.json"
27
+
28
+ # Capture git state
29
+ GIT_BRANCH=""
30
+ GIT_STATUS=""
31
+ GIT_LOG=""
32
+ GIT_DIFF_STAT=""
33
+ TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
34
+
35
+ if cd "$CWD" 2>/dev/null && git rev-parse --git-dir >/dev/null 2>&1; then
36
+ GIT_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
37
+ GIT_STATUS=$(git status --porcelain 2>/dev/null | head -30 || echo "")
38
+ GIT_LOG=$(git log --oneline -10 2>/dev/null || echo "")
39
+ GIT_DIFF_STAT=$(git diff --stat HEAD 2>/dev/null || echo "")
40
+ fi
41
+
42
+ # Write backup JSON
43
+ jq -n \
44
+ --arg ts "$TIMESTAMP" \
45
+ --arg branch "$GIT_BRANCH" \
46
+ --arg status "$GIT_STATUS" \
47
+ --arg log "$GIT_LOG" \
48
+ --arg diff "$GIT_DIFF_STAT" \
49
+ '{
50
+ timestamp: $ts,
51
+ trigger: "pre-compact",
52
+ git: {
53
+ branch: $branch,
54
+ status: $status,
55
+ log: $log,
56
+ diff_stat: $diff
57
+ }
58
+ }' > "$BACKUP_FILE"
59
+
60
+ # Bootstrap minimal WORKING-MEMORY.md if none exists yet
61
+ # This ensures SessionStart has context to inject after compaction
62
+ MEMORY_FILE="$CWD/.docs/WORKING-MEMORY.md"
63
+ if [ ! -f "$MEMORY_FILE" ] && [ -n "$GIT_BRANCH" ]; then
64
+ {
65
+ echo "# Working Memory"
66
+ echo ""
67
+ echo "## Now"
68
+ echo "- Session compacted before working memory was established"
69
+ echo ""
70
+ echo "## Context"
71
+ echo "- Branch: $GIT_BRANCH"
72
+ echo "$GIT_LOG" | head -3 | while IFS= read -r line; do
73
+ [ -n "$line" ] && echo "- $line"
74
+ done
75
+ echo ""
76
+ echo "## Modified Files"
77
+ echo "$GIT_STATUS" | head -10 | while IFS= read -r line; do
78
+ [ -n "$line" ] && echo "- $(echo "$line" | awk '{print $2}')"
79
+ done
80
+ } > "$MEMORY_FILE"
81
+ fi