@wipcomputer/wip-ai-devops-toolbox 1.9.58 → 1.9.60

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 (563) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/SKILL.md +1 -1
  3. package/package.json +1 -1
  4. package/tools/deploy-public/package.json +1 -1
  5. package/tools/post-merge-rename/package.json +1 -1
  6. package/tools/wip-branch-guard/guard.mjs +57 -39
  7. package/tools/wip-branch-guard/package.json +1 -1
  8. package/tools/wip-file-guard/package.json +1 -1
  9. package/tools/wip-license-guard/package.json +1 -1
  10. package/tools/wip-license-hook/package.json +1 -1
  11. package/tools/wip-readme-format/package.json +1 -1
  12. package/tools/wip-release/package.json +1 -1
  13. package/tools/wip-repo-init/package.json +1 -1
  14. package/tools/wip-repo-permissions-hook/package.json +1 -1
  15. package/tools/wip-repos/package.json +1 -1
  16. package/tools/wip-universal-installer/package.json +1 -1
  17. package/.worktrees/toolbox--release-notes/.license-guard.json +0 -7
  18. package/.worktrees/toolbox--release-notes/.publish-skill.json +0 -4
  19. package/.worktrees/toolbox--release-notes/CHANGELOG.md +0 -1875
  20. package/.worktrees/toolbox--release-notes/CLA.md +0 -19
  21. package/.worktrees/toolbox--release-notes/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
  22. package/.worktrees/toolbox--release-notes/LICENSE +0 -52
  23. package/.worktrees/toolbox--release-notes/README.md +0 -238
  24. package/.worktrees/toolbox--release-notes/RELEASE-NOTES-v1-9-56.md +0 -42
  25. package/.worktrees/toolbox--release-notes/SKILL.md +0 -821
  26. package/.worktrees/toolbox--release-notes/TECHNICAL.md +0 -416
  27. package/.worktrees/toolbox--release-notes/UNIVERSAL-INTERFACE.md +0 -180
  28. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  29. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  30. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  31. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  32. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  33. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  34. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  35. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  36. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  37. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  38. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  39. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  40. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  41. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  42. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  43. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  44. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  45. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  46. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  47. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  48. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  49. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  50. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  51. package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  52. package/.worktrees/toolbox--release-notes/_trash/guide 2/DEV-GUIDE.md +0 -487
  53. package/.worktrees/toolbox--release-notes/_trash/guide 2/scripts/deploy-public.sh +0 -152
  54. package/.worktrees/toolbox--release-notes/package.json +0 -27
  55. package/.worktrees/toolbox--release-notes/scripts/SKILL-deploy-public.md +0 -61
  56. package/.worktrees/toolbox--release-notes/scripts/SKILL-post-merge-rename.md +0 -47
  57. package/.worktrees/toolbox--release-notes/scripts/deploy-public.sh +0 -345
  58. package/.worktrees/toolbox--release-notes/scripts/post-merge-rename.sh +0 -210
  59. package/.worktrees/toolbox--release-notes/scripts/publish-skill.sh +0 -134
  60. package/.worktrees/toolbox--release-notes/templates/global-claude-md.md +0 -73
  61. package/.worktrees/toolbox--release-notes/templates/repo-claude-md.template +0 -24
  62. package/.worktrees/toolbox--release-notes/tools/deploy-public/LICENSE +0 -52
  63. package/.worktrees/toolbox--release-notes/tools/deploy-public/README.md +0 -31
  64. package/.worktrees/toolbox--release-notes/tools/deploy-public/SKILL.md +0 -71
  65. package/.worktrees/toolbox--release-notes/tools/deploy-public/deploy-public.sh +0 -264
  66. package/.worktrees/toolbox--release-notes/tools/deploy-public/package.json +0 -9
  67. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/LICENSE +0 -52
  68. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/README.md +0 -46
  69. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/backup.sh +0 -16
  70. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/branch-protect.sh +0 -39
  71. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/crystal-capture.sh +0 -19
  72. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/setup-shell.sh +0 -27
  73. package/.worktrees/toolbox--release-notes/tools/ldm-jobs/visibility-audit.sh +0 -27
  74. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/LICENSE +0 -52
  75. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/README.md +0 -29
  76. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/SKILL.md +0 -57
  77. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/package.json +0 -9
  78. package/.worktrees/toolbox--release-notes/tools/post-merge-rename/post-merge-rename.sh +0 -122
  79. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/INSTALL.md +0 -41
  80. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/guard.mjs +0 -459
  81. package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/package.json +0 -18
  82. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/CHANGELOG.md +0 -6
  83. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/LICENSE +0 -52
  84. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/README.md +0 -113
  85. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/REFERENCE.md +0 -86
  86. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/SKILL.md +0 -105
  87. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/guard.mjs +0 -161
  88. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/openclaw.plugin.json +0 -8
  89. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/package.json +0 -27
  90. package/.worktrees/toolbox--release-notes/tools/wip-file-guard/test.sh +0 -119
  91. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/LICENSE +0 -52
  92. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/README.md +0 -69
  93. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/SKILL.md +0 -65
  94. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/cli.mjs +0 -472
  95. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/core.mjs +0 -310
  96. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/guard.mjs +0 -146
  97. package/.worktrees/toolbox--release-notes/tools/wip-license-guard/package.json +0 -22
  98. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/CHANGELOG.md +0 -17
  99. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/LICENSE +0 -52
  100. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/README.md +0 -200
  101. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/SKILL.md +0 -111
  102. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
  103. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js +0 -170
  104. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js.map +0 -1
  105. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
  106. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js +0 -104
  107. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js.map +0 -1
  108. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.d.ts +0 -4
  109. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js +0 -5
  110. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js.map +0 -1
  111. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
  112. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js +0 -72
  113. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
  114. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
  115. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js +0 -227
  116. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
  117. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
  118. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js +0 -325
  119. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
  120. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
  121. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-push.sh +0 -51
  122. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/mcp-server.mjs +0 -119
  123. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package-lock.json +0 -54
  124. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package.json +0 -43
  125. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/cli/index.ts +0 -189
  126. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/detector.ts +0 -130
  127. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/index.ts +0 -4
  128. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/ledger.ts +0 -116
  129. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/reporter.ts +0 -255
  130. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/scanner.ts +0 -367
  131. package/.worktrees/toolbox--release-notes/tools/wip-license-hook/tsconfig.json +0 -16
  132. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/README.md +0 -49
  133. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/SKILL.md +0 -84
  134. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/format.mjs +0 -597
  135. package/.worktrees/toolbox--release-notes/tools/wip-readme-format/package.json +0 -15
  136. package/.worktrees/toolbox--release-notes/tools/wip-release/CHANGELOG.md +0 -42
  137. package/.worktrees/toolbox--release-notes/tools/wip-release/LICENSE +0 -52
  138. package/.worktrees/toolbox--release-notes/tools/wip-release/README.md +0 -45
  139. package/.worktrees/toolbox--release-notes/tools/wip-release/REFERENCE.md +0 -100
  140. package/.worktrees/toolbox--release-notes/tools/wip-release/SKILL.md +0 -139
  141. package/.worktrees/toolbox--release-notes/tools/wip-release/cli.js +0 -175
  142. package/.worktrees/toolbox--release-notes/tools/wip-release/core.mjs +0 -1664
  143. package/.worktrees/toolbox--release-notes/tools/wip-release/mcp-server.mjs +0 -113
  144. package/.worktrees/toolbox--release-notes/tools/wip-release/package.json +0 -36
  145. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/README.md +0 -38
  146. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/SKILL.md +0 -77
  147. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/init.mjs +0 -148
  148. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/package.json +0 -11
  149. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_sort/README.md +0 -15
  150. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_trash/README.md +0 -16
  151. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
  152. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/notes/README.md +0 -26
  153. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
  154. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
  155. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
  156. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
  157. package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/read-me-first.md +0 -80
  158. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/LICENSE +0 -52
  159. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/README.md +0 -86
  160. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/SKILL.md +0 -73
  161. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/cli.js +0 -93
  162. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/core.mjs +0 -122
  163. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/guard.mjs +0 -64
  164. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
  165. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
  166. package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/package.json +0 -31
  167. package/.worktrees/toolbox--release-notes/tools/wip-repos/LICENSE +0 -52
  168. package/.worktrees/toolbox--release-notes/tools/wip-repos/README.md +0 -77
  169. package/.worktrees/toolbox--release-notes/tools/wip-repos/SKILL.md +0 -80
  170. package/.worktrees/toolbox--release-notes/tools/wip-repos/claude.mjs +0 -248
  171. package/.worktrees/toolbox--release-notes/tools/wip-repos/cli.mjs +0 -191
  172. package/.worktrees/toolbox--release-notes/tools/wip-repos/core.mjs +0 -290
  173. package/.worktrees/toolbox--release-notes/tools/wip-repos/mcp-server.mjs +0 -157
  174. package/.worktrees/toolbox--release-notes/tools/wip-repos/package.json +0 -34
  175. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/CHANGELOG.md +0 -57
  176. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/LICENSE +0 -52
  177. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/README.md +0 -81
  178. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/REFERENCE.md +0 -122
  179. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SKILL.md +0 -87
  180. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SPEC.md +0 -206
  181. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/detect.mjs +0 -130
  182. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/README.md +0 -20
  183. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
  184. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
  185. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
  186. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
  187. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/package.json +0 -12
  188. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/install.js +0 -930
  189. package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/package.json +0 -32
  190. package/.worktrees/toolbox--save-stale/.license-guard.json +0 -7
  191. package/.worktrees/toolbox--save-stale/.publish-skill.json +0 -4
  192. package/.worktrees/toolbox--save-stale/CHANGELOG.md +0 -1875
  193. package/.worktrees/toolbox--save-stale/CLA.md +0 -19
  194. package/.worktrees/toolbox--save-stale/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
  195. package/.worktrees/toolbox--save-stale/LICENSE +0 -52
  196. package/.worktrees/toolbox--save-stale/README.md +0 -238
  197. package/.worktrees/toolbox--save-stale/SKILL.md +0 -821
  198. package/.worktrees/toolbox--save-stale/TECHNICAL.md +0 -416
  199. package/.worktrees/toolbox--save-stale/UNIVERSAL-INTERFACE.md +0 -180
  200. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  201. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  202. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  203. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  204. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  205. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  206. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  207. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  208. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  209. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  210. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  211. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  212. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  213. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  214. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  215. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  216. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  217. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  218. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  219. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  220. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  221. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  222. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  223. package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  224. package/.worktrees/toolbox--save-stale/_trash/guide 2/DEV-GUIDE.md +0 -487
  225. package/.worktrees/toolbox--save-stale/_trash/guide 2/scripts/deploy-public.sh +0 -152
  226. package/.worktrees/toolbox--save-stale/package.json +0 -27
  227. package/.worktrees/toolbox--save-stale/scripts/SKILL-deploy-public.md +0 -61
  228. package/.worktrees/toolbox--save-stale/scripts/SKILL-post-merge-rename.md +0 -47
  229. package/.worktrees/toolbox--save-stale/scripts/deploy-public.sh +0 -345
  230. package/.worktrees/toolbox--save-stale/scripts/post-merge-rename.sh +0 -210
  231. package/.worktrees/toolbox--save-stale/scripts/publish-skill.sh +0 -134
  232. package/.worktrees/toolbox--save-stale/templates/global-claude-md.md +0 -73
  233. package/.worktrees/toolbox--save-stale/templates/repo-claude-md.template +0 -24
  234. package/.worktrees/toolbox--save-stale/tools/deploy-public/LICENSE +0 -52
  235. package/.worktrees/toolbox--save-stale/tools/deploy-public/README.md +0 -31
  236. package/.worktrees/toolbox--save-stale/tools/deploy-public/SKILL.md +0 -71
  237. package/.worktrees/toolbox--save-stale/tools/deploy-public/deploy-public.sh +0 -264
  238. package/.worktrees/toolbox--save-stale/tools/deploy-public/package.json +0 -9
  239. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/LICENSE +0 -52
  240. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/README.md +0 -46
  241. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/backup.sh +0 -16
  242. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/branch-protect.sh +0 -39
  243. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/crystal-capture.sh +0 -19
  244. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/setup-shell.sh +0 -27
  245. package/.worktrees/toolbox--save-stale/tools/ldm-jobs/visibility-audit.sh +0 -27
  246. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/LICENSE +0 -52
  247. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/README.md +0 -29
  248. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/SKILL.md +0 -57
  249. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/package.json +0 -9
  250. package/.worktrees/toolbox--save-stale/tools/post-merge-rename/post-merge-rename.sh +0 -122
  251. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/INSTALL.md +0 -41
  252. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/guard.mjs +0 -459
  253. package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/package.json +0 -18
  254. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/CHANGELOG.md +0 -6
  255. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/LICENSE +0 -52
  256. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/README.md +0 -113
  257. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/REFERENCE.md +0 -86
  258. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/SKILL.md +0 -105
  259. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/guard.mjs +0 -161
  260. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/openclaw.plugin.json +0 -8
  261. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/package.json +0 -27
  262. package/.worktrees/toolbox--save-stale/tools/wip-file-guard/test.sh +0 -119
  263. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/LICENSE +0 -52
  264. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/README.md +0 -69
  265. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/SKILL.md +0 -65
  266. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/cli.mjs +0 -472
  267. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/core.mjs +0 -310
  268. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/guard.mjs +0 -146
  269. package/.worktrees/toolbox--save-stale/tools/wip-license-guard/package.json +0 -22
  270. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/CHANGELOG.md +0 -17
  271. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/LICENSE +0 -52
  272. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/README.md +0 -200
  273. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/SKILL.md +0 -111
  274. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
  275. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js +0 -170
  276. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js.map +0 -1
  277. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
  278. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js +0 -104
  279. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js.map +0 -1
  280. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.d.ts +0 -4
  281. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js +0 -5
  282. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js.map +0 -1
  283. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
  284. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js +0 -72
  285. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
  286. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
  287. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js +0 -227
  288. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
  289. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
  290. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js +0 -325
  291. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
  292. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
  293. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-push.sh +0 -51
  294. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/mcp-server.mjs +0 -119
  295. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package-lock.json +0 -54
  296. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package.json +0 -43
  297. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/cli/index.ts +0 -189
  298. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/detector.ts +0 -130
  299. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/index.ts +0 -4
  300. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/ledger.ts +0 -116
  301. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/reporter.ts +0 -255
  302. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/scanner.ts +0 -367
  303. package/.worktrees/toolbox--save-stale/tools/wip-license-hook/tsconfig.json +0 -16
  304. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/README.md +0 -49
  305. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/SKILL.md +0 -84
  306. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/format.mjs +0 -597
  307. package/.worktrees/toolbox--save-stale/tools/wip-readme-format/package.json +0 -15
  308. package/.worktrees/toolbox--save-stale/tools/wip-release/CHANGELOG.md +0 -42
  309. package/.worktrees/toolbox--save-stale/tools/wip-release/LICENSE +0 -52
  310. package/.worktrees/toolbox--save-stale/tools/wip-release/README.md +0 -45
  311. package/.worktrees/toolbox--save-stale/tools/wip-release/REFERENCE.md +0 -100
  312. package/.worktrees/toolbox--save-stale/tools/wip-release/SKILL.md +0 -139
  313. package/.worktrees/toolbox--save-stale/tools/wip-release/cli.js +0 -175
  314. package/.worktrees/toolbox--save-stale/tools/wip-release/core.mjs +0 -1664
  315. package/.worktrees/toolbox--save-stale/tools/wip-release/mcp-server.mjs +0 -113
  316. package/.worktrees/toolbox--save-stale/tools/wip-release/package.json +0 -36
  317. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/README.md +0 -38
  318. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/SKILL.md +0 -77
  319. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/init.mjs +0 -148
  320. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/package.json +0 -11
  321. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_sort/README.md +0 -15
  322. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_trash/README.md +0 -16
  323. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
  324. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/notes/README.md +0 -26
  325. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
  326. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
  327. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
  328. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
  329. package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/read-me-first.md +0 -80
  330. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/LICENSE +0 -52
  331. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/README.md +0 -86
  332. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/SKILL.md +0 -73
  333. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/cli.js +0 -93
  334. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/core.mjs +0 -122
  335. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/guard.mjs +0 -64
  336. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
  337. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
  338. package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/package.json +0 -31
  339. package/.worktrees/toolbox--save-stale/tools/wip-repos/LICENSE +0 -52
  340. package/.worktrees/toolbox--save-stale/tools/wip-repos/README.md +0 -77
  341. package/.worktrees/toolbox--save-stale/tools/wip-repos/SKILL.md +0 -80
  342. package/.worktrees/toolbox--save-stale/tools/wip-repos/claude.mjs +0 -248
  343. package/.worktrees/toolbox--save-stale/tools/wip-repos/cli.mjs +0 -191
  344. package/.worktrees/toolbox--save-stale/tools/wip-repos/core.mjs +0 -290
  345. package/.worktrees/toolbox--save-stale/tools/wip-repos/mcp-server.mjs +0 -157
  346. package/.worktrees/toolbox--save-stale/tools/wip-repos/package.json +0 -34
  347. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/CHANGELOG.md +0 -57
  348. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/LICENSE +0 -52
  349. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/README.md +0 -81
  350. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/REFERENCE.md +0 -122
  351. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SKILL.md +0 -87
  352. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SPEC.md +0 -206
  353. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/detect.mjs +0 -130
  354. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/README.md +0 -20
  355. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
  356. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
  357. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
  358. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
  359. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/package.json +0 -12
  360. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/install.js +0 -930
  361. package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/package.json +0 -32
  362. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.license-guard.json +0 -7
  363. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.publish-skill.json +0 -4
  364. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CHANGELOG.md +0 -1875
  365. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CLA.md +0 -19
  366. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
  367. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/LICENSE +0 -52
  368. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/README.md +0 -238
  369. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/SKILL.md +0 -821
  370. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/TECHNICAL.md +0 -416
  371. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/UNIVERSAL-INTERFACE.md +0 -180
  372. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  373. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  374. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  375. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  376. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  377. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  378. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  379. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  380. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  381. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  382. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  383. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  384. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  385. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  386. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  387. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  388. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  389. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  390. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  391. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  392. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  393. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  394. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  395. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  396. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/DEV-GUIDE.md +0 -487
  397. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/scripts/deploy-public.sh +0 -152
  398. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/package.json +0 -27
  399. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-deploy-public.md +0 -61
  400. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-post-merge-rename.md +0 -47
  401. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/deploy-public.sh +0 -345
  402. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/post-merge-rename.sh +0 -210
  403. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/publish-skill.sh +0 -134
  404. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/global-claude-md.md +0 -73
  405. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/repo-claude-md.template +0 -24
  406. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/LICENSE +0 -52
  407. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/README.md +0 -31
  408. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/SKILL.md +0 -71
  409. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/deploy-public.sh +0 -264
  410. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/package.json +0 -9
  411. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/LICENSE +0 -52
  412. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/README.md +0 -46
  413. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/backup.sh +0 -16
  414. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/branch-protect.sh +0 -39
  415. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/crystal-capture.sh +0 -19
  416. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/setup-shell.sh +0 -27
  417. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/visibility-audit.sh +0 -27
  418. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/LICENSE +0 -52
  419. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/README.md +0 -29
  420. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/SKILL.md +0 -57
  421. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/package.json +0 -9
  422. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/post-merge-rename.sh +0 -122
  423. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/INSTALL.md +0 -41
  424. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/guard.mjs +0 -418
  425. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/package.json +0 -18
  426. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/CHANGELOG.md +0 -6
  427. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/LICENSE +0 -52
  428. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/README.md +0 -113
  429. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/REFERENCE.md +0 -86
  430. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/SKILL.md +0 -105
  431. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/guard.mjs +0 -161
  432. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/openclaw.plugin.json +0 -8
  433. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/package.json +0 -27
  434. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/test.sh +0 -119
  435. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/LICENSE +0 -52
  436. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/README.md +0 -69
  437. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/SKILL.md +0 -65
  438. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/cli.mjs +0 -472
  439. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/core.mjs +0 -310
  440. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/guard.mjs +0 -146
  441. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/package.json +0 -22
  442. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/CHANGELOG.md +0 -17
  443. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/LICENSE +0 -52
  444. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/README.md +0 -200
  445. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/SKILL.md +0 -111
  446. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
  447. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js +0 -170
  448. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js.map +0 -1
  449. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
  450. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js +0 -104
  451. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js.map +0 -1
  452. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.d.ts +0 -4
  453. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js +0 -5
  454. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js.map +0 -1
  455. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
  456. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js +0 -72
  457. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
  458. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
  459. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js +0 -227
  460. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
  461. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
  462. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js +0 -325
  463. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
  464. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
  465. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-push.sh +0 -51
  466. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/mcp-server.mjs +0 -119
  467. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package-lock.json +0 -54
  468. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package.json +0 -43
  469. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/cli/index.ts +0 -189
  470. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/detector.ts +0 -130
  471. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/index.ts +0 -4
  472. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/ledger.ts +0 -116
  473. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/reporter.ts +0 -255
  474. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/scanner.ts +0 -367
  475. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/tsconfig.json +0 -16
  476. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/README.md +0 -49
  477. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/SKILL.md +0 -84
  478. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/format.mjs +0 -597
  479. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/package.json +0 -15
  480. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/CHANGELOG.md +0 -42
  481. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/LICENSE +0 -52
  482. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/README.md +0 -45
  483. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/REFERENCE.md +0 -100
  484. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/SKILL.md +0 -139
  485. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/cli.js +0 -175
  486. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/core.mjs +0 -1664
  487. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/mcp-server.mjs +0 -113
  488. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/package.json +0 -36
  489. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/README.md +0 -38
  490. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/SKILL.md +0 -77
  491. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/init.mjs +0 -148
  492. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/package.json +0 -11
  493. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_sort/README.md +0 -15
  494. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_trash/README.md +0 -16
  495. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
  496. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/notes/README.md +0 -26
  497. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
  498. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
  499. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
  500. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
  501. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/read-me-first.md +0 -80
  502. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/LICENSE +0 -52
  503. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/README.md +0 -86
  504. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/SKILL.md +0 -73
  505. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/cli.js +0 -93
  506. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/core.mjs +0 -122
  507. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/guard.mjs +0 -64
  508. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
  509. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
  510. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/package.json +0 -31
  511. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/LICENSE +0 -52
  512. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/README.md +0 -77
  513. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/SKILL.md +0 -80
  514. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/claude.mjs +0 -248
  515. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/cli.mjs +0 -191
  516. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/core.mjs +0 -290
  517. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/mcp-server.mjs +0 -157
  518. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/package.json +0 -34
  519. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/CHANGELOG.md +0 -57
  520. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/LICENSE +0 -52
  521. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/README.md +0 -81
  522. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/REFERENCE.md +0 -122
  523. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SKILL.md +0 -87
  524. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SPEC.md +0 -206
  525. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/detect.mjs +0 -130
  526. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/README.md +0 -20
  527. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
  528. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
  529. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
  530. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
  531. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/package.json +0 -12
  532. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/install.js +0 -930
  533. package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/package.json +0 -32
  534. package/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
  535. package/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
  536. package/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
  537. package/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
  538. package/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
  539. package/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
  540. package/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
  541. package/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
  542. package/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
  543. package/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
  544. package/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
  545. package/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
  546. package/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
  547. package/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
  548. package/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
  549. package/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
  550. package/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
  551. package/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
  552. package/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
  553. package/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
  554. package/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
  555. package/_trash/RELEASE-NOTES-v1-9-56.md +0 -42
  556. package/_trash/RELEASE-NOTES-v1-9-57.md +0 -18
  557. package/_trash/RELEASE-NOTES-v1-9-58.md +0 -21
  558. package/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
  559. package/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
  560. package/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
  561. package/_trash/guide 2/DEV-GUIDE.md +0 -487
  562. package/_trash/guide 2/scripts/deploy-public.sh +0 -152
  563. package/tools/wip-repo-init/templates/_trash/README.md +0 -16
