@wipcomputer/wip-ai-devops-toolbox 1.9.59 → 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.
- package/CHANGELOG.md +21 -0
- package/SKILL.md +1 -1
- package/package.json +1 -1
- package/tools/deploy-public/package.json +1 -1
- package/tools/post-merge-rename/package.json +1 -1
- package/tools/wip-branch-guard/package.json +1 -1
- package/tools/wip-file-guard/package.json +1 -1
- package/tools/wip-license-guard/package.json +1 -1
- package/tools/wip-license-hook/package.json +1 -1
- package/tools/wip-readme-format/package.json +1 -1
- package/tools/wip-release/package.json +1 -1
- package/tools/wip-repo-init/package.json +1 -1
- package/tools/wip-repo-permissions-hook/package.json +1 -1
- package/tools/wip-repos/package.json +1 -1
- package/tools/wip-universal-installer/package.json +1 -1
- package/.worktrees/toolbox--guard-plan/.license-guard.json +0 -7
- package/.worktrees/toolbox--guard-plan/.publish-skill.json +0 -4
- package/.worktrees/toolbox--guard-plan/CHANGELOG.md +0 -1965
- package/.worktrees/toolbox--guard-plan/CLA.md +0 -19
- package/.worktrees/toolbox--guard-plan/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
- package/.worktrees/toolbox--guard-plan/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/README.md +0 -238
- package/.worktrees/toolbox--guard-plan/RELEASE-NOTES-v1-9-59.md +0 -28
- package/.worktrees/toolbox--guard-plan/SKILL.md +0 -821
- package/.worktrees/toolbox--guard-plan/TECHNICAL.md +0 -416
- package/.worktrees/toolbox--guard-plan/UNIVERSAL-INTERFACE.md +0 -180
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-56.md +0 -42
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-57.md +0 -18
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-58.md +0 -21
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
- package/.worktrees/toolbox--guard-plan/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
- package/.worktrees/toolbox--guard-plan/_trash/guide 2/DEV-GUIDE.md +0 -487
- package/.worktrees/toolbox--guard-plan/_trash/guide 2/scripts/deploy-public.sh +0 -152
- package/.worktrees/toolbox--guard-plan/package.json +0 -27
- package/.worktrees/toolbox--guard-plan/scripts/SKILL-deploy-public.md +0 -61
- package/.worktrees/toolbox--guard-plan/scripts/SKILL-post-merge-rename.md +0 -47
- package/.worktrees/toolbox--guard-plan/scripts/deploy-public.sh +0 -350
- package/.worktrees/toolbox--guard-plan/scripts/post-merge-rename.sh +0 -210
- package/.worktrees/toolbox--guard-plan/scripts/publish-skill.sh +0 -134
- package/.worktrees/toolbox--guard-plan/templates/global-claude-md.md +0 -73
- package/.worktrees/toolbox--guard-plan/templates/repo-claude-md.template +0 -24
- package/.worktrees/toolbox--guard-plan/tools/deploy-public/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/deploy-public/README.md +0 -31
- package/.worktrees/toolbox--guard-plan/tools/deploy-public/SKILL.md +0 -71
- package/.worktrees/toolbox--guard-plan/tools/deploy-public/deploy-public.sh +0 -264
- package/.worktrees/toolbox--guard-plan/tools/deploy-public/package.json +0 -9
- package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/README.md +0 -46
- package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/backup.sh +0 -16
- package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/branch-protect.sh +0 -39
- package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/crystal-capture.sh +0 -19
- package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/setup-shell.sh +0 -27
- package/.worktrees/toolbox--guard-plan/tools/ldm-jobs/visibility-audit.sh +0 -27
- package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/README.md +0 -29
- package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/SKILL.md +0 -57
- package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/package.json +0 -9
- package/.worktrees/toolbox--guard-plan/tools/post-merge-rename/post-merge-rename.sh +0 -122
- package/.worktrees/toolbox--guard-plan/tools/wip-branch-guard/INSTALL.md +0 -41
- package/.worktrees/toolbox--guard-plan/tools/wip-branch-guard/guard.mjs +0 -477
- package/.worktrees/toolbox--guard-plan/tools/wip-branch-guard/package.json +0 -18
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/CHANGELOG.md +0 -6
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/README.md +0 -113
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/REFERENCE.md +0 -86
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/SKILL.md +0 -105
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/guard.mjs +0 -161
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/openclaw.plugin.json +0 -8
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/package.json +0 -27
- package/.worktrees/toolbox--guard-plan/tools/wip-file-guard/test.sh +0 -119
- package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/README.md +0 -69
- package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/SKILL.md +0 -65
- package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/cli.mjs +0 -472
- package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/core.mjs +0 -310
- package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/guard.mjs +0 -146
- package/.worktrees/toolbox--guard-plan/tools/wip-license-guard/package.json +0 -22
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/CHANGELOG.md +0 -17
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/README.md +0 -200
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/SKILL.md +0 -111
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/cli/index.js +0 -170
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/cli/index.js.map +0 -1
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/detector.js +0 -104
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/detector.js.map +0 -1
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/index.d.ts +0 -4
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/index.js +0 -5
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/index.js.map +0 -1
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/ledger.js +0 -72
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/reporter.js +0 -227
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/scanner.js +0 -325
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/hooks/pre-push.sh +0 -51
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/mcp-server.mjs +0 -119
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/package-lock.json +0 -54
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/package.json +0 -43
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/cli/index.ts +0 -189
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/detector.ts +0 -130
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/index.ts +0 -4
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/ledger.ts +0 -116
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/reporter.ts +0 -255
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/src/core/scanner.ts +0 -367
- package/.worktrees/toolbox--guard-plan/tools/wip-license-hook/tsconfig.json +0 -16
- package/.worktrees/toolbox--guard-plan/tools/wip-readme-format/README.md +0 -49
- package/.worktrees/toolbox--guard-plan/tools/wip-readme-format/SKILL.md +0 -84
- package/.worktrees/toolbox--guard-plan/tools/wip-readme-format/format.mjs +0 -597
- package/.worktrees/toolbox--guard-plan/tools/wip-readme-format/package.json +0 -15
- package/.worktrees/toolbox--guard-plan/tools/wip-release/CHANGELOG.md +0 -42
- package/.worktrees/toolbox--guard-plan/tools/wip-release/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/wip-release/README.md +0 -45
- package/.worktrees/toolbox--guard-plan/tools/wip-release/REFERENCE.md +0 -100
- package/.worktrees/toolbox--guard-plan/tools/wip-release/SKILL.md +0 -139
- package/.worktrees/toolbox--guard-plan/tools/wip-release/cli.js +0 -175
- package/.worktrees/toolbox--guard-plan/tools/wip-release/core.mjs +0 -1664
- package/.worktrees/toolbox--guard-plan/tools/wip-release/mcp-server.mjs +0 -113
- package/.worktrees/toolbox--guard-plan/tools/wip-release/package.json +0 -36
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/README.md +0 -38
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/SKILL.md +0 -77
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/init.mjs +0 -148
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/package.json +0 -11
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/_sort/README.md +0 -15
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/_trash/README.md +0 -16
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/notes/README.md +0 -26
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-init/templates/read-me-first.md +0 -80
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/README.md +0 -86
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/SKILL.md +0 -73
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/cli.js +0 -93
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/core.mjs +0 -122
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/guard.mjs +0 -64
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
- package/.worktrees/toolbox--guard-plan/tools/wip-repo-permissions-hook/package.json +0 -31
- package/.worktrees/toolbox--guard-plan/tools/wip-repos/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/wip-repos/README.md +0 -77
- package/.worktrees/toolbox--guard-plan/tools/wip-repos/SKILL.md +0 -80
- package/.worktrees/toolbox--guard-plan/tools/wip-repos/claude.mjs +0 -248
- package/.worktrees/toolbox--guard-plan/tools/wip-repos/cli.mjs +0 -191
- package/.worktrees/toolbox--guard-plan/tools/wip-repos/core.mjs +0 -290
- package/.worktrees/toolbox--guard-plan/tools/wip-repos/mcp-server.mjs +0 -157
- package/.worktrees/toolbox--guard-plan/tools/wip-repos/package.json +0 -34
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/CHANGELOG.md +0 -57
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/LICENSE +0 -52
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/README.md +0 -81
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/REFERENCE.md +0 -122
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/SKILL.md +0 -87
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/SPEC.md +0 -206
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/detect.mjs +0 -130
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/README.md +0 -20
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/examples/minimal/package.json +0 -12
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/install.js +0 -930
- package/.worktrees/toolbox--guard-plan/tools/wip-universal-installer/package.json +0 -32
- package/.worktrees/toolbox--release-notes/.license-guard.json +0 -7
- package/.worktrees/toolbox--release-notes/.publish-skill.json +0 -4
- package/.worktrees/toolbox--release-notes/CHANGELOG.md +0 -1875
- package/.worktrees/toolbox--release-notes/CLA.md +0 -19
- package/.worktrees/toolbox--release-notes/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
- package/.worktrees/toolbox--release-notes/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/README.md +0 -238
- package/.worktrees/toolbox--release-notes/RELEASE-NOTES-v1-9-56.md +0 -42
- package/.worktrees/toolbox--release-notes/SKILL.md +0 -821
- package/.worktrees/toolbox--release-notes/TECHNICAL.md +0 -416
- package/.worktrees/toolbox--release-notes/UNIVERSAL-INTERFACE.md +0 -180
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
- package/.worktrees/toolbox--release-notes/_trash/guide 2/DEV-GUIDE.md +0 -487
- package/.worktrees/toolbox--release-notes/_trash/guide 2/scripts/deploy-public.sh +0 -152
- package/.worktrees/toolbox--release-notes/package.json +0 -27
- package/.worktrees/toolbox--release-notes/scripts/SKILL-deploy-public.md +0 -61
- package/.worktrees/toolbox--release-notes/scripts/SKILL-post-merge-rename.md +0 -47
- package/.worktrees/toolbox--release-notes/scripts/deploy-public.sh +0 -345
- package/.worktrees/toolbox--release-notes/scripts/post-merge-rename.sh +0 -210
- package/.worktrees/toolbox--release-notes/scripts/publish-skill.sh +0 -134
- package/.worktrees/toolbox--release-notes/templates/global-claude-md.md +0 -73
- package/.worktrees/toolbox--release-notes/templates/repo-claude-md.template +0 -24
- package/.worktrees/toolbox--release-notes/tools/deploy-public/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/deploy-public/README.md +0 -31
- package/.worktrees/toolbox--release-notes/tools/deploy-public/SKILL.md +0 -71
- package/.worktrees/toolbox--release-notes/tools/deploy-public/deploy-public.sh +0 -264
- package/.worktrees/toolbox--release-notes/tools/deploy-public/package.json +0 -9
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/README.md +0 -46
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/backup.sh +0 -16
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/branch-protect.sh +0 -39
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/crystal-capture.sh +0 -19
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/setup-shell.sh +0 -27
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/visibility-audit.sh +0 -27
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/README.md +0 -29
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/SKILL.md +0 -57
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/package.json +0 -9
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/post-merge-rename.sh +0 -122
- package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/INSTALL.md +0 -41
- package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/guard.mjs +0 -459
- package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/package.json +0 -18
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/CHANGELOG.md +0 -6
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/README.md +0 -113
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/REFERENCE.md +0 -86
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/SKILL.md +0 -105
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/guard.mjs +0 -161
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/openclaw.plugin.json +0 -8
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/package.json +0 -27
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/test.sh +0 -119
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/README.md +0 -69
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/SKILL.md +0 -65
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/cli.mjs +0 -472
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/core.mjs +0 -310
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/guard.mjs +0 -146
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/package.json +0 -22
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/CHANGELOG.md +0 -17
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/README.md +0 -200
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/SKILL.md +0 -111
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js +0 -170
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js.map +0 -1
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js +0 -104
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js.map +0 -1
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.d.ts +0 -4
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js +0 -5
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js.map +0 -1
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js +0 -72
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js +0 -227
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js +0 -325
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-push.sh +0 -51
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/mcp-server.mjs +0 -119
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package-lock.json +0 -54
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package.json +0 -43
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/cli/index.ts +0 -189
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/detector.ts +0 -130
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/index.ts +0 -4
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/ledger.ts +0 -116
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/reporter.ts +0 -255
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/scanner.ts +0 -367
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/tsconfig.json +0 -16
- package/.worktrees/toolbox--release-notes/tools/wip-readme-format/README.md +0 -49
- package/.worktrees/toolbox--release-notes/tools/wip-readme-format/SKILL.md +0 -84
- package/.worktrees/toolbox--release-notes/tools/wip-readme-format/format.mjs +0 -597
- package/.worktrees/toolbox--release-notes/tools/wip-readme-format/package.json +0 -15
- package/.worktrees/toolbox--release-notes/tools/wip-release/CHANGELOG.md +0 -42
- package/.worktrees/toolbox--release-notes/tools/wip-release/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/wip-release/README.md +0 -45
- package/.worktrees/toolbox--release-notes/tools/wip-release/REFERENCE.md +0 -100
- package/.worktrees/toolbox--release-notes/tools/wip-release/SKILL.md +0 -139
- package/.worktrees/toolbox--release-notes/tools/wip-release/cli.js +0 -175
- package/.worktrees/toolbox--release-notes/tools/wip-release/core.mjs +0 -1664
- package/.worktrees/toolbox--release-notes/tools/wip-release/mcp-server.mjs +0 -113
- package/.worktrees/toolbox--release-notes/tools/wip-release/package.json +0 -36
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/README.md +0 -38
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/SKILL.md +0 -77
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/init.mjs +0 -148
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/package.json +0 -11
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_sort/README.md +0 -15
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_trash/README.md +0 -16
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/notes/README.md +0 -26
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/read-me-first.md +0 -80
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/README.md +0 -86
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/SKILL.md +0 -73
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/cli.js +0 -93
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/core.mjs +0 -122
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/guard.mjs +0 -64
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/package.json +0 -31
- package/.worktrees/toolbox--release-notes/tools/wip-repos/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/wip-repos/README.md +0 -77
- package/.worktrees/toolbox--release-notes/tools/wip-repos/SKILL.md +0 -80
- package/.worktrees/toolbox--release-notes/tools/wip-repos/claude.mjs +0 -248
- package/.worktrees/toolbox--release-notes/tools/wip-repos/cli.mjs +0 -191
- package/.worktrees/toolbox--release-notes/tools/wip-repos/core.mjs +0 -290
- package/.worktrees/toolbox--release-notes/tools/wip-repos/mcp-server.mjs +0 -157
- package/.worktrees/toolbox--release-notes/tools/wip-repos/package.json +0 -34
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/CHANGELOG.md +0 -57
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/LICENSE +0 -52
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/README.md +0 -81
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/REFERENCE.md +0 -122
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SKILL.md +0 -87
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SPEC.md +0 -206
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/detect.mjs +0 -130
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/README.md +0 -20
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/package.json +0 -12
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/install.js +0 -930
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/package.json +0 -32
- package/.worktrees/toolbox--save-stale/.license-guard.json +0 -7
- package/.worktrees/toolbox--save-stale/.publish-skill.json +0 -4
- package/.worktrees/toolbox--save-stale/CHANGELOG.md +0 -1875
- package/.worktrees/toolbox--save-stale/CLA.md +0 -19
- package/.worktrees/toolbox--save-stale/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
- package/.worktrees/toolbox--save-stale/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/README.md +0 -238
- package/.worktrees/toolbox--save-stale/SKILL.md +0 -821
- package/.worktrees/toolbox--save-stale/TECHNICAL.md +0 -416
- package/.worktrees/toolbox--save-stale/UNIVERSAL-INTERFACE.md +0 -180
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
- package/.worktrees/toolbox--save-stale/_trash/guide 2/DEV-GUIDE.md +0 -487
- package/.worktrees/toolbox--save-stale/_trash/guide 2/scripts/deploy-public.sh +0 -152
- package/.worktrees/toolbox--save-stale/package.json +0 -27
- package/.worktrees/toolbox--save-stale/scripts/SKILL-deploy-public.md +0 -61
- package/.worktrees/toolbox--save-stale/scripts/SKILL-post-merge-rename.md +0 -47
- package/.worktrees/toolbox--save-stale/scripts/deploy-public.sh +0 -345
- package/.worktrees/toolbox--save-stale/scripts/post-merge-rename.sh +0 -210
- package/.worktrees/toolbox--save-stale/scripts/publish-skill.sh +0 -134
- package/.worktrees/toolbox--save-stale/templates/global-claude-md.md +0 -73
- package/.worktrees/toolbox--save-stale/templates/repo-claude-md.template +0 -24
- package/.worktrees/toolbox--save-stale/tools/deploy-public/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/deploy-public/README.md +0 -31
- package/.worktrees/toolbox--save-stale/tools/deploy-public/SKILL.md +0 -71
- package/.worktrees/toolbox--save-stale/tools/deploy-public/deploy-public.sh +0 -264
- package/.worktrees/toolbox--save-stale/tools/deploy-public/package.json +0 -9
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/README.md +0 -46
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/backup.sh +0 -16
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/branch-protect.sh +0 -39
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/crystal-capture.sh +0 -19
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/setup-shell.sh +0 -27
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/visibility-audit.sh +0 -27
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/README.md +0 -29
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/SKILL.md +0 -57
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/package.json +0 -9
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/post-merge-rename.sh +0 -122
- package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/INSTALL.md +0 -41
- package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/guard.mjs +0 -459
- package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/package.json +0 -18
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/CHANGELOG.md +0 -6
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/README.md +0 -113
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/REFERENCE.md +0 -86
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/SKILL.md +0 -105
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/guard.mjs +0 -161
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/openclaw.plugin.json +0 -8
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/package.json +0 -27
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/test.sh +0 -119
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/README.md +0 -69
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/SKILL.md +0 -65
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/cli.mjs +0 -472
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/core.mjs +0 -310
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/guard.mjs +0 -146
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/package.json +0 -22
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/CHANGELOG.md +0 -17
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/README.md +0 -200
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/SKILL.md +0 -111
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js +0 -170
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js.map +0 -1
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js +0 -104
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js.map +0 -1
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.d.ts +0 -4
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js +0 -5
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js.map +0 -1
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js +0 -72
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js +0 -227
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js +0 -325
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-push.sh +0 -51
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/mcp-server.mjs +0 -119
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package-lock.json +0 -54
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package.json +0 -43
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/cli/index.ts +0 -189
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/detector.ts +0 -130
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/index.ts +0 -4
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/ledger.ts +0 -116
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/reporter.ts +0 -255
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/scanner.ts +0 -367
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/tsconfig.json +0 -16
- package/.worktrees/toolbox--save-stale/tools/wip-readme-format/README.md +0 -49
- package/.worktrees/toolbox--save-stale/tools/wip-readme-format/SKILL.md +0 -84
- package/.worktrees/toolbox--save-stale/tools/wip-readme-format/format.mjs +0 -597
- package/.worktrees/toolbox--save-stale/tools/wip-readme-format/package.json +0 -15
- package/.worktrees/toolbox--save-stale/tools/wip-release/CHANGELOG.md +0 -42
- package/.worktrees/toolbox--save-stale/tools/wip-release/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/wip-release/README.md +0 -45
- package/.worktrees/toolbox--save-stale/tools/wip-release/REFERENCE.md +0 -100
- package/.worktrees/toolbox--save-stale/tools/wip-release/SKILL.md +0 -139
- package/.worktrees/toolbox--save-stale/tools/wip-release/cli.js +0 -175
- package/.worktrees/toolbox--save-stale/tools/wip-release/core.mjs +0 -1664
- package/.worktrees/toolbox--save-stale/tools/wip-release/mcp-server.mjs +0 -113
- package/.worktrees/toolbox--save-stale/tools/wip-release/package.json +0 -36
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/README.md +0 -38
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/SKILL.md +0 -77
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/init.mjs +0 -148
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/package.json +0 -11
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_sort/README.md +0 -15
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_trash/README.md +0 -16
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/notes/README.md +0 -26
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/read-me-first.md +0 -80
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/README.md +0 -86
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/SKILL.md +0 -73
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/cli.js +0 -93
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/core.mjs +0 -122
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/guard.mjs +0 -64
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/package.json +0 -31
- package/.worktrees/toolbox--save-stale/tools/wip-repos/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/wip-repos/README.md +0 -77
- package/.worktrees/toolbox--save-stale/tools/wip-repos/SKILL.md +0 -80
- package/.worktrees/toolbox--save-stale/tools/wip-repos/claude.mjs +0 -248
- package/.worktrees/toolbox--save-stale/tools/wip-repos/cli.mjs +0 -191
- package/.worktrees/toolbox--save-stale/tools/wip-repos/core.mjs +0 -290
- package/.worktrees/toolbox--save-stale/tools/wip-repos/mcp-server.mjs +0 -157
- package/.worktrees/toolbox--save-stale/tools/wip-repos/package.json +0 -34
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/CHANGELOG.md +0 -57
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/LICENSE +0 -52
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/README.md +0 -81
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/REFERENCE.md +0 -122
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SKILL.md +0 -87
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SPEC.md +0 -206
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/detect.mjs +0 -130
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/README.md +0 -20
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/package.json +0 -12
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/install.js +0 -930
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/package.json +0 -32
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.license-guard.json +0 -7
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.publish-skill.json +0 -4
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CHANGELOG.md +0 -1875
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CLA.md +0 -19
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/DEV-GUIDE-GENERAL-PUBLIC.md +0 -949
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/README.md +0 -238
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/SKILL.md +0 -821
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/TECHNICAL.md +0 -416
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/UNIVERSAL-INTERFACE.md +0 -180
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/DEV-GUIDE.md +0 -487
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/scripts/deploy-public.sh +0 -152
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/package.json +0 -27
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-deploy-public.md +0 -61
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-post-merge-rename.md +0 -47
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/deploy-public.sh +0 -345
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/post-merge-rename.sh +0 -210
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/publish-skill.sh +0 -134
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/global-claude-md.md +0 -73
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/repo-claude-md.template +0 -24
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/README.md +0 -31
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/SKILL.md +0 -71
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/deploy-public.sh +0 -264
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/package.json +0 -9
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/README.md +0 -46
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/backup.sh +0 -16
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/branch-protect.sh +0 -39
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/crystal-capture.sh +0 -19
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/setup-shell.sh +0 -27
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/visibility-audit.sh +0 -27
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/README.md +0 -29
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/SKILL.md +0 -57
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/package.json +0 -9
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/post-merge-rename.sh +0 -122
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/INSTALL.md +0 -41
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/guard.mjs +0 -418
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/package.json +0 -18
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/CHANGELOG.md +0 -6
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/README.md +0 -113
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/REFERENCE.md +0 -86
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/SKILL.md +0 -105
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/guard.mjs +0 -161
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/openclaw.plugin.json +0 -8
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/package.json +0 -27
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/test.sh +0 -119
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/README.md +0 -69
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/SKILL.md +0 -65
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/cli.mjs +0 -472
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/core.mjs +0 -310
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/guard.mjs +0 -146
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/package.json +0 -22
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/CHANGELOG.md +0 -17
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/README.md +0 -200
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/SKILL.md +0 -111
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.d.ts +0 -15
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js +0 -170
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js.map +0 -1
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.d.ts +0 -12
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js +0 -104
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js.map +0 -1
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.d.ts +0 -4
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js +0 -5
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js.map +0 -1
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.d.ts +0 -49
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js +0 -72
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js.map +0 -1
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.d.ts +0 -14
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js +0 -227
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js.map +0 -1
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.d.ts +0 -39
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js +0 -325
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js.map +0 -1
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-pull.sh +0 -55
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-push.sh +0 -51
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/mcp-server.mjs +0 -119
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package-lock.json +0 -54
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package.json +0 -43
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/cli/index.ts +0 -189
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/detector.ts +0 -130
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/index.ts +0 -4
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/ledger.ts +0 -116
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/reporter.ts +0 -255
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/scanner.ts +0 -367
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/tsconfig.json +0 -16
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/README.md +0 -49
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/SKILL.md +0 -84
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/format.mjs +0 -597
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/package.json +0 -15
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/CHANGELOG.md +0 -42
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/README.md +0 -45
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/REFERENCE.md +0 -100
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/SKILL.md +0 -139
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/cli.js +0 -175
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/core.mjs +0 -1664
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/mcp-server.mjs +0 -113
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/package.json +0 -36
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/README.md +0 -38
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/SKILL.md +0 -77
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/init.mjs +0 -148
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/package.json +0 -11
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_sort/README.md +0 -15
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_trash/README.md +0 -16
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/dev-updates/README.md +0 -50
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/notes/README.md +0 -26
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +0 -77
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +0 -63
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/product-ideas/README.md +0 -24
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/readme-first-product.md +0 -128
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/read-me-first.md +0 -80
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/README.md +0 -86
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/SKILL.md +0 -73
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/cli.js +0 -93
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/core.mjs +0 -122
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/guard.mjs +0 -64
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/mcp-server.mjs +0 -92
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/openclaw.plugin.json +0 -8
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/package.json +0 -31
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/README.md +0 -77
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/SKILL.md +0 -80
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/claude.mjs +0 -248
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/cli.mjs +0 -191
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/core.mjs +0 -290
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/mcp-server.mjs +0 -157
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/package.json +0 -34
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/CHANGELOG.md +0 -57
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/LICENSE +0 -52
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/README.md +0 -81
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/REFERENCE.md +0 -122
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SKILL.md +0 -87
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SPEC.md +0 -206
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/detect.mjs +0 -130
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/README.md +0 -20
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/SKILL.md +0 -28
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/cli.mjs +0 -4
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/core.mjs +0 -8
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +0 -27
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/package.json +0 -12
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/install.js +0 -930
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/package.json +0 -32
- package/_trash/RELEASE-NOTES-v1-8-0.md +0 -29
- package/_trash/RELEASE-NOTES-v1-8-1.md +0 -7
- package/_trash/RELEASE-NOTES-v1-8-2.md +0 -7
- package/_trash/RELEASE-NOTES-v1-9-0.md +0 -37
- package/_trash/RELEASE-NOTES-v1-9-1.md +0 -38
- package/_trash/RELEASE-NOTES-v1-9-10.md +0 -40
- package/_trash/RELEASE-NOTES-v1-9-2.md +0 -40
- package/_trash/RELEASE-NOTES-v1-9-31.md +0 -26
- package/_trash/RELEASE-NOTES-v1-9-32.md +0 -18
- package/_trash/RELEASE-NOTES-v1-9-41.md +0 -28
- package/_trash/RELEASE-NOTES-v1-9-45.md +0 -25
- package/_trash/RELEASE-NOTES-v1-9-46.md +0 -38
- package/_trash/RELEASE-NOTES-v1-9-47.md +0 -42
- package/_trash/RELEASE-NOTES-v1-9-48.md +0 -22
- package/_trash/RELEASE-NOTES-v1-9-49.md +0 -31
- package/_trash/RELEASE-NOTES-v1-9-50.md +0 -24
- package/_trash/RELEASE-NOTES-v1-9-51.md +0 -11
- package/_trash/RELEASE-NOTES-v1-9-52.md +0 -25
- package/_trash/RELEASE-NOTES-v1-9-53.md +0 -22
- package/_trash/RELEASE-NOTES-v1-9-54.md +0 -13
- package/_trash/RELEASE-NOTES-v1-9-55.md +0 -11
- package/_trash/RELEASE-NOTES-v1-9-56.md +0 -42
- package/_trash/RELEASE-NOTES-v1-9-57.md +0 -18
- package/_trash/RELEASE-NOTES-v1-9-58.md +0 -21
- package/_trash/RELEASE-NOTES-v1-9-59.md +0 -28
- package/_trash/RELEASE-NOTES-v1-9-6.md +0 -72
- package/_trash/RELEASE-NOTES-v1-9-7.md +0 -23
- package/_trash/RELEASE-NOTES-v1-9-9.md +0 -75
- package/_trash/guide 2/DEV-GUIDE.md +0 -487
- package/_trash/guide 2/scripts/deploy-public.sh +0 -152
- package/tools/wip-repo-init/templates/_trash/README.md +0 -16
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* wip-repos CLI ... repo manifest reconciler
|
|
5
|
-
*
|
|
6
|
-
* Commands:
|
|
7
|
-
* check - Diff filesystem against manifest, flag drift
|
|
8
|
-
* sync - Move local folders to match the manifest
|
|
9
|
-
* add - Add a repo to the manifest
|
|
10
|
-
* move - Move a repo to a different category in the manifest
|
|
11
|
-
* tree - Generate directory tree from manifest
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { check, planSync, executeSync, addRepo, moveRepo, generateReadmeTree, loadManifest } from './core.mjs';
|
|
15
|
-
import { runClaude } from './claude.mjs';
|
|
16
|
-
import { resolve, dirname, join } from 'node:path';
|
|
17
|
-
import { readFileSync } from 'node:fs';
|
|
18
|
-
import { fileURLToPath } from 'node:url';
|
|
19
|
-
|
|
20
|
-
if (process.argv.includes('--version') || process.argv.includes('-v')) {
|
|
21
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
|
-
const pkg = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf8'));
|
|
23
|
-
console.log(pkg.version);
|
|
24
|
-
process.exit(0);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const args = process.argv.slice(2);
|
|
28
|
-
const command = args[0];
|
|
29
|
-
|
|
30
|
-
function usage() {
|
|
31
|
-
console.log(`wip-repos ... repo manifest reconciler
|
|
32
|
-
|
|
33
|
-
Usage:
|
|
34
|
-
wip-repos check [--manifest path] [--root path]
|
|
35
|
-
wip-repos sync [--manifest path] [--root path] [--dry-run]
|
|
36
|
-
wip-repos add <path> --remote <org/repo> [--category cat] [--description desc]
|
|
37
|
-
wip-repos move <path> --to <new-path>
|
|
38
|
-
wip-repos tree [--manifest path]
|
|
39
|
-
|
|
40
|
-
Options:
|
|
41
|
-
--manifest Path to repos-manifest.json (default: ./repos-manifest.json)
|
|
42
|
-
--root Path to repos root directory (default: directory containing manifest)
|
|
43
|
-
--dry-run Show what would happen without making changes
|
|
44
|
-
--json Output as JSON`);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function getFlag(flag) {
|
|
48
|
-
const idx = args.indexOf(flag);
|
|
49
|
-
if (idx === -1) return undefined;
|
|
50
|
-
return args[idx + 1];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function hasFlag(flag) {
|
|
54
|
-
return args.includes(flag);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const manifestPath = resolve(getFlag('--manifest') || 'repos-manifest.json');
|
|
58
|
-
const reposRoot = resolve(getFlag('--root') || dirname(manifestPath));
|
|
59
|
-
const dryRun = hasFlag('--dry-run');
|
|
60
|
-
const jsonOutput = hasFlag('--json');
|
|
61
|
-
|
|
62
|
-
try {
|
|
63
|
-
switch (command) {
|
|
64
|
-
case 'check': {
|
|
65
|
-
const result = check(manifestPath, reposRoot);
|
|
66
|
-
|
|
67
|
-
if (jsonOutput) {
|
|
68
|
-
console.log(JSON.stringify(result, null, 2));
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
console.log(`Manifest: ${result.total.manifest} repos`);
|
|
73
|
-
console.log(`On disk: ${result.total.disk} repos`);
|
|
74
|
-
console.log(`Matched: ${result.total.matched}`);
|
|
75
|
-
console.log();
|
|
76
|
-
|
|
77
|
-
if (result.onDiskOnly.length > 0) {
|
|
78
|
-
console.log(`On disk but NOT in manifest (${result.onDiskOnly.length}):`);
|
|
79
|
-
for (const p of result.onDiskOnly) {
|
|
80
|
-
console.log(` + ${p}`);
|
|
81
|
-
}
|
|
82
|
-
console.log();
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (result.inManifestOnly.length > 0) {
|
|
86
|
-
console.log(`In manifest but NOT on disk (${result.inManifestOnly.length}):`);
|
|
87
|
-
for (const p of result.inManifestOnly) {
|
|
88
|
-
console.log(` - ${p}`);
|
|
89
|
-
}
|
|
90
|
-
console.log();
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (result.onDiskOnly.length === 0 && result.inManifestOnly.length === 0) {
|
|
94
|
-
console.log('No drift. Manifest and filesystem are in sync.');
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Exit code 1 if drift detected
|
|
98
|
-
if (result.onDiskOnly.length > 0 || result.inManifestOnly.length > 0) {
|
|
99
|
-
process.exit(1);
|
|
100
|
-
}
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
case 'sync': {
|
|
105
|
-
const moves = planSync(manifestPath, reposRoot);
|
|
106
|
-
|
|
107
|
-
if (moves.length === 0) {
|
|
108
|
-
console.log('Nothing to sync. All repos are in the right place.');
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
if (jsonOutput) {
|
|
113
|
-
console.log(JSON.stringify(moves, null, 2));
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
console.log(`Found ${moves.length} repo(s) to move:\n`);
|
|
118
|
-
for (const m of moves) {
|
|
119
|
-
console.log(` ${m.from} -> ${m.to}`);
|
|
120
|
-
console.log(` (remote: ${m.remote})`);
|
|
121
|
-
console.log();
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
if (dryRun) {
|
|
125
|
-
console.log('Dry run. No changes made.');
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
const results = executeSync(moves, reposRoot);
|
|
130
|
-
for (const r of results) {
|
|
131
|
-
if (r.status === 'moved') {
|
|
132
|
-
console.log(` Moved: ${r.from} -> ${r.to}`);
|
|
133
|
-
} else if (r.status === 'skipped') {
|
|
134
|
-
console.log(` Skipped: ${r.from} (${r.reason})`);
|
|
135
|
-
} else {
|
|
136
|
-
console.log(` Error: ${r.from} (${r.reason})`);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
case 'add': {
|
|
143
|
-
const repoPath = args[1];
|
|
144
|
-
const remote = getFlag('--remote');
|
|
145
|
-
if (!repoPath || !remote) {
|
|
146
|
-
console.error('Usage: wip-repos add <path> --remote <org/repo>');
|
|
147
|
-
process.exit(1);
|
|
148
|
-
}
|
|
149
|
-
const entry = addRepo(manifestPath, repoPath, remote, {
|
|
150
|
-
category: getFlag('--category'),
|
|
151
|
-
description: getFlag('--description'),
|
|
152
|
-
});
|
|
153
|
-
console.log(`Added: ${repoPath} -> ${remote}`);
|
|
154
|
-
if (jsonOutput) console.log(JSON.stringify(entry, null, 2));
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
case 'move': {
|
|
159
|
-
const fromPath = args[1];
|
|
160
|
-
const toPath = getFlag('--to');
|
|
161
|
-
if (!fromPath || !toPath) {
|
|
162
|
-
console.error('Usage: wip-repos move <path> --to <new-path>');
|
|
163
|
-
process.exit(1);
|
|
164
|
-
}
|
|
165
|
-
const entry = moveRepo(manifestPath, fromPath, toPath);
|
|
166
|
-
console.log(`Moved in manifest: ${fromPath} -> ${toPath}`);
|
|
167
|
-
if (jsonOutput) console.log(JSON.stringify(entry, null, 2));
|
|
168
|
-
break;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
case 'tree': {
|
|
172
|
-
const tree = generateReadmeTree(manifestPath);
|
|
173
|
-
console.log(tree);
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
case 'claude': {
|
|
178
|
-
runClaude(manifestPath, args.slice(1));
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
default:
|
|
183
|
-
usage();
|
|
184
|
-
if (command && command !== '--help' && command !== '-h') {
|
|
185
|
-
process.exit(1);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
} catch (err) {
|
|
189
|
-
console.error(`Error: ${err.message}`);
|
|
190
|
-
process.exit(1);
|
|
191
|
-
}
|
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wip-repos core ... repo manifest reconciler
|
|
3
|
-
*
|
|
4
|
-
* The manifest is the source of truth. The filesystem adapts to it.
|
|
5
|
-
* Like prettier for folder structure.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { readFileSync, writeFileSync, existsSync, readdirSync, statSync, mkdirSync, renameSync } from 'node:fs';
|
|
9
|
-
import { join, dirname, relative, resolve } from 'node:path';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Load and parse a repos-manifest.json file.
|
|
13
|
-
* Supports both v1 (flat key-value) and v2 (rich objects) formats.
|
|
14
|
-
*/
|
|
15
|
-
export function loadManifest(manifestPath) {
|
|
16
|
-
if (!existsSync(manifestPath)) {
|
|
17
|
-
throw new Error(`Manifest not found: ${manifestPath}`);
|
|
18
|
-
}
|
|
19
|
-
const raw = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
20
|
-
|
|
21
|
-
// Detect format
|
|
22
|
-
const meta = {};
|
|
23
|
-
const repos = {};
|
|
24
|
-
|
|
25
|
-
for (const [key, value] of Object.entries(raw)) {
|
|
26
|
-
if (key.startsWith('_')) {
|
|
27
|
-
meta[key] = value;
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
30
|
-
if (typeof value === 'string') {
|
|
31
|
-
// v1 flat format: path -> remote
|
|
32
|
-
repos[key] = { remote: value };
|
|
33
|
-
} else if (typeof value === 'object' && value !== null) {
|
|
34
|
-
// v2 rich format
|
|
35
|
-
repos[key] = value;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return { meta, repos, format: meta._format || 'v1', path: manifestPath };
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Save manifest back to disk.
|
|
44
|
-
*/
|
|
45
|
-
export function saveManifest(manifestPath, meta, repos) {
|
|
46
|
-
const out = {};
|
|
47
|
-
for (const [key, value] of Object.entries(meta)) {
|
|
48
|
-
out[key] = value;
|
|
49
|
-
}
|
|
50
|
-
for (const [key, value] of Object.entries(repos)) {
|
|
51
|
-
// v1: just write the remote string
|
|
52
|
-
if (Object.keys(value).length === 1 && value.remote) {
|
|
53
|
-
out[key] = value.remote;
|
|
54
|
-
} else {
|
|
55
|
-
out[key] = value;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
writeFileSync(manifestPath, JSON.stringify(out, null, 2) + '\n', 'utf8');
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Walk a directory tree and find all git repos (directories containing .git/).
|
|
63
|
-
* Returns array of relative paths from the root.
|
|
64
|
-
*/
|
|
65
|
-
export function walkRepos(rootDir, prefix = '') {
|
|
66
|
-
const results = [];
|
|
67
|
-
if (!existsSync(rootDir)) return results;
|
|
68
|
-
|
|
69
|
-
const entries = readdirSync(rootDir, { withFileTypes: true });
|
|
70
|
-
for (const entry of entries) {
|
|
71
|
-
if (!entry.isDirectory()) continue;
|
|
72
|
-
if (entry.name === '.git' || entry.name === 'node_modules') continue;
|
|
73
|
-
if (entry.name === '.DS_Store') continue;
|
|
74
|
-
|
|
75
|
-
const fullPath = join(rootDir, entry.name);
|
|
76
|
-
const relPath = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
77
|
-
|
|
78
|
-
// If this directory has a .git, it's a repo
|
|
79
|
-
if (existsSync(join(fullPath, '.git'))) {
|
|
80
|
-
results.push(relPath);
|
|
81
|
-
} else {
|
|
82
|
-
// Recurse into non-repo directories (organizational folders)
|
|
83
|
-
results.push(...walkRepos(fullPath, relPath));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return results;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Check: diff the filesystem against the manifest.
|
|
91
|
-
* Returns { inManifestOnly, onDiskOnly, matched }
|
|
92
|
-
*/
|
|
93
|
-
export function check(manifestPath, reposRoot) {
|
|
94
|
-
const manifest = loadManifest(manifestPath);
|
|
95
|
-
const manifestPaths = new Set(Object.keys(manifest.repos));
|
|
96
|
-
const diskPaths = new Set(walkRepos(reposRoot));
|
|
97
|
-
|
|
98
|
-
const inManifestOnly = [];
|
|
99
|
-
const onDiskOnly = [];
|
|
100
|
-
const matched = [];
|
|
101
|
-
|
|
102
|
-
for (const p of manifestPaths) {
|
|
103
|
-
if (diskPaths.has(p)) {
|
|
104
|
-
matched.push(p);
|
|
105
|
-
} else {
|
|
106
|
-
inManifestOnly.push(p);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
for (const p of diskPaths) {
|
|
111
|
-
if (!manifestPaths.has(p)) {
|
|
112
|
-
onDiskOnly.push(p);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return {
|
|
117
|
-
inManifestOnly: inManifestOnly.sort(),
|
|
118
|
-
onDiskOnly: onDiskOnly.sort(),
|
|
119
|
-
matched: matched.sort(),
|
|
120
|
-
total: {
|
|
121
|
-
manifest: manifestPaths.size,
|
|
122
|
-
disk: diskPaths.size,
|
|
123
|
-
matched: matched.length,
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Sync: move local folders to match the manifest.
|
|
130
|
-
* Returns array of { from, to } moves that were performed.
|
|
131
|
-
*
|
|
132
|
-
* Only handles repos that exist on disk but at the wrong path.
|
|
133
|
-
* Matches by remote URL (git remote -v) against manifest remotes.
|
|
134
|
-
*/
|
|
135
|
-
export function planSync(manifestPath, reposRoot) {
|
|
136
|
-
const manifest = loadManifest(manifestPath);
|
|
137
|
-
const diskPaths = walkRepos(reposRoot);
|
|
138
|
-
const moves = [];
|
|
139
|
-
|
|
140
|
-
// Build a map of remote -> manifest path
|
|
141
|
-
const remoteToManifest = new Map();
|
|
142
|
-
for (const [mPath, info] of Object.entries(manifest.repos)) {
|
|
143
|
-
if (info.remote) {
|
|
144
|
-
remoteToManifest.set(info.remote, mPath);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// For each repo on disk, check if its remote matches a manifest entry at a different path
|
|
149
|
-
for (const diskPath of diskPaths) {
|
|
150
|
-
const fullPath = join(reposRoot, diskPath);
|
|
151
|
-
const gitConfig = join(fullPath, '.git', 'config');
|
|
152
|
-
if (!existsSync(gitConfig)) continue;
|
|
153
|
-
|
|
154
|
-
const configText = readFileSync(gitConfig, 'utf8');
|
|
155
|
-
// Extract remote URL
|
|
156
|
-
const match = configText.match(/url\s*=\s*.*[:/]([^/]+\/[^/\s.]+?)(?:\.git)?\s*$/m);
|
|
157
|
-
if (!match) continue;
|
|
158
|
-
|
|
159
|
-
const remote = match[1];
|
|
160
|
-
const expectedPath = remoteToManifest.get(remote);
|
|
161
|
-
|
|
162
|
-
if (expectedPath && expectedPath !== diskPath) {
|
|
163
|
-
moves.push({
|
|
164
|
-
from: diskPath,
|
|
165
|
-
to: expectedPath,
|
|
166
|
-
remote,
|
|
167
|
-
fromFull: fullPath,
|
|
168
|
-
toFull: join(reposRoot, expectedPath),
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
return moves;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Execute sync moves. Creates parent directories as needed.
|
|
178
|
-
*/
|
|
179
|
-
export function executeSync(moves, reposRoot) {
|
|
180
|
-
const results = [];
|
|
181
|
-
for (const move of moves) {
|
|
182
|
-
const parentDir = dirname(move.toFull);
|
|
183
|
-
if (!existsSync(parentDir)) {
|
|
184
|
-
mkdirSync(parentDir, { recursive: true });
|
|
185
|
-
}
|
|
186
|
-
if (existsSync(move.toFull)) {
|
|
187
|
-
results.push({ ...move, status: 'skipped', reason: 'target exists' });
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
try {
|
|
191
|
-
renameSync(move.fromFull, move.toFull);
|
|
192
|
-
results.push({ ...move, status: 'moved' });
|
|
193
|
-
} catch (err) {
|
|
194
|
-
results.push({ ...move, status: 'error', reason: err.message });
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return results;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Add a repo to the manifest.
|
|
202
|
-
*/
|
|
203
|
-
export function addRepo(manifestPath, repoPath, remote, opts = {}) {
|
|
204
|
-
const manifest = loadManifest(manifestPath);
|
|
205
|
-
|
|
206
|
-
if (manifest.repos[repoPath]) {
|
|
207
|
-
throw new Error(`Already in manifest: ${repoPath}`);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
const entry = { remote };
|
|
211
|
-
if (opts.description) entry.description = opts.description;
|
|
212
|
-
if (opts.category) entry.category = opts.category;
|
|
213
|
-
if (opts.public) entry.public = opts.public;
|
|
214
|
-
if (opts.privatized !== undefined) entry.privatized = opts.privatized;
|
|
215
|
-
|
|
216
|
-
manifest.repos[repoPath] = entry;
|
|
217
|
-
saveManifest(manifestPath, manifest.meta, manifest.repos);
|
|
218
|
-
|
|
219
|
-
return entry;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Move a repo in the manifest from one path to another.
|
|
224
|
-
*/
|
|
225
|
-
export function moveRepo(manifestPath, fromPath, toPath) {
|
|
226
|
-
const manifest = loadManifest(manifestPath);
|
|
227
|
-
|
|
228
|
-
if (!manifest.repos[fromPath]) {
|
|
229
|
-
throw new Error(`Not in manifest: ${fromPath}`);
|
|
230
|
-
}
|
|
231
|
-
if (manifest.repos[toPath]) {
|
|
232
|
-
throw new Error(`Target already exists in manifest: ${toPath}`);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
manifest.repos[toPath] = manifest.repos[fromPath];
|
|
236
|
-
delete manifest.repos[fromPath];
|
|
237
|
-
saveManifest(manifestPath, manifest.meta, manifest.repos);
|
|
238
|
-
|
|
239
|
-
return manifest.repos[toPath];
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Generate a markdown directory tree from the manifest.
|
|
244
|
-
*/
|
|
245
|
-
export function generateReadmeTree(manifestPath) {
|
|
246
|
-
const manifest = loadManifest(manifestPath);
|
|
247
|
-
const paths = Object.keys(manifest.repos).sort();
|
|
248
|
-
|
|
249
|
-
// Build tree structure
|
|
250
|
-
const tree = {};
|
|
251
|
-
for (const p of paths) {
|
|
252
|
-
const parts = p.split('/');
|
|
253
|
-
let node = tree;
|
|
254
|
-
for (const part of parts) {
|
|
255
|
-
if (!node[part]) node[part] = {};
|
|
256
|
-
node = node[part];
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
// Render tree
|
|
261
|
-
const lines = ['repos/'];
|
|
262
|
-
function render(node, prefix, isLast) {
|
|
263
|
-
const entries = Object.keys(node).sort((a, b) => {
|
|
264
|
-
// underscore-prefixed folders sort to top
|
|
265
|
-
const aUnder = a.startsWith('_');
|
|
266
|
-
const bUnder = b.startsWith('_');
|
|
267
|
-
if (aUnder && !bUnder) return 1;
|
|
268
|
-
if (!aUnder && bUnder) return -1;
|
|
269
|
-
return a.localeCompare(b);
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
for (let i = 0; i < entries.length; i++) {
|
|
273
|
-
const name = entries[i];
|
|
274
|
-
const last = i === entries.length - 1;
|
|
275
|
-
const connector = last ? '└── ' : '├── ';
|
|
276
|
-
const childPrefix = last ? ' ' : '│ ';
|
|
277
|
-
const children = Object.keys(node[name]);
|
|
278
|
-
|
|
279
|
-
if (children.length > 0) {
|
|
280
|
-
lines.push(`${prefix}${connector}${name}/`);
|
|
281
|
-
render(node[name], prefix + childPrefix, last);
|
|
282
|
-
} else {
|
|
283
|
-
lines.push(`${prefix}${connector}${name}`);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
render(tree, '', false);
|
|
289
|
-
return lines.join('\n');
|
|
290
|
-
}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// wip-repos/mcp-server.mjs
|
|
3
|
-
// MCP server exposing repo manifest reconciler as tools.
|
|
4
|
-
// Wraps core.mjs. Registered via .mcp.json.
|
|
5
|
-
|
|
6
|
-
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
7
|
-
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
8
|
-
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
9
|
-
import {
|
|
10
|
-
check, planSync, addRepo, moveRepo, generateReadmeTree,
|
|
11
|
-
} from './core.mjs';
|
|
12
|
-
|
|
13
|
-
const server = new Server(
|
|
14
|
-
{ name: 'wip-repos', version: '0.1.0' },
|
|
15
|
-
{ capabilities: { tools: {} } }
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
// ── Tool Definitions ──
|
|
19
|
-
|
|
20
|
-
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
21
|
-
tools: [
|
|
22
|
-
{
|
|
23
|
-
name: 'repos_check',
|
|
24
|
-
description: 'Diff the filesystem against the manifest. Shows repos in manifest but not on disk, on disk but not in manifest, and matched.',
|
|
25
|
-
inputSchema: {
|
|
26
|
-
type: 'object',
|
|
27
|
-
properties: {
|
|
28
|
-
manifestPath: { type: 'string', description: 'Path to repos-manifest.json' },
|
|
29
|
-
reposRoot: { type: 'string', description: 'Root directory containing repos' },
|
|
30
|
-
},
|
|
31
|
-
required: ['manifestPath', 'reposRoot'],
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'repos_sync_plan',
|
|
36
|
-
description: 'Plan moves to reconcile filesystem with manifest. Matches repos by git remote URL. Returns planned moves without executing.',
|
|
37
|
-
inputSchema: {
|
|
38
|
-
type: 'object',
|
|
39
|
-
properties: {
|
|
40
|
-
manifestPath: { type: 'string', description: 'Path to repos-manifest.json' },
|
|
41
|
-
reposRoot: { type: 'string', description: 'Root directory containing repos' },
|
|
42
|
-
},
|
|
43
|
-
required: ['manifestPath', 'reposRoot'],
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
name: 'repos_add',
|
|
48
|
-
description: 'Add a repo to the manifest.',
|
|
49
|
-
inputSchema: {
|
|
50
|
-
type: 'object',
|
|
51
|
-
properties: {
|
|
52
|
-
manifestPath: { type: 'string', description: 'Path to repos-manifest.json' },
|
|
53
|
-
repoPath: { type: 'string', description: 'Relative path in the manifest (e.g. ldm-os/utilities/my-tool)' },
|
|
54
|
-
remote: { type: 'string', description: 'GitHub remote (e.g. wipcomputer/my-tool)' },
|
|
55
|
-
description: { type: 'string', description: 'Short description' },
|
|
56
|
-
},
|
|
57
|
-
required: ['manifestPath', 'repoPath', 'remote'],
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: 'repos_move',
|
|
62
|
-
description: 'Move a repo in the manifest from one path to another.',
|
|
63
|
-
inputSchema: {
|
|
64
|
-
type: 'object',
|
|
65
|
-
properties: {
|
|
66
|
-
manifestPath: { type: 'string', description: 'Path to repos-manifest.json' },
|
|
67
|
-
fromPath: { type: 'string', description: 'Current manifest path' },
|
|
68
|
-
toPath: { type: 'string', description: 'New manifest path' },
|
|
69
|
-
},
|
|
70
|
-
required: ['manifestPath', 'fromPath', 'toPath'],
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
name: 'repos_tree',
|
|
75
|
-
description: 'Generate a markdown directory tree from the manifest.',
|
|
76
|
-
inputSchema: {
|
|
77
|
-
type: 'object',
|
|
78
|
-
properties: {
|
|
79
|
-
manifestPath: { type: 'string', description: 'Path to repos-manifest.json' },
|
|
80
|
-
},
|
|
81
|
-
required: ['manifestPath'],
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
],
|
|
85
|
-
}));
|
|
86
|
-
|
|
87
|
-
// ── Tool Handlers ──
|
|
88
|
-
|
|
89
|
-
server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
90
|
-
const { name, arguments: args } = req.params;
|
|
91
|
-
|
|
92
|
-
try {
|
|
93
|
-
if (name === 'repos_check') {
|
|
94
|
-
const result = check(args.manifestPath, args.reposRoot);
|
|
95
|
-
return {
|
|
96
|
-
content: [{
|
|
97
|
-
type: 'text',
|
|
98
|
-
text: JSON.stringify(result, null, 2),
|
|
99
|
-
}],
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (name === 'repos_sync_plan') {
|
|
104
|
-
const moves = planSync(args.manifestPath, args.reposRoot);
|
|
105
|
-
return {
|
|
106
|
-
content: [{
|
|
107
|
-
type: 'text',
|
|
108
|
-
text: moves.length === 0
|
|
109
|
-
? 'No moves needed. Filesystem matches manifest.'
|
|
110
|
-
: JSON.stringify(moves.map(m => ({ from: m.from, to: m.to, remote: m.remote })), null, 2),
|
|
111
|
-
}],
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if (name === 'repos_add') {
|
|
116
|
-
const entry = addRepo(args.manifestPath, args.repoPath, args.remote, {
|
|
117
|
-
description: args.description,
|
|
118
|
-
});
|
|
119
|
-
return {
|
|
120
|
-
content: [{
|
|
121
|
-
type: 'text',
|
|
122
|
-
text: `Added ${args.repoPath} -> ${args.remote}`,
|
|
123
|
-
}],
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
if (name === 'repos_move') {
|
|
128
|
-
moveRepo(args.manifestPath, args.fromPath, args.toPath);
|
|
129
|
-
return {
|
|
130
|
-
content: [{
|
|
131
|
-
type: 'text',
|
|
132
|
-
text: `Moved ${args.fromPath} -> ${args.toPath}`,
|
|
133
|
-
}],
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (name === 'repos_tree') {
|
|
138
|
-
const tree = generateReadmeTree(args.manifestPath);
|
|
139
|
-
return {
|
|
140
|
-
content: [{ type: 'text', text: tree }],
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return {
|
|
145
|
-
content: [{ type: 'text', text: `Unknown tool: ${name}` }],
|
|
146
|
-
isError: true,
|
|
147
|
-
};
|
|
148
|
-
} catch (err) {
|
|
149
|
-
return {
|
|
150
|
-
content: [{ type: 'text', text: `Error: ${err.message}` }],
|
|
151
|
-
isError: true,
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
const transport = new StdioServerTransport();
|
|
157
|
-
await server.connect(transport);
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@wipcomputer/wip-repos",
|
|
3
|
-
"version": "1.9.15",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "Repo manifest reconciler. Single source of truth for repo organization. Like prettier for folder structure.",
|
|
6
|
-
"main": "core.mjs",
|
|
7
|
-
"bin": {
|
|
8
|
-
"wip-repos": "./cli.mjs"
|
|
9
|
-
},
|
|
10
|
-
"exports": {
|
|
11
|
-
".": "./core.mjs"
|
|
12
|
-
},
|
|
13
|
-
"scripts": {
|
|
14
|
-
"test": "node cli.mjs --help"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"repo-manifest",
|
|
18
|
-
"monorepo",
|
|
19
|
-
"toolbox",
|
|
20
|
-
"organization",
|
|
21
|
-
"enterprise",
|
|
22
|
-
"ai-dev-tools"
|
|
23
|
-
],
|
|
24
|
-
"author": "Parker Todd Brooks",
|
|
25
|
-
"license": "MIT",
|
|
26
|
-
"repository": {
|
|
27
|
-
"type": "git",
|
|
28
|
-
"url": "git+https://github.com/wipcomputer/wip-ai-devops-toolbox.git",
|
|
29
|
-
"directory": "tools/wip-repos"
|
|
30
|
-
},
|
|
31
|
-
"dependencies": {
|
|
32
|
-
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
33
|
-
}
|
|
34
|
-
}
|