@wipcomputer/wip-ai-devops-toolbox 1.9.59 → 1.9.61

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 (742) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/SKILL.md +1 -1
  3. package/package.json +1 -1
  4. package/tools/deploy-public/package.json +1 -1
  5. package/tools/post-merge-rename/package.json +1 -1
  6. package/tools/wip-branch-guard/guard.mjs +1 -1
  7. package/tools/wip-branch-guard/package.json +1 -1
  8. package/tools/wip-branch-guard/test.sh +117 -0
  9. package/tools/wip-file-guard/package.json +1 -1
  10. package/tools/wip-license-guard/package.json +1 -1
  11. package/tools/wip-license-hook/package.json +1 -1
  12. package/tools/wip-readme-format/package.json +1 -1
  13. package/tools/wip-release/core.mjs +38 -0
  14. package/tools/wip-release/package.json +1 -1
  15. package/tools/wip-repo-init/package.json +1 -1
  16. package/tools/wip-repo-permissions-hook/package.json +1 -1
  17. package/tools/wip-repos/package.json +1 -1
  18. package/tools/wip-universal-installer/package.json +1 -1
  19. package/.worktrees/toolbox--guard-plan/.license-guard.json +0 -7
  20. package/.worktrees/toolbox--guard-plan/.publish-skill.json +0 -4
  21. package/.worktrees/toolbox--guard-plan/CHANGELOG.md +0 -1965
  22. package/.worktrees/toolbox--guard-plan/CLA.md +0 -19
  23. package/.worktrees/toolbox--guard-plan/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
  24. package/.worktrees/toolbox--guard-plan/LICENSE +0 -52
  25. package/.worktrees/toolbox--guard-plan/README.md +0 -238
  26. package/.worktrees/toolbox--guard-plan/RELEASE-NOTES-v1-9-59.md +0 -28
  27. package/.worktrees/toolbox--guard-plan/SKILL.md +0 -821
  28. package/.worktrees/toolbox--guard-plan/TECHNICAL.md +0 -416
  29. package/.worktrees/toolbox--guard-plan/UNIVERSAL-INTERFACE.md +0 -180
  30. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  31. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  32. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  33. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  34. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  35. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  36. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  37. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  38. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  39. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  40. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  41. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  42. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  43. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  44. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  45. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  46. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  47. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  48. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  49. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  50. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  51. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-56.md +0 -42
  52. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-57.md +0 -18
  53. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-58.md +0 -21
  54. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  55. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  56. package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  57. package/.worktrees/toolbox--guard-plan/_trash/guide 2/DEV-GUIDE.md +0 -487
  58. package/.worktrees/toolbox--guard-plan/_trash/guide 2/scripts/deploy-public.sh +0 -152
  59. package/.worktrees/toolbox--guard-plan/package.json +0 -27
  60. package/.worktrees/toolbox--guard-plan/scripts/SKILL-deploy-public.md +0 -61
  61. package/.worktrees/toolbox--guard-plan/scripts/SKILL-post-merge-rename.md +0 -47
  62. package/.worktrees/toolbox--guard-plan/scripts/deploy-public.sh +0 -350
  63. package/.worktrees/toolbox--guard-plan/scripts/post-merge-rename.sh +0 -210
  64. package/.worktrees/toolbox--guard-plan/scripts/publish-skill.sh +0 -134
  65. package/.worktrees/toolbox--guard-plan/templates/global-claude-md.md +0 -73
  66. package/.worktrees/toolbox--guard-plan/templates/repo-claude-md.template +0 -24
  67. package/.worktrees/toolbox--guard-plan/tools/deploy-public/LICENSE +0 -52
  68. package/.worktrees/toolbox--guard-plan/tools/deploy-public/README.md +0 -31
  69. package/.worktrees/toolbox--guard-plan/tools/deploy-public/SKILL.md +0 -71
  70. package/.worktrees/toolbox--guard-plan/tools/deploy-public/deploy-public.sh +0 -264
  71. package/.worktrees/toolbox--guard-plan/tools/deploy-public/package.json +0 -9
  72. package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/LICENSE +0 -52
  73. package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/README.md +0 -46
  74. package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/backup.sh +0 -16
  75. package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/branch-protect.sh +0 -39
  76. package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/crystal-capture.sh +0 -19
  77. package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/setup-shell.sh +0 -27
  78. package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/visibility-audit.sh +0 -27
  79. package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/LICENSE +0 -52
  80. package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/README.md +0 -29
  81. package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/SKILL.md +0 -57
  82. package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/package.json +0 -9
  83. package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/post-merge-rename.sh +0 -122
  84. package/.worktrees/toolbox--guard-plan/tools/wip-branch-guard/INSTALL.md +0 -41
  85. package/.worktrees/toolbox--guard-plan/tools/wip-branch-guard/guard.mjs +0 -477
  86. package/.worktrees/toolbox--guard-plan/tools/wip-branch-guard/package.json +0 -18
  87. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/CHANGELOG.md +0 -6
  88. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/LICENSE +0 -52
  89. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/README.md +0 -113
  90. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/REFERENCE.md +0 -86
  91. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/SKILL.md +0 -105
  92. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/guard.mjs +0 -161
  93. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/openclaw.plugin.json +0 -8
  94. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/package.json +0 -27
  95. package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/test.sh +0 -119
  96. package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/LICENSE +0 -52
  97. package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/README.md +0 -69
  98. package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/SKILL.md +0 -65
  99. package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/cli.mjs +0 -472
  100. package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/core.mjs +0 -310
  101. package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/guard.mjs +0 -146
  102. package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/package.json +0 -22
  103. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/CHANGELOG.md +0 -17
  104. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/LICENSE +0 -52
  105. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/README.md +0 -200
  106. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/SKILL.md +0 -111
  107. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
  108. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/cli/index.js +0 -170
  109. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/cli/index.js.map +0 -1
  110. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
  111. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/detector.js +0 -104
  112. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/detector.js.map +0 -1
  113. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/index.d.ts +0 -4
  114. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/index.js +0 -5
  115. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/index.js.map +0 -1
  116. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
  117. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/ledger.js +0 -72
  118. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
  119. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
  120. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/reporter.js +0 -227
  121. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
  122. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
  123. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/scanner.js +0 -325
  124. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
  125. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
  126. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/hooks/pre-push.sh +0 -51
  127. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/mcp-server.mjs +0 -119
  128. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/package-lock.json +0 -54
  129. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/package.json +0 -43
  130. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/cli/index.ts +0 -189
  131. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/detector.ts +0 -130
  132. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/index.ts +0 -4
  133. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/ledger.ts +0 -116
  134. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/reporter.ts +0 -255
  135. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/scanner.ts +0 -367
  136. package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/tsconfig.json +0 -16
  137. package/.worktrees/toolbox--guard-plan/tools/wip-readme-format/README.md +0 -49
  138. package/.worktrees/toolbox--guard-plan/tools/wip-readme-format/SKILL.md +0 -84
  139. package/.worktrees/toolbox--guard-plan/tools/wip-readme-format/format.mjs +0 -597
  140. package/.worktrees/toolbox--guard-plan/tools/wip-readme-format/package.json +0 -15
  141. package/.worktrees/toolbox--guard-plan/tools/wip-release/CHANGELOG.md +0 -42
  142. package/.worktrees/toolbox--guard-plan/tools/wip-release/LICENSE +0 -52
  143. package/.worktrees/toolbox--guard-plan/tools/wip-release/README.md +0 -45
  144. package/.worktrees/toolbox--guard-plan/tools/wip-release/REFERENCE.md +0 -100
  145. package/.worktrees/toolbox--guard-plan/tools/wip-release/SKILL.md +0 -139
  146. package/.worktrees/toolbox--guard-plan/tools/wip-release/cli.js +0 -175
  147. package/.worktrees/toolbox--guard-plan/tools/wip-release/core.mjs +0 -1664
  148. package/.worktrees/toolbox--guard-plan/tools/wip-release/mcp-server.mjs +0 -113
  149. package/.worktrees/toolbox--guard-plan/tools/wip-release/package.json +0 -36
  150. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/README.md +0 -38
  151. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/SKILL.md +0 -77
  152. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/init.mjs +0 -148
  153. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/package.json +0 -11
  154. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/_sort/README.md +0 -15
  155. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/_trash/README.md +0 -16
  156. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
  157. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/notes/README.md +0 -26
  158. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
  159. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
  160. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
  161. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
  162. package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/read-me-first.md +0 -80
  163. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/LICENSE +0 -52
  164. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/README.md +0 -86
  165. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/SKILL.md +0 -73
  166. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/cli.js +0 -93
  167. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/core.mjs +0 -122
  168. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/guard.mjs +0 -64
  169. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
  170. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
  171. package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/package.json +0 -31
  172. package/.worktrees/toolbox--guard-plan/tools/wip-repos/LICENSE +0 -52
  173. package/.worktrees/toolbox--guard-plan/tools/wip-repos/README.md +0 -77
  174. package/.worktrees/toolbox--guard-plan/tools/wip-repos/SKILL.md +0 -80
  175. package/.worktrees/toolbox--guard-plan/tools/wip-repos/claude.mjs +0 -248
  176. package/.worktrees/toolbox--guard-plan/tools/wip-repos/cli.mjs +0 -191
  177. package/.worktrees/toolbox--guard-plan/tools/wip-repos/core.mjs +0 -290
  178. package/.worktrees/toolbox--guard-plan/tools/wip-repos/mcp-server.mjs +0 -157
  179. package/.worktrees/toolbox--guard-plan/tools/wip-repos/package.json +0 -34
  180. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/CHANGELOG.md +0 -57
  181. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/LICENSE +0 -52
  182. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/README.md +0 -81
  183. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/REFERENCE.md +0 -122
  184. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/SKILL.md +0 -87
  185. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/SPEC.md +0 -206
  186. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/detect.mjs +0 -130
  187. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/README.md +0 -20
  188. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
  189. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
  190. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
  191. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
  192. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/package.json +0 -12
  193. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/install.js +0 -930
  194. package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/package.json +0 -32
  195. package/.worktrees/toolbox--release-notes/.license-guard.json +0 -7
  196. package/.worktrees/toolbox--release-notes/.publish-skill.json +0 -4
  197. package/.worktrees/toolbox--release-notes/CHANGELOG.md +0 -1875
  198. package/.worktrees/toolbox--release-notes/CLA.md +0 -19
  199. package/.worktrees/toolbox--release-notes/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
  200. package/.worktrees/toolbox--release-notes/LICENSE +0 -52
  201. package/.worktrees/toolbox--release-notes/README.md +0 -238
  202. package/.worktrees/toolbox--release-notes/RELEASE-NOTES-v1-9-56.md +0 -42
  203. package/.worktrees/toolbox--release-notes/SKILL.md +0 -821
  204. package/.worktrees/toolbox--release-notes/TECHNICAL.md +0 -416
  205. package/.worktrees/toolbox--release-notes/UNIVERSAL-INTERFACE.md +0 -180
  206. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  207. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  208. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  209. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  210. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  211. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  212. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  213. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  214. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  215. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  216. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  217. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  218. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  219. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  220. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  221. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  222. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  223. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  224. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  225. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  226. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  227. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  228. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  229. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  230. package/.worktrees/toolbox--release-notes/_trash/guide 2/DEV-GUIDE.md +0 -487
  231. package/.worktrees/toolbox--release-notes/_trash/guide 2/scripts/deploy-public.sh +0 -152
  232. package/.worktrees/toolbox--release-notes/package.json +0 -27
  233. package/.worktrees/toolbox--release-notes/scripts/SKILL-deploy-public.md +0 -61
  234. package/.worktrees/toolbox--release-notes/scripts/SKILL-post-merge-rename.md +0 -47
  235. package/.worktrees/toolbox--release-notes/scripts/deploy-public.sh +0 -345
  236. package/.worktrees/toolbox--release-notes/scripts/post-merge-rename.sh +0 -210
  237. package/.worktrees/toolbox--release-notes/scripts/publish-skill.sh +0 -134
  238. package/.worktrees/toolbox--release-notes/templates/global-claude-md.md +0 -73
  239. package/.worktrees/toolbox--release-notes/templates/repo-claude-md.template +0 -24
  240. package/.worktrees/toolbox--release-notes/tools/deploy-public/LICENSE +0 -52
  241. package/.worktrees/toolbox--release-notes/tools/deploy-public/README.md +0 -31
  242. package/.worktrees/toolbox--release-notes/tools/deploy-public/SKILL.md +0 -71
  243. package/.worktrees/toolbox--release-notes/tools/deploy-public/deploy-public.sh +0 -264
  244. package/.worktrees/toolbox--release-notes/tools/deploy-public/package.json +0 -9
  245. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/LICENSE +0 -52
  246. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/README.md +0 -46
  247. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/backup.sh +0 -16
  248. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/branch-protect.sh +0 -39
  249. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/crystal-capture.sh +0 -19
  250. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/setup-shell.sh +0 -27
  251. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/visibility-audit.sh +0 -27
  252. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/LICENSE +0 -52
  253. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/README.md +0 -29
  254. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/SKILL.md +0 -57
  255. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/package.json +0 -9
  256. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/post-merge-rename.sh +0 -122
  257. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/INSTALL.md +0 -41
  258. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/guard.mjs +0 -459
  259. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/package.json +0 -18
  260. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/CHANGELOG.md +0 -6
  261. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/LICENSE +0 -52
  262. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/README.md +0 -113
  263. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/REFERENCE.md +0 -86
  264. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/SKILL.md +0 -105
  265. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/guard.mjs +0 -161
  266. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/openclaw.plugin.json +0 -8
  267. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/package.json +0 -27
  268. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/test.sh +0 -119
  269. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/LICENSE +0 -52
  270. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/README.md +0 -69
  271. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/SKILL.md +0 -65
  272. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/cli.mjs +0 -472
  273. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/core.mjs +0 -310
  274. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/guard.mjs +0 -146
  275. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/package.json +0 -22
  276. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/CHANGELOG.md +0 -17
  277. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/LICENSE +0 -52
  278. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/README.md +0 -200
  279. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/SKILL.md +0 -111
  280. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
  281. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js +0 -170
  282. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js.map +0 -1
  283. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
  284. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js +0 -104
  285. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js.map +0 -1
  286. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.d.ts +0 -4
  287. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js +0 -5
  288. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js.map +0 -1
  289. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
  290. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js +0 -72
  291. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
  292. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
  293. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js +0 -227
  294. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
  295. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
  296. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js +0 -325
  297. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
  298. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
  299. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-push.sh +0 -51
  300. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/mcp-server.mjs +0 -119
  301. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package-lock.json +0 -54
  302. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package.json +0 -43
  303. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/cli/index.ts +0 -189
  304. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/detector.ts +0 -130
  305. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/index.ts +0 -4
  306. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/ledger.ts +0 -116
  307. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/reporter.ts +0 -255
  308. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/scanner.ts +0 -367
  309. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/tsconfig.json +0 -16
  310. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/README.md +0 -49
  311. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/SKILL.md +0 -84
  312. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/format.mjs +0 -597
  313. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/package.json +0 -15
  314. package/.worktrees/toolbox--release-notes/tools/wip-release/CHANGELOG.md +0 -42
  315. package/.worktrees/toolbox--release-notes/tools/wip-release/LICENSE +0 -52
  316. package/.worktrees/toolbox--release-notes/tools/wip-release/README.md +0 -45
  317. package/.worktrees/toolbox--release-notes/tools/wip-release/REFERENCE.md +0 -100
  318. package/.worktrees/toolbox--release-notes/tools/wip-release/SKILL.md +0 -139
  319. package/.worktrees/toolbox--release-notes/tools/wip-release/cli.js +0 -175
  320. package/.worktrees/toolbox--release-notes/tools/wip-release/core.mjs +0 -1664
  321. package/.worktrees/toolbox--release-notes/tools/wip-release/mcp-server.mjs +0 -113
  322. package/.worktrees/toolbox--release-notes/tools/wip-release/package.json +0 -36
  323. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/README.md +0 -38
  324. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/SKILL.md +0 -77
  325. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/init.mjs +0 -148
  326. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/package.json +0 -11
  327. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_sort/README.md +0 -15
  328. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_trash/README.md +0 -16
  329. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
  330. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/notes/README.md +0 -26
  331. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
  332. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
  333. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
  334. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
  335. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/read-me-first.md +0 -80
  336. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/LICENSE +0 -52
  337. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/README.md +0 -86
  338. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/SKILL.md +0 -73
  339. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/cli.js +0 -93
  340. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/core.mjs +0 -122
  341. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/guard.mjs +0 -64
  342. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
  343. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
  344. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/package.json +0 -31
  345. package/.worktrees/toolbox--release-notes/tools/wip-repos/LICENSE +0 -52
  346. package/.worktrees/toolbox--release-notes/tools/wip-repos/README.md +0 -77
  347. package/.worktrees/toolbox--release-notes/tools/wip-repos/SKILL.md +0 -80
  348. package/.worktrees/toolbox--release-notes/tools/wip-repos/claude.mjs +0 -248
  349. package/.worktrees/toolbox--release-notes/tools/wip-repos/cli.mjs +0 -191
  350. package/.worktrees/toolbox--release-notes/tools/wip-repos/core.mjs +0 -290
  351. package/.worktrees/toolbox--release-notes/tools/wip-repos/mcp-server.mjs +0 -157
  352. package/.worktrees/toolbox--release-notes/tools/wip-repos/package.json +0 -34
  353. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/CHANGELOG.md +0 -57
  354. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/LICENSE +0 -52
  355. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/README.md +0 -81
  356. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/REFERENCE.md +0 -122
  357. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SKILL.md +0 -87
  358. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SPEC.md +0 -206
  359. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/detect.mjs +0 -130
  360. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/README.md +0 -20
  361. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
  362. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
  363. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
  364. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
  365. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/package.json +0 -12
  366. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/install.js +0 -930
  367. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/package.json +0 -32
  368. package/.worktrees/toolbox--save-stale/.license-guard.json +0 -7
  369. package/.worktrees/toolbox--save-stale/.publish-skill.json +0 -4
  370. package/.worktrees/toolbox--save-stale/CHANGELOG.md +0 -1875
  371. package/.worktrees/toolbox--save-stale/CLA.md +0 -19
  372. package/.worktrees/toolbox--save-stale/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
  373. package/.worktrees/toolbox--save-stale/LICENSE +0 -52
  374. package/.worktrees/toolbox--save-stale/README.md +0 -238
  375. package/.worktrees/toolbox--save-stale/SKILL.md +0 -821
  376. package/.worktrees/toolbox--save-stale/TECHNICAL.md +0 -416
  377. package/.worktrees/toolbox--save-stale/UNIVERSAL-INTERFACE.md +0 -180
  378. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  379. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  380. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  381. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  382. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  383. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  384. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  385. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  386. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  387. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  388. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  389. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  390. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  391. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  392. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  393. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  394. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  395. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  396. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  397. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  398. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  399. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  400. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  401. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  402. package/.worktrees/toolbox--save-stale/_trash/guide 2/DEV-GUIDE.md +0 -487
  403. package/.worktrees/toolbox--save-stale/_trash/guide 2/scripts/deploy-public.sh +0 -152
  404. package/.worktrees/toolbox--save-stale/package.json +0 -27
  405. package/.worktrees/toolbox--save-stale/scripts/SKILL-deploy-public.md +0 -61
  406. package/.worktrees/toolbox--save-stale/scripts/SKILL-post-merge-rename.md +0 -47
  407. package/.worktrees/toolbox--save-stale/scripts/deploy-public.sh +0 -345
  408. package/.worktrees/toolbox--save-stale/scripts/post-merge-rename.sh +0 -210
  409. package/.worktrees/toolbox--save-stale/scripts/publish-skill.sh +0 -134
  410. package/.worktrees/toolbox--save-stale/templates/global-claude-md.md +0 -73
  411. package/.worktrees/toolbox--save-stale/templates/repo-claude-md.template +0 -24
  412. package/.worktrees/toolbox--save-stale/tools/deploy-public/LICENSE +0 -52
  413. package/.worktrees/toolbox--save-stale/tools/deploy-public/README.md +0 -31
  414. package/.worktrees/toolbox--save-stale/tools/deploy-public/SKILL.md +0 -71
  415. package/.worktrees/toolbox--save-stale/tools/deploy-public/deploy-public.sh +0 -264
  416. package/.worktrees/toolbox--save-stale/tools/deploy-public/package.json +0 -9
  417. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/LICENSE +0 -52
  418. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/README.md +0 -46
  419. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/backup.sh +0 -16
  420. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/branch-protect.sh +0 -39
  421. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/crystal-capture.sh +0 -19
  422. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/setup-shell.sh +0 -27
  423. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/visibility-audit.sh +0 -27
  424. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/LICENSE +0 -52
  425. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/README.md +0 -29
  426. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/SKILL.md +0 -57
  427. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/package.json +0 -9
  428. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/post-merge-rename.sh +0 -122
  429. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/INSTALL.md +0 -41
  430. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/guard.mjs +0 -459
  431. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/package.json +0 -18
  432. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/CHANGELOG.md +0 -6
  433. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/LICENSE +0 -52
  434. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/README.md +0 -113
  435. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/REFERENCE.md +0 -86
  436. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/SKILL.md +0 -105
  437. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/guard.mjs +0 -161
  438. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/openclaw.plugin.json +0 -8
  439. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/package.json +0 -27
  440. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/test.sh +0 -119
  441. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/LICENSE +0 -52
  442. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/README.md +0 -69
  443. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/SKILL.md +0 -65
  444. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/cli.mjs +0 -472
  445. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/core.mjs +0 -310
  446. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/guard.mjs +0 -146
  447. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/package.json +0 -22
  448. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/CHANGELOG.md +0 -17
  449. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/LICENSE +0 -52
  450. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/README.md +0 -200
  451. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/SKILL.md +0 -111
  452. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
  453. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js +0 -170
  454. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js.map +0 -1
  455. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
  456. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js +0 -104
  457. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js.map +0 -1
  458. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.d.ts +0 -4
  459. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js +0 -5
  460. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js.map +0 -1
  461. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
  462. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js +0 -72
  463. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
  464. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
  465. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js +0 -227
  466. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
  467. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
  468. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js +0 -325
  469. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
  470. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
  471. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-push.sh +0 -51
  472. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/mcp-server.mjs +0 -119
  473. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package-lock.json +0 -54
  474. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package.json +0 -43
  475. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/cli/index.ts +0 -189
  476. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/detector.ts +0 -130
  477. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/index.ts +0 -4
  478. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/ledger.ts +0 -116
  479. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/reporter.ts +0 -255
  480. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/scanner.ts +0 -367
  481. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/tsconfig.json +0 -16
  482. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/README.md +0 -49
  483. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/SKILL.md +0 -84
  484. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/format.mjs +0 -597
  485. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/package.json +0 -15
  486. package/.worktrees/toolbox--save-stale/tools/wip-release/CHANGELOG.md +0 -42
  487. package/.worktrees/toolbox--save-stale/tools/wip-release/LICENSE +0 -52
  488. package/.worktrees/toolbox--save-stale/tools/wip-release/README.md +0 -45
  489. package/.worktrees/toolbox--save-stale/tools/wip-release/REFERENCE.md +0 -100
  490. package/.worktrees/toolbox--save-stale/tools/wip-release/SKILL.md +0 -139
  491. package/.worktrees/toolbox--save-stale/tools/wip-release/cli.js +0 -175
  492. package/.worktrees/toolbox--save-stale/tools/wip-release/core.mjs +0 -1664
  493. package/.worktrees/toolbox--save-stale/tools/wip-release/mcp-server.mjs +0 -113
  494. package/.worktrees/toolbox--save-stale/tools/wip-release/package.json +0 -36
  495. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/README.md +0 -38
  496. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/SKILL.md +0 -77
  497. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/init.mjs +0 -148
  498. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/package.json +0 -11
  499. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_sort/README.md +0 -15
  500. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_trash/README.md +0 -16
  501. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
  502. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/notes/README.md +0 -26
  503. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
  504. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
  505. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
  506. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
  507. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/read-me-first.md +0 -80
  508. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/LICENSE +0 -52
  509. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/README.md +0 -86
  510. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/SKILL.md +0 -73
  511. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/cli.js +0 -93
  512. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/core.mjs +0 -122
  513. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/guard.mjs +0 -64
  514. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
  515. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
  516. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/package.json +0 -31
  517. package/.worktrees/toolbox--save-stale/tools/wip-repos/LICENSE +0 -52
  518. package/.worktrees/toolbox--save-stale/tools/wip-repos/README.md +0 -77
  519. package/.worktrees/toolbox--save-stale/tools/wip-repos/SKILL.md +0 -80
  520. package/.worktrees/toolbox--save-stale/tools/wip-repos/claude.mjs +0 -248
  521. package/.worktrees/toolbox--save-stale/tools/wip-repos/cli.mjs +0 -191
  522. package/.worktrees/toolbox--save-stale/tools/wip-repos/core.mjs +0 -290
  523. package/.worktrees/toolbox--save-stale/tools/wip-repos/mcp-server.mjs +0 -157
  524. package/.worktrees/toolbox--save-stale/tools/wip-repos/package.json +0 -34
  525. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/CHANGELOG.md +0 -57
  526. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/LICENSE +0 -52
  527. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/README.md +0 -81
  528. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/REFERENCE.md +0 -122
  529. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SKILL.md +0 -87
  530. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SPEC.md +0 -206
  531. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/detect.mjs +0 -130
  532. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/README.md +0 -20
  533. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
  534. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
  535. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
  536. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
  537. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/package.json +0 -12
  538. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/install.js +0 -930
  539. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/package.json +0 -32
  540. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.license-guard.json +0 -7
  541. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.publish-skill.json +0 -4
  542. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CHANGELOG.md +0 -1875
  543. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CLA.md +0 -19
  544. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
  545. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/LICENSE +0 -52
  546. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/README.md +0 -238
  547. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/SKILL.md +0 -821
  548. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/TECHNICAL.md +0 -416
  549. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/UNIVERSAL-INTERFACE.md +0 -180
  550. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  551. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  552. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  553. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  554. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  555. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  556. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  557. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  558. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  559. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  560. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  561. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  562. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  563. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  564. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  565. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  566. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  567. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  568. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  569. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  570. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  571. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  572. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  573. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  574. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/DEV-GUIDE.md +0 -487
  575. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/scripts/deploy-public.sh +0 -152
  576. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/package.json +0 -27
  577. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-deploy-public.md +0 -61
  578. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-post-merge-rename.md +0 -47
  579. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/deploy-public.sh +0 -345
  580. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/post-merge-rename.sh +0 -210
  581. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/publish-skill.sh +0 -134
  582. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/global-claude-md.md +0 -73
  583. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/repo-claude-md.template +0 -24
  584. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/LICENSE +0 -52
  585. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/README.md +0 -31
  586. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/SKILL.md +0 -71
  587. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/deploy-public.sh +0 -264
  588. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/package.json +0 -9
  589. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/LICENSE +0 -52
  590. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/README.md +0 -46
  591. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/backup.sh +0 -16
  592. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/branch-protect.sh +0 -39
  593. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/crystal-capture.sh +0 -19
  594. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/setup-shell.sh +0 -27
  595. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/visibility-audit.sh +0 -27
  596. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/LICENSE +0 -52
  597. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/README.md +0 -29
  598. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/SKILL.md +0 -57
  599. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/package.json +0 -9
  600. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/post-merge-rename.sh +0 -122
  601. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/INSTALL.md +0 -41
  602. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/guard.mjs +0 -418
  603. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/package.json +0 -18
  604. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/CHANGELOG.md +0 -6
  605. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/LICENSE +0 -52
  606. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/README.md +0 -113
  607. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/REFERENCE.md +0 -86
  608. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/SKILL.md +0 -105
  609. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/guard.mjs +0 -161
  610. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/openclaw.plugin.json +0 -8
  611. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/package.json +0 -27
  612. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/test.sh +0 -119
  613. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/LICENSE +0 -52
  614. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/README.md +0 -69
  615. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/SKILL.md +0 -65
  616. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/cli.mjs +0 -472
  617. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/core.mjs +0 -310
  618. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/guard.mjs +0 -146
  619. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/package.json +0 -22
  620. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/CHANGELOG.md +0 -17
  621. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/LICENSE +0 -52
  622. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/README.md +0 -200
  623. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/SKILL.md +0 -111
  624. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
  625. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js +0 -170
  626. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js.map +0 -1
  627. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
  628. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js +0 -104
  629. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js.map +0 -1
  630. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.d.ts +0 -4
  631. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js +0 -5
  632. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js.map +0 -1
  633. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
  634. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js +0 -72
  635. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
  636. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
  637. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js +0 -227
  638. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
  639. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
  640. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js +0 -325
  641. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
  642. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
  643. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-push.sh +0 -51
  644. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/mcp-server.mjs +0 -119
  645. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package-lock.json +0 -54
  646. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package.json +0 -43
  647. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/cli/index.ts +0 -189
  648. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/detector.ts +0 -130
  649. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/index.ts +0 -4
  650. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/ledger.ts +0 -116
  651. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/reporter.ts +0 -255
  652. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/scanner.ts +0 -367
  653. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/tsconfig.json +0 -16
  654. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/README.md +0 -49
  655. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/SKILL.md +0 -84
  656. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/format.mjs +0 -597
  657. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/package.json +0 -15
  658. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/CHANGELOG.md +0 -42
  659. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/LICENSE +0 -52
  660. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/README.md +0 -45
  661. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/REFERENCE.md +0 -100
  662. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/SKILL.md +0 -139
  663. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/cli.js +0 -175
  664. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/core.mjs +0 -1664
  665. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/mcp-server.mjs +0 -113
  666. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/package.json +0 -36
  667. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/README.md +0 -38
  668. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/SKILL.md +0 -77
  669. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/init.mjs +0 -148
  670. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/package.json +0 -11
  671. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_sort/README.md +0 -15
  672. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_trash/README.md +0 -16
  673. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
  674. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/notes/README.md +0 -26
  675. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
  676. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
  677. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
  678. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
  679. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/read-me-first.md +0 -80
  680. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/LICENSE +0 -52
  681. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/README.md +0 -86
  682. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/SKILL.md +0 -73
  683. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/cli.js +0 -93
  684. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/core.mjs +0 -122
  685. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/guard.mjs +0 -64
  686. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
  687. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
  688. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/package.json +0 -31
  689. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/LICENSE +0 -52
  690. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/README.md +0 -77
  691. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/SKILL.md +0 -80
  692. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/claude.mjs +0 -248
  693. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/cli.mjs +0 -191
  694. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/core.mjs +0 -290
  695. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/mcp-server.mjs +0 -157
  696. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/package.json +0 -34
  697. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/CHANGELOG.md +0 -57
  698. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/LICENSE +0 -52
  699. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/README.md +0 -81
  700. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/REFERENCE.md +0 -122
  701. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SKILL.md +0 -87
  702. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SPEC.md +0 -206
  703. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/detect.mjs +0 -130
  704. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/README.md +0 -20
  705. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
  706. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
  707. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
  708. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
  709. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/package.json +0 -12
  710. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/install.js +0 -930
  711. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/package.json +0 -32
  712. package/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  713. package/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  714. package/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  715. package/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  716. package/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  717. package/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  718. package/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  719. package/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  720. package/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  721. package/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  722. package/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  723. package/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  724. package/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  725. package/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  726. package/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  727. package/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  728. package/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  729. package/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  730. package/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  731. package/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  732. package/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  733. package/_trash/RELEASE-NOTES-v1-9-56.md +0 -42
  734. package/_trash/RELEASE-NOTES-v1-9-57.md +0 -18
  735. package/_trash/RELEASE-NOTES-v1-9-58.md +0 -21
  736. package/_trash/RELEASE-NOTES-v1-9-59.md +0 -28
  737. package/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  738. package/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  739. package/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  740. package/_trash/guide 2/DEV-GUIDE.md +0 -487
  741. package/_trash/guide 2/scripts/deploy-public.sh +0 -152
  742. package/tools/wip-repo-init/templates/_trash/README.md +0 -16