@@ -1,69 +0,0 @@
1
- ###### WIP Computer
2
-
3
- # License Guard
4
-
5
- Enforce licensing on every repo. Copyright, dual-license, CLA, README license section. Checked automatically on every release.
6
-
7
- ## Commands
8
-
9
- ```bash
10
- wip-license-guard check # audit current repo
11
- wip-license-guard check --fix # audit and auto-fix issues
12
- wip-license-guard init # interactive first-run setup
13
- wip-license-guard init --from-standard # apply WIP Computer defaults without prompting
14
- wip-license-guard readme-license # audit license blocks across all repos
15
- wip-license-guard readme-license --fix # apply standard license block to all READMEs
16
- wip-license-guard readme-license --dry-run # preview changes without writing
17
- ```
18
-
19
- ## What it checks
20
-
21
- - LICENSE file exists and matches configured license type
22
- - Copyright line is correct and current year
23
- - CLA.md exists (if configured)
24
- - README has a `## License` section with the standard block
25
- - For toolbox repos: checks every sub-tool in `tools/`
26
-
27
- ## Config
28
-
29
- `.license-guard.json` in repo root. Created by `init`. Contains copyright holder, license type, year, and what to enforce.
30
-
31
- ```json
32
- {
33
- "copyright": "WIP Computer, Inc.",
34
- "license": "MIT+AGPL",
35
- "year": 2026,
36
- "enforceCLA": true,
37
- "enforceReadmeLicense": true
38
- }
39
- ```
40
-
41
- ## wip-release gate
42
-
43
- Step 0 of wip-release reads `.license-guard.json` and runs the same checks. If compliance fails, the release is blocked.
44
-
45
- ## `--from-standard` generates
46
-
47
- - `.license-guard.json` with WIP Computer defaults
48
- - `LICENSE` file (dual MIT+AGPL)
49
- - `CLA.md`
50
-
51
- ## readme-license
52
-
53
- Scans all repos in a directory and applies a standard license block to every README. Removes duplicate license sections from sub-tool READMEs. Reads templates from `ai/wip-templates/readme/`.
54
-
55
- ## Source
56
-
57
- Pure JavaScript, no build step. Zero dependencies.
58
-
59
- - `cli.mjs` ... CLI entry point
60
- - `core.mjs` ... license checking and generation logic
61
- - `hook.mjs` ... wip-release gate integration
62
-
63
- ## Interfaces
64
-
65
- - **CLI**: `wip-license-guard`
66
-
67
- ## Part of [AI DevOps Toolbox](https://github.com/wipcomputer/wip-ai-devops-toolbox)
68
-
69
- Built by Parker Todd Brooks, Lēsa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).
@@ -1,65 +0,0 @@
1
- ---
2
- name: wip-license-guard
3
- description: License compliance for your own repos. Ensures correct copyright headers, dual-license blocks, and LICENSE files across all source files.
4
- license: MIT
5
- interface: [cli, skill]
6
- metadata:
7
- display-name: "License Guard"
8
- version: "1.0.0"
9
- homepage: "https://github.com/wipcomputer/wip-ai-devops-toolbox"
10
- author: "Parker Todd Brooks"
11
- category: dev-tools
12
- capabilities:
13
- - copyright-enforcement
14
- - license-compliance
15
- - license-file-check
16
- requires:
17
- bins: [node, git]
18
- openclaw:
19
- requires:
20
- bins: [node, git]
21
- install:
22
- - id: node
23
- kind: node
24
- package: "@wipcomputer/wip-license-guard"
25
- bins: [wip-license-guard]
26
- label: "Install via npm"
27
- emoji: "📜"
28
- ---
29
-
30
- # wip-license-guard
31
-
32
- License compliance for your own repos. Ensures correct copyright, dual-license blocks, LICENSE files, and README license sections.
33
-
34
- ## When to Use This Skill
35
-
36
- - Before a release, to verify all files have correct license headers
37
- - After adding new source files to a repo
38
- - To enforce the MIT/AGPL dual-license pattern
39
- - To standardize README license sections across all your repos
40
-
41
- ## CLI
42
-
43
- ```bash
44
- wip-license-guard check [path] # audit repo against config
45
- wip-license-guard check --fix [path] # auto-fix LICENSE, CLA, copyright issues
46
- wip-license-guard init [path] # interactive setup
47
- wip-license-guard init --from-standard # apply WIP Computer defaults (no prompts)
48
- wip-license-guard readme-license [path] # audit README license sections
49
- wip-license-guard readme-license --dry-run # preview what would change
50
- wip-license-guard readme-license --fix # apply standard block to all READMEs
51
- ```
52
-
53
- ### readme-license
54
-
55
- Scans all repos for README license sections. Three modes:
56
-
57
- - **No flags**: audit only. Reports non-standard, missing, and sub-tool READMEs that shouldn't have license sections.
58
- - **--dry-run**: preview. Shows what each README has now and what would change. No files touched.
59
- - **--fix**: apply. Replaces non-standard sections with the standard dual MIT/AGPLv3 block. Removes license sections from sub-tool READMEs.
60
-
61
- Works on a single repo or a directory of repos:
62
- ```bash
63
- wip-license-guard readme-license /path/to/one-repo
64
- wip-license-guard readme-license /path/to/directory-of-repos
65
- ```
@@ -1,472 +0,0 @@
1
- #!/usr/bin/env node
2
- // wip-license-guard
3
- // License compliance for your own repos.
4
- // Ensures correct copyright, dual-license blocks, and LICENSE files.
5
-
6
- import { existsSync, readFileSync, writeFileSync, readdirSync } from 'node:fs';
7
- import { join, dirname } from 'node:path';
8
- import { fileURLToPath } from 'node:url';
9
- import { createInterface } from 'node:readline';
10
- import { generateLicense, generateCLA, generateReadmeBlock, replaceReadmeLicenseSection, removeReadmeLicenseSection } from './core.mjs';
11
-
12
- if (process.argv.includes('--version') || process.argv.includes('-v')) {
13
- const __dirname = dirname(fileURLToPath(import.meta.url));
14
- const pkg = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf8'));
15
- console.log(pkg.version);
16
- process.exit(0);
17
- }
18
-
19
- const args = process.argv.slice(2);
20
- const HELP_FLAGS = ['--help', '-h', 'help'];
21
- const command = HELP_FLAGS.some(f => args.includes(f)) ? 'help' : (args.find(a => !a.startsWith('--')) || 'check');
22
- const target = args.find((a, i) => i > 0 && !a.startsWith('--')) || '.';
23
- const FIX = args.includes('--fix');
24
- const DRY_RUN = args.includes('--dry-run');
25
- const QUIET = args.includes('--quiet');
26
- const FROM_STANDARD = args.includes('--from-standard');
27
-
28
- function log(msg) { if (!QUIET) console.log(msg); }
29
- function ok(msg) { if (!QUIET) console.log(` \u2713 ${msg}`); }
30
- function warn(msg) { console.log(` \u2717 ${msg}`); }
31
-
32
- function ask(question) {
33
- const rl = createInterface({ input: process.stdin, output: process.stdout });
34
- return new Promise(resolve => {
35
- rl.question(question, answer => {
36
- rl.close();
37
- resolve(answer.trim());
38
- });
39
- });
40
- }
41
-
42
- // WIP Computer standard defaults
43
- const WIP_STANDARD = {
44
- copyright: 'WIP Computer, Inc.',
45
- license: 'MIT+AGPL',
46
- year: String(new Date().getFullYear()),
47
- attribution: 'Built by Parker Todd Brooks, Lēsa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).',
48
- };
49
-
50
- async function init(repoPath) {
51
- const configPath = join(repoPath, '.license-guard.json');
52
-
53
- // --from-standard: apply WIP Computer defaults without prompting
54
- if (FROM_STANDARD) {
55
- log('\n wip-license-guard init --from-standard\n');
56
-
57
- const config = { ...WIP_STANDARD, created: new Date().toISOString() };
58
-
59
- writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
60
- ok(`Config saved to .license-guard.json`);
61
-
62
- const licensePath = join(repoPath, 'LICENSE');
63
- writeFileSync(licensePath, generateLicense(config, repoPath));
64
- ok(`LICENSE file generated (dual MIT+AGPLv3)`);
65
-
66
- const claPath = join(repoPath, 'CLA.md');
67
- if (!existsSync(claPath)) {
68
- writeFileSync(claPath, generateCLA(repoPath));
69
- ok(`CLA.md generated`);
70
- } else {
71
- ok(`CLA.md already exists`);
72
- }
73
-
74
- log(`\n Standard: ${config.copyright}, ${config.license}, ${config.year}`);
75
- log(` Done. Run \`wip-license-guard check\` to audit.\n`);
76
- return config;
77
- }
78
-
79
- if (existsSync(configPath)) {
80
- const existing = JSON.parse(readFileSync(configPath, 'utf8'));
81
- log(`\nLicense guard already configured:`);
82
- log(` Copyright: ${existing.copyright}`);
83
- log(` License: ${existing.license}`);
84
- log(` Year: ${existing.year}`);
85
- const update = await ask('\nUpdate? (y/N) ');
86
- if (update.toLowerCase() !== 'y') {
87
- log('Keeping existing config.');
88
- return existing;
89
- }
90
- }
91
-
92
- log('\n wip-license-guard init\n');
93
-
94
- const copyright = await ask(' Copyright holder (e.g. WIP Computer, Inc.): ');
95
- if (!copyright) {
96
- console.error('Copyright holder is required.');
97
- process.exit(1);
98
- }
99
-
100
- log('\n License types:');
101
- log(' 1. MIT only');
102
- log(' 2. AGPLv3 only');
103
- log(' 3. MIT + AGPLv3 dual-license (recommended for WIP repos)');
104
- const licenseChoice = await ask('\n Choose (1/2/3): ');
105
-
106
- const licenseMap = { '1': 'MIT', '2': 'AGPL-3.0', '3': 'MIT+AGPL' };
107
- const license = licenseMap[licenseChoice] || 'MIT+AGPL';
108
-
109
- const currentYear = new Date().getFullYear();
110
- const yearInput = await ask(` Copyright year (${currentYear}): `);
111
- const year = yearInput || String(currentYear);
112
-
113
- const attribution = await ask(' Attribution (e.g. Built by Parker Todd Brooks, ...): ');
114
-
115
- const config = { copyright, license, year, attribution, created: new Date().toISOString() };
116
-
117
- writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
118
- ok(`Config saved to .license-guard.json`);
119
-
120
- const licensePath = join(repoPath, 'LICENSE');
121
- const licenseText = generateLicense(config, repoPath);
122
- writeFileSync(licensePath, licenseText);
123
- ok(`LICENSE file generated`);
124
-
125
- // Generate CLA.md if it doesn't exist
126
- const claPath = join(repoPath, 'CLA.md');
127
- if (!existsSync(claPath)) {
128
- writeFileSync(claPath, generateCLA(repoPath));
129
- ok(`CLA.md generated`);
130
- }
131
-
132
- log(`\nDone. Run \`wip-license-guard check\` to audit.`);
133
- return config;
134
- }
135
-
136
- async function check(repoPath) {
137
- const configPath = join(repoPath, '.license-guard.json');
138
-
139
- if (!existsSync(configPath)) {
140
- log('\n No .license-guard.json found.');
141
- const doInit = await ask(' Initialize license guard? (Y/n) ');
142
- if (doInit.toLowerCase() !== 'n') {
143
- await init(repoPath);
144
- return 0;
145
- }
146
- process.exit(1);
147
- }
148
-
149
- const config = JSON.parse(readFileSync(configPath, 'utf8'));
150
- let issues = 0;
151
-
152
- log(`\n wip-license-guard check\n`);
153
- log(` Copyright: ${config.copyright}`);
154
- log(` License: ${config.license}\n`);
155
-
156
- // Check LICENSE file
157
- const licensePath = join(repoPath, 'LICENSE');
158
- if (!existsSync(licensePath)) {
159
- warn('LICENSE file missing');
160
- issues++;
161
- if (FIX) {
162
- writeFileSync(licensePath, generateLicense(config, repoPath));
163
- ok('LICENSE file created (--fix)');
164
- issues--;
165
- }
166
- } else {
167
- const licenseText = readFileSync(licensePath, 'utf8');
168
-
169
- if (!licenseText.includes(config.copyright)) {
170
- warn(`LICENSE copyright does not match "${config.copyright}"`);
171
- issues++;
172
- if (FIX) {
173
- writeFileSync(licensePath, generateLicense(config, repoPath));
174
- ok('LICENSE file updated (--fix)');
175
- issues--;
176
- }
177
- } else {
178
- ok('LICENSE copyright correct');
179
- }
180
-
181
- if (config.license === 'MIT+AGPL') {
182
- if (!licenseText.includes('AGPL') && !licenseText.includes('GNU Affero')) {
183
- warn('LICENSE file is MIT-only but config says MIT+AGPL');
184
- issues++;
185
- if (FIX) {
186
- writeFileSync(licensePath, generateLicense(config, repoPath));
187
- ok('LICENSE file updated to dual-license (--fix)');
188
- issues--;
189
- }
190
- } else {
191
- ok('LICENSE includes AGPLv3 terms');
192
- }
193
- }
194
- }
195
-
196
- // Check CLA.md
197
- const claPath = join(repoPath, 'CLA.md');
198
- if (!existsSync(claPath)) {
199
- warn('CLA.md missing');
200
- issues++;
201
- if (FIX) {
202
- writeFileSync(claPath, generateCLA(repoPath));
203
- ok('CLA.md created (--fix)');
204
- issues--;
205
- }
206
- } else {
207
- ok('CLA.md exists');
208
- }
209
-
210
- // Check README (license + structure standard)
211
- const readmePath = join(repoPath, 'README.md');
212
- if (existsSync(readmePath)) {
213
- const readme = readFileSync(readmePath, 'utf8');
214
-
215
- // License checks
216
- if (!readme.includes('## License')) {
217
- warn('README.md missing ## License section');
218
- issues++;
219
- } else {
220
- ok('README.md has License section');
221
- }
222
-
223
- if (config.license === 'MIT+AGPL' && !readme.includes('AGPL')) {
224
- warn('README.md License section missing AGPL reference');
225
- issues++;
226
- } else if (config.license === 'MIT+AGPL') {
227
- ok('README.md references AGPL');
228
- }
229
-
230
- // README structure standard checks
231
- if (!readme.match(/^#\s+\S/m)) {
232
- warn('README.md missing # title');
233
- issues++;
234
- } else {
235
- ok('README.md has title');
236
- }
237
-
238
- if (config.attribution && !readme.includes(config.attribution.split(',')[0])) {
239
- warn('README.md missing attribution');
240
- issues++;
241
- } else if (config.attribution) {
242
- ok('README.md has attribution');
243
- }
244
-
245
- // Warn if README contains content that belongs in TECHNICAL.md
246
- const technicalPatterns = [
247
- /## (Architecture|API|Config|Configuration|Build|Development Setup|Quick Start)/i,
248
- /```json\s*\n\s*\{[\s\S]*?"command"/, // MCP config blocks
249
- /npm install -g /, // install commands belong in TECHNICAL.md
250
- ];
251
- for (const pattern of technicalPatterns) {
252
- if (pattern.test(readme)) {
253
- warn('README.md contains technical content (move to TECHNICAL.md)');
254
- issues++;
255
- break;
256
- }
257
- }
258
- } else {
259
- warn('README.md not found');
260
- issues++;
261
- }
262
-
263
- // Check sub-tools (toolbox mode)
264
- const toolsDir = join(repoPath, 'tools');
265
- if (existsSync(toolsDir)) {
266
- try {
267
- const entries = readdirSync(toolsDir, { withFileTypes: true });
268
- for (const entry of entries) {
269
- if (!entry.isDirectory()) continue;
270
- const toolPath = join(toolsDir, entry.name);
271
- const toolLicense = join(toolPath, 'LICENSE');
272
-
273
- if (!existsSync(toolLicense)) {
274
- warn(`tools/${entry.name}/LICENSE missing`);
275
- issues++;
276
- if (FIX) {
277
- writeFileSync(toolLicense, generateLicense(config, repoPath));
278
- ok(`tools/${entry.name}/LICENSE created (--fix)`);
279
- issues--;
280
- }
281
- } else {
282
- const text = readFileSync(toolLicense, 'utf8');
283
- if (!text.includes(config.copyright)) {
284
- warn(`tools/${entry.name}/LICENSE wrong copyright`);
285
- issues++;
286
- if (FIX) {
287
- writeFileSync(toolLicense, generateLicense(config, repoPath));
288
- ok(`tools/${entry.name}/LICENSE updated (--fix)`);
289
- issues--;
290
- }
291
- } else {
292
- ok(`tools/${entry.name}/LICENSE correct`);
293
- }
294
- }
295
- }
296
- } catch {}
297
- }
298
-
299
- log('');
300
- if (issues === 0) {
301
- log(' All checks passed.\n');
302
- } else {
303
- log(` ${issues} issue(s) found. Run with --fix to auto-repair.\n`);
304
- }
305
-
306
- return issues;
307
- }
308
-
309
- async function readmeLicense(targetPath) {
310
- const mode = FIX ? '--fix' : DRY_RUN ? '--dry-run' : '';
311
- log(`\n wip-license-guard readme-license${mode ? ' ' + mode : ''}\n`);
312
-
313
- // Detect if targetPath is a single repo or a directory of repos
314
- const repos = [];
315
- const configPath = join(targetPath, '.license-guard.json');
316
- if (existsSync(configPath)) {
317
- // Single repo
318
- repos.push(targetPath);
319
- } else {
320
- // Directory of repos (or nested categories like ldm-os/components/)
321
- const scanDir = (dir) => {
322
- try {
323
- for (const entry of readdirSync(dir, { withFileTypes: true })) {
324
- if (!entry.isDirectory() || entry.name.startsWith('.') || entry.name === 'node_modules' || entry.name === '_trash') continue;
325
- const sub = join(dir, entry.name);
326
- if (existsSync(join(sub, '.license-guard.json'))) {
327
- repos.push(sub);
328
- } else if (existsSync(join(sub, 'package.json')) || existsSync(join(sub, 'README.md'))) {
329
- repos.push(sub);
330
- } else {
331
- scanDir(sub); // recurse into category folders
332
- }
333
- }
334
- } catch {}
335
- };
336
- scanDir(targetPath);
337
- }
338
-
339
- if (repos.length === 0) {
340
- warn('No repos found. Point at a repo or a directory containing repos.');
341
- return 1;
342
- }
343
-
344
- log(` Found ${repos.length} repo(s)\n`);
345
-
346
- let totalIssues = 0;
347
-
348
- for (const repoPath of repos) {
349
- const repoName = repoPath.split('/').pop();
350
- const repoConfig = join(repoPath, '.license-guard.json');
351
- const config = existsSync(repoConfig)
352
- ? JSON.parse(readFileSync(repoConfig, 'utf8'))
353
- : WIP_STANDARD;
354
-
355
- // 1. Check main README
356
- const readmePath = join(repoPath, 'README.md');
357
- if (existsSync(readmePath)) {
358
- const content = readFileSync(readmePath, 'utf8');
359
- const expected = generateReadmeBlock(config);
360
-
361
- if (content.includes('### Can I use this?') && content.includes('Dual-license model')) {
362
- ok(`${repoName}/README.md ... standard license block`);
363
- } else if (content.includes('## License')) {
364
- warn(`${repoName}/README.md ... non-standard license section`);
365
- totalIssues++;
366
- if (DRY_RUN) {
367
- // Extract current license section for preview
368
- const match = content.match(/## License[\s\S]*?(?=\n## [^#]|$)/);
369
- if (match) {
370
- log(` current: ${match[0].split('\n').slice(0, 3).join(' | ').substring(0, 80)}...`);
371
- }
372
- log(` would replace with: standard dual MIT/AGPLv3 block`);
373
- }
374
- if (FIX) {
375
- const updated = replaceReadmeLicenseSection(content, config, repoPath);
376
- writeFileSync(readmePath, updated);
377
- ok(`${repoName}/README.md ... updated to standard (--fix)`);
378
- totalIssues--;
379
- }
380
- } else {
381
- warn(`${repoName}/README.md ... missing ## License`);
382
- totalIssues++;
383
- if (DRY_RUN) {
384
- log(` would add: standard dual MIT/AGPLv3 block at end of README`);
385
- }
386
- if (FIX) {
387
- const updated = replaceReadmeLicenseSection(content, config, repoPath);
388
- writeFileSync(readmePath, updated);
389
- ok(`${repoName}/README.md ... added standard block (--fix)`);
390
- totalIssues--;
391
- }
392
- }
393
- } else {
394
- warn(`${repoName}/README.md ... not found`);
395
- totalIssues++;
396
- }
397
-
398
- // 2. Check sub-tool READMEs (should NOT have license sections)
399
- const toolsDir = join(repoPath, 'tools');
400
- if (existsSync(toolsDir)) {
401
- try {
402
- for (const tool of readdirSync(toolsDir, { withFileTypes: true })) {
403
- if (!tool.isDirectory()) continue;
404
- const subReadme = join(toolsDir, tool.name, 'README.md');
405
- if (!existsSync(subReadme)) continue;
406
-
407
- const subContent = readFileSync(subReadme, 'utf8');
408
- if (subContent.includes('## License')) {
409
- warn(`${repoName}/tools/${tool.name}/README.md ... has license section (should be removed)`);
410
- totalIssues++;
411
- if (DRY_RUN) {
412
- log(` would remove: ## License section from sub-tool README`);
413
- }
414
- if (FIX) {
415
- const cleaned = removeReadmeLicenseSection(subContent);
416
- writeFileSync(subReadme, cleaned);
417
- ok(`${repoName}/tools/${tool.name}/README.md ... license section removed (--fix)`);
418
- totalIssues--;
419
- }
420
- }
421
- }
422
- } catch {}
423
- }
424
- }
425
-
426
- log('');
427
- if (totalIssues === 0) {
428
- log(' All README license sections are correct.\n');
429
- } else if (DRY_RUN) {
430
- log(` ${totalIssues} issue(s) found. Dry run complete. No changes made.`);
431
- log(` Run with --fix to apply changes.\n`);
432
- } else {
433
- log(` ${totalIssues} issue(s) found. Run with --dry-run to preview or --fix to apply.\n`);
434
- }
435
-
436
- return totalIssues;
437
- }
438
-
439
- // Main
440
- if (command === 'init') {
441
- await init(target === 'init' ? '.' : target);
442
- } else if (command === 'check') {
443
- const repoPath = (target === 'check') ? '.' : target;
444
- const issues = await check(repoPath);
445
- process.exit(issues > 0 ? 1 : 0);
446
- } else if (command === 'readme-license') {
447
- const repoPath = (target === 'readme-license') ? '.' : target;
448
- const issues = await readmeLicense(repoPath);
449
- process.exit(issues > 0 ? 1 : 0);
450
- } else if (command === '--help' || command === '-h' || command === 'help') {
451
- console.log(`
452
- wip-license-guard
453
-
454
- Commands:
455
- init [path] Interactive setup. Asks license type, copyright, year.
456
- init --from-standard Apply WIP Computer defaults (MIT+AGPL, CLA, attribution).
457
- check [path] Audit repo against saved config. Exit 1 if issues found.
458
- check --fix [path] Auto-fix issues (update LICENSE files, wrong copyright).
459
- readme-license [path] Scan README license sections. Works on one repo or a directory of repos.
460
- readme-license --dry-run Preview what would change. Shows current vs standard for each README.
461
- readme-license --fix Apply standard license block to all READMEs. Remove from sub-tools.
462
- help Show this help.
463
-
464
- On first run, if no config exists, check will offer to run init.
465
- Use --from-standard for new WIP Computer repos (no prompts, just works).
466
-
467
- Config file: .license-guard.json (commit this to your repo)
468
- `);
469
- } else {
470
- console.error(`Unknown command: ${command}. Run wip-license-guard help.`);
471
- process.exit(1);
472
- }