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

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 (538) 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 +66 -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/_trash/RELEASE-NOTES-v1-9-57.md +18 -0
  523. package/package.json +1 -1
  524. package/scripts/deploy-public.sh +3 -1
  525. package/tools/deploy-public/package.json +1 -1
  526. package/tools/post-merge-rename/package.json +1 -1
  527. package/tools/wip-branch-guard/guard.mjs +46 -5
  528. package/tools/wip-branch-guard/package.json +1 -1
  529. package/tools/wip-file-guard/package.json +1 -1
  530. package/tools/wip-license-guard/package.json +1 -1
  531. package/tools/wip-license-hook/package.json +1 -1
  532. package/tools/wip-readme-format/package.json +1 -1
  533. package/tools/wip-release/core.mjs +3 -3
  534. package/tools/wip-release/package.json +1 -1
  535. package/tools/wip-repo-init/package.json +1 -1
  536. package/tools/wip-repo-permissions-hook/package.json +1 -1
  537. package/tools/wip-repos/package.json +1 -1
  538. package/tools/wip-universal-installer/package.json +1 -1
@@ -0,0 +1,821 @@
1
+ ---
2
+ name: wip-ai-devops-toolbox
3
+ description: Complete DevOps toolkit for AI-assisted software development. Release pipeline, license compliance, copyright enforcement, repo visibility guard, identity file protection, manifest reconciler, and best practices. All core tools are agent-callable via MCP.
4
+ license: MIT
5
+ interface: [cli, module, mcp, skill, hook, plugin]
6
+ metadata:
7
+ display-name: "WIP AI DevOps Toolbox"
8
+ version: "1.9.55"
9
+ homepage: "https://github.com/wipcomputer/wip-ai-devops-toolbox"
10
+ author: "Parker Todd Brooks"
11
+ category: dev-tools
12
+ capabilities:
13
+ - version-bump
14
+ - changelog-update
15
+ - npm-publish
16
+ - github-release
17
+ - license-scanning
18
+ - license-compliance
19
+ - copyright-enforcement
20
+ - repo-sync
21
+ - repo-visibility-guard
22
+ - identity-file-protection
23
+ - manifest-reconciliation
24
+ - mcp-server
25
+ requires:
26
+ bins: [git, npm, gh, node]
27
+ openclaw:
28
+ requires:
29
+ bins: [git, npm, gh, node]
30
+ install:
31
+ - id: node
32
+ kind: node
33
+ package: "@wipcomputer/wip-ai-devops-toolbox"
34
+ bins: [wip-release, wip-install, wip-repos, wip-license-hook, wip-license-guard, wip-file-guard, wip-repo-init, wip-readme-format]
35
+ label: "Install all tools via npm"
36
+ emoji: "🧰"
37
+ compatibility: Requires git, npm, gh, node. Node.js 18+.
38
+ ---
39
+
40
+ # WIP AI DevOps Toolbox
41
+
42
+ Your AI writes code. But does it know how to release it? Check license compliance? Protect your identity files? Sync private repos to public? Follow a real development process?
43
+
44
+ AI DevOps Toolbox is 13 tools that teach your AI how to do all of this. Once installed, you don't run them manually. Your AI knows how to use them and does it automatically. Built by a team of humans and AIs shipping real software together.
45
+
46
+ ## Platform Compatibility
47
+
48
+ The tools in this toolbox use different capabilities. Check what you have and tell the user honestly what you can and cannot do.
49
+
50
+ **What each interface requires:**
51
+
52
+ | Interface | Requires | Examples |
53
+ |-----------|----------|----------|
54
+ | CLI | Shell access (run bash/node commands) | `wip-release patch`, `wip-install` |
55
+ | Module | Node.js import support | `import { release } from 'wip-release'` |
56
+ | MCP | MCP client support | `release`, `license_scan`, `repos_check` |
57
+ | OC Plugin | OpenClaw agent runtime | Plugin in `~/.openclaw/extensions/` |
58
+ | Skill | SKILL.md file (works in both CC and OpenClaw) | You're reading it right now |
59
+ | CC Hook | Claude Code CLI with hooks support | PreToolUse hooks in `~/.claude/settings.json` |
60
+
61
+ **Built and tested on:**
62
+ - **Claude Code CLI** ... full support (shell, MCP, CC Hooks)
63
+ - **OpenClaw** ... full support (shell, MCP, Plugins)
64
+
65
+ **How to assess your own platform:** Check which capabilities you have (shell access, MCP, hooks) and match them to the table above. If you can run shell commands, CLI tools work. If you can connect to MCP servers, MCP tools work. If you have neither, you can still read and explain the tools, but tell the user which commands to run themselves. Do not claim you can run commands you cannot execute.
66
+
67
+ ## Operating Rules
68
+
69
+ **Always dry-run first.** Before installing, deploying, or running any destructive operation, run with `--dry-run` so the user can see exactly what will change. Only proceed with the real operation when the user explicitly says to.
70
+
71
+ **Write dev updates as you work.** When doing significant work on a repo that uses this toolbox, write a dev update to `ai/dev-updates/YYYY-MM-DD--HH-MM--agent--description.md`. The release pipeline auto-detects these and uses them as release notes. No more thin one-liners.
72
+
73
+ ## Install
74
+
75
+ **You are an AI agent helping a user install AI DevOps Toolbox. Walk them through the process step by step. Ask questions, explain what you're doing, and let them make choices.**
76
+
77
+ ### Already installed? Show what they have.
78
+
79
+ If the user already has the toolbox installed (check `ldm status` or look for `wip-release` on PATH), you MUST show the complete list below. Do NOT summarize. Do NOT skip tools. Do NOT paraphrase. Show every single tool with its number, name, category, and description exactly as written here. Show the installed version next to each tool name.
80
+
81
+ **IMPORTANT: Copy this list verbatim. All 17 tools. All 5 categories. Every description. The user needs to see every tool to understand what they have.**
82
+
83
+ **Setup & Onboarding**
84
+ 1. **Universal Installer** ... one command detects and deploys all interfaces (CLI, MCP, Plugin, Skill, Hook). Powers `ldm install`.
85
+ 2. **Dev Guide** ... team conventions: release process, repo structure, branch protection, ai/ folder standard.
86
+
87
+ **Infrastructure**
88
+ 3. **LDM Dev Tools.app** ... scheduled automation: backup, branch protection audit, visibility audit. Runs unattended.
89
+
90
+ **Repo Management**
91
+ 4. **Repo Visibility Guard** ... blocks repos from going public without a -private counterpart. Prevents accidental exposure.
92
+ 5. **Repo Manifest Reconciler** ... one source of truth for folder structure. Drift detection, auto-sync, and cross-repo CLAUDE.md generation.
93
+ 6. **Repo Init** ... scaffolds the standard ai/ directory. Plans, notes, dev updates, todos. One command.
94
+ 7. **README Formatter** ... generates READMEs following the standard format. Staging, review, deploy.
95
+ 8. **Forced Git Worktrees** ... agents never edit on main. Isolated copies, PRs to merge back.
96
+ 9. **Branch Guard** ... blocks all writes on main. The enforcement layer for forced worktrees.
97
+
98
+ **License, Compliance, and Protection**
99
+ 10. **Identity File Protection** ... blocks overwrites of CLAUDE.md, SOUL.md, MEMORY.md, SHARED-CONTEXT.md.
100
+ 11. **License Guard** ... enforces copyright, dual-license, CLA on your own repos. Auto-fix mode.
101
+ 12. **License Rug-Pull Detection** ... catches license changes in dependencies before they ship.
102
+
103
+ **Release & Deploy**
104
+ 13. **Release Pipeline** ... version bump, changelog, npm publish, GitHub release. One command.
105
+ 14. **Private-to-Public Sync** ... syncs private repo to public mirror. Excludes ai/ automatically.
106
+ 15. **Post-Merge Branch Naming** ... renames merged branches with dates. Keeps history clean.
107
+ 16. **Skill Publish to Website** ... auto-publishes SKILL.md as plain text on release. Like robots.txt for agents.
108
+ 17. **Make Discoverable in Claude Code** ... auto-generates plugin manifest for Claude Code marketplace. (Planned)
109
+
110
+ If an update is available, tell the user and offer to update via `ldm install wipcomputer/wip-ai-devops-toolbox`.
111
+
112
+ After the list, say: "You can ask me about any of these tools and I'll explain more about what it does and how to use it."
113
+
114
+ ### Step 0: Check for LDM OS
115
+
116
+ LDM OS is the shared infrastructure that manages tool installation across all your AIs. Check if it's installed:
117
+
118
+ ```bash
119
+ ldm --version
120
+ ```
121
+
122
+ **If installed:** Tell the user their LDM OS version and skip to Step 1.
123
+
124
+ **If not installed:**
125
+
126
+ > "AI DevOps Toolbox uses LDM OS to manage installation. LDM OS is the shared infrastructure layer that lets all your AIs share tools, memory, and identity. It's a one-time setup. Want me to install it?"
127
+
128
+ When the user approves:
129
+
130
+ ```bash
131
+ npm install -g @wipcomputer/wip-ldm-os
132
+ ldm init
133
+ ```
134
+
135
+ If `npm` is not available, check if the user has Node.js installed (`node --version`). They need Node.js 18+. If not installed, tell them to install it from https://nodejs.org first.
136
+
137
+ ### Transparency: Tell the user what's about to happen
138
+
139
+ Before installing, explain exactly what will change:
140
+
141
+ > "Here's what AI DevOps Toolbox will set up on your system:
142
+ >
143
+ > - **CLI tools** on your PATH: wip-release, wip-repos, wip-file-guard, wip-license-hook, wip-license-guard, wip-repo-init, wip-readme-format, deploy-public, post-merge-rename, wip-branch-guard
144
+ > - **MCP servers** registered with Claude Code: release, license scanning, repo permissions, repo manifest
145
+ > - **Claude Code hooks**: identity file protection (blocks overwrites of CLAUDE.md, SOUL.md), repo visibility guard, branch guard (blocks writes on main)
146
+ > - **OpenClaw plugins** (if OpenClaw is detected): file-guard, license-hook, repo-permissions
147
+ > - **Extension registry** updated at ~/.ldm/extensions/registry.json
148
+ >
149
+ > Nothing touches your data. Code gets installed. Your files stay yours.
150
+ >
151
+ > Want to see a dry run first?"
152
+
153
+ ### Step 1: Dry Run
154
+
155
+ Always dry-run first:
156
+
157
+ ```bash
158
+ ldm install wipcomputer/wip-ai-devops-toolbox --dry-run
159
+ ```
160
+
161
+ Show the user the output. It lists every sub-tool and every interface that will be deployed. Number every tool in your summary. Walk through what each tool does, grouped by category:
162
+
163
+ **Repo Management**
164
+ 1. **Repo Visibility Guard** ... blocks repos from going public without a -private counterpart
165
+ 2. **Repo Manifest Reconciler** ... one source of truth for folder structure
166
+ 3. **Repo Init** ... scaffolds the standard ai/ directory in any repo
167
+ 4. **README Formatter** ... generates READMEs following the standard format
168
+ 5. **Branch Guard** ... blocks all writes on main (forces worktrees)
169
+
170
+ **License, Compliance, and Protection**
171
+ 6. **Identity File Protection** ... blocks overwrites of CLAUDE.md, SOUL.md, MEMORY.md
172
+ 7. **License Guard** ... enforces copyright, dual-license, CLA on your repos
173
+ 8. **License Rug-Pull Detection** ... catches license changes in dependencies
174
+
175
+ **Release & Deploy**
176
+ 9. **Release Pipeline** ... version bump, changelog, npm publish, GitHub release
177
+ 10. **Private-to-Public Sync** ... syncs private to public, excludes ai/ automatically
178
+ 11. **Post-Merge Branch Naming** ... renames merged branches with dates
179
+ 12. **Universal Installer** ... detects and deploys tool interfaces
180
+
181
+ Ask: "You can ask me about any of these tools and I'll explain more. Want to proceed with the install?"
182
+
183
+ ### Step 2: Install
184
+
185
+ When the user says to proceed:
186
+
187
+ ```bash
188
+ ldm install wipcomputer/wip-ai-devops-toolbox
189
+ ```
190
+
191
+ ### Step 3: Verify
192
+
193
+ ```bash
194
+ ldm doctor
195
+ ```
196
+
197
+ This checks: all extensions deployed, hooks configured, MCP servers registered, CLI binaries on PATH.
198
+
199
+ Then test one tool:
200
+
201
+ ```bash
202
+ wip-release --version
203
+ ```
204
+
205
+ Tell the user: "AI DevOps Toolbox is installed. Your AI now knows how to release software, check license compliance, protect identity files, guard repo visibility, and manage repo manifests. These tools run automatically ... you don't need to invoke them manually."
206
+
207
+ **Important: tell the user they need to restart their AI agents for hooks to take effect.** Claude Code hooks are loaded when a session starts. Any running session still has the old hooks. Tell them:
208
+
209
+ > "The install updated your Claude Code hooks (branch guard, file guard, repo permissions). Any AI session that was already running needs to be restarted to pick up the new hooks. Exit and reopen each Claude Code session. New sessions will work automatically."
210
+
211
+ ### Update
212
+
213
+ If AI DevOps Toolbox is already installed and a new version is available:
214
+
215
+ ```bash
216
+ ldm install wipcomputer/wip-ai-devops-toolbox
217
+ ldm doctor
218
+ ```
219
+
220
+ After updating, remind the user to restart running AI sessions so they pick up any new or changed hooks.
221
+
222
+ Updates deploy new code without touching data or configuration.
223
+
224
+ ---
225
+
226
+ ## Setup & Onboarding
227
+
228
+ ### Universal Installer (built into LDM OS)
229
+
230
+ Interface detection and deployment engine. Scans a repo, detects which interfaces it supports (CLI, MCP, OpenClaw Plugin, Skill, CC Hook, Module), and deploys each one to the right location. This is what powers `ldm install`.
231
+
232
+ **How it works:**
233
+
234
+ 1. Clones the repo (or reads a local path)
235
+ 2. Detects which interfaces the repo supports (scans for package.json bin, mcp-server.mjs, openclaw.plugin.json, SKILL.md, guard.mjs)
236
+ 3. If the repo has a `tools/` directory with sub-tools, it enters toolbox mode and installs each one
237
+ 4. For each tool, it deploys every detected interface:
238
+
239
+ | Interface | How it's detected | Where it deploys |
240
+ |-----------|------------------|-----------------|
241
+ | CLI | `package.json` has `bin` entries | `npm install -g` |
242
+ | Module | `package.json` has `main` or `exports` | Importable via `node_modules` |
243
+ | MCP Server | Has `mcp-server.mjs` or `mcp-server.js` | `claude mcp add --scope user` |
244
+ | OpenClaw Plugin | Has `openclaw.plugin.json` | `~/.ldm/extensions/` and `~/.openclaw/extensions/` |
245
+ | Skill | Has `SKILL.md` | `~/.openclaw/skills/<tool>/SKILL.md` |
246
+ | CC Hook | Has `guard.mjs` or `claudeCode.hook` in package.json | `~/.claude/settings.json` |
247
+
248
+ 5. Updates the extension registry at `~/.ldm/extensions/registry.json`
249
+
250
+ **Standalone fallback:** If LDM OS is not installed, the `wip-install` CLI provides the same detection and deployment. It will attempt to install LDM OS automatically, then delegate. If that fails, it falls back to standalone mode.
251
+
252
+ **Interfaces:** CLI, Module, Skill
253
+
254
+ ### Dev Guide
255
+
256
+ Your team's conventions, baked in. Best practices for AI-assisted development teams.
257
+
258
+ **What it covers:**
259
+ - Release process (branch, PR, merge, wip-release, deploy-public)
260
+ - Repo structure (the `ai/` folder convention, private/public pattern)
261
+ - Branch conventions (agent prefixes: `cc-mini/`, `lesa-mini/`, `cc-air/`)
262
+ - Branch protection rules
263
+ - Multi-agent clone workflow
264
+ - License compliance (dual MIT+AGPL, CLA)
265
+
266
+ **How to use it:** Read [DEV-GUIDE.md](DEV-GUIDE-GENERAL-PUBLIC.md) before doing repo work. It's the reference for how the team operates.
267
+
268
+ **Interface:** Documentation (no CLI, no MCP)
269
+
270
+ ---
271
+
272
+ ## Infrastructure
273
+
274
+ ### LDM Dev Tools.app
275
+
276
+ Scheduled automation that runs whether anyone remembers or not. macOS .app bundle with Full Disk Access.
277
+
278
+ **What it runs:**
279
+ - `backup.sh` ... backs up critical files
280
+ - `branch-protect.sh` ... audits branch protection rules across all repos
281
+ - `visibility-audit.sh` ... checks repo visibility matches the public/private pattern
282
+ - `crystal-capture.sh` ... triggers memory crystal capture
283
+
284
+ **Commands:**
285
+ ```
286
+ open -W ~/Applications/LDMDevTools.app --args backup
287
+ open -W ~/Applications/LDMDevTools.app --args branch-protect
288
+ open -W ~/Applications/LDMDevTools.app --args visibility-audit
289
+ ```
290
+
291
+ Scripts can also run standalone without the .app:
292
+ ```
293
+ bash tools/ldm-jobs/backup.sh
294
+ bash tools/ldm-jobs/branch-protect.sh
295
+ bash tools/ldm-jobs/visibility-audit.sh
296
+ ```
297
+
298
+ **Where it writes:** Depends on the script. Backup writes to the backup target. Audits write to stdout.
299
+
300
+ **Interface:** Standalone macOS app
301
+
302
+ ---
303
+
304
+ ## Release & Deploy
305
+
306
+ ### wip-release
307
+
308
+ Release software correctly. Version bump, changelog, npm publish, GitHub release. One command, nothing forgotten.
309
+
310
+ **Commands:**
311
+ ```
312
+ wip-release patch --notes="description" # bump patch (1.0.0 -> 1.0.1)
313
+ wip-release minor --notes="description" # bump minor (1.0.0 -> 1.1.0)
314
+ wip-release major --notes="description" # bump major (1.0.0 -> 2.0.0)
315
+ wip-release patch --dry-run # preview without changes
316
+ wip-release patch --no-publish # bump + tag only, skip npm/GitHub
317
+ wip-release patch --notes-file=path # read notes from a file
318
+ wip-release patch # auto-detect notes (see below)
319
+ ```
320
+
321
+ **Release notes auto-detection (first match wins):**
322
+
323
+ 1. `--notes-file=path` ... explicit file path
324
+ 2. `RELEASE-NOTES-v{ver}.md` in repo root (e.g. `RELEASE-NOTES-v1-7-4.md`)
325
+ 3. `ai/dev-updates/YYYY-MM-DD*` ... today's dev update files (most recent first)
326
+ 4. `--notes="one-liner"` ... used as fallback, but if a dev update exists with more content, the dev update wins
327
+
328
+ Write dev updates as you work. wip-release picks them up automatically. No more thin release notes.
329
+
330
+ **What happens when you run `wip-release`:**
331
+
332
+ 1. **Step 0:** License compliance gate. If `.license-guard.json` exists, checks LICENSE file, copyright, CLA.md, README license section. Aborts if any check fails.
333
+ 2. **Step 1:** Bumps version in `package.json`
334
+ 3. **Step 2:** Syncs version to `SKILL.md` (if it exists)
335
+ 4. **Step 3:** Updates `CHANGELOG.md` with the new version entry
336
+ 5. **Step 4:** Auto-detects release notes from RELEASE-NOTES file, ai/dev-updates/, or --notes flag
337
+ 6. **Step 5:** Commits the version bump
338
+ 7. **Step 6:** Creates git tag `v{version}`
339
+ 8. **Step 7:** Pushes commit and tag to origin
340
+ 9. **Step 8:** Publishes to npm (if not `private: true`)
341
+ 10. **Step 9:** Publishes to GitHub Packages
342
+ 11. **Step 10:** Creates GitHub release with release notes (full narrative, not one-liners)
343
+ 12. **Step 11:** Publishes SKILL.md to website as plain text (if SKILL.md exists and `WIP_WEBSITE_REPO` is set)
344
+ 13. **Step 12:** Renames merged branches with `--merged-YYYY-MM-DD`
345
+ 14. **Step 13:** Prunes old merged branches (keeps last 3 per developer prefix)
346
+
347
+ **Where it writes:** `package.json`, `SKILL.md`, `CHANGELOG.md`, git tags, npm registry, GitHub Releases
348
+
349
+ **Safety:**
350
+ - `--dry-run` previews everything without writing
351
+ - License gate prevents releasing with broken compliance
352
+ - If push fails (branch protection), it tells you to push manually via PR
353
+ - npm publish failure (e.g., `private: true`) is non-fatal; release continues
354
+
355
+ **MCP tools:** `release`, `release_status`
356
+
357
+ **Interfaces:** CLI, Module, MCP, Skill
358
+
359
+ ### deploy-public
360
+
361
+ Publish safely. Syncs a private repo to its clean public counterpart.
362
+
363
+ **Commands:**
364
+ ```
365
+ bash scripts/deploy-public.sh <private-repo-path> <public-github-repo>
366
+
367
+ # Example:
368
+ bash scripts/deploy-public.sh /path/to/memory-crystal-private wipcomputer/memory-crystal
369
+ ```
370
+
371
+ **What happens when you run it:**
372
+
373
+ 1. Clones the public repo to `/tmp/`
374
+ 2. Copies all files from the private repo, excluding `ai/` and `.git/`
375
+ 3. Creates a branch (`cc-mini/deploy-YYYYMMDD-HHMMSS`)
376
+ 4. Commits with the latest merge commit message from private
377
+ 5. Pushes the branch, creates a PR, merges it
378
+ 6. Deletes the deploy branch
379
+ 7. Creates or updates the GitHub release on the public repo (syncs release notes from private)
380
+ 8. Checks for and deletes stale branches on the public repo
381
+
382
+ **Where it writes:** Public GitHub repo (via PR). Local `/tmp/` for the clone (cleaned up).
383
+
384
+ **Safety:**
385
+ - Never pushes directly to main. Always uses a PR.
386
+ - The `ai/` folder is automatically excluded. Internal plans, todos, dev context never reach public.
387
+ - If the public repo doesn't exist, the script fails (doesn't create repos).
388
+
389
+ **Interfaces:** CLI, Skill
390
+
391
+ ### post-merge-rename
392
+
393
+ Cleans up after itself. Renames merged branches so you know what's done.
394
+
395
+ **Commands:**
396
+ ```
397
+ bash scripts/post-merge-rename.sh # rename merged branches
398
+ bash scripts/post-merge-rename.sh --prune # rename + delete old ones
399
+ bash scripts/post-merge-rename.sh --dry-run # preview without changes
400
+ ```
401
+
402
+ **What happens:**
403
+
404
+ 1. Scans remote branches that are fully merged into main
405
+ 2. Renames them by appending `--merged-YYYY-MM-DD` (e.g., `cc-mini/feature` becomes `cc-mini/feature--merged-2026-03-10`)
406
+ 3. With `--prune`: for each developer prefix (`cc-mini/`, `lesa-mini/`, etc.), keeps the last 3 merged branches and deletes the rest from the remote
407
+ 4. Also finds stale branches that are fully merged but were never renamed, and deletes them
408
+
409
+ **Rules:**
410
+ - Never deletes `main`
411
+ - Never deletes the current working branch
412
+ - Always keeps the last 3 per developer prefix
413
+
414
+ **Where it writes:** Remote branch names on GitHub (renames and deletes)
415
+
416
+ **Interfaces:** CLI, Skill
417
+
418
+ ### Skill Publish to Website
419
+
420
+ After every release, your SKILL.md goes live as plain text on your website. No manual copying.
421
+
422
+ **How it works:** Built into `wip-release`. If SKILL.md exists and a website repo is configured, the release pipeline automatically copies SKILL.md to `{website}/wip.computer/install/{name}.txt` and runs `deploy.sh` to push it live.
423
+
424
+ **Setup:** Add `.publish-skill.json` to your repo root:
425
+ ```json
426
+ {
427
+ "name": "wip-ai-devops-toolbox",
428
+ "websiteRepo": "/path/to/your-website-repo"
429
+ }
430
+ ```
431
+
432
+ That's it. Every release auto-publishes. The convention is `yoursite.com/install/{name}.txt`. Plain text, no HTML. Any AI can `fetch()` the URL and get clean, parseable install instructions.
433
+
434
+ **Name resolution (first match wins):**
435
+ 1. `.publish-skill.json` `name` field
436
+ 2. `package.json` name (with `@scope/` prefix stripped)
437
+ 3. Directory name (with `-private` suffix stripped)
438
+
439
+ **Website repo resolution:**
440
+ 1. `.publish-skill.json` `websiteRepo` field (per-repo config)
441
+ 2. `WIP_WEBSITE_REPO` env var (global fallback)
442
+
443
+ **Non-blocking:** If the website repo is missing, deploy fails, or neither config nor env var is set, the release still succeeds. You'll see a warning in the output.
444
+
445
+ **Interface:** Module (built into Release Pipeline)
446
+
447
+ ---
448
+
449
+ ## License, Compliance, and Protection
450
+
451
+ ### wip-file-guard
452
+
453
+ Knows what it can never overwrite. Blocks destructive edits to identity files.
454
+
455
+ **Protected files:** CLAUDE.md, SOUL.md, MEMORY.md, SHARED-CONTEXT.md, IDENTITY.md
456
+
457
+ **How it works as a CC Hook:**
458
+ - Runs as a PreToolUse hook in Claude Code
459
+ - Intercepts `Write` and `Edit` tool calls
460
+ - If the target file is a protected identity file:
461
+ - `Write` (full overwrite) is **blocked**
462
+ - `Edit` (partial edit) is **allowed** (appending/updating sections is fine)
463
+ - Returns JSON: `{"decision": "block", "reason": "..."}` or `{"decision": "allow"}`
464
+
465
+ **Commands:**
466
+ ```
467
+ wip-file-guard --list # list protected files
468
+ wip-file-guard --check <filepath> # check if a file is protected
469
+ ```
470
+
471
+ **As a CC Hook (automatic):**
472
+ Configured in `~/.claude/settings.json` under `hooks.PreToolUse`. Runs automatically on every Write/Edit call. No manual invocation needed.
473
+
474
+ **As an OpenClaw Plugin:**
475
+ Deployed to `~/.openclaw/extensions/wip-file-guard/`. Blocks destructive edits in the OpenClaw agent pipeline.
476
+
477
+ **Where it writes:** Nothing. It only reads and blocks.
478
+
479
+ **Interfaces:** CLI, Module, OpenClaw Plugin, Skill, CC Hook
480
+
481
+ ### wip-license-guard
482
+
483
+ Enforces licensing on every commit. Copyright, dual-license, CLA. Checked automatically.
484
+
485
+ **Commands:**
486
+ ```
487
+ wip-license-guard check # audit current repo
488
+ wip-license-guard check --fix # audit and auto-fix issues
489
+ wip-license-guard init # interactive first-run setup
490
+ wip-license-guard init --from-standard # apply WIP Computer defaults without prompting
491
+ ```
492
+
493
+ **What it checks:**
494
+ - LICENSE file exists and matches configured license type
495
+ - Copyright line is correct and current year
496
+ - CLA.md exists (if configured)
497
+ - README has a `## License` section
498
+ - For toolbox repos: checks every sub-tool in `tools/`
499
+
500
+ **Config:** `.license-guard.json` in repo root. Created by `init`. Contains copyright holder, license type, year, and what to enforce.
501
+
502
+ **As a wip-release gate:**
503
+ Step 0 of wip-release reads `.license-guard.json` and runs the same checks. Aborts the release if compliance fails.
504
+
505
+ **`--from-standard` generates:**
506
+ - `.license-guard.json` with WIP Computer defaults
507
+ - `LICENSE` file (dual MIT+AGPL)
508
+ - `CLA.md`
509
+
510
+ **Where it writes:** `.license-guard.json`, `LICENSE`, `CLA.md`, README (with `--fix`)
511
+
512
+ **Interfaces:** CLI
513
+
514
+ ### wip-license-hook
515
+
516
+ Catches license changes in dependencies before they ship.
517
+
518
+ **Commands:**
519
+ ```
520
+ wip-license-hook scan # scan all dependencies for license changes
521
+ wip-license-hook scan --json # output as JSON
522
+ wip-license-hook audit # full compliance audit
523
+ wip-license-hook ledger # show the license compliance ledger
524
+ wip-license-hook gate # pass/fail gate for CI or pre-merge
525
+ ```
526
+
527
+ **What it does:**
528
+ 1. Reads `package.json` and `package-lock.json`
529
+ 2. For each dependency, checks the current license against the last known license in the ledger
530
+ 3. If a license changed (rug-pull), flags it
531
+ 4. The ledger (`license-ledger.json`) tracks every dependency's license over time
532
+ 5. `gate` returns exit code 0 (pass) or 1 (fail) for CI integration
533
+
534
+ **Git hooks:**
535
+ - `pre-push` hook blocks pushes if license changes are detected
536
+ - `pre-pull` hook warns on pull if upstream changed licenses
537
+
538
+ **MCP tools:** `license_scan`, `license_audit`, `license_gate`, `license_ledger`
539
+
540
+ **Where it writes:** `license-ledger.json` (the compliance record)
541
+
542
+ **Interfaces:** CLI, Module, MCP, Skill
543
+
544
+ ---
545
+
546
+ ## Repo Management
547
+
548
+ ### wip-repo-permissions-hook
549
+
550
+ Never accidentally exposes a private repo.
551
+
552
+ **Commands:**
553
+ ```
554
+ wip-repo-permissions check wipcomputer/memory-crystal # check one repo
555
+ wip-repo-permissions audit wipcomputer # audit entire org
556
+ ```
557
+
558
+ **What it checks:**
559
+ - If a repo is public, does it have a `-private` counterpart?
560
+ - If not, it's flagged as exposed (internal content may be visible)
561
+
562
+ **As a CC Hook (automatic):**
563
+ Intercepts commands that could change repo visibility (e.g., `gh repo edit --visibility public`). Blocks if the `-private` counterpart doesn't exist.
564
+
565
+ **As an OpenClaw Plugin:**
566
+ Deployed to `~/.openclaw/extensions/wip-repo-permissions-hook/`. Same check in the agent pipeline.
567
+
568
+ **MCP tools:** `repo_permissions_check`, `repo_permissions_audit`
569
+
570
+ **Where it writes:** Nothing. It only reads and blocks.
571
+
572
+ **Interfaces:** CLI, Module, MCP, OpenClaw Plugin, Skill, CC Hook
573
+
574
+ ### wip-repos
575
+
576
+ Knows where every repo belongs. One source of truth for folder structure.
577
+
578
+ **Commands:**
579
+ ```
580
+ wip-repos check # compare filesystem to manifest
581
+ wip-repos sync --dry-run # preview what sync would move
582
+ wip-repos sync # move repos to match manifest
583
+ wip-repos add <org/repo> <category> # add a repo to the manifest
584
+ wip-repos move <org/repo> <new-category> # move a repo in the manifest
585
+ wip-repos tree # show the manifest as a tree
586
+ wip-repos claude # regenerate CLAUDE.md ecosystem sections for all repos
587
+ wip-repos claude <repo> # regenerate one repo's CLAUDE.md
588
+ wip-repos claude --init # create CLAUDE.md for repos missing one
589
+ wip-repos claude --dry-run # preview changes
590
+ ```
591
+
592
+ **What it does:**
593
+ - Reads `repos-manifest.json` (the single source of truth)
594
+ - Compares against the actual filesystem
595
+ - `check` reports drift (repos in wrong locations, missing repos, unknown repos)
596
+ - `sync` moves repos to match the manifest
597
+ - `claude` generates cross-repo ecosystem context in CLAUDE.md files. Each repo gets a list of related repos with their interfaces, CLI commands, and descriptions. Agents can't read sibling repos at runtime, so this pre-generates the context they need.
598
+
599
+ **MCP tools:** `repos_check`, `repos_sync_plan`, `repos_add`, `repos_move`, `repos_tree`
600
+
601
+ **Where it writes:** Moves directories on the filesystem (with `sync`). Updates `repos-manifest.json` (with `add`/`move`).
602
+
603
+ **Interfaces:** CLI, Module, MCP, Skill
604
+
605
+ ### wip-repo-init
606
+
607
+ Scaffold the standard `ai/` directory in any repo. One command.
608
+
609
+ **Commands:**
610
+ ```
611
+ wip-repo-init /path/to/repo # scaffold ai/ in a repo
612
+ wip-repo-init /path/to/repo --dry-run # preview without changes
613
+ wip-repo-init /path/to/repo --yes # skip confirmation prompt
614
+ ```
615
+
616
+ **What happens:**
617
+
618
+ **New repo (no ai/ folder):** Creates the full standard structure with READMEs explaining what goes where.
619
+
620
+ **Existing repo (ai/ folder exists):** Shows you what will happen and asks for confirmation:
621
+ 1. Moves your current `ai/` contents to `ai/_sort/ai_old/`
622
+ 2. Scaffolds the new standard structure
623
+ 3. You sort files from `ai_old/` into the new structure at your own pace
624
+
625
+ Nothing is deleted. Your old files are all in `ai/_sort/ai_old/`.
626
+
627
+ **The standard structure:**
628
+
629
+ ```
630
+ ai/
631
+ read-me-first.md <- explains everything, links to all sections
632
+ _sort/ <- holding pen for files that need sorting
633
+ _trash/ <- archive (never delete, move here)
634
+ dev-updates/ <- engineering changelog, auto-detected by wip-release
635
+ product/
636
+ readme-first-product.md <- the product bible
637
+ notes/ <- freeform notes, research
638
+ plans-prds/ <- plans with lifecycle stages
639
+ roadmap.md <- prioritized roadmap
640
+ current/ <- plans being built now
641
+ upcoming/ <- plans that are next
642
+ archive-complete/ <- plans that shipped
643
+ todos/ <- per-agent todo files
644
+ product-ideas/ <- ideas that aren't plans yet
645
+ ```
646
+
647
+ Every folder has a `_trash/` subfolder. Every section has a README.
648
+
649
+ **Where it writes:** Creates directories and files inside `ai/`. If an existing `ai/` is present, moves it to `ai/_sort/ai_old/`.
650
+
651
+ **Interfaces:** CLI, Skill
652
+
653
+ ### wip-readme-format
654
+
655
+ Generate or validate READMEs following the WIP Computer standard. One command.
656
+
657
+ **Commands:**
658
+ ```
659
+ wip-readme-format /path/to/repo # generate README-init-*.md section files
660
+ wip-readme-format /path/to/repo --deploy # assemble sections into README.md
661
+ wip-readme-format /path/to/repo --dry-run # preview without writing
662
+ wip-readme-format /path/to/repo --check # validate existing README against standard
663
+ ```
664
+
665
+ **What happens:**
666
+
667
+ **Generate mode (default):** Detects interfaces, reads SKILL.md for tool names, generates separate section files:
668
+ - `README-init-badges.md` ... org header + interface badges
669
+ - `README-init-title.md` ... title + tagline
670
+ - `README-init-teach.md` ... "Teach Your AI" onboarding block
671
+ - `README-init-features.md` ... features list (preserved from existing README or auto-generated for toolbox repos)
672
+ - `README-init-coverage.md` ... interface coverage table (toolbox repos only)
673
+ - `README-init-more-info.md` ... links to docs
674
+ - `README-init-license.md` ... license block + built-by line
675
+ - `README-init-technical.md` ... technical content extracted from old README
676
+
677
+ **Deploy mode:** Backs up existing README.md and TECHNICAL.md to `ai/_trash/`, assembles section files in order into README.md, moves technical to TECHNICAL.md, deletes the staging files.
678
+
679
+ Edit any section independently before deploying. Same pattern as release notes: staging, review, deploy.
680
+
681
+ **Toolbox mode:** For repos with `tools/` subdirectories, aggregates interfaces from all sub-tools for badges, generates an interface coverage table using SKILL.md `name:` frontmatter for human-readable names.
682
+
683
+ **Where it writes:** README-init-*.md files in the repo root (staging). On deploy: README.md, TECHNICAL.md, and backups to `ai/_trash/`.
684
+
685
+ **Interfaces:** CLI, Skill
686
+
687
+ ### Forced Git Worktrees
688
+
689
+ Every repo uses git worktrees. Agents never edit on main. Period.
690
+
691
+ When an agent needs to make changes, it creates a worktree (isolated copy of the repo on its own branch). All edits happen there. Main stays clean. Multiple agents can work on the same repo simultaneously without collisions. When the work is done, it goes through a PR to merge back.
692
+
693
+ **How it works:**
694
+ - Agent runs `EnterWorktree` (Claude Code) or `git worktree add` to get an isolated copy
695
+ - All edits happen on the worktree branch
696
+ - When done: commit, push, create PR, merge
697
+ - Main is never touched directly
698
+
699
+ **Interfaces:** CLI, CC Hook
700
+
701
+ ### Branch Guard
702
+
703
+ Blocks all writes on main. The enforcement layer for forced worktrees.
704
+
705
+ **How it works as a CC Hook:**
706
+ - Runs as a PreToolUse hook in Claude Code
707
+ - Intercepts `Write`, `Edit`, `NotebookEdit`, and destructive `Bash` commands
708
+ - Resolves which repo the target file belongs to (from the file path, not CWD)
709
+ - If that repo's current branch is main: **blocked**
710
+ - Read-only operations (Read, Glob, Grep) are always allowed
711
+ - Git operations that don't modify files (status, log, diff, branch, checkout, pull, merge, push) are allowed
712
+ - `gh` commands (issues, PRs, releases) are allowed
713
+
714
+ **Commands:**
715
+ ```
716
+ wip-branch-guard --check # report current branch status for all repos
717
+ ```
718
+
719
+ **Where it writes:** Nothing. It only reads and blocks.
720
+
721
+ **Interfaces:** CC Hook
722
+
723
+ ---
724
+
725
+ ## MCP Server Configuration
726
+
727
+ Tools with MCP interfaces are agent-callable. Add to `.mcp.json`:
728
+
729
+ ```json
730
+ {
731
+ "wip-release": {
732
+ "command": "node",
733
+ "args": ["/path/to/tools/wip-release/mcp-server.mjs"]
734
+ },
735
+ "wip-license-hook": {
736
+ "command": "node",
737
+ "args": ["/path/to/tools/wip-license-hook/mcp-server.mjs"]
738
+ },
739
+ "wip-repo-permissions": {
740
+ "command": "node",
741
+ "args": ["/path/to/tools/wip-repo-permissions-hook/mcp-server.mjs"]
742
+ },
743
+ "wip-repos": {
744
+ "command": "node",
745
+ "args": ["/path/to/tools/wip-repos/mcp-server.mjs"]
746
+ }
747
+ }
748
+ ```
749
+
750
+ **All MCP tools:**
751
+
752
+ | Tool | Function | What it does |
753
+ |------|----------|-------------|
754
+ | wip-release | `release` | Run a release (patch/minor/major) |
755
+ | wip-release | `release_status` | Get current version and release state |
756
+ | wip-license-hook | `license_scan` | Scan dependencies for license changes |
757
+ | wip-license-hook | `license_audit` | Full compliance audit |
758
+ | wip-license-hook | `license_gate` | Pass/fail gate for merges |
759
+ | wip-license-hook | `license_ledger` | Show the compliance record |
760
+ | wip-repo-permissions | `repo_permissions_check` | Check if a repo can go public |
761
+ | wip-repo-permissions | `repo_permissions_audit` | Audit entire org visibility |
762
+ | wip-repos | `repos_check` | Compare filesystem to manifest |
763
+ | wip-repos | `repos_sync_plan` | Preview what sync would change |
764
+ | wip-repos | `repos_add` | Add a repo to the manifest |
765
+ | wip-repos | `repos_move` | Move a repo in the manifest |
766
+ | wip-repos | `repos_tree` | Show manifest as a tree |
767
+
768
+ **Example prompts your AI can act on directly:**
769
+
770
+ ```
771
+ "Scan all dependencies for license changes" -> license_scan
772
+ "Check if memory-crystal can go public" -> repo_permissions_check
773
+ "Do a patch release with notes 'fix login bug'" -> release
774
+ "Show me which repos aren't in the manifest" -> repos_check
775
+ "Audit the whole org's repo visibility" -> repo_permissions_audit
776
+ "What version is this repo at?" -> release_status
777
+ "Gate this merge on license compliance" -> license_gate
778
+ "Show the license compliance ledger" -> license_ledger
779
+ ```
780
+
781
+ ---
782
+
783
+ ## Interface Coverage
784
+
785
+ | # | Tool | CLI | Module | MCP | OC Plugin | Skill | CC Hook |
786
+ |---|------|-----|--------|-----|-----------|-------|---------|
787
+ | | **Setup & Onboarding** | | | | | | |
788
+ | 1 | Universal Installer | Y | Y | | | Y | |
789
+ | 2 | Dev Guide | | | | | | |
790
+ | | **Infrastructure** | | | | | | |
791
+ | 3 | LDM Dev Tools.app | | | | | | |
792
+ | | **Repo Management** | | | | | | |
793
+ | 4 | Repo Visibility Guard | Y | Y | Y | Y | Y | Y |
794
+ | 5 | Repo Manifest Reconciler | Y | Y | Y | | Y | |
795
+ | 6 | Repo Init | Y | | | | Y | |
796
+ | 7 | README Formatter | Y | | | | Y | |
797
+ | 8 | Forced Git Worktrees | Y | | | | | Y |
798
+ | 9 | Branch Guard | | | | | | Y |
799
+ | | **License, Compliance, and Protection** | | | | | | |
800
+ | 10 | Identity File Protection | Y | Y | | Y | Y | Y |
801
+ | 11 | License Guard | Y | | | | | |
802
+ | 12 | License Rug-Pull Detection | Y | Y | Y | | Y | |
803
+ | | **Release & Deploy** | | | | | | |
804
+ | 13 | Release Pipeline | Y | Y | Y | | Y | |
805
+ | 14 | Private-to-Public Sync | Y | | | | Y | |
806
+ | 15 | Post-Merge Branch Naming | Y | | | | Y | |
807
+ | 16 | Skill Publish to Website | | Y | | | | |
808
+ | 17 | Make Discoverable in Claude Code | | Y | | | | |
809
+
810
+ ---
811
+
812
+ ## License
813
+
814
+ ```
815
+ MIT All CLI tools, MCP servers, skills, and hooks (use anywhere, no restrictions).
816
+ AGPLv3 Commercial redistribution, marketplace listings, or bundling into paid services.
817
+ ```
818
+
819
+ AGPLv3 for personal use is free. Commercial licenses available.
820
+
821
+ Built by Parker Todd Brooks, Lēsa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).