@wipcomputer/wip-ai-devops-toolbox 1.9.55 → 1.9.56

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 (536) hide show
  1. package/.worktrees/toolbox--release-notes/.license-guard.json +7 -0
  2. package/.worktrees/toolbox--release-notes/.publish-skill.json +4 -0
  3. package/.worktrees/toolbox--release-notes/CHANGELOG.md +1875 -0
  4. package/.worktrees/toolbox--release-notes/CLA.md +19 -0
  5. package/.worktrees/toolbox--release-notes/DEV-GUIDE-GENERAL-PUBLIC.md +949 -0
  6. package/.worktrees/toolbox--release-notes/LICENSE +52 -0
  7. package/.worktrees/toolbox--release-notes/README.md +238 -0
  8. package/.worktrees/toolbox--release-notes/RELEASE-NOTES-v1-9-56.md +42 -0
  9. package/.worktrees/toolbox--release-notes/SKILL.md +821 -0
  10. package/.worktrees/toolbox--release-notes/TECHNICAL.md +416 -0
  11. package/.worktrees/toolbox--release-notes/UNIVERSAL-INTERFACE.md +180 -0
  12. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-0.md +29 -0
  13. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-1.md +7 -0
  14. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-2.md +7 -0
  15. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-0.md +37 -0
  16. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-1.md +38 -0
  17. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-10.md +40 -0
  18. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-2.md +40 -0
  19. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-31.md +26 -0
  20. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-32.md +18 -0
  21. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-41.md +28 -0
  22. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-45.md +25 -0
  23. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-46.md +38 -0
  24. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-47.md +42 -0
  25. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-48.md +22 -0
  26. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-49.md +31 -0
  27. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-50.md +24 -0
  28. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-51.md +11 -0
  29. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-52.md +25 -0
  30. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-53.md +22 -0
  31. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-54.md +13 -0
  32. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-55.md +11 -0
  33. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-6.md +72 -0
  34. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-7.md +23 -0
  35. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-9.md +75 -0
  36. package/.worktrees/toolbox--release-notes/_trash/guide 2/DEV-GUIDE.md +487 -0
  37. package/.worktrees/toolbox--release-notes/_trash/guide 2/scripts/deploy-public.sh +152 -0
  38. package/.worktrees/toolbox--release-notes/package.json +27 -0
  39. package/.worktrees/toolbox--release-notes/scripts/SKILL-deploy-public.md +61 -0
  40. package/.worktrees/toolbox--release-notes/scripts/SKILL-post-merge-rename.md +47 -0
  41. package/.worktrees/toolbox--release-notes/scripts/deploy-public.sh +345 -0
  42. package/.worktrees/toolbox--release-notes/scripts/post-merge-rename.sh +210 -0
  43. package/.worktrees/toolbox--release-notes/scripts/publish-skill.sh +134 -0
  44. package/.worktrees/toolbox--release-notes/templates/global-claude-md.md +73 -0
  45. package/.worktrees/toolbox--release-notes/templates/repo-claude-md.template +24 -0
  46. package/.worktrees/toolbox--release-notes/tools/deploy-public/LICENSE +52 -0
  47. package/.worktrees/toolbox--release-notes/tools/deploy-public/README.md +31 -0
  48. package/.worktrees/toolbox--release-notes/tools/deploy-public/SKILL.md +71 -0
  49. package/.worktrees/toolbox--release-notes/tools/deploy-public/deploy-public.sh +264 -0
  50. package/.worktrees/toolbox--release-notes/tools/deploy-public/package.json +9 -0
  51. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/LICENSE +52 -0
  52. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/README.md +46 -0
  53. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/backup.sh +16 -0
  54. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/branch-protect.sh +39 -0
  55. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/crystal-capture.sh +19 -0
  56. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/setup-shell.sh +27 -0
  57. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/visibility-audit.sh +27 -0
  58. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/LICENSE +52 -0
  59. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/README.md +29 -0
  60. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/SKILL.md +57 -0
  61. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/package.json +9 -0
  62. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/post-merge-rename.sh +122 -0
  63. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/INSTALL.md +41 -0
  64. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/guard.mjs +459 -0
  65. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/package.json +18 -0
  66. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/CHANGELOG.md +6 -0
  67. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/LICENSE +52 -0
  68. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/README.md +113 -0
  69. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/REFERENCE.md +86 -0
  70. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/SKILL.md +105 -0
  71. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/guard.mjs +161 -0
  72. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/openclaw.plugin.json +8 -0
  73. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/package.json +27 -0
  74. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/test.sh +119 -0
  75. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/LICENSE +52 -0
  76. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/README.md +69 -0
  77. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/SKILL.md +65 -0
  78. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/cli.mjs +472 -0
  79. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/core.mjs +310 -0
  80. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/guard.mjs +146 -0
  81. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/package.json +22 -0
  82. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/CHANGELOG.md +17 -0
  83. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/LICENSE +52 -0
  84. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/README.md +200 -0
  85. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/SKILL.md +111 -0
  86. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.d.ts +15 -0
  87. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js +170 -0
  88. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js.map +1 -0
  89. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.d.ts +12 -0
  90. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js +104 -0
  91. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js.map +1 -0
  92. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.d.ts +4 -0
  93. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js +5 -0
  94. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js.map +1 -0
  95. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.d.ts +49 -0
  96. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js +72 -0
  97. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js.map +1 -0
  98. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.d.ts +14 -0
  99. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js +227 -0
  100. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js.map +1 -0
  101. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.d.ts +39 -0
  102. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js +325 -0
  103. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js.map +1 -0
  104. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-pull.sh +55 -0
  105. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-push.sh +51 -0
  106. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/mcp-server.mjs +119 -0
  107. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package-lock.json +54 -0
  108. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package.json +43 -0
  109. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/cli/index.ts +189 -0
  110. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/detector.ts +130 -0
  111. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/index.ts +4 -0
  112. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/ledger.ts +116 -0
  113. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/reporter.ts +255 -0
  114. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/scanner.ts +367 -0
  115. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/tsconfig.json +16 -0
  116. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/README.md +49 -0
  117. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/SKILL.md +84 -0
  118. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/format.mjs +597 -0
  119. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/package.json +15 -0
  120. package/.worktrees/toolbox--release-notes/tools/wip-release/CHANGELOG.md +42 -0
  121. package/.worktrees/toolbox--release-notes/tools/wip-release/LICENSE +52 -0
  122. package/.worktrees/toolbox--release-notes/tools/wip-release/README.md +45 -0
  123. package/.worktrees/toolbox--release-notes/tools/wip-release/REFERENCE.md +100 -0
  124. package/.worktrees/toolbox--release-notes/tools/wip-release/SKILL.md +139 -0
  125. package/.worktrees/toolbox--release-notes/tools/wip-release/cli.js +175 -0
  126. package/.worktrees/toolbox--release-notes/tools/wip-release/core.mjs +1664 -0
  127. package/.worktrees/toolbox--release-notes/tools/wip-release/mcp-server.mjs +113 -0
  128. package/.worktrees/toolbox--release-notes/tools/wip-release/package.json +36 -0
  129. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/README.md +38 -0
  130. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/SKILL.md +77 -0
  131. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/init.mjs +148 -0
  132. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/package.json +11 -0
  133. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_sort/README.md +15 -0
  134. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_trash/README.md +16 -0
  135. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/dev-updates/README.md +50 -0
  136. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/notes/README.md +26 -0
  137. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +77 -0
  138. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +63 -0
  139. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/product-ideas/README.md +24 -0
  140. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/readme-first-product.md +128 -0
  141. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/read-me-first.md +80 -0
  142. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/LICENSE +52 -0
  143. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/README.md +86 -0
  144. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/SKILL.md +73 -0
  145. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/cli.js +93 -0
  146. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/core.mjs +122 -0
  147. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/guard.mjs +64 -0
  148. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/mcp-server.mjs +92 -0
  149. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/openclaw.plugin.json +8 -0
  150. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/package.json +31 -0
  151. package/.worktrees/toolbox--release-notes/tools/wip-repos/LICENSE +52 -0
  152. package/.worktrees/toolbox--release-notes/tools/wip-repos/README.md +77 -0
  153. package/.worktrees/toolbox--release-notes/tools/wip-repos/SKILL.md +80 -0
  154. package/.worktrees/toolbox--release-notes/tools/wip-repos/claude.mjs +248 -0
  155. package/.worktrees/toolbox--release-notes/tools/wip-repos/cli.mjs +191 -0
  156. package/.worktrees/toolbox--release-notes/tools/wip-repos/core.mjs +290 -0
  157. package/.worktrees/toolbox--release-notes/tools/wip-repos/mcp-server.mjs +157 -0
  158. package/.worktrees/toolbox--release-notes/tools/wip-repos/package.json +34 -0
  159. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/CHANGELOG.md +57 -0
  160. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/LICENSE +52 -0
  161. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/README.md +81 -0
  162. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/REFERENCE.md +122 -0
  163. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SKILL.md +87 -0
  164. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SPEC.md +206 -0
  165. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/detect.mjs +130 -0
  166. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/README.md +20 -0
  167. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/SKILL.md +28 -0
  168. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/cli.mjs +4 -0
  169. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/core.mjs +8 -0
  170. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +27 -0
  171. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/package.json +12 -0
  172. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/install.js +930 -0
  173. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/package.json +32 -0
  174. package/.worktrees/toolbox--save-stale/.license-guard.json +7 -0
  175. package/.worktrees/toolbox--save-stale/.publish-skill.json +4 -0
  176. package/.worktrees/toolbox--save-stale/CHANGELOG.md +1875 -0
  177. package/.worktrees/toolbox--save-stale/CLA.md +19 -0
  178. package/.worktrees/toolbox--save-stale/DEV-GUIDE-GENERAL-PUBLIC.md +949 -0
  179. package/.worktrees/toolbox--save-stale/LICENSE +52 -0
  180. package/.worktrees/toolbox--save-stale/README.md +238 -0
  181. package/.worktrees/toolbox--save-stale/SKILL.md +821 -0
  182. package/.worktrees/toolbox--save-stale/TECHNICAL.md +416 -0
  183. package/.worktrees/toolbox--save-stale/UNIVERSAL-INTERFACE.md +180 -0
  184. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-0.md +29 -0
  185. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-1.md +7 -0
  186. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-2.md +7 -0
  187. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-0.md +37 -0
  188. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-1.md +38 -0
  189. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-10.md +40 -0
  190. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-2.md +40 -0
  191. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-31.md +26 -0
  192. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-32.md +18 -0
  193. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-41.md +28 -0
  194. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-45.md +25 -0
  195. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-46.md +38 -0
  196. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-47.md +42 -0
  197. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-48.md +22 -0
  198. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-49.md +31 -0
  199. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-50.md +24 -0
  200. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-51.md +11 -0
  201. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-52.md +25 -0
  202. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-53.md +22 -0
  203. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-54.md +13 -0
  204. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-55.md +11 -0
  205. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-6.md +72 -0
  206. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-7.md +23 -0
  207. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-9.md +75 -0
  208. package/.worktrees/toolbox--save-stale/_trash/guide 2/DEV-GUIDE.md +487 -0
  209. package/.worktrees/toolbox--save-stale/_trash/guide 2/scripts/deploy-public.sh +152 -0
  210. package/.worktrees/toolbox--save-stale/package.json +27 -0
  211. package/.worktrees/toolbox--save-stale/scripts/SKILL-deploy-public.md +61 -0
  212. package/.worktrees/toolbox--save-stale/scripts/SKILL-post-merge-rename.md +47 -0
  213. package/.worktrees/toolbox--save-stale/scripts/deploy-public.sh +345 -0
  214. package/.worktrees/toolbox--save-stale/scripts/post-merge-rename.sh +210 -0
  215. package/.worktrees/toolbox--save-stale/scripts/publish-skill.sh +134 -0
  216. package/.worktrees/toolbox--save-stale/templates/global-claude-md.md +73 -0
  217. package/.worktrees/toolbox--save-stale/templates/repo-claude-md.template +24 -0
  218. package/.worktrees/toolbox--save-stale/tools/deploy-public/LICENSE +52 -0
  219. package/.worktrees/toolbox--save-stale/tools/deploy-public/README.md +31 -0
  220. package/.worktrees/toolbox--save-stale/tools/deploy-public/SKILL.md +71 -0
  221. package/.worktrees/toolbox--save-stale/tools/deploy-public/deploy-public.sh +264 -0
  222. package/.worktrees/toolbox--save-stale/tools/deploy-public/package.json +9 -0
  223. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/LICENSE +52 -0
  224. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/README.md +46 -0
  225. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/backup.sh +16 -0
  226. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/branch-protect.sh +39 -0
  227. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/crystal-capture.sh +19 -0
  228. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/setup-shell.sh +27 -0
  229. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/visibility-audit.sh +27 -0
  230. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/LICENSE +52 -0
  231. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/README.md +29 -0
  232. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/SKILL.md +57 -0
  233. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/package.json +9 -0
  234. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/post-merge-rename.sh +122 -0
  235. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/INSTALL.md +41 -0
  236. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/guard.mjs +459 -0
  237. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/package.json +18 -0
  238. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/CHANGELOG.md +6 -0
  239. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/LICENSE +52 -0
  240. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/README.md +113 -0
  241. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/REFERENCE.md +86 -0
  242. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/SKILL.md +105 -0
  243. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/guard.mjs +161 -0
  244. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/openclaw.plugin.json +8 -0
  245. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/package.json +27 -0
  246. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/test.sh +119 -0
  247. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/LICENSE +52 -0
  248. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/README.md +69 -0
  249. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/SKILL.md +65 -0
  250. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/cli.mjs +472 -0
  251. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/core.mjs +310 -0
  252. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/guard.mjs +146 -0
  253. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/package.json +22 -0
  254. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/CHANGELOG.md +17 -0
  255. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/LICENSE +52 -0
  256. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/README.md +200 -0
  257. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/SKILL.md +111 -0
  258. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.d.ts +15 -0
  259. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js +170 -0
  260. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js.map +1 -0
  261. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.d.ts +12 -0
  262. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js +104 -0
  263. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js.map +1 -0
  264. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.d.ts +4 -0
  265. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js +5 -0
  266. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js.map +1 -0
  267. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.d.ts +49 -0
  268. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js +72 -0
  269. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js.map +1 -0
  270. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.d.ts +14 -0
  271. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js +227 -0
  272. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js.map +1 -0
  273. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.d.ts +39 -0
  274. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js +325 -0
  275. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js.map +1 -0
  276. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-pull.sh +55 -0
  277. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-push.sh +51 -0
  278. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/mcp-server.mjs +119 -0
  279. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package-lock.json +54 -0
  280. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package.json +43 -0
  281. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/cli/index.ts +189 -0
  282. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/detector.ts +130 -0
  283. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/index.ts +4 -0
  284. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/ledger.ts +116 -0
  285. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/reporter.ts +255 -0
  286. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/scanner.ts +367 -0
  287. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/tsconfig.json +16 -0
  288. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/README.md +49 -0
  289. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/SKILL.md +84 -0
  290. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/format.mjs +597 -0
  291. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/package.json +15 -0
  292. package/.worktrees/toolbox--save-stale/tools/wip-release/CHANGELOG.md +42 -0
  293. package/.worktrees/toolbox--save-stale/tools/wip-release/LICENSE +52 -0
  294. package/.worktrees/toolbox--save-stale/tools/wip-release/README.md +45 -0
  295. package/.worktrees/toolbox--save-stale/tools/wip-release/REFERENCE.md +100 -0
  296. package/.worktrees/toolbox--save-stale/tools/wip-release/SKILL.md +139 -0
  297. package/.worktrees/toolbox--save-stale/tools/wip-release/cli.js +175 -0
  298. package/.worktrees/toolbox--save-stale/tools/wip-release/core.mjs +1664 -0
  299. package/.worktrees/toolbox--save-stale/tools/wip-release/mcp-server.mjs +113 -0
  300. package/.worktrees/toolbox--save-stale/tools/wip-release/package.json +36 -0
  301. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/README.md +38 -0
  302. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/SKILL.md +77 -0
  303. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/init.mjs +148 -0
  304. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/package.json +11 -0
  305. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_sort/README.md +15 -0
  306. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_trash/README.md +16 -0
  307. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/dev-updates/README.md +50 -0
  308. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/notes/README.md +26 -0
  309. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +77 -0
  310. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +63 -0
  311. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/product-ideas/README.md +24 -0
  312. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/readme-first-product.md +128 -0
  313. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/read-me-first.md +80 -0
  314. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/LICENSE +52 -0
  315. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/README.md +86 -0
  316. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/SKILL.md +73 -0
  317. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/cli.js +93 -0
  318. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/core.mjs +122 -0
  319. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/guard.mjs +64 -0
  320. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/mcp-server.mjs +92 -0
  321. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/openclaw.plugin.json +8 -0
  322. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/package.json +31 -0
  323. package/.worktrees/toolbox--save-stale/tools/wip-repos/LICENSE +52 -0
  324. package/.worktrees/toolbox--save-stale/tools/wip-repos/README.md +77 -0
  325. package/.worktrees/toolbox--save-stale/tools/wip-repos/SKILL.md +80 -0
  326. package/.worktrees/toolbox--save-stale/tools/wip-repos/claude.mjs +248 -0
  327. package/.worktrees/toolbox--save-stale/tools/wip-repos/cli.mjs +191 -0
  328. package/.worktrees/toolbox--save-stale/tools/wip-repos/core.mjs +290 -0
  329. package/.worktrees/toolbox--save-stale/tools/wip-repos/mcp-server.mjs +157 -0
  330. package/.worktrees/toolbox--save-stale/tools/wip-repos/package.json +34 -0
  331. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/CHANGELOG.md +57 -0
  332. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/LICENSE +52 -0
  333. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/README.md +81 -0
  334. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/REFERENCE.md +122 -0
  335. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SKILL.md +87 -0
  336. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SPEC.md +206 -0
  337. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/detect.mjs +130 -0
  338. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/README.md +20 -0
  339. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/SKILL.md +28 -0
  340. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/cli.mjs +4 -0
  341. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/core.mjs +8 -0
  342. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +27 -0
  343. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/package.json +12 -0
  344. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/install.js +930 -0
  345. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/package.json +32 -0
  346. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.license-guard.json +7 -0
  347. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.publish-skill.json +4 -0
  348. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CHANGELOG.md +1875 -0
  349. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CLA.md +19 -0
  350. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/DEV-GUIDE-GENERAL-PUBLIC.md +949 -0
  351. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/LICENSE +52 -0
  352. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/README.md +238 -0
  353. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/SKILL.md +821 -0
  354. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/TECHNICAL.md +416 -0
  355. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/UNIVERSAL-INTERFACE.md +180 -0
  356. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-0.md +29 -0
  357. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-1.md +7 -0
  358. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-2.md +7 -0
  359. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-0.md +37 -0
  360. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-1.md +38 -0
  361. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-10.md +40 -0
  362. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-2.md +40 -0
  363. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-31.md +26 -0
  364. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-32.md +18 -0
  365. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-41.md +28 -0
  366. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-45.md +25 -0
  367. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-46.md +38 -0
  368. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-47.md +42 -0
  369. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-48.md +22 -0
  370. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-49.md +31 -0
  371. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-50.md +24 -0
  372. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-51.md +11 -0
  373. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-52.md +25 -0
  374. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-53.md +22 -0
  375. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-54.md +13 -0
  376. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-55.md +11 -0
  377. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-6.md +72 -0
  378. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-7.md +23 -0
  379. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-9.md +75 -0
  380. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/DEV-GUIDE.md +487 -0
  381. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/scripts/deploy-public.sh +152 -0
  382. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/package.json +27 -0
  383. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-deploy-public.md +61 -0
  384. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-post-merge-rename.md +47 -0
  385. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/deploy-public.sh +345 -0
  386. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/post-merge-rename.sh +210 -0
  387. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/publish-skill.sh +134 -0
  388. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/global-claude-md.md +73 -0
  389. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/repo-claude-md.template +24 -0
  390. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/LICENSE +52 -0
  391. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/README.md +31 -0
  392. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/SKILL.md +71 -0
  393. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/deploy-public.sh +264 -0
  394. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/package.json +9 -0
  395. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/LICENSE +52 -0
  396. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/README.md +46 -0
  397. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/backup.sh +16 -0
  398. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/branch-protect.sh +39 -0
  399. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/crystal-capture.sh +19 -0
  400. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/setup-shell.sh +27 -0
  401. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/visibility-audit.sh +27 -0
  402. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/LICENSE +52 -0
  403. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/README.md +29 -0
  404. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/SKILL.md +57 -0
  405. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/package.json +9 -0
  406. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/post-merge-rename.sh +122 -0
  407. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/INSTALL.md +41 -0
  408. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/guard.mjs +418 -0
  409. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/package.json +18 -0
  410. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/CHANGELOG.md +6 -0
  411. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/LICENSE +52 -0
  412. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/README.md +113 -0
  413. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/REFERENCE.md +86 -0
  414. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/SKILL.md +105 -0
  415. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/guard.mjs +161 -0
  416. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/openclaw.plugin.json +8 -0
  417. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/package.json +27 -0
  418. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/test.sh +119 -0
  419. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/LICENSE +52 -0
  420. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/README.md +69 -0
  421. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/SKILL.md +65 -0
  422. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/cli.mjs +472 -0
  423. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/core.mjs +310 -0
  424. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/guard.mjs +146 -0
  425. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/package.json +22 -0
  426. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/CHANGELOG.md +17 -0
  427. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/LICENSE +52 -0
  428. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/README.md +200 -0
  429. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/SKILL.md +111 -0
  430. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.d.ts +15 -0
  431. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js +170 -0
  432. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js.map +1 -0
  433. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.d.ts +12 -0
  434. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js +104 -0
  435. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js.map +1 -0
  436. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.d.ts +4 -0
  437. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js +5 -0
  438. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js.map +1 -0
  439. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.d.ts +49 -0
  440. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js +72 -0
  441. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js.map +1 -0
  442. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.d.ts +14 -0
  443. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js +227 -0
  444. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js.map +1 -0
  445. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.d.ts +39 -0
  446. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js +325 -0
  447. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js.map +1 -0
  448. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-pull.sh +55 -0
  449. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-push.sh +51 -0
  450. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/mcp-server.mjs +119 -0
  451. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package-lock.json +54 -0
  452. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package.json +43 -0
  453. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/cli/index.ts +189 -0
  454. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/detector.ts +130 -0
  455. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/index.ts +4 -0
  456. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/ledger.ts +116 -0
  457. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/reporter.ts +255 -0
  458. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/scanner.ts +367 -0
  459. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/tsconfig.json +16 -0
  460. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/README.md +49 -0
  461. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/SKILL.md +84 -0
  462. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/format.mjs +597 -0
  463. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/package.json +15 -0
  464. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/CHANGELOG.md +42 -0
  465. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/LICENSE +52 -0
  466. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/README.md +45 -0
  467. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/REFERENCE.md +100 -0
  468. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/SKILL.md +139 -0
  469. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/cli.js +175 -0
  470. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/core.mjs +1664 -0
  471. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/mcp-server.mjs +113 -0
  472. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/package.json +36 -0
  473. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/README.md +38 -0
  474. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/SKILL.md +77 -0
  475. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/init.mjs +148 -0
  476. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/package.json +11 -0
  477. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_sort/README.md +15 -0
  478. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_trash/README.md +16 -0
  479. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/dev-updates/README.md +50 -0
  480. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/notes/README.md +26 -0
  481. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +77 -0
  482. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +63 -0
  483. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/product-ideas/README.md +24 -0
  484. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/readme-first-product.md +128 -0
  485. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/read-me-first.md +80 -0
  486. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/LICENSE +52 -0
  487. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/README.md +86 -0
  488. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/SKILL.md +73 -0
  489. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/cli.js +93 -0
  490. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/core.mjs +122 -0
  491. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/guard.mjs +64 -0
  492. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/mcp-server.mjs +92 -0
  493. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/openclaw.plugin.json +8 -0
  494. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/package.json +31 -0
  495. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/LICENSE +52 -0
  496. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/README.md +77 -0
  497. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/SKILL.md +80 -0
  498. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/claude.mjs +248 -0
  499. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/cli.mjs +191 -0
  500. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/core.mjs +290 -0
  501. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/mcp-server.mjs +157 -0
  502. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/package.json +34 -0
  503. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/CHANGELOG.md +57 -0
  504. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/LICENSE +52 -0
  505. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/README.md +81 -0
  506. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/REFERENCE.md +122 -0
  507. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SKILL.md +87 -0
  508. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SPEC.md +206 -0
  509. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/detect.mjs +130 -0
  510. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/README.md +20 -0
  511. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/SKILL.md +28 -0
  512. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/cli.mjs +4 -0
  513. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/core.mjs +8 -0
  514. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +27 -0
  515. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/package.json +12 -0
  516. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/install.js +930 -0
  517. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/package.json +32 -0
  518. package/CHANGELOG.md +45 -0
  519. package/DEV-GUIDE-GENERAL-PUBLIC.md +6 -6
  520. package/SKILL.md +1 -1
  521. package/_trash/RELEASE-NOTES-v1-9-56.md +42 -0
  522. package/package.json +1 -1
  523. package/tools/deploy-public/package.json +1 -1
  524. package/tools/post-merge-rename/package.json +1 -1
  525. package/tools/wip-branch-guard/guard.mjs +46 -5
  526. package/tools/wip-branch-guard/package.json +1 -1
  527. package/tools/wip-file-guard/package.json +1 -1
  528. package/tools/wip-license-guard/package.json +1 -1
  529. package/tools/wip-license-hook/package.json +1 -1
  530. package/tools/wip-readme-format/package.json +1 -1
  531. package/tools/wip-release/core.mjs +3 -3
  532. package/tools/wip-release/package.json +1 -1
  533. package/tools/wip-repo-init/package.json +1 -1
  534. package/tools/wip-repo-permissions-hook/package.json +1 -1
  535. package/tools/wip-repos/package.json +1 -1
  536. package/tools/wip-universal-installer/package.json +1 -1