@@ -1,1965 +0,0 @@
1
- # Changelog
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
- ## 1.9.58 (2026-03-29)
36
-
37
- # Release Notes: wip-ai-devops-toolbox v1.9.58
38
-
39
- **Fix deploy-public.sh losing release notes when invoked with relative path.**
40
-
41
- ## The story
42
-
43
- When deploy-public.sh was called with `.` as the private repo path (e.g. `bash scripts/deploy-public.sh . wipcomputer/repo`), the script later cd'd into a temp directory. After that, `cd "."` no longer pointed to the private repo, so `gh release view` failed silently and release notes fell back to the empty "Release vX.Y.Z" default. This has been broken since at least v1.9.51.
44
-
45
- Fix: resolve PRIVATE_REPO to an absolute path at startup before any cd happens.
46
-
47
- ## Issues closed
48
-
49
- - #228 (continued from v1.9.57)
50
-
51
- ## How to verify
52
-
53
- ```bash
54
- # From a repo directory, run with "." and check public release has real notes:
55
- cd /path/to/private-repo
56
- bash scripts/deploy-public.sh . wipcomputer/public-repo --dry-run
57
- ```
58
-
59
- ## 1.9.57 (2026-03-29)
60
-
61
- # Release Notes: wip-ai-devops-toolbox v1.9.57
62
-
63
- **deploy-public.sh now excludes .worktrees/ and _worktrees/ from public repo syncs.**
64
-
65
- ## The story
66
-
67
- v1.9.56 accidentally deployed worktree directories (containing embedded git repos) to the public repo. The deploy script's rsync excluded ai/, .git/, _trash/, and other dev artifacts but didn't exclude worktree directories. Added both .worktrees/ (new convention) and _worktrees/ (old convention) to the exclude list.
68
-
69
- ## Issues closed
70
-
71
- - #228 (deploy-public.sh leaks .worktrees/ to public repo)
72
-
73
- ## How to verify
74
-
75
- ```bash
76
- # Run deploy-public.sh --dry-run and confirm .worktrees/ is not synced
77
- grep -n "worktrees" scripts/deploy-public.sh
78
- ```
79
-
80
- ## 1.9.56 (2026-03-29)
81
-
82
- # Release Notes: wip-ai-devops-toolbox v1.9.56
83
-
84
- **Branch guard now blocks destructive git commands on all branches.**
85
-
86
- ## The story
87
-
88
- The branch guard blocked commits and file writes on main, but allowed destructive git commands that destroy uncommitted work. Commands like `git clean -fd`, `git checkout --`, `git stash drop`, and `git reset --hard` slipped through because they were either in the allowed list or not in the blocked list. These commands destroyed Parker's Finder aliases, other agents' uncommitted edits, and user files multiple times on Mar 28-29.
89
-
90
- The fix adds a new DESTRUCTIVE_PATTERNS list that fires on ALL branches, not just main. The guard also closes several bypass vectors: `node -e` removed from the allowed list, python/node file-write patterns detected, and `git checkout` narrowed to branch-switching only.
91
-
92
- ## What changed
93
-
94
- - Added DESTRUCTIVE_PATTERNS: git clean -f, git checkout --, git stash drop/pop/clear, git reset --hard, git restore, python/node bypasses
95
- - Removed `git checkout` blanket allow. Now only allows `git checkout <branch>` (switching)
96
- - Removed `git stash drop` from allowed list
97
- - Removed `node -e` from allowed bash patterns (bypass vector)
98
- - Added `git stash show` and `git restore --staged` as safe read-only operations
99
- - Deny message tells agent to use worktrees and safety checkpoints instead
100
-
101
- ## Issues closed
102
-
103
- - #240 (branch guard + harness directories)
104
- - #241 (python bypass detection)
105
- - PR #284
106
-
107
- ## How to verify
108
-
109
- ```bash
110
- # These should all be BLOCKED:
111
- # git clean -fd
112
- # git checkout -- somefile
113
- # git stash drop
114
- # git stash pop
115
- # git reset --hard
116
- # python3 -c "open('f','w').write('x')"
117
-
118
- # These should still WORK:
119
- # git checkout main (branch switching)
120
- # git stash list (read-only)
121
- # git status, git log, git diff
122
- # Normal worktree workflow
123
- ```
124
-
125
- ## 1.9.55 (2026-03-28)
126
-
127
- # Release Notes: wip-ai-devops-toolbox v1.9.55
128
-
129
- Force redeploy: .worktrees guard fix.
130
-
131
- ## The story
132
-
133
- v1.9.53 had the guard fix but deploy-public was missed. v1.9.54 force-redeployed but installer had already cached v1.9.54. This version ensures the public repo and npm are in sync so ldm install deploys the correct guard.mjs with .worktrees convention.
134
-
135
- ## Issues closed
136
-
137
- - #240 (partial)
138
-
139
- ## 1.9.54 (2026-03-28)
140
-
141
- # Release Notes: wip-ai-devops-toolbox v1.9.54
142
-
143
- Force redeploy: guard files were stale after v1.9.53.
144
-
145
- ## The story
146
-
147
- v1.9.53 published the .worktrees guard fix to npm but ldm install saw the version as current and skipped redeploying the files. The deployed guard.mjs was still the old version. This release forces a version bump so the installer re-deploys.
148
-
149
- This is a bug in the installer: it checks version numbers but not file contents. Filed for future fix.
150
-
151
- ## Issues closed
152
-
153
- - #240 (partial: .worktrees convention)
154
-
155
- ## 1.9.53 (2026-03-28)
156
-
157
- # Release Notes: wip-ai-devops-toolbox v1.9.53
158
-
159
- **One-line summary of what this release does**
160
-
161
- Tell the story. What was broken or missing? What did we build? Why does the user care?
162
- Write at least one real paragraph of prose. Not just bullets. The release notes gate
163
- will block if there is no narrative. Bullets are fine for details, but the story comes first.
164
-
165
- ## The story
166
-
167
- (Write a paragraph here. What was the problem? What does this release fix? Why does it matter?
168
- This is what users read. Make it worth reading.)
169
-
170
- ## Issues closed
171
-
172
- - #282
173
-
174
- ## How to verify
175
-
176
- ```bash
177
- # Commands to test the changes
178
- ```
179
-
180
- ## 1.9.52 (2026-03-27)
181
-
182
- # Release Notes: wip-ai-devops-toolbox v1.9.52
183
-
184
- **Fix branch guard false-blocking bash commands targeting worktree paths**
185
-
186
- ## What changed
187
-
188
- - Branch guard now extracts absolute paths from any bash command (mkdir, cp, mv, touch, etc.) and resolves the git branch from the target path's repo, not the CWD
189
- - `findRepoRoot()` improved to walk up to existing directories for paths that don't exist yet (handles mkdir for new directories)
190
- - Added `.ldm/worktrees` to allowed worktree locations alongside `_worktrees/` and `.claude/worktrees`
191
-
192
- ## Why
193
-
194
- When Claude Code launches from `~/wipcomputerinc/` (on main) and runs bash commands targeting files inside a worktree (e.g., `mkdir -p /path/to/_worktrees/repo--branch/new-dir/`), the guard only knew how to extract paths from `cd` and `git -C` patterns. Any other command fell back to CWD resolution, saw "main", and blocked incorrectly. This caused minutes of wasted time every session.
195
-
196
- ## Issues closed
197
-
198
- - wipcomputer/wip-ldm-os#187
199
-
200
- ## How to verify
201
-
202
- ```bash
203
- # From CWD on main, this should no longer be blocked:
204
- # mkdir -p /path/to/_worktrees/repo--branch/new-directory/
205
- # cp file.txt /path/to/_worktrees/repo--branch/
206
- ```
207
-
208
- ## 1.9.51 (2026-03-24)
209
-
210
- # Release Notes: wip-ai-devops-toolbox v1.9.51
211
-
212
- ## Branch Guard: Workspace Files Allowlist (#185)
213
-
214
- Added TOOLS.md, MEMORY.md, IDENTITY.md, SOUL.md, WHERE-TO-WRITE.md, HEARTBEAT.md to the shared state allowlist. Both agents can now write to workspace files on main without being blocked.
215
-
216
- Previously only SHARED-CONTEXT.md was allowed. This broke Lesa's ability to edit her own workspace files during the migration to ~/wipcomputerinc/.
217
-
218
- ## TECHNICAL.md: Backup Documentation
219
-
220
- Updated LDM Dev Tools.app backup section to reflect the unified backup system. backup.sh now calls `~/.ldm/bin/ldm-backup.sh` (deployed by ldm install from wip-ldm-os-private/scripts/).
221
-
222
- ## 1.9.50 (2026-03-20)
223
-
224
- # Release Notes: wip-ai-devops-toolbox v1.9.50
225
-
226
- **wip-release: require product update doc on every release.**
227
-
228
- ## What changed
229
-
230
- New quality gate in wip-release: checks that `ai/dev-updates/product-update/*-product-update.md` was modified since the last release tag. Same pattern as dev-updates, roadmap, and readme-first checks.
231
-
232
- The product update doc is a human-readable test guide. Each release entry has: what changed, how it's supposed to work, and how to test. New entries go at the top. Additive only.
233
-
234
- ## Why
235
-
236
- Three repos now have product update docs but nothing enforced keeping them current. Without the gate, the docs will drift immediately (same problem we had with TECHNICAL.md).
237
-
238
- ## Issues closed
239
-
240
- - #220
241
-
242
- ## How to verify
243
-
244
- ```bash
245
- wip-release patch --dry-run
246
- # Should warn if product update doc not modified since last release
247
- ```
248
-
249
- ## 1.9.49 (2026-03-20)
250
-
251
- # Release Notes: wip-ai-devops-toolbox v1.9.49
252
-
253
- **TECHNICAL.md audit: 2 weeks of undocumented features now documented.**
254
-
255
- ## What changed
256
-
257
- Full TECHNICAL.md audit covering v1.9.15 through v1.9.48. Two passes. Key additions:
258
-
259
- - **wip-release quality gates:** Technical docs gate, interface coverage gate, product docs auto-sync, all skip flags documented.
260
- - **deploy-public.sh:** Full 8-step pipeline including GitHub Packages publishing, repo URL rewrite, co-author sync.
261
- - **wip-license-guard:** Now documented as both CLI and Claude Code PreToolUse hook (guard.mjs). Enforcement details.
262
- - **wip-branch-guard:** Worktree requirement on branches, non-repo file passthrough, workflow teaching messages.
263
- - **wip-repos claude:** Cross-repo CLAUDE.md ecosystem generator fully documented.
264
- - **Source code table:** Missing files added (guard.mjs, claude.mjs, mcp-server.mjs).
265
- - **Log paths:** Fixed stale /tmp/ references to ~/.ldm/logs/.
266
-
267
- ## Why
268
-
269
- 15 releases shipped without TECHNICAL.md updates. Agents reading the docs were missing critical features: release gates, license enforcement hooks, deploy pipeline details.
270
-
271
- ## Issues closed
272
-
273
- - #218
274
-
275
- ## How to verify
276
-
277
- ```bash
278
- grep "Interface coverage" TECHNICAL.md # new gate
279
- grep "guard.mjs" TECHNICAL.md # license-guard hook
280
- grep "GitHub Packages" TECHNICAL.md # deploy pipeline
281
- ```
282
-
283
- ## 1.9.48 (2026-03-20)
284
-
285
- # Release Notes: wip-ai-devops-toolbox v1.9.48
286
-
287
- **Document wip-repos claude command in SKILL.md and TECHNICAL.md.**
288
-
289
- ## What changed
290
-
291
- - SKILL.md: added `wip-repos claude` commands to the wip-repos section
292
- - TECHNICAL.md: full documentation of how the ecosystem generator works, template locations, delimiter convention
293
-
294
- ## Why
295
-
296
- v1.9.47 shipped the `wip-repos claude` command without updating technical docs. Now documented.
297
-
298
- ## Issues closed
299
-
300
- - #212 (docs portion)
301
-
302
- ## How to verify
303
-
304
- ```bash
305
- grep "wip-repos claude" SKILL.md TECHNICAL.md
306
- ```
307
-
308
- ## 1.9.47 (2026-03-20)
309
-
310
- # Release Notes: wip-ai-devops-toolbox v1.9.47
311
-
312
- **New: `wip-repos claude` command + CLAUDE.md templates.**
313
-
314
- ## What changed
315
-
316
- ### `wip-repos claude` (Phases 1-3 of the CLAUDE.md plan)
317
-
318
- New subcommand that generates cross-repo ecosystem sections in CLAUDE.md files. When an agent opens repo-A, it can't read repo-B. This command pre-generates the context.
319
-
320
- ```bash
321
- wip-repos claude # regenerate all repos
322
- wip-repos claude my-repo # regenerate one repo
323
- wip-repos claude --init # create CLAUDE.md for repos missing one
324
- wip-repos claude --dry-run # preview changes
325
- ```
326
-
327
- Features:
328
- - Reads all repos from manifest, extracts metadata (package.json, SKILL.md, directory structure)
329
- - Generates `## Ecosystem` sections with delimiter comments (`<!-- wip-repos:start/end -->`)
330
- - Hand-written sections are never overwritten
331
- - Relevance filtering: only related repos shown (same category + core repos)
332
- - `--init` creates starter CLAUDE.md from template for repos missing one
333
-
334
- ### Templates
335
-
336
- - `templates/global-claude-md.md` ... universal CLAUDE.md for ~/.claude/CLAUDE.md
337
- - `templates/repo-claude-md.template` ... per-repo starter with ecosystem placeholder
338
-
339
- ## Why
340
-
341
- Agents lose context across repos. They can't read sibling repos at runtime. Pre-generating cross-repo maps into CLAUDE.md solves this without requiring runtime access.
342
-
343
- ## Issues closed
344
-
345
- - #212 (partial: Phases 1-3 of 6)
346
-
347
- ## How to verify
348
-
349
- ```bash
350
- wip-repos claude --dry-run
351
- ```
352
-
353
- ## 1.9.46 (2026-03-18)
354
-
355
- # Release Notes: wip-ai-devops-toolbox v1.9.46
356
-
357
- **Centralized worktree management: guard rule, wip-release prune, Dev Guide convention.**
358
-
359
- ## What changed
360
-
361
- ### Guard: worktree path warning (#212)
362
- Branch guard now warns when `git worktree add` creates a worktree outside `_worktrees/`. Shows the convention and suggests `ldm worktree add`. Warning only, not a hard block.
363
-
364
- ### wip-release: worktree prune (#212)
365
- New step 12 in the release pipeline. After branch cleanup, prunes stale worktrees from `_worktrees/` whose branches are merged into main. Automatic cleanup after every release.
366
-
367
- ### Dev Guide: _worktrees/ convention (#212)
368
- Documents the centralized worktree convention:
369
- - All worktrees go in `_worktrees/<repo-name>--<branch-suffix>/`
370
- - Use `ldm worktree add` (auto-detects repo, creates in the right place)
371
- - Guard warns about worktrees outside the convention
372
- - `wip-release` auto-prunes merged worktrees
373
-
374
- ## Why
375
-
376
- Worktrees created as repo siblings confused iCloud sync, looked like real repos in directory listings, and were never cleaned up. This session alone created 10+ stale worktrees. The convention keeps them organized and the release pipeline cleans them automatically.
377
-
378
- ## Issues closed
379
-
380
- - #212
381
- - #213
382
-
383
- ## How to verify
384
-
385
- ```bash
386
- # Guard warning:
387
- cd /path/to/repo
388
- git worktree add ../my-worktree -b test # should warn about _worktrees/
389
-
390
- # Correct path:
391
- ldm worktree add cc-mini/test # creates _worktrees/<repo>--cc-mini--test/
392
- ```
393
-
394
- ## 1.9.45 (2026-03-18)
395
-
396
- # Release Notes: wip-ai-devops-toolbox v1.9.45
397
-
398
- **Guard now teaches the workflow instead of just blocking.**
399
-
400
- ## What changed
401
-
402
- - **Branch guard error messages overhauled (#213).** When the guard blocks a write on main, it now shows the full 8-step process: worktree, branch, commit, push, PR, merge, wip-release, deploy-public. Includes the lesson that release notes go on the feature branch, not as a separate PR.
403
- - **Separate error for "on branch but not in worktree."** Tells the agent to go back to main and create a worktree properly.
404
- - **CLAUDE.md added to shared state allowlist.** Was patched in the deployed guard but missing from source. Now in sync.
405
-
406
- ## Why
407
-
408
- Agents kept getting blocked by the guard and then trying workarounds instead of following the process. The error message said "Use a worktree" but didn't explain the full workflow. Today's session hit this 5+ times. The guard works. The gap was agent knowledge.
409
-
410
- ## Issues closed
411
-
412
- - #213
413
- - #256
414
-
415
- ## How to verify
416
-
417
- ```bash
418
- # In any repo on main, try to edit a file. The error should show the full workflow.
419
- # In any repo on a branch (not worktree), try to edit. Should show worktree instructions.
420
- ```
421
-
422
- ## 1.9.44 (2026-03-17)
423
-
424
- # Guard non-repo files fix + UTC date fix
425
-
426
- Two bugs fixed in one PR.
427
-
428
- ## Bug 1: Guard blocks files outside git repos (#77)
429
-
430
- **Problem:** When Write/Edit targets a file outside any git repo (e.g. `~/.claude/plans/`), `findRepoRoot()` returns null. The guard fell back to CWD (`~/.openclaw` on main) and blocked the operation. Files outside repos aren't the guard's concern.
431
-
432
- **Fix:** If `findRepoRoot(filePath)` returns null for Write/Edit operations, allow immediately. The guard only protects git repos from direct-on-main edits.
433
-
434
- **File:** `tools/wip-branch-guard/guard.mjs`
435
-
436
- ## Bug 2: UTC date mismatch in wip-release
437
-
438
- **Problem:** Dev-update files are named with local date (e.g. `2026-03-16--cc-mini--...md`). But `new Date().toISOString().split('T')[0]` returns UTC date. After midnight UTC (4 PM PST), the dates diverge. Release notes gate fails to find today's dev-update.
439
-
440
- **Fix:** Replaced all three instances of `toISOString()` date extraction with explicit local date construction using `getFullYear()/getMonth()/getDate()`.
441
-
442
- **Files:**
443
- - `tools/wip-release/cli.js` (line 80, dev-update detection)
444
- - `tools/wip-release/core.mjs` (line 92, CHANGELOG date)
445
- - `tools/wip-release/core.mjs` (line 582, product docs sync date)
446
-
447
- ## 1.9.43 (2026-03-17)
448
-
449
- # Guard non-repo files fix + UTC date fix
450
-
451
- Two bugs fixed in one PR.
452
-
453
- ## Bug 1: Guard blocks files outside git repos (#77)
454
-
455
- **Problem:** When Write/Edit targets a file outside any git repo (e.g. `~/.claude/plans/`), `findRepoRoot()` returns null. The guard fell back to CWD (`~/.openclaw` on main) and blocked the operation. Files outside repos aren't the guard's concern.
456
-
457
- **Fix:** If `findRepoRoot(filePath)` returns null for Write/Edit operations, allow immediately. The guard only protects git repos from direct-on-main edits.
458
-
459
- **File:** `tools/wip-branch-guard/guard.mjs`
460
-
461
- ## Bug 2: UTC date mismatch in wip-release
462
-
463
- **Problem:** Dev-update files are named with local date (e.g. `2026-03-16--cc-mini--...md`). But `new Date().toISOString().split('T')[0]` returns UTC date. After midnight UTC (4 PM PST), the dates diverge. Release notes gate fails to find today's dev-update.
464
-
465
- **Fix:** Replaced all three instances of `toISOString()` date extraction with explicit local date construction using `getFullYear()/getMonth()/getDate()`.
466
-
467
- **Files:**
468
- - `tools/wip-release/cli.js` (line 80, dev-update detection)
469
- - `tools/wip-release/core.mjs` (line 92, CHANGELOG date)
470
- - `tools/wip-release/core.mjs` (line 582, product docs sync date)
471
-
472
- ## 1.9.42 (2026-03-17)
473
-
474
- # Guard non-repo files fix + UTC date fix
475
-
476
- Two bugs fixed in one PR.
477
-
478
- ## Bug 1: Guard blocks files outside git repos (#77)
479
-
480
- **Problem:** When Write/Edit targets a file outside any git repo (e.g. `~/.claude/plans/`), `findRepoRoot()` returns null. The guard fell back to CWD (`~/.openclaw` on main) and blocked the operation. Files outside repos aren't the guard's concern.
481
-
482
- **Fix:** If `findRepoRoot(filePath)` returns null for Write/Edit operations, allow immediately. The guard only protects git repos from direct-on-main edits.
483
-
484
- **File:** `tools/wip-branch-guard/guard.mjs`
485
-
486
- ## Bug 2: UTC date mismatch in wip-release
487
-
488
- **Problem:** Dev-update files are named with local date (e.g. `2026-03-16--cc-mini--...md`). But `new Date().toISOString().split('T')[0]` returns UTC date. After midnight UTC (4 PM PST), the dates diverge. Release notes gate fails to find today's dev-update.
489
-
490
- **Fix:** Replaced all three instances of `toISOString()` date extraction with explicit local date construction using `getFullYear()/getMonth()/getDate()`.
491
-
492
- **Files:**
493
- - `tools/wip-release/cli.js` (line 80, dev-update detection)
494
- - `tools/wip-release/core.mjs` (line 92, CHANGELOG date)
495
- - `tools/wip-release/core.mjs` (line 582, product docs sync date)
496
-
497
- ## 1.9.41 (2026-03-17)
498
-
499
- # Doc enforcement gates for wip-release
500
-
501
- **Date:** 2026-03-16
502
- **Closes:** #117, #128
503
-
504
- ## What changed
505
-
506
- Two new pre-release gates in wip-release:
507
-
508
- **Technical Docs Gate (#117):** When source code (*.mjs, *.js, *.ts) changed since the last release tag, checks that SKILL.md or TECHNICAL.md was also modified. Catches code shipping without doc updates. Warns on patch, blocks on minor/major. Skip with `--skip-tech-docs-check`.
509
-
510
- **Interface Coverage Gate (#128):** For toolbox repos, scans each tool in tools/*/ for actual interfaces (CLI, Module, MCP, OC Plugin, Skill, CC Hook) and compares to the coverage table in README.md and SKILL.md. Reports: tools missing from table, interfaces detected but not marked Y, interfaces marked Y but not detected, tool count mismatches. Warns on patch, blocks on minor/major. Skip with `--skip-coverage-check`.
511
-
512
- Both follow the same pattern as existing gates (checkProductDocs, checkStaleBranches). Both run in real and dry-run modes.
513
-
514
- ## Why
515
-
516
- Source code was shipping without doc updates constantly. SKILL.md and TECHNICAL.md fell behind the code. Interface coverage tables drifted from reality. These gates catch it before release instead of after.
517
-
518
- ## 1.9.40 (2026-03-16)
519
-
520
- # Auto-sync product docs version/date on release
521
-
522
- **Date:** 2026-03-16
523
- **Closes:** #202
524
-
525
- ## What changed
526
-
527
- wip-release now auto-updates version and date lines in product docs before the release commit. No more stale "Current version: v1.9.1" when you're shipping v1.9.39.
528
-
529
- Files updated automatically:
530
- - `ai/product/plans-prds/roadmap.md`: "Current version" and "Last updated"
531
- - `ai/product/readme-first-product.md`: "Last updated" and "What's Built (as of vX.Y.Z)"
532
-
533
- Runs between changelog update and git commit (step 3.75). Only touches files that exist. Only updates lines that match the expected patterns.
534
-
535
- ## Why
536
-
537
- These files were stale from v1.9.1 through v1.9.39 (8 days, 38 releases). Nobody remembered to update them. The existing product docs gate warned about it but couldn't fix it. Now it fixes itself.
538
-
539
- ## 1.9.39 (2026-03-16)
540
-
541
- # Wire license-guard as Claude Code PreToolUse hook
542
-
543
- **Date:** 2026-03-16
544
- **Closes:** #130
545
-
546
- ## What changed
547
-
548
- license-guard now registers as a Claude Code PreToolUse hook on install. Previously the hook code existed (hook.mjs) but was never wired into the deploy system. Now:
549
-
550
- - Renamed hook.mjs to guard.mjs (matches file-guard/branch-guard convention that LDM OS deploy.mjs expects)
551
- - Added `claudeCode.hook` config to package.json (event: PreToolUse, matcher: Bash, timeout: 5)
552
- - On next `ldm install`, the hook auto-registers in ~/.claude/settings.json
553
-
554
- The hook blocks git commit and git push when license compliance fails:
555
- - LICENSE file missing
556
- - Copyright doesn't match .license-guard.json config
557
- - CLA.md missing
558
- - README.md missing ## License section
559
- - MIT+AGPL config but LICENSE or README only mentions MIT
560
-
561
- Repos without .license-guard.json are not affected (the hook silently passes).
562
-
563
- ## Also done
564
-
565
- - Updated plan statuses: license guard Phase 1 complete, bootstrap LDM OS complete
566
- - Bootstrap LDM OS was already shipped in install.js (lines 740-812)
567
-
568
- ## 1.9.38 (2026-03-16)
569
-
570
- # GitHub Packages publish from public repo
571
-
572
- **Date:** 2026-03-16
573
- **Closes:** #193
574
-
575
- ## What changed
576
-
577
- `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
578
-
579
- Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
580
-
581
- ## Why
582
-
583
- The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
584
-
585
- ## 1.9.37 (2026-03-16)
586
-
587
- # GitHub Packages publish from public repo
588
-
589
- **Date:** 2026-03-16
590
- **Closes:** #193
591
-
592
- ## What changed
593
-
594
- `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
595
-
596
- Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
597
-
598
- ## Why
599
-
600
- The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
601
-
602
- ## 1.9.36 (2026-03-16)
603
-
604
- # GitHub Packages publish from public repo
605
-
606
- **Date:** 2026-03-16
607
- **Closes:** #193
608
-
609
- ## What changed
610
-
611
- `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
612
-
613
- Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
614
-
615
- ## Why
616
-
617
- The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
618
-
619
- ## 1.9.35 (2026-03-16)
620
-
621
- # GitHub Packages publish from public repo
622
-
623
- **Date:** 2026-03-16
624
- **Closes:** #193
625
-
626
- ## What changed
627
-
628
- `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
629
-
630
- Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
631
-
632
- ## Why
633
-
634
- The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
635
-
636
- ## 1.9.34 (2026-03-16)
637
-
638
- # GitHub Packages publish from public repo
639
-
640
- **Date:** 2026-03-16
641
- **Closes:** #193
642
-
643
- ## What changed
644
-
645
- `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
646
-
647
- Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
648
-
649
- ## Why
650
-
651
- The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
652
-
653
- ## 1.9.33 (2026-03-15)
654
-
655
- # --version on all CLIs + issue cleanup
656
-
657
- **Date:** 2026-03-15
658
- **Closes:** #190, #191, #169, #123, #119
659
-
660
- ## What changed
661
-
662
- All 7 CLI tools now support `--version` and `-v`. Each reads its own `package.json` and prints the version. Previously, `wip-release --version` printed the help text instead of a version number.
663
-
664
- Tools updated: wip-release, wip-repos, wip-license-guard, wip-repo-permissions, wip-repo-init, wip-readme-format, wip-file-guard, wip-branch-guard.
665
-
666
- wip-license-guard also got a proper README (#169) with all commands, config format, and integration docs.
667
-
668
- ## Issues closed
669
-
670
- - #190: wip-release --version should work
671
- - #191: enforce --version on all CLI tools
672
- - #169: wip-license-guard needs its own README
673
- - #123: Merge/Deploy/Install conflated (enforced across v1.9.25-v1.9.30)
674
- - #119: All destructive tools must have --dry-run (all confirmed)
675
-
676
- ## 1.9.32 (2026-03-15)
677
-
678
- # --version on all CLIs + issue cleanup
679
-
680
- **Date:** 2026-03-15
681
- **Closes:** #190, #191, #169, #123, #119
682
-
683
- ## What changed
684
-
685
- All 7 CLI tools now support `--version` and `-v`. Each reads its own `package.json` and prints the version. Previously, `wip-release --version` printed the help text instead of a version number.
686
-
687
- Tools updated: wip-release, wip-repos, wip-license-guard, wip-repo-permissions, wip-repo-init, wip-readme-format, wip-file-guard, wip-branch-guard.
688
-
689
- wip-license-guard also got a proper README (#169) with all commands, config format, and integration docs.
690
-
691
- ## Issues closed
692
-
693
- - #190: wip-release --version should work
694
- - #191: enforce --version on all CLI tools
695
- - #169: wip-license-guard needs its own README
696
- - #123: Merge/Deploy/Install conflated (enforced across v1.9.25-v1.9.30)
697
- - #119: All destructive tools must have --dry-run (all confirmed)
698
-
699
- ## 1.9.31 (2026-03-15)
700
-
701
- # Release Notes: wip-ai-devops-toolbox v1.9.31
702
-
703
- Branch guard no longer blocks global npm operations on main.
704
-
705
- ## What changed
706
-
707
- Moved `npm install -g` and `npm link` from BLOCKED_BASH_PATTERNS to ALLOWED_BASH_PATTERNS in `wip-branch-guard/guard.mjs`. Global npm operations modify `/opt/homebrew/`, not the repo. Local `npm install` (no -g flag) remains blocked.
708
-
709
- ## Why
710
-
711
- During LDM OS v0.4.0 dogfood, a CC session couldn't run `npm install -g @wipcomputer/wip-ldm-os@0.4.0` even after Parker explicitly said "install." The guard was too aggressive. Original intent (issue #137) was to block repo writes on main, not system-level package installs.
712
-
713
- ## Issues closed
714
-
715
- - Closes #188 (branch guard blocks npm install -g)
716
- - Cross-ref: wipcomputer/wip-ldm-os#44
717
-
718
- ## How to verify
719
-
720
- ```bash
721
- # On main branch, these should now succeed:
722
- npm install -g @wipcomputer/wip-ldm-os@0.4.0
723
- npm link
724
- # This should still be blocked on main:
725
- npm install
726
- ```
727
-
728
- ## 1.9.30 (2026-03-15)
729
-
730
- # Release notes must be a file on disk
731
-
732
- **Date:** 2026-03-15
733
-
734
- ## What changed
735
-
736
- wip-release no longer accepts the `--notes` flag. Release notes MUST come from a file on disk:
737
-
738
- 1. `RELEASE-NOTES-v{version}.md` in repo root (auto-detected)
739
- 2. `ai/dev-updates/YYYY-MM-DD--description.md` (auto-detected)
740
- 3. `--notes-file=path` (explicit file path)
741
-
742
- If no file exists, the release is blocked. The gate scaffolds a template (`RELEASE-NOTES-v{version}.md`) so the agent has something to fill in.
743
-
744
- ## Why
745
-
746
- The `--notes` flag was the root cause of every bad release note. Agents passed one-liners like `--notes="fix bug"` and the gate let them through. Even after we added length checks and changelog detection, agents found ways around it. The flag was an escape hatch that undermined the entire system.
747
-
748
- The file-on-disk requirement solves three problems:
749
- 1. **Reviewability.** The file is on the branch. It shows up in the PR diff. Parker can read and approve the release notes before merge.
750
- 2. **Quality.** Writing a file forces the agent to think about what changed and why. A flag encourages one-liners.
751
- 3. **History.** The file is committed to git. The release notes are part of the repo history, not a transient CLI argument.
752
-
753
- ## What agents need to do
754
-
755
- Before running `wip-release`:
756
- 1. Write `RELEASE-NOTES-v{version}.md` or `ai/dev-updates/YYYY-MM-DD--description.md`
757
- 2. Commit it on the branch
758
- 3. The file shows up in the PR for review
759
- 4. After merge to main, `wip-release` auto-detects it
760
-
761
- If the agent forgets, `wip-release` blocks and scaffolds a template.
762
-
763
- ## 1.9.29 (2026-03-15)
764
-
765
- # Release notes must be a file on disk
766
-
767
- **Date:** 2026-03-15
768
-
769
- ## What changed
770
-
771
- wip-release no longer accepts the `--notes` flag. Release notes MUST come from a file on disk:
772
-
773
- 1. `RELEASE-NOTES-v{version}.md` in repo root (auto-detected)
774
- 2. `ai/dev-updates/YYYY-MM-DD--description.md` (auto-detected)
775
- 3. `--notes-file=path` (explicit file path)
776
-
777
- If no file exists, the release is blocked. The gate scaffolds a template (`RELEASE-NOTES-v{version}.md`) so the agent has something to fill in.
778
-
779
- ## Why
780
-
781
- The `--notes` flag was the root cause of every bad release note. Agents passed one-liners like `--notes="fix bug"` and the gate let them through. Even after we added length checks and changelog detection, agents found ways around it. The flag was an escape hatch that undermined the entire system.
782
-
783
- The file-on-disk requirement solves three problems:
784
- 1. **Reviewability.** The file is on the branch. It shows up in the PR diff. Parker can read and approve the release notes before merge.
785
- 2. **Quality.** Writing a file forces the agent to think about what changed and why. A flag encourages one-liners.
786
- 3. **History.** The file is committed to git. The release notes are part of the repo history, not a transient CLI argument.
787
-
788
- ## What agents need to do
789
-
790
- Before running `wip-release`:
791
- 1. Write `RELEASE-NOTES-v{version}.md` or `ai/dev-updates/YYYY-MM-DD--description.md`
792
- 2. Commit it on the branch
793
- 3. The file shows up in the PR for review
794
- 4. After merge to main, `wip-release` auto-detects it
795
-
796
- If the agent forgets, `wip-release` blocks and scaffolds a template.
797
-
798
- ## 1.9.28 (2026-03-15)
799
-
800
- # Release Notes Quality Gate
801
-
802
- **Date:** 2026-03-15
803
-
804
- ## What changed
805
-
806
- wip-release now blocks ALL releases (patch, minor, major) if the release notes are bad. Previously, patch releases only warned. Now they block.
807
-
808
- The gate checks:
809
- - Notes must be at least 50 characters
810
- - Notes can't look like a changelog entry ("fix: ...", "add: ...", "update: ...")
811
- - Minor/major still require a file (not --notes flag)
812
-
813
- If the gate blocks, it tells you exactly how to fix it: write a RELEASE-NOTES file, write a dev update, or use --notes with at least 50 chars of real description.
814
-
815
- ## Why
816
-
817
- Release notes were consistently garbage. One-liner --notes flags like "Fix bug" or "Update docs" sailed through on patch releases. The warnings were ignored by both humans and agents. Every release page on GitHub had thin, useless notes that didn't explain what changed or why.
818
-
819
- ## Also in this release
820
-
821
- - wip-repo-init templates renamed from ai/ to templates/ so they ship with npm install (deploy-public.sh was stripping them)
822
- - SKILL.md restart notice after install (hooks need session restart)
823
- - SPEC.md and TECHNICAL.md updated with all 17 tools and LDM OS links
824
- - Branch guard matcher fix (catches Bash + NotebookEdit)
825
- - Forced Git Worktrees and Branch Guard sections added to SKILL.md
826
-
827
- ## 1.9.27 (2026-03-15)
828
-
829
- # Release Notes Quality Gate
830
-
831
- **Date:** 2026-03-15
832
-
833
- ## What changed
834
-
835
- wip-release now blocks ALL releases (patch, minor, major) if the release notes are bad. Previously, patch releases only warned. Now they block.
836
-
837
- The gate checks:
838
- - Notes must be at least 50 characters
839
- - Notes can't look like a changelog entry ("fix: ...", "add: ...", "update: ...")
840
- - Minor/major still require a file (not --notes flag)
841
-
842
- If the gate blocks, it tells you exactly how to fix it: write a RELEASE-NOTES file, write a dev update, or use --notes with at least 50 chars of real description.
843
-
844
- ## Why
845
-
846
- Release notes were consistently garbage. One-liner --notes flags like "Fix bug" or "Update docs" sailed through on patch releases. The warnings were ignored by both humans and agents. Every release page on GitHub had thin, useless notes that didn't explain what changed or why.
847
-
848
- ## Also in this release
849
-
850
- - wip-repo-init templates renamed from ai/ to templates/ so they ship with npm install (deploy-public.sh was stripping them)
851
- - SKILL.md restart notice after install (hooks need session restart)
852
- - SPEC.md and TECHNICAL.md updated with all 17 tools and LDM OS links
853
- - Branch guard matcher fix (catches Bash + NotebookEdit)
854
- - Forced Git Worktrees and Branch Guard sections added to SKILL.md
855
-
856
- ## 1.9.26 (2026-03-15)
857
-
858
- Add restart notice after install/update. Hooks need session restart to take effect.
859
-
860
- ## 1.9.25 (2026-03-14)
861
-
862
- Fix branch guard matcher (catches Bash + NotebookEdit). Add Forced Git Worktrees and Branch Guard sections to SKILL.md. Update SPEC.md and TECHNICAL.md with all 17 tools and LDM OS links.
863
-
864
- ## 1.9.24 (2026-03-14)
865
-
866
- Number tools in dry run and already-installed lists. Dogfood iteration.
867
-
868
- ## 1.9.23 (2026-03-14)
869
-
870
- Force verbatim tool list display. AI must show all 17 tools with descriptions, never summarize.
871
-
872
- ## 1.9.22 (2026-03-14)
873
-
874
- All 17 tools listed with descriptions. New section order: Setup, Infrastructure, Repo Management, License, Release. Conversational prompt.
875
-
876
- ## 1.9.21 (2026-03-14)
877
-
878
- Add Already Installed section with tool descriptions. Dogfood fix.
879
-
880
- ## 1.9.20 (2026-03-14)
881
-
882
- Make root package publishable. npm install -g @wipcomputer/wip-ai-devops-toolbox now installs all 12 CLI tools.
883
-
884
- ## 1.9.19 (2026-03-14)
885
-
886
- Add websiteRepo to .publish-skill.json. Auto-publish SKILL.md to website on release. Fix install prompt URLs to use wip- prefix.
887
-
888
- ## 1.9.18 (2026-03-14)
889
-
890
- Rewrite SKILL.md install flow to use ldm install. Conversational AI-guided pattern matching Memory Crystal.
891
-
892
- ## 1.9.17 (2026-03-14)
893
-
894
- Add wip-branch-guard: PreToolUse hook that blocks all writes on main branch. Resolves repo from file path so it works from any CWD. Forces agents to branch or worktree before editing.
895
-
896
- ## 1.9.16 (2026-03-14)
897
-
898
- Add wip-branch-guard: PreToolUse hook that blocks all writes on main branch. Resolves repo from file path so it works from any CWD. Forces agents to branch or worktree before editing.
899
-
900
- ## 1.9.15 (2026-03-14)
901
-
902
- Fix all 5 root causes of truncated release notes (#121). Add --dry-run to readme-license. Update SKILL.md docs for wip-release and wip-license-guard.
903
-
904
- ## 1.9.14 (2026-03-14)
905
-
906
- Add readme-license command to wip-license-guard. Scans all repos, applies standard license block, removes from sub-tools. License Guard now Stable.
907
-
908
- ## 1.9.13 (2026-03-14)
909
-
910
- Release.
911
-
912
- ## 1.9.12 (2026-03-13)
913
-
914
- Add skill publish to website: after every release, SKILL.md is auto-copied to yoursite.com/install/{name}.txt and deployed. Configured per repo with .publish-skill.json. Non-blocking.
915
-
916
- ## 1.9.11 (2026-03-13)
917
-
918
- wip-install bootstraps LDM OS silently when not on PATH
919
-
920
- ## 1.9.10 (2026-03-13)
921
-
922
- # Release Notes: AI DevOps Toolbox v1.9.10
923
-
924
- **Fix: Release notes files on disk always beat --notes flag**
925
-
926
- v1.9.9 shipped with a one-liner on the GitHub release instead of the full narrative release notes. The RELEASE-NOTES-v1-9-9.md file was sitting right there on disk, but `--notes="short text"` took priority because the auto-detect only ran when `--notes` was absent.
927
-
928
- This is exactly the kind of bug that happens when a rule exists in documentation but not in code. "Write release notes on the branch" is in the Dev Guide. The tool ignored them.
929
-
930
- ## What changed
931
-
932
- ### Notes priority is now enforced (highest wins):
933
-
934
- 1. `--notes-file=path` ... explicit file path (always wins)
935
- 2. `RELEASE-NOTES-v{ver}.md` ... in repo root (always wins over `--notes` flag)
936
- 3. `ai/dev-updates/YYYY-MM-DD*` ... today's dev update (wins over `--notes` flag if longer)
937
- 4. `--notes="text"` ... fallback only. Use for repos without release notes files.
938
-
939
- If a RELEASE-NOTES file exists on disk, `--notes` is ignored and a warning is printed:
940
-
941
- ```
942
- ! --notes flag ignored: RELEASE-NOTES-v1-9-10.md takes priority
943
- ```
944
-
945
- Written notes on disk always take priority over a CLI one-liner. The agent wrote the file. The tool should use it.
946
-
947
- ## Files changed
948
-
949
- ```
950
- tools/wip-release/cli.js | ~40 lines rewritten (notes cascade logic)
951
- ```
952
-
953
- ## Install
954
-
955
- ```bash
956
- git pull origin main
957
- ```
958
-
959
- ## Attribution
960
-
961
- Built by Parker Todd Brooks, Lesa, and Claude Opus 4.6 at WIP.computer.
962
-
963
- ## 1.9.9 (2026-03-13)
964
-
965
- Enforce git worktrees as default workflow. wip-release blocks from worktrees, wip-install auto-adds .claude/worktrees/ to .gitignore, Dev Guide worktree section added.
966
-
967
- ## 1.9.8 (2026-03-13)
968
-
969
- wip-install delegates to ldm install when available
970
-
971
- ## 1.9.7 (2026-03-13)
972
-
973
- # Release Notes: AI DevOps Toolbox v1.9.7
974
-
975
- ## LDM OS Integration
976
-
977
- AI DevOps Toolbox now works with LDM OS when it's available.
978
-
979
- ### wip-install delegates to ldm install
980
-
981
- When the `ldm` CLI exists on PATH, `wip-install` delegates to `ldm install`. LDM OS handles the scaffold, interface detection, and extension deployment. The Toolbox's standalone behavior is preserved as a fallback when `ldm` isn't available.
982
-
983
- Supports `--dry-run` and `--json` passthrough to `ldm install`.
984
-
985
- ### LDM OS tip
986
-
987
- After standalone installs, the Toolbox prints a tip: "Run `ldm install` to see more skills you can add."
988
-
989
- ### Universal Installer link
990
-
991
- The "Read more about Universal Installer" link now points to the LDM OS docs page. The Universal Installer engine moved to LDM OS. The Toolbox keeps `wip-install` as an entry point that delegates.
992
-
993
- ### Part of LDM OS
994
-
995
- README includes a "Part of LDM OS" section linking back to the LDM OS repo.
996
-
997
- ## 1.9.6 (2026-03-12)
998
-
999
- # v1.9.6 ... Enforcement Gates
1000
-
1001
- Three fixes that move the release pipeline from "suggestions agents forget" to "gates that block."
1002
-
1003
- ---
1004
-
1005
- ## syncSkillVersion corrupted quoted versions (#71)
1006
-
1007
- Every release was appending the old version instead of replacing it. SKILL.md went from `"1.9.5"` to `"1.9.5".9.4".9.3".9.2".9.1"` over five releases.
1008
-
1009
- Root cause: the regex `"?\S+?"?` used non-greedy matching. For quoted values, it consumed only part of the string, leaving the rest as trailing garbage.
1010
-
1011
- Fix: replaced with `(?:"[^\n]*|\S+)`. Quoted values now match through end of line. Unquoted values use greedy `\S+`. Also fixed the staleness-check regex to extract clean semver from corrupted strings.
1012
-
1013
- **Files changed:**
1014
- - `tools/wip-release/core.mjs` ... `syncSkillVersion()` regex fix
1015
- - `SKILL.md` ... repaired corrupted version back to `"1.9.5"`
1016
-
1017
- ---
1018
-
1019
- ## gh pr merge now always deletes branch (#74)
1020
-
1021
- Every `gh pr merge` call in the codebase now includes `--delete-branch`. Previously, deploy-public.sh had a manual 3-line `gh api -X DELETE` cleanup block. That's gone. The flag handles it.
1022
-
1023
- Also verified every merge uses `--merge` (never squash). Dev Guide updated with the new convention.
1024
-
1025
- **Files changed:**
1026
- - `scripts/deploy-public.sh` ... added `--delete-branch`, removed manual cleanup
1027
- - `tools/deploy-public/deploy-public.sh` ... same
1028
- - `DEV-GUIDE-GENERAL-PUBLIC.md` ... updated merge examples
1029
- - `ai/DEV-GUIDE-FOR-WIP-ONLY-PRIVATE.md` ... updated merge rules
1030
- - `ai/_trash/DEV-GUIDE-private.md` ... updated
1031
- - `ai/_sort/_trash/ai_old/_trash/DEV-GUIDE-private.md` ... updated
1032
-
1033
- ---
1034
-
1035
- ## wip-release blocks on stale remote branches (#75)
1036
-
1037
- New gate in the release pipeline. Before releasing, wip-release checks for remote branches that are fully merged into main but haven't been cleaned up.
1038
-
1039
- - **Patch:** warns with the list of stale branches (non-blocking)
1040
- - **Minor/major:** blocks the release. Clean up first.
1041
- - **`--skip-stale-check`:** override flag for emergencies
1042
-
1043
- Follows the existing gate pattern: fetches with `--prune`, filters out `origin/main`, `origin/HEAD`, and `--merged-` branches. Fails gracefully if git commands error.
1044
-
1045
- **Files changed:**
1046
- - `tools/wip-release/core.mjs` ... `checkStaleBranches()` function, integrated as gate 0.8
1047
- - `tools/wip-release/cli.js` ... `--skip-stale-check` flag, help text
1048
-
1049
- ---
1050
-
1051
- ## Diffstat
1052
-
1053
- ```
1054
- 10 files changed, 102 insertions(+), 21 deletions(-)
1055
- ```
1056
-
1057
- ## Install
1058
-
1059
- ```bash
1060
- npm install -g @wipcomputer/wip-ai-devops-toolbox
1061
- ```
1062
-
1063
- Or update an existing install:
1064
- ```bash
1065
- wip-install wipcomputer/wip-ai-devops-toolbox
1066
- ```
1067
-
1068
- ---
1069
-
1070
- Built by Parker Todd Brooks, Lēsa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).
1071
-
1072
- ## 1.9.5 (2026-03-12)
1073
-
1074
- wip-release: bump sub-tool versions in toolbox repos. Fixes #132.
1075
-
1076
- ## 1.9.4 (2026-03-12)
1077
-
1078
- wip-install: detect and migrate existing installs under different names. Fixes #128.
1079
-
1080
- ## 1.9.3 (2026-03-12)
1081
-
1082
- Fix: ensure bin executability on installer skip path. Fixes wip-license-guard, wip-license-hook, wip-repo-init, wip-readme-format permission denied after reinstall.
1083
-
1084
- ## 1.9.2 (2026-03-12)
1085
-
1086
- # v1.9.2: Distribution Pipeline Fix
1087
-
1088
- The entire distribution pipeline was broken. Tools built but never reached users. 8 of 13 tools weren't on npm. ClawHub publish only shipped the root SKILL.md. deploy-public never ran npm publish. Errors were silent.
1089
-
1090
- This release fixes all of it.
1091
-
1092
- ## What changed
1093
-
1094
- ### Install fixes (#96, #110)
1095
- - CLI binaries now have correct executable permissions (git +x on all bin entry files)
1096
- - wip-license-hook dist/ committed to repo (TypeScript build output was gitignored)
1097
- - Installer auto-detects TypeScript projects and runs build if dist/ missing
1098
- - chmod +x safety net after every npm install -g
1099
- - SSH fallback when HTTPS clone fails (private repos)
1100
-
1101
- ### SKILL.md spec compliance (#107, #108)
1102
- - All 12 SKILL.md files conform to agentskills.io spec
1103
- - name field: lowercase-hyphen format matching directory name
1104
- - Display names in metadata.display-name
1105
- - version, homepage, author in metadata block
1106
- - license: MIT on all files
1107
- - metadata.openclaw blocks with install instructions and emoji
1108
- - New SKILL.md created for wip-license-guard (was missing)
1109
-
1110
- ### Distribution pipeline (#97, #100, #104)
1111
- - ClawHub publish now iterates all sub-tool SKILL.md files, not just root
1112
- - detectSkillSlug reads the name field from SKILL.md frontmatter
1113
- - deploy-public.sh runs npm publish from the public clone after code sync
1114
- - Handles both single repos and toolbox repos (iterates tools/*)
1115
- - Distribution summary at end of release: shows all targets with pass/fail
1116
- - syncSkillVersion handles quoted version strings in new metadata format
1117
-
1118
- ## Install
1119
-
1120
- ```bash
1121
- npm install -g @wipcomputer/wip-ai-devops-toolbox
1122
- wip-install wipcomputer/wip-ai-devops-toolbox
1123
- ```
1124
-
1125
- Built by Parker Todd Brooks, Lesa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).
1126
-
1127
- ## 1.9.1 (2026-03-11)
1128
-
1129
- # v1.9.1: Release gates ... product docs and release notes quality enforcement
1130
-
1131
- Agents read the Dev Guide, say "got it," and then release with garbage one-liner notes anyway. Documentation doesn't change behavior. Tools do. This release adds two new gates to `wip-release` that block bad releases before they happen.
1132
-
1133
- ## Product docs gate
1134
-
1135
- Every PR is supposed to include updated product docs: a dev update, roadmap changes, and readme-first updates. This was documented in the Dev Guide as a manual checklist. Nobody followed it.
1136
-
1137
- `wip-release` now checks three things before publishing:
1138
-
1139
- 1. **Dev update exists.** Looks in `ai/dev-updates/` for a file from the last 3 days. If you did work worth releasing, you should have written about it.
1140
- 2. **Roadmap was updated.** Checks `ai/product/plans-prds/roadmap.md` via `git diff` against the last tag. If the roadmap doesn't reflect what just shipped, it's stale.
1141
- 3. **Readme-first was updated.** Same check on `ai/product/readme-first-product.md`. The product bible should always describe what's actually built.
1142
-
1143
- Repos without an `ai/` directory are skipped silently. This only applies to repos that have adopted the `ai/` folder standard.
1144
-
1145
- For **patch** releases: warns but doesn't block. Hotfixes shouldn't be held up by docs.
1146
- For **minor/major** releases: blocks the release. You can't ship a meaningful feature with stale product docs.
1147
-
1148
- `--skip-product-check` overrides for exceptional cases.
1149
-
1150
- ## Release notes quality gate
1151
-
1152
- On 2026-03-11, the other CC session released memory-crystal v0.7.4. It read the Dev Guide (which now explicitly says "write a RELEASE-NOTES file on the branch"). It said it understood. Then it ran `wip-release patch --notes="MCP fix and agent ID config"` and published a one-liner to GitHub. The old `warnIfNotesAreThin()` function printed a warning to console. The agent ignored it.
1153
-
1154
- The root cause was architectural, not behavioral. The warning ran at step 8 of the pipeline, AFTER the version was already bumped, committed, tagged, and pushed. By the time the warning appeared, the damage was done. And it was a warning, not a gate. Agents don't read warnings.
1155
-
1156
- The fix:
1157
- - `checkReleaseNotes()` replaces `warnIfNotesAreThin()`. It runs before the version bump, not after.
1158
- - The CLI now tracks `notesSource`: where the notes came from (`file`, `dev-update`, `flag`, or `none`).
1159
- - For minor/major releases: if notes came from a bare `--notes` flag instead of a `RELEASE-NOTES-v{version}.md` file, the release is **blocked**. The agent gets explicit instructions: "Write RELEASE-NOTES-v{version}.md (dashes not dots), commit it, then release."
1160
- - For patch releases: warns if notes are short, but doesn't block.
1161
-
1162
- ## Both gates follow the same pattern
1163
-
1164
- The existing license compliance gate (step 0) checks `.license-guard.json` and blocks if licensing is wrong. The new product docs gate (step 0.5) and release notes gate (step 0.75) work the same way: check early, block before any changes, show status in `--dry-run`, give clear instructions on how to fix it.
1165
-
1166
- The MCP server was also updated with `skipProductCheck` and `notesSource` passthrough so agents calling wip-release via MCP get the same enforcement.
1167
-
1168
- ## 1.9.0 (2026-03-11)
1169
-
1170
- README Formatter (section-based staging + deploy), Repo Init (ai/ directory scaffolding), Dev Guide overhaul with release notes workflow
1171
-
1172
- ## 1.8.2 (2026-03-11)
1173
-
1174
- # v1.8.2: Clean up release notes after release
1175
-
1176
- RELEASE-NOTES files were piling up in the repo root. `wip-release` consumed them for the GitHub release and CHANGELOG but never cleaned up.
1177
-
1178
- Now after consuming the file, `wip-release` moves all `RELEASE-NOTES-v*.md` files to `_trash/` as part of the version bump commit. We never delete anything.
1179
-
1180
- `deploy-public.sh` also now excludes `_trash/` so these files stay private.
1181
-
1182
- ## 1.8.1 (2026-03-11)
1183
-
1184
- # v1.8.1: Fix CLI install when package name changed
1185
-
1186
- When a tool's npm package gets renamed but the binary name stays the same, `npm install -g` fails with EEXIST. The stale symlink from the old package blocks the new one.
1187
-
1188
- The installer now detects this: if the binary is a symlink pointing to a different package, it removes the stale link and retries. Only affects symlinks, only when the target doesn't match the package being installed.
1189
-
1190
- Found on `wip-license-hook` (renamed from `@wipcomputer/license-hook` to `@wipcomputer/wip-license-hook`).
1191
-
1192
- ## 1.8.0 (2026-03-11)
1193
-
1194
- # v1.8.0: Fix CC Hook duplicates, add GitHub Issues convention
1195
-
1196
- ## CC Hook duplicate detection fix
1197
-
1198
- `wip-install` was adding duplicate PreToolUse hooks to `~/.claude/settings.json` every time it ran. After a few installs, there were 8 hooks when there should have been 2. The duplicates pointed to repo clones and `/tmp/` paths, violating the "never run tools from repo clones" rule.
1199
-
1200
- The root cause: duplicate detection compared exact command strings. The same `guard.mjs` installed from different paths produced different strings, so each install added another entry.
1201
-
1202
- The fix:
1203
- - Match existing hooks by tool name in the path, not exact command string
1204
- - Always prefer `~/.ldm/extensions/<tool>/guard.mjs` over source or temp paths
1205
- - If a hook for the same tool exists at a different path, update it instead of adding a duplicate
1206
-
1207
- ## GitHub Issues convention added to Dev Guide
1208
-
1209
- We were tracking work in `ai/todos/` markdown files. Items got lost. GitHub Issues gives us tracking, cross-referencing, and visibility across agents.
1210
-
1211
- Added to the public Dev Guide:
1212
- - When to use GitHub Issues vs `ai/todos/`
1213
- - Filing convention: `filed-by:<agent-id>` labels and attribution lines
1214
- - Public vs private issue routing: public issues are the front door, private issues are the workshop
1215
- - Agent ID naming convention: `[platform]-[agent]-[machine]`
1216
-
1217
- Added to the private Dev Guide:
1218
- - `filed-by:cc-mini` (blue) and `filed-by:oc-lesa-mini` (purple) label details
1219
- - Org-wide deployment commands
1220
- - Incident note: Memory Crystal agent ID drift
1221
-
1222
- Both labels deployed across all wipcomputer repos.
1223
-
1224
- ## 1.7.9 (2026-03-11)
1225
-
1226
- Add GitHub Issues convention and filed-by workflow to the Dev Guide.
1227
-
1228
- We've been tracking work in ai/todos/ markdown files. Items get lost. GitHub Issues gives us tracking, cross-referencing, and visibility across all agents. This release documents the full convention.
1229
-
1230
- **Public Dev Guide (DEV-GUIDE-GENERAL-PUBLIC.md):**
1231
- - New "GitHub Issues" section: when to use issues vs ai/todos/, filing convention with attribution lines and filed-by labels, public vs private issue routing workflow
1232
- - Agent ID naming convention: [platform]-[agent]-[machine] format documented with examples
1233
- - Public/private issue bridge: public issues are the front door (users), private issues are the workshop (team), releases connect them
1234
-
1235
- **Private Dev Guide (ai/DEV-GUIDE-FOR-WIP-ONLY-PRIVATE.md):**
1236
- - filed-by label details: cc-mini (blue), oc-lesa-mini (purple), deployed org-wide
1237
- - Commands for adding labels to new agents or repos
1238
- - Incident note: Memory Crystal agent ID drift (4 IDs instead of 2), manual merge of 141K chunks, root cause and fix tracked in memory-crystal-private#33
1239
-
1240
- **Org-wide:** filed-by:cc-mini and filed-by:oc-lesa-mini labels created on all wipcomputer repos.
1241
-
1242
- ## 1.7.8 (2026-03-10)
1243
-
1244
- # Dev Update: Smart Install + Platform Compatibility
1245
-
1246
- **Date:** 2026-03-10 22:40 PST
1247
- **Author:** Claude Code (cc-mini)
1248
- **Version:** v1.7.8 (pending)
1249
- **Branches:** cc-mini/smart-install, cc-mini/platform-compat-v2
1250
-
1251
- ## Smart Install (wip-install)
1252
-
1253
- Parker's feedback: "I want to make sure we're not going to replace stuff unless we need to. It should be smart enough to know I have this extension installed, and it's the same one."
1254
-
1255
- The Universal Installer was doing blind `rm -rf` and re-copy on every run. Now it checks versions first:
1256
-
1257
- - **Extensions (LDM + OpenClaw):** Reads `package.json` version from the installed extension. If it matches the source version, skip. If different, upgrade. If missing, fresh install. Dry-run shows "would upgrade v1.2.3 -> v1.2.4" vs "would deploy v1.2.4" vs "already at v1.2.4".
1258
- - **CLI:** Checks `npm list -g` for the installed version. Same version = skip.
1259
- - **MCP:** Checks if already registered at the same server path. Same path = skip.
1260
- - **CC Hooks:** Already had duplicate detection (unchanged).
1261
-
1262
- No more destroying things that don't need updating.
1263
-
1264
- ## Platform Compatibility (SKILL.md)
1265
-
1266
- Parker's feedback after testing with Grok: "Grok said 'I'll run wip-install' but it literally cannot. It's hallucinating capabilities."
1267
-
1268
- First version listed platforms as "first-class / MCP-compatible / not compatible." Parker corrected: "We don't need to say 'not compatible' because Claude iOS can install stuff now. We just need to be clear about what the tool needs."
1269
-
1270
- Rewrote to capability requirements:
1271
-
1272
- | Interface | Requires |
1273
- |-----------|----------|
1274
- | CLI | Shell access |
1275
- | MCP Server | MCP client support |
1276
- | CC Hook | Claude Code CLI with hooks |
1277
- | OpenClaw Plugin | OpenClaw runtime |
1278
- | Skill | Ability to read this file |
1279
- | Module | Node.js import |
1280
-
1281
- Key instruction to agents: "Check which capabilities you have and match them to the table. Do not claim you can run commands you cannot execute."
1282
-
1283
- This is future-proof. When a platform adds MCP or shell access, the SKILL.md doesn't need updating. The agent assesses itself.
1284
-
1285
- ## Cross-Platform Testing Results
1286
-
1287
- Three AIs read the same SKILL.md onboarding prompt:
1288
-
1289
- - **Claude Code (another instance):** Read it, explained all tools correctly, offered dry-run first. Responded with "HOLY SHIT!!!" (impressed by the tooling).
1290
- - **Lesa (OpenClaw, Claude Opus 4.6):** Perfect breakdown. Every tool categorized correctly. Called out the auto-detect dev updates feature specifically. Offered dry-run first.
1291
- - **Grok (xAI):** Initially tried to roleplay as Lesa/Claude Code (read the attribution line and adopted the persona). When corrected, gave accurate breakdown. But claimed it would run `wip-install` when it cannot. This exposed the need for the Platform Compatibility section.
1292
-
1293
- The SKILL.md is working. Three different AIs, three different platforms, all understood the toolbox correctly from one file.
1294
-
1295
- ## 1.7.7 (2026-03-10)
1296
-
1297
- # Dev Update: SKILL.md as the Real Interface
1298
-
1299
- **Date:** 2026-03-10 22:10 PST
1300
- **Author:** Claude Code (cc-mini)
1301
- **Version:** v1.7.4
1302
- **Branch:** cc-mini/skill-installer-details
1303
-
1304
- ## The Insight
1305
-
1306
- Parker said it plainly: "We're not doing READMEs anymore. This is not for humans."
1307
-
1308
- The human interface is the AI. The AI's interface is the SKILL.md. If the skill doesn't contain everything needed to operate, the AI guesses. And it guesses wrong.
1309
-
1310
- We proved this earlier in the session. Lesa read the toolbox and miscategorized Universal Installer under "Repo Management" because the SKILL.md had no category structure (fixed in v1.7.3). But even after categories, she still couldn't explain what the tools actually do operationally, because the SKILL.md was still a half-README with links and one-liners.
1311
-
1312
- ## What We Researched
1313
-
1314
- Parker pointed us to agentcard.sh/agent.txt as a reference. We researched three AI documentation conventions:
1315
-
1316
- 1. **llms.txt** (llmstxt.org) ... a directory of links. Points to docs but doesn't contain them. An AI still has to fetch and read multiple files. Good for discovery, not for operation.
1317
-
1318
- 2. **agent.txt / AgentCard** (agentcard.sh) ... self-contained operational manual. Everything in one file. An AI reads it and knows how to interact with the service. Closer to what we need, but designed for describing APIs/services, not developer tools.
1319
-
1320
- 3. **SKILL.md** (ours) ... YAML frontmatter for machine parsing, then full operational detail. Designed specifically to teach an AI how to use developer tools. Not a pointer to docs. Not a summary. The complete manual.
1321
-
1322
- We took the best from each: the discoverability mindset of llms.txt, the self-contained philosophy of agent.txt, and built SKILL.md as the standard for AI-native developer tool documentation.
1323
-
1324
- ## What Changed in v1.7.4
1325
-
1326
- The SKILL.md went from ~140 lines (descriptions + links) to ~475 lines (complete operational manual).
1327
-
1328
- Every one of the 11 tools now has:
1329
- - Complete commands with all flags and options
1330
- - Step-by-step "what happens when you run it" sequences
1331
- - Exact file paths (where it reads, where it writes)
1332
- - Safety notes (what it deletes, what it overwrites, what to watch for)
1333
- - How it works across different interfaces (CC Hook, OpenClaw Plugin, MCP server)
1334
-
1335
- ### Specific additions worth noting:
1336
-
1337
- **Universal Installer** got a full deployment table showing what each of the 6 interfaces does and where it writes. We read the install.js source code and documented that it does `rm -rf` on existing extension directories before copying. That's critical safety information an AI needs before running it.
1338
-
1339
- **Release Pipeline** got all 13 steps documented (step 0: license gate through step 12: branch prune). Every flag, every file it touches, every decision point.
1340
-
1341
- **Identity File Protection** got the exact list of protected files and the definition of "destructive" (replacing >50% of content). Also documented the difference between how the CC Hook and OpenClaw Plugin work.
1342
-
1343
- **MCP section** got complete tool function names for all MCP-enabled tools, so an AI can add them to .mcp.json without guessing.
1344
-
1345
- ## The "Teach Your AI" Framing
1346
-
1347
- Parker's directive on the README: the first tool (Universal Installer) says "Teaches your AI to..." explicitly. The rest infer the pattern. You don't need to say "teaches" 11 times. The frame is set once, and a reader (human or AI) carries it forward.
1348
-
1349
- Universal Installer's description changed from a generic "installs tools" to: "Teaches your AI to take anything you build and make it work across every AI interface. You write code in any language. This tool turns it into a CLI, MCP Server, OpenClaw Plugin, Skill, and Claude Code Hook."
1350
-
1351
- ## Interface Coverage Table Iterations
1352
-
1353
- We went through several iterations on the table format:
1354
-
1355
- 1. **Separate tables per category** ... Parker: "too hard on the eyes"
1356
- 2. **Single table, bold category divider rows** ... better, but needed numbering
1357
- 3. **Added numbers 1-11 in a # column** ... Parker liked it
1358
- 4. **Tried moving categories into the # column, removing numbers** ... Parker: "looks worse, change it back"
1359
- 5. **Final: numbers + category divider rows, no dashes in empty cells** ... clean and scannable
1360
-
1361
- The lesson: don't overthink table formatting. Numbers give anchoring. Category rows give structure. Empty cells are cleaner than dashes.
1362
-
1363
- ## The Standard Going Forward
1364
-
1365
- This is how we think SKILL.md files should be written for any tool in the toolbox:
1366
-
1367
- 1. YAML frontmatter with name, version, interface list
1368
- 2. One-paragraph description of what the tool teaches
1369
- 3. Complete command reference with all flags
1370
- 4. Step-by-step operational detail (what happens when you run it)
1371
- 5. File paths (reads from, writes to)
1372
- 6. Safety notes (destructive operations, prerequisites)
1373
- 7. Interface-specific behavior (how it works as CLI vs Hook vs MCP vs Plugin)
1374
-
1375
- The SKILL.md is the source of truth. READMEs exist for humans browsing GitHub. But the AI reads the SKILL.md, and the SKILL.md must be complete.
1376
-
1377
- ## Release Notes Standard
1378
-
1379
- We also established that release notes on GitHub should tell the story. Not just "bumped version" or a one-liner from `--notes`. The v1.7.4 release notes explain the thinking, the research, and what changed. This is how releases should read going forward.
1380
-
1381
- Earlier releases (v1.7.1, v1.7.2) shipped with thin notes and we had to go back and manually update them via `gh release edit`. The tool (wip-release) uses the `--notes` flag, which encourages one-liners. For significant releases, we should write RELEASE-NOTES files on the branch and have the tool pick them up.
1382
-
1383
- ## Files Changed
1384
-
1385
- - `SKILL.md` ... complete rewrite (140 -> 475 lines)
1386
- - `README.md` ... Interface Coverage table: numbered, category dividers, no dashes
1387
- - `ai/feedback/2026-03-10--gpt--v1.7.1-readme-review.md` ... GPT rated the README 9.6/10
1388
-
1389
- ## wip-release: Auto-Detect Dev Updates as Release Notes
1390
-
1391
- Parker's feedback: "The release notes should be automated. I shouldn't have to keep telling you to do this."
1392
-
1393
- We updated `wip-release` to auto-detect release notes from `ai/dev-updates/`. The priority order:
1394
-
1395
- 1. `--notes-file=path` (explicit)
1396
- 2. `RELEASE-NOTES-v{ver}.md` in repo root
1397
- 3. `ai/dev-updates/YYYY-MM-DD*` (today's dev update files, most recent first)
1398
- 4. `--notes="one-liner"` (fallback, but dev updates win if they have more content)
1399
-
1400
- This means: write dev updates as you work (which we already do). When you run `wip-release`, it finds today's dev update and uses it as the full release notes. No more thin one-liners on GitHub releases. No more "this week's sauce, come on, man."
1401
-
1402
- ## What's Next
1403
-
1404
- - Consider making the SKILL.md standard a section in the Dev Guide
1405
- - Operational guide for agent identities (Parker mentioned needing this)
1406
-
1407
- ## 1.7.6 (2026-03-10)
1408
-
1409
- README: onboarding prompt now does dry-run install first so users see what changes before committing
1410
-
1411
- ## 1.7.5 (2026-03-10)
1412
-
1413
- # Dev Update: SKILL.md as the Real Interface
1414
-
1415
- **Date:** 2026-03-10 22:10 PST
1416
- **Author:** Claude Code (cc-mini)
1417
- **Version:** v1.7.4
1418
- **Branch:** cc-mini/skill-installer-details
1419
-
1420
- ## The Insight
1421
-
1422
- Parker said it plainly: "We're not doing READMEs anymore. This is not for humans."
1423
-
1424
- The human interface is the AI. The AI's interface is the SKILL.md. If the skill doesn't contain everything needed to operate, the AI guesses. And it guesses wrong.
1425
-
1426
- We proved this earlier in the session. Lesa read the toolbox and miscategorized Universal Installer under "Repo Management" because the SKILL.md had no category structure (fixed in v1.7.3). But even after categories, she still couldn't explain what the tools actually do operationally, because the SKILL.md was still a half-README with links and one-liners.
1427
-
1428
- ## What We Researched
1429
-
1430
- Parker pointed us to agentcard.sh/agent.txt as a reference. We researched three AI documentation conventions:
1431
-
1432
- 1. **llms.txt** (llmstxt.org) ... a directory of links. Points to docs but doesn't contain them. An AI still has to fetch and read multiple files. Good for discovery, not for operation.
1433
-
1434
- 2. **agent.txt / AgentCard** (agentcard.sh) ... self-contained operational manual. Everything in one file. An AI reads it and knows how to interact with the service. Closer to what we need, but designed for describing APIs/services, not developer tools.
1435
-
1436
- 3. **SKILL.md** (ours) ... YAML frontmatter for machine parsing, then full operational detail. Designed specifically to teach an AI how to use developer tools. Not a pointer to docs. Not a summary. The complete manual.
1437
-
1438
- We took the best from each: the discoverability mindset of llms.txt, the self-contained philosophy of agent.txt, and built SKILL.md as the standard for AI-native developer tool documentation.
1439
-
1440
- ## What Changed in v1.7.4
1441
-
1442
- The SKILL.md went from ~140 lines (descriptions + links) to ~475 lines (complete operational manual).
1443
-
1444
- Every one of the 11 tools now has:
1445
- - Complete commands with all flags and options
1446
- - Step-by-step "what happens when you run it" sequences
1447
- - Exact file paths (where it reads, where it writes)
1448
- - Safety notes (what it deletes, what it overwrites, what to watch for)
1449
- - How it works across different interfaces (CC Hook, OpenClaw Plugin, MCP server)
1450
-
1451
- ### Specific additions worth noting:
1452
-
1453
- **Universal Installer** got a full deployment table showing what each of the 6 interfaces does and where it writes. We read the install.js source code and documented that it does `rm -rf` on existing extension directories before copying. That's critical safety information an AI needs before running it.
1454
-
1455
- **Release Pipeline** got all 13 steps documented (step 0: license gate through step 12: branch prune). Every flag, every file it touches, every decision point.
1456
-
1457
- **Identity File Protection** got the exact list of protected files and the definition of "destructive" (replacing >50% of content). Also documented the difference between how the CC Hook and OpenClaw Plugin work.
1458
-
1459
- **MCP section** got complete tool function names for all MCP-enabled tools, so an AI can add them to .mcp.json without guessing.
1460
-
1461
- ## The "Teach Your AI" Framing
1462
-
1463
- Parker's directive on the README: the first tool (Universal Installer) says "Teaches your AI to..." explicitly. The rest infer the pattern. You don't need to say "teaches" 11 times. The frame is set once, and a reader (human or AI) carries it forward.
1464
-
1465
- Universal Installer's description changed from a generic "installs tools" to: "Teaches your AI to take anything you build and make it work across every AI interface. You write code in any language. This tool turns it into a CLI, MCP Server, OpenClaw Plugin, Skill, and Claude Code Hook."
1466
-
1467
- ## Interface Coverage Table Iterations
1468
-
1469
- We went through several iterations on the table format:
1470
-
1471
- 1. **Separate tables per category** ... Parker: "too hard on the eyes"
1472
- 2. **Single table, bold category divider rows** ... better, but needed numbering
1473
- 3. **Added numbers 1-11 in a # column** ... Parker liked it
1474
- 4. **Tried moving categories into the # column, removing numbers** ... Parker: "looks worse, change it back"
1475
- 5. **Final: numbers + category divider rows, no dashes in empty cells** ... clean and scannable
1476
-
1477
- The lesson: don't overthink table formatting. Numbers give anchoring. Category rows give structure. Empty cells are cleaner than dashes.
1478
-
1479
- ## The Standard Going Forward
1480
-
1481
- This is how we think SKILL.md files should be written for any tool in the toolbox:
1482
-
1483
- 1. YAML frontmatter with name, version, interface list
1484
- 2. One-paragraph description of what the tool teaches
1485
- 3. Complete command reference with all flags
1486
- 4. Step-by-step operational detail (what happens when you run it)
1487
- 5. File paths (reads from, writes to)
1488
- 6. Safety notes (destructive operations, prerequisites)
1489
- 7. Interface-specific behavior (how it works as CLI vs Hook vs MCP vs Plugin)
1490
-
1491
- The SKILL.md is the source of truth. READMEs exist for humans browsing GitHub. But the AI reads the SKILL.md, and the SKILL.md must be complete.
1492
-
1493
- ## Release Notes Standard
1494
-
1495
- We also established that release notes on GitHub should tell the story. Not just "bumped version" or a one-liner from `--notes`. The v1.7.4 release notes explain the thinking, the research, and what changed. This is how releases should read going forward.
1496
-
1497
- Earlier releases (v1.7.1, v1.7.2) shipped with thin notes and we had to go back and manually update them via `gh release edit`. The tool (wip-release) uses the `--notes` flag, which encourages one-liners. For significant releases, we should write RELEASE-NOTES files on the branch and have the tool pick them up.
1498
-
1499
- ## Files Changed
1500
-
1501
- - `SKILL.md` ... complete rewrite (140 -> 475 lines)
1502
- - `README.md` ... Interface Coverage table: numbered, category dividers, no dashes
1503
- - `ai/feedback/2026-03-10--gpt--v1.7.1-readme-review.md` ... GPT rated the README 9.6/10
1504
-
1505
- ## wip-release: Auto-Detect Dev Updates as Release Notes
1506
-
1507
- Parker's feedback: "The release notes should be automated. I shouldn't have to keep telling you to do this."
1508
-
1509
- We updated `wip-release` to auto-detect release notes from `ai/dev-updates/`. The priority order:
1510
-
1511
- 1. `--notes-file=path` (explicit)
1512
- 2. `RELEASE-NOTES-v{ver}.md` in repo root
1513
- 3. `ai/dev-updates/YYYY-MM-DD*` (today's dev update files, most recent first)
1514
- 4. `--notes="one-liner"` (fallback, but dev updates win if they have more content)
1515
-
1516
- This means: write dev updates as you work (which we already do). When you run `wip-release`, it finds today's dev update and uses it as the full release notes. No more thin one-liners on GitHub releases. No more "this week's sauce, come on, man."
1517
-
1518
- ## What's Next
1519
-
1520
- - Consider making the SKILL.md standard a section in the Dev Guide
1521
- - Operational guide for agent identities (Parker mentioned needing this)
1522
-
1523
- ## 1.7.4 (2026-03-10)
1524
-
1525
- SKILL.md full operational rewrite for AI agents. Every tool now has complete commands, flags, step-by-step behavior, file paths, and safety notes. Interface Coverage table cleaned up: numbered tools, category dividers, no dashes.
1526
-
1527
- ## 1.7.3 (2026-03-10)
1528
-
1529
- Add category structure to SKILL.md matching README. Prevents AI from miscategorizing tools.
1530
-
1531
- ## 1.7.2 (2026-03-10)
1532
-
1533
- Reframe Universal Installer description, fix tense, update SKILL.md intro framing
1534
-
1535
- ## 1.7.1 (2026-03-10)
1536
-
1537
- Reframe tool descriptions with teach your AI pattern, file GPT and Grok feedback on v1.7.0
1538
-
1539
- ## 1.7.0 (2026-03-10)
1540
-
1541
- ## v1.7.0: Renamed to AI DevOps Toolbox, CLA, License Enforcement, Branch Prune, README Polish
1542
-
1543
- This release renames the repo, adds contributor governance, makes licensing intent unmistakable, automates branch cleanup, and tightens the README based on a second round of external feedback.
1544
-
1545
- The repo is now **AI DevOps Toolbox** (`wip-ai-devops-toolbox`). The name change reflects what this actually is: not just DevOps scripts, but AI-native development infrastructure.
1546
-
1547
- Includes work from PRs #53, #54.
1548
-
1549
- ---
1550
-
1551
- ### Repo Rename: AI DevOps Toolbox
1552
-
1553
- **What we did:** Renamed from "DevOps Toolbox" (`wip-devops-toolbox`) to "AI DevOps Toolbox" (`wip-ai-devops-toolbox`).
1554
-
1555
- **Why:** The old name undersold what this is. "DevOps Toolbox" sounds like scripts. This is an interface architecture, an agent tool ecosystem, and a workflow framework for AI-assisted development. The name should say that.
1556
-
1557
- **What changed:**
1558
- - GitHub repos renamed: `wip-ai-devops-toolbox-private` and `wip-ai-devops-toolbox`
1559
- - All internal references updated: README, TECHNICAL.md, SKILL.md, package.json, cross-repo references
1560
-
1561
- ---
1562
-
1563
- ### Contributor License Agreement (CLA)
1564
-
1565
- **What we did:** Added `CLA.md` at the repo root and referenced it in the README License section.
1566
-
1567
- **Why:** Without a CLA, contributors who submit PRs own their code. AGPL means we can't relicense their contributions commercially. We need contributors to grant WIP Computer, Inc. the right to use their contributions under any license, including commercial. This is standard open source governance. Apache, Google, Meta, and Anthropic all use similar agreements.
1568
-
1569
- **How it works:** By submitting a PR, you agree to the CLA. Contributors keep their own copyright but grant WIP Computer, Inc. a broad license. Plain-English, no lawyer needed to understand it.
1570
-
1571
- **New files:**
1572
- - `CLA.md` ... the agreement itself
1573
-
1574
- ---
1575
-
1576
- ### Licensing Clarity
1577
-
1578
- **What we did:** Made the licensing intent unmistakable with two new sentences.
1579
-
1580
- **Why:** The dual MIT+AGPLv3 license is technically correct, but people still ask "can I use this?" The answer needed to be obvious: yes, use the tools however you want. The only thing that requires a commercial license is taking the tools themselves and reselling them.
1581
-
1582
- **What changed:**
1583
- - Added "Dual-license model designed to keep tools free while preventing commercial resellers" above the license block
1584
- - Added "Using these tools to build your own software is fine. Reselling the tools themselves is what requires a commercial license" to the "Can I use this?" section
1585
- - Updated `generateReadmeBlock()` in `tools/wip-license-guard/core.mjs` so every future repo gets the same wording automatically
1586
-
1587
- ---
1588
-
1589
- ### Branch Prune Automation
1590
-
1591
- **What we did:** Built automatic branch cleanup into both `post-merge-rename.sh` and `wip-release`.
1592
-
1593
- **Why:** Merged branches pile up on the remote. Before this release, the private repo had 30+ stale branches. The post-merge-rename script renamed them with `--merged-YYYY-MM-DD` but never cleaned up old ones. Manually deleting branches is a waste of time. We built these tools so we don't have to keep doing things manually.
1594
-
1595
- **How it works:**
1596
-
1597
- `post-merge-rename.sh --prune` does three things:
1598
- 1. Renames any merged branches that don't have the `--merged` suffix yet
1599
- 2. For each developer prefix (`cc-mini/`, `mini/`, `lesa-mini/`, etc.), keeps the last 3 `--merged` branches and deletes the rest from the remote
1600
- 3. Finds stale branches that are fully merged into main but were never renamed, and deletes them
1601
-
1602
- `wip-release` now runs prune automatically as step 11 after every release. No manual cleanup needed.
1603
-
1604
- Rules: never deletes `main`, never deletes the current working branch, always keeps the last 3 per developer. `--dry-run` previews what would be deleted.
1605
-
1606
- **Files changed:**
1607
- - `scripts/post-merge-rename.sh` ... new `--prune` flag, stale branch detection, keep-last-3 logic
1608
- - `tools/wip-release/core.mjs` ... step 11: automatic prune after every release
1609
-
1610
- ---
1611
-
1612
- ### License Enforcement Automation
1613
-
1614
- **What we did:** Made license compliance automatic across three layers: CC Hook, wip-release gate, and one-command repo setup.
1615
-
1616
- **Why:** `wip-license-guard` existed but was manual. Nobody remembered to run it. The dual-license + CLA standard from this release needs to be enforced, not just documented.
1617
-
1618
- **How it works:**
1619
-
1620
- **CC Hook** (`tools/wip-license-guard/hook.mjs`): PreToolUse hook for Claude Code. Intercepts `git commit` and `git push` commands. Checks LICENSE file, copyright, CLA.md, and README license section. Blocks if any check fails. Same pattern as `wip-file-guard`.
1621
-
1622
- **wip-release gate** (step 0): Before bumping anything, wip-release checks license compliance. If `.license-guard.json` exists and any check fails, the release aborts with a clear message. No bad releases ship.
1623
-
1624
- **`--from-standard` flag**: `wip-license-guard init --from-standard` applies WIP Computer defaults without prompting. Generates `.license-guard.json`, `LICENSE` (dual MIT+AGPLv3), and `CLA.md` in one command. For new repos, this is all you need.
1625
-
1626
- **Files changed:**
1627
- - `tools/wip-license-guard/hook.mjs` ... new CC Hook (PreToolUse, blocks git commit/push)
1628
- - `tools/wip-license-guard/cli.mjs` ... `--from-standard` flag, CLA.md generation, CLA check in audit
1629
- - `tools/wip-release/core.mjs` ... step 0: license compliance gate
1630
-
1631
- ---
1632
-
1633
- ### README Polish (GPT Feedback Round 2)
1634
-
1635
- **What we did:** Three targeted improvements based on GPT's review of v1.6.0.
1636
-
1637
- **Karpathy quote shortened.** The full two-paragraph quote was too heavy for the README. Compressed to one line: *As Andrej Karpathy said: "Apps are for people. Tools are for LLMs, and increasingly, LLMs are the ones using software."* with a source link. Same message, doesn't interrupt the flow.
1638
-
1639
- **One-line "why" on every feature.** Each tool now leads with the problem it solves before describing what it does:
1640
- - "AI agents forget release steps. This makes releases one command."
1641
- - "Dependencies change licenses without telling you. This catches it."
1642
- - "AI agents overwrite identity files by accident. This stops them."
1643
- - "Repos end up everywhere. This snaps them back to where they belong."
1644
-
1645
- **Feedback filed:**
1646
- - `ai/feedback/2026-03-10--gpt--v1.6.0-readme-review.md`
1647
- - `ai/feedback/2026-03-10--grok--v1.6.0-summary.md`
1648
-
1649
- ---
1650
-
1651
- ### Install
1652
-
1653
- ```bash
1654
- npm install -g @wipcomputer/universal-installer
1655
- wip-install wipcomputer/wip-ai-devops-toolbox
1656
- ```
1657
-
1658
- Or update your local clone:
1659
- ```bash
1660
- git pull origin main
1661
- ```
1662
-
1663
- ---
1664
-
1665
- Built by Parker Todd Brooks, Lēsa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).
1666
-
1667
- ## 1.6.0 (2026-03-10)
1668
-
1669
- ## v1.6.0: README Rewrite, Dual Licensing, License Guard, Release Notes Standard
1670
-
1671
- Four systems that change how DevOps Toolbox presents itself, protects its licensing, and ships releases. The README is now for humans. Licensing is enforceable. Release notes tell a story.
1672
-
1673
- This release spans PRs #46 through #50 and represents a complete rethink of how we present the toolbox, how we protect its licensing, and how we communicate what each release actually means.
1674
-
1675
- ---
1676
-
1677
- ### PR #46: License Format Standard
1678
-
1679
- **What we did:** Rewrote the license section across the README and private Dev Guide to use a clear, scannable format that signals both openness and commercial intent.
1680
-
1681
- **Why:** The old license section just said "MIT" in a badge. That's technically correct but it doesn't tell you the full story. We moved to dual licensing (MIT + AGPLv3) and needed a format that makes the distinction immediately clear: use it freely for personal work, need a commercial license if you're bundling it into something you sell.
1682
-
1683
- **What changed:**
1684
- - License section switched to a code block format for readability: MIT for all CLI tools, MCP servers, skills, and hooks. AGPLv3 for commercial redistribution, marketplace listings, or bundling into paid services.
1685
- - Added "Commercial licenses available" as a one-line signal that this is a real product, not just an open source side project.
1686
- - AGPL renamed to AGPLv3 throughout for version specificity. Grok's feedback confirmed this matters for clarity.
1687
- - Private Dev Guide (`ai/DEV-GUIDE-private.md`) updated with the licensing standard so every repo going forward follows the same format.
1688
- - Fixed "Claude Code CLI" to "Claude Code" in attribution across all files.
1689
-
1690
- **Commits:** `Update license section formatting for readability`, `License section: code block with Grok-style wording`, `License: personal vs commercial distinction, add standard to dev guide`, `License: AGPL -> AGPLv3 for version specificity`
1691
-
1692
- ---
1693
-
1694
- ### PR #47: LICENSE Files Across All Tools
1695
-
1696
- **What we did:** Updated the actual LICENSE file in the root and all 10 sub-tool directories to dual MIT + AGPLv3.
1697
-
1698
- **Why:** PR #46 changed how we talk about the license. This PR changed the legal documents themselves. Every sub-tool had its own LICENSE file that still said plain MIT. They all needed to match the new dual-license standard, and they needed to match each other exactly.
1699
-
1700
- **What changed:**
1701
- - Root `LICENSE` rewritten to dual format. Section 1: MIT (full text). Section 2: GNU Affero General Public License v3.0 (commercial and cloud use). Starts with "Dual License: MIT + AGPLv3" so GitHub's license detection picks it up correctly.
1702
- - All 10 `tools/*/LICENSE` files updated to identical dual-license text with correct copyright holder (WIP Computer, Inc.).
1703
- - Bottom line on every LICENSE: "AGPLv3 for personal use is free. Commercial licenses available."
1704
-
1705
- **Commits:** `LICENSE files: dual MIT+AGPLv3 on root and all sub-tools`
1706
-
1707
- ---
1708
-
1709
- ### PR #48: wip-license-guard (New Tool)
1710
-
1711
- **What we did:** Built a new tool that enforces copyright, license format, and README structure across the toolbox.
1712
-
1713
- **Why:** With 10 sub-tools, each needing its own LICENSE file, and a README standard that separates human content from technical content, manual enforcement doesn't scale. We needed a tool that catches drift before it ships. The tool also enforces the README standard from the session's feedback work: no install commands in the README (those go in TECHNICAL.md), no MCP config blocks, no Quick Start sections.
1714
-
1715
- **How it works:**
1716
- - Interactive first-run (`wip-license-guard init`) asks for copyright holder, license type (MIT, AGPLv3, or dual MIT+AGPL), year, and attribution. Saves config to `.license-guard.json`.
1717
- - `wip-license-guard check` audits the repo against saved config. Checks LICENSE existence, copyright match, AGPLv3 terms (if dual-license), README license section, README structure.
1718
- - `wip-license-guard check --fix` auto-repairs: generates missing LICENSE files, updates wrong copyright, creates dual-license text.
1719
- - Toolbox-aware: automatically walks every `tools/` subdirectory and checks each sub-tool's LICENSE file.
1720
- - README structure standard enforcement: warns if README contains Quick Start sections, `npm install -g` commands, MCP config blocks, or Architecture/API/Config headings that belong in TECHNICAL.md.
1721
- - All 14 checks pass on this repo.
1722
-
1723
- **New files:**
1724
- - `tools/wip-license-guard/cli.mjs` (268 lines) ... CLI entry point. Commands: `init`, `check`, `check --fix`, `help`.
1725
- - `tools/wip-license-guard/core.mjs` ... `generateLicense()` produces MIT, AGPL, or dual MIT+AGPLv3 LICENSE text. `generateReadmeBlock()` produces the README license section.
1726
- - `.license-guard.json` ... config: copyright "WIP Computer, Inc.", license "MIT+AGPL", year 2026.
1727
-
1728
- **Interfaces:** CLI, Module. Beta stability.
1729
-
1730
- **Commits:** `Add wip-license-guard tool and .license-guard.json config`
1731
-
1732
- ---
1733
-
1734
- ### PR #49: SKILL.md v1.5.1
1735
-
1736
- **What we did:** Updated the skill documentation that AI agents read when you say "read the SKILL.md."
1737
-
1738
- **Why:** The SKILL.md was stuck at v1.4.0. It didn't include wip-license-guard (new in this release), didn't have the interface coverage matrix, and used incorrect tool names. When someone tells their AI to read the SKILL.md, it needs to be current and accurate. Stale skill docs mean the AI gives wrong answers about what the tools can do.
1739
-
1740
- **What changed:**
1741
- - Version bumped from v1.4.0 to v1.5.1.
1742
- - Added interfaces column to tool table: CLI, Module, MCP, OpenClaw, Skill, CC Hook for every tool.
1743
- - Added wip-license-guard to the tool list.
1744
- - Fixed tool names: `deploy-public` (not `deploy-public.sh`), `post-merge-rename` (not `post-merge-rename.sh`).
1745
- - Added "Talk to Your Tools" section with concrete MCP prompts: "Scan all dependencies for license changes" calls `license_scan`. "Check if memory-crystal can go public" calls `repo_permissions_check`. Etc.
1746
- - Added license section matching the new README format.
1747
- - Updated frontmatter description and capabilities.
1748
- - Added SKILL.md staleness warning to wip-release: warns when SKILL.md version falls more than a patch behind the release version, so this can't happen again silently.
1749
-
1750
- **Commits:** `SKILL.md: update to v1.5.1 with full tool table and interfaces`
1751
-
1752
- ---
1753
-
1754
- ### PR #50: README Rewrite + Release Notes Standard
1755
-
1756
- **What we did:** Rewrote the entire README based on external feedback, and upgraded the release pipeline to enforce narrative release notes.
1757
-
1758
- **Why:** External feedback from Grok and GPT confirmed what we suspected: the README was developer-brain. Install commands, MCP tool mappings, and Quick Start sections front and center. That's what developers write for themselves. It's not what someone landing on the repo needs to see. They want to know: what does this do for me?
1759
-
1760
- The release notes problem came up during this same work. Every release was producing commit lists instead of stories. Parker had to manually rewrite the notes every time. That needed to be fixed at the tooling level.
1761
-
1762
- **README changes:**
1763
-
1764
- The README now follows a strict standard: tagline, "Teach Your AI to Dev" prompt block, features with stability tags, interface coverage matrix, and license. No install commands. No technical implementation details.
1765
-
1766
- - **Removed Quick Start section.** Install commands belong in TECHNICAL.md, not the README. Added a guard in wip-license-guard to catch `npm install -g` commands and Quick Start headings in any README going forward.
1767
- - **Removed "Talk to Your Tools" MCP examples.** These are for AIs, not humans. Moved to SKILL.md where they belong.
1768
- - **Added Karpathy quote.** The sensor/actuator framing from Andrej Karpathy anchors the Features section. Both paragraphs, "Andrej Karpathy put it clearly:" intro, Source link. This is the future of software: not apps, tools.
1769
- - **Added Interface Coverage matrix.** Single table showing all 10 tools and their six possible interfaces. At a glance you can see what ships as CLI, Module, MCP, OpenClaw, Skill, or CC Hook.
1770
- - **Added "Can I use this?" section.** Plain-English licensing examples. "Yes, freely:" for personal use. "Need a commercial license:" for bundling into products. Last bullet: "Fork it and send us feedback via PRs (we'd love that)."
1771
- - **Added License Guard to features list.** New tool from PR #48 needed to be in the features section.
1772
-
1773
- **Release pipeline changes:**
1774
-
1775
- Three changes to `wip-release` that make release notes a first-class part of the process:
1776
-
1777
- 1. **Quality warning.** When `--notes` is missing, too short (under 50 characters), or looks like a changelog entry (starts with "fix:", "add:", "update:"), wip-release warns: "Explain what was built, why, and why it matters."
1778
-
1779
- 2. **`--notes-file` flag.** Pass a markdown file with the full release narrative: `wip-release minor --notes-file=RELEASE-NOTES-v{version}.md`. This is how you write proper release notes and review them before they go live.
1780
-
1781
- 3. **Commits fold under narrative.** Commit history is still included, but inside a collapsible `<details>` section labeled "What changed (commits)". The narrative is the headline. The commits are supporting detail.
1782
-
1783
- **New convention:** `RELEASE-NOTES-v{version}.md` lives on the feature branch. It's part of the PR diff. You review the release notes alongside the code. When the PR merges, `wip-release` reads from the file. The notes you approved are the notes that ship.
1784
-
1785
- **Files changed:**
1786
- - `README.md` ... full rewrite
1787
- - `TECHNICAL.md` ... received Quick Start and npm install commands from README
1788
- - `tools/wip-release/core.mjs` ... `buildReleaseNotes()` restructured, new `warnIfNotesAreThin()`
1789
- - `tools/wip-release/cli.js` ... new `--notes-file=path` flag
1790
- - `tools/wip-license-guard/cli.mjs` ... README structure standard checks added
1791
- - `RELEASE-NOTES-v{version}.md` ... new convention file
1792
- - `ai/notes/2026-03-10--grok-feedback--readme-and-licensing.md` ... Grok feedback documented
1793
- - `ai/notes/2026-03-10--gpt-feedback--product-and-adoption.md` ... GPT feedback documented
1794
- - `ai/plan/current/2026-03-10--cc-mini--readme-polish-and-mcp-examples.md` ... 7-phase plan, all complete
1795
-
1796
- **Commits:** `Add feedback notes, plan for README polish + MCP examples`, `README: golden path, MCP examples, interface matrix, license examples`, `Plan: mark phases 1-5 as DONE`, `README: add Karpathy quote on tools vs apps`, `wip-license-guard: add README structure standard checks`, `Move Quick Start to TECHNICAL.md, guard against install commands in README`, `Remove Talk to Your Tools section from README`, `README: full Karpathy argument with both quotes and source link`, `License: replace cloud instances bullet with fork/PR invitation`, `Karpathy quote: remove headline, inline attribution, semicolon`, `Fix Karpathy quote format: intro line, source outside blockquote`, `wip-release: narrative release notes standard`, `Add RELEASE-NOTES-v{version}.md for PR review`
1797
-
1798
- ---
1799
-
1800
- ### Install
1801
-
1802
- ```bash
1803
- npm install -g @wipcomputer/universal-installer
1804
- wip-install wipcomputer/wip-ai-devops-toolbox
1805
- ```
1806
-
1807
- Or update your local clone:
1808
- ```bash
1809
- git pull origin main
1810
- ```
1811
-
1812
- ---
1813
-
1814
- Built by Parker Todd Brooks, Lēsa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).
1815
-
1816
- ## 1.4.0 (2026-03-09)
1817
-
1818
- MCP unlock. All core tools are now agent-callable.
1819
-
1820
- ### MCP Servers (new)
1821
- - **wip-release**: `mcp-server.mjs` wrapping `core.mjs`. Tools: `release`, `release_status`
1822
- - **wip-license-hook**: `mcp-server.mjs` wrapping compiled `dist/`. Tools: `license_scan`, `license_audit`, `license_gate`, `license_ledger`
1823
- - **wip-repo-permissions-hook**: `mcp-server.mjs` wrapping `core.mjs`. Tools: `repo_permissions_check`, `repo_permissions_audit`
1824
- - **wip-repos**: `mcp-server.mjs` wrapping `core.mjs`. Tools: `repos_check`, `repos_sync_plan`, `repos_add`, `repos_move`, `repos_tree`
1825
-
1826
- ### SKILL.md files (new)
1827
- - **wip-repos**: added SKILL.md (was the only tool without one)
1828
- - **deploy-public**: added `scripts/SKILL-deploy-public.md`
1829
- - **post-merge-rename**: added `scripts/SKILL-post-merge-rename.md`
1830
-
1831
- ### Interface updates
1832
- - wip-release SKILL.md: interface updated from CLI to [cli, module, mcp], added MCP section
1833
- - wip-license-hook SKILL.md: added version, interface [cli, mcp], added MCP section
1834
- - wip-repo-permissions-hook SKILL.md: interface updated to [cli, module, mcp, hook, plugin], added MCP section
1835
- - All 4 tools: `@modelcontextprotocol/sdk` added as dependency
1836
-
1837
- ### Dev Guide updates
1838
- - Added "Universal Installer Checklist" section to DEV-GUIDE-GENERAL-PUBLIC.md
1839
- - Added "Universal Installer ... Dogfooding Rule" section to private Dev Guide
1840
- - Documented the v1.3.0 zero-MCP-servers incident
1841
-
1842
- ### Other
1843
- - Root SKILL.md bumped to 1.4.0, added all missing tools (wip-file-guard, wip-universal-installer, wip-repos, LDM Dev Tools.app), added MCP Servers section
1844
- - README source code table updated with mcp-server.mjs files
1845
-
1846
- ## 1.3.0 (2026-03-09)
1847
-
1848
- Toolbox consolidation. Three new tools added.
1849
-
1850
- ### New tools
1851
- - **wip-file-guard**: blocks destructive edits to protected identity files. For Claude Code CLI and OpenClaw. Previously standalone repo, now folded into toolbox.
1852
- - **wip-universal-installer**: The Universal Interface specification for agent-native software. Six interfaces: CLI, Module, MCP Server, OpenClaw Plugin, Skill, Claude Code Hook. Previously standalone repo, now folded into toolbox.
1853
- - **wip-repos**: repo manifest reconciler. Makes repos-manifest.json the single source of truth for repo organization. Like prettier for folder structure. New tool, built from scratch.
1854
-
1855
- ### Other changes
1856
- - `UNIVERSAL-INTERFACE.md` promoted to repo root (from wip-universal-installer SPEC.md)
1857
- - README updated with all three new tools, source code table, install commands
1858
- - Standalone repos renamed to `-deprecated` on GitHub
1859
- - Toolbox now has 9 tools. All self-contained, zero shared dependencies.
1860
-
1861
- ## 1.2.0 (2026-03-09)
1862
-
1863
- Major repo reorganization and Dev Guide expansion.
1864
-
1865
- ### Repo structure
1866
- - Separated public Dev Guide from private conventions
1867
- - `guide/DEV-GUIDE.md` → `DEV-GUIDE-GENERAL-PUBLIC.md` (genericized, root level, goes public)
1868
- - `ai/DEV-GUIDE-private.md` → `ai/DEV-GUIDE-FOR-WIP-ONLY-PRIVATE.md` (WIP-specific conventions)
1869
- - `guide/scripts/` → `scripts/` (moved to root level)
1870
- - Old `guide/` folder trashed
1871
-
1872
- ### New Dev Guide sections
1873
- - Post-merge branch rename convention (never delete branches, rename with `--merged-YYYY-MM-DD`)
1874
- - Repo directory structure (standard layout, staging folder conventions, create as `-private` from day one)
1875
- - The manifest (`repos-manifest.json` as source of truth for repo locations)
1876
- - Privatize Before You Work rule
1877
- - Cloudflare Workers deploy guard (commit before deploy, guarded npm scripts)
1878
- - PR checklist for private repos (dev update, roadmap, readme-first, plan archival)
1879
- - Expanded `_trash` convention
1880
- - Warning: never use `--no-publish` before `deploy-public.sh`
1881
-
1882
- ### New script
1883
- - `scripts/post-merge-rename.sh`: scans for merged branches missing `--merged-YYYY-MM-DD` suffix and renames them. Runs automatically as wip-release step 10, or standalone.
1884
-
1885
- ### README and SKILL.md
1886
- - Added post-merge-rename.sh to tools section and source table
1887
- - Fixed all paths for reorg
1888
- - Updated Dev Guide description with new sections
1889
-
1890
- ## 1.1.3 (2026-03-01)
1891
-
1892
- - Fix npx package name in pre-pull.sh and pre-push.sh (@wipcomputer/license-hook → @wipcomputer/wip-license-hook)
1893
- - Fix wip-release test script (cli.mjs → cli.js)
1894
- - Clean up wip-release CHANGELOG blank lines
1895
- - Add visibility-audit.sh to DEV-GUIDE .app structure diagram
1896
- - Remove duplicate skill/SKILL.md subfolder
1897
-
1898
- ## 1.1.2 (2026-03-01)
1899
-
1900
- - SKILL.md: sync version to 1.1.2
1901
- - CHANGELOG: add missing v1.1.0 and v1.1.1 entries
1902
- - ldm-jobs README: add visibility-audit.sh documentation
1903
-
1904
- ## 1.1.1 (2026-03-01)
1905
-
1906
- - README: add wip-repo-permissions-hook section, source code table entry, cron schedule
1907
- - SKILL.md: bump version, add repo-visibility-guard capability, add tool section
1908
-
1909
- ## 1.1.0 (2026-03-01)
1910
-
1911
- - New tool: wip-repo-permissions-hook. Blocks repos from going public without a -private counterpart
1912
- - Surfaces: CLI (check, audit, can-publish), Claude Code PreToolUse hook, OpenClaw plugin
1913
- - New cron job: visibility-audit.sh for LDM Dev Tools.app
1914
- - DEV-GUIDE: add hard rule for public/private repo pattern
1915
-
1916
- ## 1.0.4 (2026-03-01)
1917
-
1918
- - DEV-GUIDE: replace inbox/punchlist system with per-agent todo files (To Do, Done, Deprecated. Never delete.)
1919
-
1920
- ## 1.0.3 (2026-02-28)
1921
-
1922
- - deploy-public.sh: auto-detect harness ID from private repo path (cc-mini/, cc-air/, oc-lesa-mini/)
1923
-
1924
- ## 1.0.2 (2026-02-28)
1925
-
1926
- - deploy-public.sh: fix branch prefix from mini/ to cc-mini/ per harness naming convention
1927
-
1928
- ## 1.0.1 (2026-02-28)
1929
-
1930
- - DEV-GUIDE: add multi-agent clone workflow and harness branch convention (cc-mini/, cc-air/, lesa-mini/)
1931
-
1932
- ## 1.0.0 (2026-02-28)
1933
-
1934
- - Production release: all tools battle-tested across 100+ repos, 200+ releases
1935
- - All source code visible and auditable in repo (no closed binaries)
1936
- - wip-license-hook bumped to v1.0.0
1937
- - LDM Dev Tools.app job scripts extracted to tools/ldm-jobs/
1938
- - Real-world example: wip-universal-installer release history
1939
- - Source code table, build instructions, and dev guide in README
1940
- - Standalone repos (wip-release, wip-license-hook) merged into umbrella
1941
-
1942
- ## 0.2.1 (2026-02-28)
1943
-
1944
- - deploy-public.sh: fix release sync for repos without package.json (falls back to latest git tag)
1945
-
1946
- ## 0.2.0 (2026-02-28)
1947
-
1948
- - deploy-public.sh: sync GitHub releases to public repos (pulls notes, rewrites references)
1949
- - DEV-GUIDE: add release quality standards (contributors, release notes, npm, both repos)
1950
- - DEV-GUIDE: add scheduled automation (.app pattern) documentation
1951
- - DEV-GUIDE: add built-by attribution standard
1952
- - LDM Dev Tools.app: macOS automation wrapper for cron jobs with Full Disk Access
1953
- - Add .npmignore to exclude ai/ from npm packages
1954
-
1955
- ## 0.1.1 (2026-02-27)
1956
-
1957
- - DEV-GUIDE: add "never work on main" rule
1958
- - DEV-GUIDE: clarify private repo is the only local clone needed
1959
-
1960
- ## 0.1.0 (2026-02-27)
1961
-
1962
- - Initial release: unified dev toolkit
1963
- - Includes wip-release (v1.2.4) and wip-license-hook (v0.1.0)
1964
- - DEV-GUIDE: general best practices for AI-assisted development
1965
- - deploy-public.sh: private-to-public repo sync tool