@@ -0,0 +1,416 @@
1
+ ###### WIP Computer
2
+
3
+ # AI DevOps Toolbox
4
+
5
+ ## Want your AI to dev? Here's the full system.
6
+
7
+ Your AI writes code. But does it know how to release it? Check license compliance? Sync private repos to public ones? Follow a real development process?
8
+
9
+ **AI DevOps Toolbox** is a collection of battle-tested tools for AI-assisted software development. Built by a team of humans and AIs shipping real software together.
10
+
11
+ Used internally to manage 100+ repos, 200+ releases, and daily license compliance across the [wipcomputer](https://github.com/wipcomputer) org. These tools run in production every day.
12
+
13
+ **Real-world example:** [wip-universal-installer](tools/wip-universal-installer/) ships its releases entirely through wip-release. 6 releases, v2.1.5, changelog and GitHub releases all generated automatically.
14
+
15
+ ## Quick Start
16
+
17
+ ```bash
18
+ # Install LDM OS (shared infrastructure for all your AI tools)
19
+ npm install -g @wipcomputer/wip-ldm-os
20
+ ldm init
21
+
22
+ # Preview what will be installed (12 tools, 39+ interfaces)
23
+ ldm install wipcomputer/wip-ai-devops-toolbox --dry-run
24
+
25
+ # Install everything
26
+ ldm install wipcomputer/wip-ai-devops-toolbox
27
+
28
+ # Verify
29
+ ldm doctor
30
+ ```
31
+
32
+ ## Tools
33
+
34
+ ### Universal Installer (built into [LDM OS](https://github.com/wipcomputer/wip-ldm-os))
35
+
36
+ The Universal Interface specification for agent-native software. Defines how every tool ships six interfaces: CLI, importable module, MCP Server, OpenClaw Plugin, Skill, Claude Code Hook. The detection engine powers [`ldm install`](https://github.com/wipcomputer/wip-ldm-os).
37
+
38
+ ```bash
39
+ # Detect what interfaces a repo supports
40
+ ldm install /path/to/repo --dry-run
41
+
42
+ # Install a tool from GitHub
43
+ ldm install wipcomputer/wip-file-guard
44
+
45
+ # Standalone fallback (bootstraps LDM OS if needed)
46
+ wip-install wipcomputer/wip-file-guard
47
+ ```
48
+
49
+ **Source:** Pure JavaScript, no build step. [`tools/wip-universal-installer/detect.mjs`](tools/wip-universal-installer/detect.mjs) (detection), [`tools/wip-universal-installer/install.js`](tools/wip-universal-installer/install.js) (standalone installer). Zero dependencies. LDM OS deploy engine at [`lib/deploy.mjs`](https://github.com/wipcomputer/wip-ldm-os/blob/main/lib/deploy.mjs).
50
+
51
+ [README](tools/wip-universal-installer/README.md) ... [SKILL.md](tools/wip-universal-installer/SKILL.md) ... [Universal Interface Spec](tools/wip-universal-installer/SPEC.md) ... [Reference](tools/wip-universal-installer/REFERENCE.md)
52
+
53
+ ### Dev Guide
54
+
55
+ Best practices for AI-assisted development teams. Covers release process, repo structure, the `ai/` folder convention, branch protection, private/public repo patterns, post-merge branch renaming, repo directory structure, Cloudflare Workers deploy guards, and more.
56
+
57
+ [Read the Dev Guide](DEV-GUIDE-GENERAL-PUBLIC.md)
58
+
59
+ ### LDM Dev Tools.app
60
+
61
+ macOS automation wrapper. A native `.app` bundle that runs scheduled jobs (backup, branch protection audit, etc.) with Full Disk Access. One app to grant permissions to, one place to add new automation.
62
+
63
+ **Source:** Job scripts are plain shell. The app provides a Full Disk Access wrapper.
64
+
65
+ | Script | What it does | Source |
66
+ |--------|-------------|--------|
67
+ | `backup.sh` | Calls `~/.ldm/bin/ldm-backup.sh` (unified backup) | wip-ldm-os-private/scripts/ |
68
+ | [`branch-protect.sh`](tools/ldm-jobs/branch-protect.sh) | Audit and enforce branch protection across all org repos | tools/ldm-jobs/ |
69
+ | [`visibility-audit.sh`](tools/ldm-jobs/visibility-audit.sh) | Audit public repos for missing -private counterparts | tools/ldm-jobs/ |
70
+
71
+ The backup script is deployed by `ldm install` to `~/.ldm/bin/`. It backs up ~/.ldm/, ~/.openclaw/, ~/.claude/, and the workspace. See `how-backup-works.md` in the workspace docs.
72
+
73
+ ```bash
74
+ # Run standalone
75
+ ~/.ldm/bin/ldm-backup.sh # or --dry-run to preview
76
+ bash tools/ldm-jobs/branch-protect.sh
77
+ bash tools/ldm-jobs/visibility-audit.sh
78
+
79
+ # Or via the app wrapper
80
+ open -W ~/Applications/LDMDevTools.app --args backup
81
+ open -W ~/Applications/LDMDevTools.app --args branch-protect
82
+ open -W ~/Applications/LDMDevTools.app --args visibility-audit
83
+ ```
84
+
85
+ [README](tools/ldm-jobs/README.md)
86
+
87
+ **Setup:** Drag `LDMDevTools.app` into System Settings > Privacy & Security > Full Disk Access. Then schedule via cron:
88
+
89
+ ```bash
90
+ # Daily backup at midnight, branch protection audit at 1 AM, visibility audit at 2 AM
91
+ 0 0 * * * open -W ~/Applications/LDMDevTools.app --args backup >> ~/.ldm/logs/cron.log 2>&1
92
+ 0 1 * * * open -W ~/Applications/LDMDevTools.app --args branch-protect >> ~/.ldm/logs/cron.log 2>&1
93
+ 0 2 * * * open -W ~/Applications/LDMDevTools.app --args visibility-audit >> ~/.ldm/logs/cron.log 2>&1
94
+ ```
95
+
96
+ Logs: `~/.ldm/logs/`
97
+
98
+ ### wip-release
99
+
100
+ One-command release pipeline. Version bump, changelog, SKILL.md sync, npm publish, GitHub release, website skill publish. All in one shot.
101
+
102
+ ```bash
103
+ wip-release patch # auto-detects RELEASE-NOTES-v{version}.md
104
+ wip-release minor --dry-run
105
+ wip-release major
106
+ ```
107
+
108
+ **Release notes are mandatory.** Write `RELEASE-NOTES-v{version}.md` (dashes, not dots) on your feature branch. Commit it with the code. The PR diff shows both code and notes for review. On release, wip-release auto-detects the file.
109
+
110
+ **Quality gates (all run before release):**
111
+ - **Release notes:** Must come from a file (--notes flag removed). Three sources: RELEASE-NOTES file, ai/dev-updates/, or --notes-file. Blocks changelog-format entries ("fix: ...", "add: ..."). Must reference at least one GitHub issue (#XX).
112
+ - **Product docs:** Warns if roadmap, readme-first, or dev-updates are stale. Auto-updates version/date in `ai/product/plans-prds/roadmap.md` and `ai/product/readme-first-product.md` before commit.
113
+ - **Technical docs:** When source files (.mjs, .js, .ts) changed since last tag, checks that SKILL.md or TECHNICAL.md was also updated. Warns on patch, blocks on minor/major. Skip: `--skip-tech-docs-check`.
114
+ - **Interface coverage (toolbox repos):** Scans `tools/*/` for actual interfaces (CLI, Module, MCP, OC Plugin, Skill, CC Hook). Compares against README.md and SKILL.md coverage table. Reports: missing from table, detected but not marked, marked but not detected. Warns on patch, blocks on minor/major. Skip: `--skip-coverage-check`.
115
+ - **Stale branches:** Warns (patch) or blocks (minor/major) if merged branches exist on remote.
116
+ - **Worktree guard:** Blocks releases from linked worktrees. Must run from main working tree. Skip: `--skip-worktree-check`.
117
+ - **Dogfood cooldown:** Writes `.last-release` marker. Branch guard blocks `npm install -g` for 5 minutes.
118
+
119
+ **Post-release automation:**
120
+ - Post-merge branch rename (--merged-YYYY-MM-DD)
121
+ - Stale worktree prune from `_worktrees/`
122
+ - Skill publish to wip.computer/install/{name}.txt
123
+ - Product docs version sync
124
+
125
+ **All 7 CLIs support `--version` and `-v`.**
126
+
127
+ **Source:** Pure JavaScript, no build step. [`tools/wip-release/cli.js`](tools/wip-release/cli.js) (entry point), [`tools/wip-release/core.mjs`](tools/wip-release/core.mjs) (main logic), [`tools/wip-release/mcp-server.mjs`](tools/wip-release/mcp-server.mjs) (MCP server). Zero dependencies.
128
+
129
+ [README](tools/wip-release/README.md) ... [SKILL.md](tools/wip-release/SKILL.md) ... [Reference](tools/wip-release/REFERENCE.md)
130
+
131
+ ### wip-license-hook
132
+
133
+ License rug-pull detection. Scans every dependency and fork for license changes. Pre-pull hook blocks merges if a license changed upstream. Pre-push hook alerts. Daily cron scan. Generates a public compliance dashboard.
134
+
135
+ ```bash
136
+ wip-license-hook scan
137
+ wip-license-hook audit
138
+ ```
139
+
140
+ **Source:** TypeScript. All source in [`tools/wip-license-hook/src/`](tools/wip-license-hook/src/):
141
+
142
+ | File | What it does |
143
+ |------|-------------|
144
+ | `src/cli/index.ts` | CLI entry point |
145
+ | `src/core/scanner.ts` | Dependency scanning (npm, pip, cargo, go, forks) |
146
+ | `src/core/detector.ts` | License text fingerprinting |
147
+ | `src/core/ledger.ts` | Ledger persistence and snapshots |
148
+ | `src/core/reporter.ts` | Reporting and dashboard HTML generation |
149
+
150
+ [README](tools/wip-license-hook/README.md) ... [SKILL.md](tools/wip-license-hook/SKILL.md)
151
+
152
+ ### wip-repo-permissions-hook
153
+
154
+ Repo visibility guard. Blocks repos from going public without a `-private` counterpart. Works as a CLI, Claude Code hook, and OpenClaw plugin. Catches accidental exposure of internal plans, todos, and development context.
155
+
156
+ ```bash
157
+ # Check a single repo
158
+ wip-repo-permissions check wipcomputer/memory-crystal
159
+ # -> OK: memory-crystal-private exists
160
+
161
+ # Audit all public repos in org
162
+ wip-repo-permissions audit wipcomputer
163
+ # -> Lists violations, exit code 1 if any found
164
+ ```
165
+
166
+ **Source:** Pure JavaScript, no build step. [`tools/wip-repo-permissions-hook/core.mjs`](tools/wip-repo-permissions-hook/core.mjs) (logic), [`tools/wip-repo-permissions-hook/cli.js`](tools/wip-repo-permissions-hook/cli.js) (CLI), [`tools/wip-repo-permissions-hook/guard.mjs`](tools/wip-repo-permissions-hook/guard.mjs) (Claude Code hook). Zero dependencies.
167
+
168
+ [README](tools/wip-repo-permissions-hook/README.md) ... [SKILL.md](tools/wip-repo-permissions-hook/SKILL.md)
169
+
170
+ ### post-merge-rename.sh
171
+
172
+ Post-merge branch renaming. Scans for merged branches that haven't been renamed, appends `--merged-YYYY-MM-DD` to preserve history. Runs automatically as part of `wip-release`, or standalone.
173
+
174
+ **Source:** Plain shell. [`scripts/post-merge-rename.sh`](scripts/post-merge-rename.sh)
175
+
176
+ ```bash
177
+ bash scripts/post-merge-rename.sh # scan + rename all
178
+ bash scripts/post-merge-rename.sh --dry-run # preview only
179
+ bash scripts/post-merge-rename.sh <branch> # rename specific branch
180
+ ```
181
+
182
+ ### wip-file-guard
183
+
184
+ Hook that blocks destructive edits to protected identity files. Works with Claude Code CLI and OpenClaw. Protects CLAUDE.md, SHARED-CONTEXT.md, SOUL.md, IDENTITY.md, MEMORY.md, and pattern-matched memory/journal files.
185
+
186
+ Two rules: block `Write` on protected files entirely, block `Edit` when removing more than 2 lines or replacing more than 4 lines.
187
+
188
+ ```bash
189
+ # List protected files
190
+ wip-file-guard --list
191
+ ```
192
+
193
+ **Source:** Pure JavaScript, no build step. [`tools/wip-file-guard/guard.mjs`](tools/wip-file-guard/guard.mjs) (single file, all logic). Zero dependencies.
194
+
195
+ [README](tools/wip-file-guard/README.md) ... [SKILL.md](tools/wip-file-guard/SKILL.md) ... [Reference](tools/wip-file-guard/REFERENCE.md)
196
+
197
+ ### deploy-public.sh
198
+
199
+ Private-to-public repo sync. The full pipeline:
200
+
201
+ 1. Rsyncs all files except `ai/` from private to public repo clone
202
+ 2. Rewrites repository URL from private to public in package.json
203
+ 3. Creates a branch, commits with co-authors, pushes, creates PR
204
+ 4. Merges PR (--merge, never squash)
205
+ 5. Creates matching GitHub release on public repo (pulls notes from private repo's release)
206
+ 6. Publishes to npm from public repo clone
207
+ 7. Publishes to GitHub Packages from public repo clone (uses `gh auth token`)
208
+ 8. Cleans stale branches on public repo
209
+
210
+ ```bash
211
+ bash scripts/deploy-public.sh /path/to/private-repo wipcomputer/public-repo
212
+ bash scripts/deploy-public.sh /path/to/private-repo wipcomputer/public-repo --dry-run
213
+ ```
214
+
215
+ **Source:** Plain shell. [`scripts/deploy-public.sh`](scripts/deploy-public.sh) and [`tools/deploy-public/deploy-public.sh`](tools/deploy-public/deploy-public.sh)
216
+
217
+ ### wip-repos
218
+
219
+ Repo manifest reconciler. Makes `repos-manifest.json` the single source of truth for repo organization. Like prettier for folder structure. Move folders around all day; on sync, everything snaps back to where the manifest says. Also generates cross-repo CLAUDE.md ecosystem sections.
220
+
221
+ ```bash
222
+ # Check for drift
223
+ wip-repos check
224
+
225
+ # Sync filesystem to match manifest
226
+ wip-repos sync --dry-run
227
+
228
+ # Add a repo
229
+ wip-repos add ldm-os/utilities/my-tool --remote wipcomputer/my-tool
230
+
231
+ # Move a repo in the manifest
232
+ wip-repos move ldm-os/utilities/my-tool --to ldm-os/devops/my-tool
233
+
234
+ # Generate directory tree
235
+ wip-repos tree
236
+
237
+ # Generate cross-repo CLAUDE.md ecosystem sections
238
+ wip-repos claude # all repos
239
+ wip-repos claude my-repo # one repo
240
+ wip-repos claude --init # create CLAUDE.md for repos missing one
241
+ wip-repos claude --dry-run # preview
242
+ ```
243
+
244
+ **How `wip-repos claude` works:**
245
+
246
+ Agents can't read sibling repos at runtime. This command solves that by pre-generating cross-repo context into each repo's CLAUDE.md.
247
+
248
+ 1. Reads all repos from `repos-manifest.json`
249
+ 2. Extracts metadata from each: `package.json` (name, version, bin, exports), `SKILL.md` (interfaces), directory structure
250
+ 3. For each repo, determines relevant siblings (same category + core repos)
251
+ 4. Generates an `## Ecosystem` section between `<!-- wip-repos:start -->` / `<!-- wip-repos:end -->` delimiter comments
252
+ 5. Hand-written CLAUDE.md content outside the delimiters is never touched
253
+
254
+ Templates at `templates/global-claude-md.md` (for `~/.claude/CLAUDE.md`) and `templates/repo-claude-md.template` (for per-repo starter).
255
+
256
+ **Source:** Pure JavaScript, no build step. [`tools/wip-repos/core.mjs`](tools/wip-repos/core.mjs) (manifest logic), [`tools/wip-repos/claude.mjs`](tools/wip-repos/claude.mjs) (ecosystem generator), [`tools/wip-repos/cli.mjs`](tools/wip-repos/cli.mjs) (CLI). Zero dependencies.
257
+
258
+ [README](tools/wip-repos/README.md)
259
+
260
+ ### wip-repo-init
261
+
262
+ Scaffold the standard `ai/` directory in any repo. Plans, notes, ideas, dev updates, todos. One command.
263
+
264
+ New repo: creates the full structure. Existing repo: moves old `ai/` contents to `ai/_sort/ai_old/` so you can sort at your own pace. Nothing is deleted.
265
+
266
+ ```bash
267
+ wip-repo-init /path/to/repo # scaffold ai/ in a repo
268
+ wip-repo-init /path/to/repo --dry-run # preview without changes
269
+ ```
270
+
271
+ **Source:** Pure JavaScript, no build step. [`tools/wip-repo-init/init.mjs`](tools/wip-repo-init/init.mjs). Zero dependencies.
272
+
273
+ [README](tools/wip-repo-init/README.md) ... [SKILL.md](tools/wip-repo-init/SKILL.md)
274
+
275
+ ### wip-readme-format
276
+
277
+ Generate or validate READMEs that follow the WIP Computer standard. Badges, title, tagline, "Teach Your AI" block, features, interface coverage table, license.
278
+
279
+ ```bash
280
+ wip-readme-format /path/to/repo # generate section files
281
+ wip-readme-format /path/to/repo --deploy # assemble into final README
282
+ wip-readme-format /path/to/repo --dry-run # preview without writing
283
+ ```
284
+
285
+ **Source:** Pure JavaScript, no build step. [`tools/wip-readme-format/format.mjs`](tools/wip-readme-format/format.mjs). Zero dependencies. Reads templates from `ai/wip-templates/readme/`.
286
+
287
+ [README](tools/wip-readme-format/README.md) ... [SKILL.md](tools/wip-readme-format/SKILL.md)
288
+
289
+ ### wip-license-guard
290
+
291
+ License enforcement for your own repos. Checks copyright, dual-license (MIT+AGPL), CLA, README license section. Toolbox-aware: checks every sub-tool. Interactive first-run setup. Auto-fix mode repairs issues.
292
+
293
+ ```bash
294
+ wip-license-guard check # audit current repo
295
+ wip-license-guard check --fix # audit and auto-fix
296
+ wip-license-guard init --from-standard # apply WIP Computer defaults
297
+ wip-license-guard readme-license # audit/fix license blocks across all repos
298
+ ```
299
+
300
+ **Claude Code Hook:** Also wired as a PreToolUse hook (`guard.mjs`). On `ldm install`, registers in `~/.claude/settings.json`. Blocks `git commit` and `git push` when license compliance fails. Only checks repos with `.license-guard.json`. Repos without config silently pass.
301
+
302
+ **Source:** Pure JavaScript, no build step. [`tools/wip-license-guard/cli.mjs`](tools/wip-license-guard/cli.mjs) (CLI), [`tools/wip-license-guard/core.mjs`](tools/wip-license-guard/core.mjs) (logic), [`tools/wip-license-guard/guard.mjs`](tools/wip-license-guard/guard.mjs) (CC hook). Zero dependencies.
303
+
304
+ [README](tools/wip-license-guard/README.md) ... [SKILL.md](tools/wip-license-guard/SKILL.md)
305
+
306
+ ### wip-branch-guard
307
+
308
+ Blocks all writes on main branch. The enforcement layer for required worktrees. PreToolUse hook that catches Write, Edit, and destructive Bash commands. Resolves the repo from the file path, not the CWD. If a file is outside any git repo (e.g. `~/.claude/plans/`), the guard allows edits immediately. Only protects files within git repos.
309
+
310
+ **Features:**
311
+ - **Workflow teaching:** Error messages include the full 8-step dev process (worktree, branch, commit, push, PR, merge, wip-release, deploy-public). Agents learn the workflow from the error, not just that they're blocked.
312
+ - **Worktree path warning:** Warns when `git worktree add` creates outside `_worktrees/`. Suggests `ldm worktree add`.
313
+ - **Dogfood cooldown:** After `wip-release`, blocks `npm install -g` for 5 minutes. Forces dogfooding via the install prompt.
314
+ - **Worktree requirement on branches:** On any non-main branch, edits blocked if not inside a worktree. Separate error message directs agents to create a worktree properly.
315
+ - **Dangerous flag blocking:** `--no-verify` and `git push --force` blocked on any branch.
316
+ - **Shared state allowlist:** CLAUDE.md, SHARED-CONTEXT.md, daily logs, `~/.ldm/logs/` always writable on main.
317
+ - **Non-repo passthrough:** Files outside any git repo allowed immediately.
318
+
319
+ ```bash
320
+ wip-branch-guard --check # report current branch status
321
+ ```
322
+
323
+ **Source:** Pure JavaScript, no build step. [`tools/wip-branch-guard/guard.mjs`](tools/wip-branch-guard/guard.mjs). Zero dependencies.
324
+
325
+ ## Source Code
326
+
327
+ All implementation source is committed in this repo. No closed binaries, no mystery boxes.
328
+
329
+ | Tool | Language | Source location | Build step? |
330
+ |------|----------|----------------|-------------|
331
+ | Dev Guide | Markdown | `DEV-GUIDE-GENERAL-PUBLIC.md` | None. |
332
+ | LDM Dev Tools jobs | Shell | `tools/ldm-jobs/backup.sh`, `branch-protect.sh`, `visibility-audit.sh` | None. Runnable standalone or via `.app` wrapper. |
333
+ | wip-release | JavaScript (ESM) | `tools/wip-release/cli.js`, `core.mjs`, `mcp-server.mjs` | None. What you see is what runs. |
334
+ | wip-license-hook | TypeScript | `tools/wip-license-hook/src/**/*.ts`, `mcp-server.mjs` | `cd tools/wip-license-hook && npm install && npm run build` |
335
+ | wip-license-guard | JavaScript (ESM) | `tools/wip-license-guard/cli.mjs`, `core.mjs`, `guard.mjs` | None. What you see is what runs. |
336
+ | wip-repo-permissions-hook | JavaScript (ESM) | `tools/wip-repo-permissions-hook/core.mjs`, `cli.js`, `guard.mjs`, `mcp-server.mjs` | None. What you see is what runs. |
337
+ | post-merge-rename.sh | Shell | `scripts/post-merge-rename.sh` | None. |
338
+ | wip-file-guard | JavaScript (ESM) | `tools/wip-file-guard/guard.mjs` | None. What you see is what runs. |
339
+ | wip-branch-guard | JavaScript (ESM) | `tools/wip-branch-guard/guard.mjs` | None. What you see is what runs. |
340
+ | wip-universal-installer | JavaScript (ESM) | `tools/wip-universal-installer/detect.mjs`, `install.js` | None. What you see is what runs. |
341
+ | deploy-public.sh | Shell | `scripts/deploy-public.sh` | None. |
342
+ | wip-repos | JavaScript (ESM) | `tools/wip-repos/core.mjs`, `cli.mjs`, `mcp-server.mjs`, `claude.mjs` | None. What you see is what runs. |
343
+ | wip-repo-init | JavaScript (ESM) | `tools/wip-repo-init/init.mjs` | None. What you see is what runs. |
344
+ | wip-readme-format | JavaScript (ESM) | `tools/wip-readme-format/format.mjs` | None. What you see is what runs. |
345
+
346
+ Previously standalone tools (wip-release, wip-license-hook, wip-file-guard, wip-universal-installer) were merged here. The standalone repos redirect to this one.
347
+
348
+ ### Private/Public Repo Pattern
349
+
350
+ Development happens in private repos (with `ai/` folders for internal notes, plans, dev updates). When publishing, `deploy-public.sh` syncs everything except `ai/` to the public repo. Source files are always committed. Compiled output (`dist/`) is gitignored and only published to npm.
351
+
352
+ ## Development
353
+
354
+ ### wip-license-hook (TypeScript)
355
+
356
+ ```bash
357
+ cd tools/wip-license-hook
358
+ npm install
359
+ npm run build # compiles src/ -> dist/
360
+ node dist/cli/index.js scan # test locally
361
+ ```
362
+
363
+ ### wip-release (JavaScript)
364
+
365
+ No build step needed. Edit `cli.js` or `core.mjs` and test directly:
366
+
367
+ ```bash
368
+ cd tools/wip-release
369
+ node cli.js --dry-run patch --notes="test"
370
+ ```
371
+
372
+ ## Install
373
+
374
+ Tell your AI:
375
+
376
+ ```
377
+ Read wip.computer/install/wip-ai-devops-toolbox.txt
378
+
379
+ Then explain what these tools do and help me set them up.
380
+ ```
381
+
382
+ Or install via LDM OS:
383
+
384
+ ```bash
385
+ npm install -g @wipcomputer/wip-ldm-os
386
+ ldm init
387
+ ldm install wipcomputer/wip-ai-devops-toolbox --dry-run
388
+ ldm install wipcomputer/wip-ai-devops-toolbox
389
+ ldm doctor
390
+ ```
391
+
392
+ Or install the root package directly:
393
+
394
+ ```bash
395
+ npm install -g @wipcomputer/wip-ai-devops-toolbox
396
+ ```
397
+
398
+ Or install individual tools:
399
+
400
+ ```bash
401
+ npm install -g @wipcomputer/wip-release
402
+ npm install -g @wipcomputer/wip-license-hook
403
+ npm install -g @wipcomputer/wip-file-guard
404
+ npm install -g @wipcomputer/wip-repos
405
+ ```
406
+
407
+ ## License
408
+
409
+ Dual-license model designed to keep tools free while preventing commercial resellers.
410
+
411
+ ```
412
+ MIT All CLI tools, MCP servers, skills, and hooks (use anywhere, no restrictions).
413
+ AGPLv3 Commercial redistribution, marketplace listings, or bundling into paid services.
414
+ ```
415
+
416
+ Built by Parker Todd Brooks, Lēsa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).
@@ -0,0 +1,180 @@
1
+ # The Universal Interface Specification
2
+
3
+ Every tool is a sensor, an actuator, or both. Every tool should be accessible through multiple interfaces. We call this the Universal Interface.
4
+
5
+ This is the spec.
6
+
7
+ ## The Six Interfaces
8
+
9
+ ### 1. CLI
10
+
11
+ A shell command. The most universal interface. If it has a terminal, it works.
12
+
13
+ **Convention:** `package.json` with a `bin` field.
14
+
15
+ **Detection:** `pkg.bin` exists.
16
+
17
+ **Install:** `npm install -g .` or `npm link`.
18
+
19
+ ```json
20
+ {
21
+ "bin": {
22
+ "wip-grok": "./cli.mjs"
23
+ }
24
+ }
25
+ ```
26
+
27
+ ### 2. Module
28
+
29
+ An importable ES module. The programmatic interface. Other tools compose with it.
30
+
31
+ **Convention:** `package.json` with `main` or `exports` field. File is `core.mjs` by convention.
32
+
33
+ **Detection:** `pkg.main` or `pkg.exports` exists.
34
+
35
+ **Install:** `npm install <package>` or import directly from path.
36
+
37
+ ```json
38
+ {
39
+ "type": "module",
40
+ "main": "core.mjs",
41
+ "exports": {
42
+ ".": "./core.mjs",
43
+ "./cli": "./cli.mjs"
44
+ }
45
+ }
46
+ ```
47
+
48
+ ### 3. MCP Server
49
+
50
+ A JSON-RPC server implementing the Model Context Protocol. Any MCP-compatible agent can use it.
51
+
52
+ **Convention:** `mcp-server.mjs` (or `.js`, `.ts`) at the repo root. Uses `@modelcontextprotocol/sdk`.
53
+
54
+ **Detection:** One of `mcp-server.mjs`, `mcp-server.js`, `mcp-server.ts`, `dist/mcp-server.js` exists.
55
+
56
+ **Install:** Add to `.mcp.json`:
57
+
58
+ ```json
59
+ {
60
+ "tool-name": {
61
+ "command": "node",
62
+ "args": ["/path/to/mcp-server.mjs"]
63
+ }
64
+ }
65
+ ```
66
+
67
+ ### 4. OpenClaw Plugin
68
+
69
+ A plugin for OpenClaw agents. Lifecycle hooks, tool registration, settings.
70
+
71
+ **Convention:** `openclaw.plugin.json` at the repo root.
72
+
73
+ **Detection:** `openclaw.plugin.json` exists.
74
+
75
+ **Install:** Copy to `~/.openclaw/extensions/<name>/`, run `npm install --omit=dev`.
76
+
77
+ ### 5. Skill (SKILL.md)
78
+
79
+ A markdown file that teaches agents when and how to use the tool. The instruction interface.
80
+
81
+ **Convention:** `SKILL.md` at the repo root. YAML frontmatter with name, version, description, metadata.
82
+
83
+ **Detection:** `SKILL.md` exists.
84
+
85
+ **Install:** Referenced by path. Agents read it when they need the tool.
86
+
87
+ ```yaml
88
+ ---
89
+ name: wip-grok
90
+ version: 1.0.0
91
+ description: xAI Grok API. Search the web, search X, generate images.
92
+ metadata:
93
+ category: search,media
94
+ capabilities:
95
+ - web-search
96
+ - image-generation
97
+ ---
98
+ ```
99
+
100
+ ### 6. Claude Code Hook
101
+
102
+ A hook that runs during Claude Code's tool lifecycle (PreToolUse, Stop, etc.).
103
+
104
+ **Convention:** `guard.mjs` at repo root, or `claudeCode.hook` in `package.json`.
105
+
106
+ **Detection:** `guard.mjs` exists, or `pkg.claudeCode.hook` is defined.
107
+
108
+ **Install:** Added to `~/.claude/settings.json` under `hooks`.
109
+
110
+ ```json
111
+ {
112
+ "hooks": {
113
+ "PreToolUse": [{
114
+ "matcher": "Edit|Write",
115
+ "hooks": [{
116
+ "type": "command",
117
+ "command": "node /path/to/guard.mjs",
118
+ "timeout": 5
119
+ }]
120
+ }]
121
+ }
122
+ }
123
+ ```
124
+
125
+ ## Architecture
126
+
127
+ Every repo that follows this spec has the same basic structure:
128
+
129
+ ```
130
+ your-tool/
131
+ core.mjs pure logic, zero or minimal deps
132
+ cli.mjs thin CLI wrapper around core
133
+ mcp-server.mjs MCP server wrapping core functions as tools
134
+ SKILL.md agent instructions with YAML frontmatter
135
+ package.json name, bin, main, exports, type: module
136
+ README.md human documentation
137
+ ai/ development process (plans, todos, notes)
138
+ ```
139
+
140
+ Not every tool needs all six interfaces. Build the ones that make sense.
141
+
142
+ The minimum viable agent-native tool has two interfaces: **Module** (importable) and **Skill** (agent instructions). Add CLI for humans. Add MCP for agents that speak MCP. Add OpenClaw/CC Hook for specific platforms.
143
+
144
+ ## The `ai/` Folder
145
+
146
+ Every repo should have an `ai/` folder. This is where agents and humans collaborate on the project ... plans, todos, dev updates, research notes, conversations.
147
+
148
+ ```
149
+ ai/
150
+ plan/ architecture plans, roadmaps
151
+ dev-updates/ what was built, session logs
152
+ todos/
153
+ PUNCHLIST.md blockers to ship
154
+ inboxes/ per-agent action items
155
+ notes/ research, references, raw conversation logs
156
+ ```
157
+
158
+ The `ai/` folder is the development process. It is not part of the published product.
159
+
160
+ **Public/private split:** If a repo is public, the `ai/` folder should not ship. The recommended pattern is to maintain a private working repo (with `ai/`) and a public repo (everything except `ai/`). The public repo has everything an LLM or human needs to understand and use the tool. The `ai/` folder is operational context for the team building it.
161
+
162
+ ## The Reference Installer
163
+
164
+ `wip-install` is the reference implementation. It scans a repo, detects which interfaces exist, and installs them all. One command.
165
+
166
+ ```bash
167
+ wip-install /path/to/repo # local
168
+ wip-install org/repo # from GitHub
169
+ wip-install --dry-run /path/to/repo # detect only
170
+ wip-install --json /path/to/repo # JSON output
171
+ ```
172
+
173
+ ## Examples
174
+
175
+ | Repo | Interfaces | Type |
176
+ |------|------------|------|
177
+ | [wip-grok](https://github.com/wipcomputer/wip-grok) | CLI + Module + MCP + Skill | Sensor + Actuator |
178
+ | [wip-x](https://github.com/wipcomputer/wip-x) | CLI + Module + MCP + Skill | Sensor + Actuator |
179
+ | [wip-file-guard](https://github.com/wipcomputer/wip-file-guard) | CLI + OpenClaw + CC Hook | Actuator |
180
+ | [wip-markdown-viewer](https://github.com/wipcomputer/wip-markdown-viewer) | CLI + Module | Actuator |
@@ -0,0 +1,29 @@
1
+ # v1.8.0: Fix CC Hook duplicates, add GitHub Issues convention
2
+
3
+ ## CC Hook duplicate detection fix
4
+
5
+ `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.
6
+
7
+ 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.
8
+
9
+ The fix:
10
+ - Match existing hooks by tool name in the path, not exact command string
11
+ - Always prefer `~/.ldm/extensions/<tool>/guard.mjs` over source or temp paths
12
+ - If a hook for the same tool exists at a different path, update it instead of adding a duplicate
13
+
14
+ ## GitHub Issues convention added to Dev Guide
15
+
16
+ We were tracking work in `ai/todos/` markdown files. Items got lost. GitHub Issues gives us tracking, cross-referencing, and visibility across agents.
17
+
18
+ Added to the public Dev Guide:
19
+ - When to use GitHub Issues vs `ai/todos/`
20
+ - Filing convention: `filed-by:<agent-id>` labels and attribution lines
21
+ - Public vs private issue routing: public issues are the front door, private issues are the workshop
22
+ - Agent ID naming convention: `[platform]-[agent]-[machine]`
23
+
24
+ Added to the private Dev Guide:
25
+ - `filed-by:cc-mini` (blue) and `filed-by:oc-lesa-mini` (purple) label details
26
+ - Org-wide deployment commands
27
+ - Incident note: Memory Crystal agent ID drift
28
+
29
+ Both labels deployed across all wipcomputer repos.
@@ -0,0 +1,7 @@
1
+ # v1.8.1: Fix CLI install when package name changed
2
+
3
+ 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.
4
+
5
+ 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.
6
+
7
+ Found on `wip-license-hook` (renamed from `@wipcomputer/license-hook` to `@wipcomputer/wip-license-hook`).
@@ -0,0 +1,7 @@
1
+ # v1.8.2: Clean up release notes after release
2
+
3
+ RELEASE-NOTES files were piling up in the repo root. `wip-release` consumed them for the GitHub release and CHANGELOG but never cleaned up.
4
+
5
+ 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.
6
+
7
+ `deploy-public.sh` also now excludes `_trash/` so these files stay private.