@wipcomputer/wip-ai-devops-toolbox 1.9.55 → 1.9.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.worktrees/toolbox--release-notes/.license-guard.json +7 -0
- package/.worktrees/toolbox--release-notes/.publish-skill.json +4 -0
- package/.worktrees/toolbox--release-notes/CHANGELOG.md +1875 -0
- package/.worktrees/toolbox--release-notes/CLA.md +19 -0
- package/.worktrees/toolbox--release-notes/DEV-GUIDE-GENERAL-PUBLIC.md +949 -0
- package/.worktrees/toolbox--release-notes/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/README.md +238 -0
- package/.worktrees/toolbox--release-notes/RELEASE-NOTES-v1-9-56.md +42 -0
- package/.worktrees/toolbox--release-notes/SKILL.md +821 -0
- package/.worktrees/toolbox--release-notes/TECHNICAL.md +416 -0
- package/.worktrees/toolbox--release-notes/UNIVERSAL-INTERFACE.md +180 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-0.md +29 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-1.md +7 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-8-2.md +7 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-0.md +37 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-1.md +38 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-10.md +40 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-2.md +40 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-31.md +26 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-32.md +18 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-41.md +28 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-45.md +25 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-46.md +38 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-47.md +42 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-48.md +22 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-49.md +31 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-50.md +24 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-51.md +11 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-52.md +25 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-53.md +22 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-54.md +13 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-55.md +11 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-6.md +72 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-7.md +23 -0
- package/.worktrees/toolbox--release-notes/_trash/RELEASE-NOTES-v1-9-9.md +75 -0
- package/.worktrees/toolbox--release-notes/_trash/guide 2/DEV-GUIDE.md +487 -0
- package/.worktrees/toolbox--release-notes/_trash/guide 2/scripts/deploy-public.sh +152 -0
- package/.worktrees/toolbox--release-notes/package.json +27 -0
- package/.worktrees/toolbox--release-notes/scripts/SKILL-deploy-public.md +61 -0
- package/.worktrees/toolbox--release-notes/scripts/SKILL-post-merge-rename.md +47 -0
- package/.worktrees/toolbox--release-notes/scripts/deploy-public.sh +345 -0
- package/.worktrees/toolbox--release-notes/scripts/post-merge-rename.sh +210 -0
- package/.worktrees/toolbox--release-notes/scripts/publish-skill.sh +134 -0
- package/.worktrees/toolbox--release-notes/templates/global-claude-md.md +73 -0
- package/.worktrees/toolbox--release-notes/templates/repo-claude-md.template +24 -0
- package/.worktrees/toolbox--release-notes/tools/deploy-public/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/deploy-public/README.md +31 -0
- package/.worktrees/toolbox--release-notes/tools/deploy-public/SKILL.md +71 -0
- package/.worktrees/toolbox--release-notes/tools/deploy-public/deploy-public.sh +264 -0
- package/.worktrees/toolbox--release-notes/tools/deploy-public/package.json +9 -0
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/README.md +46 -0
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/backup.sh +16 -0
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/branch-protect.sh +39 -0
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/crystal-capture.sh +19 -0
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/setup-shell.sh +27 -0
- package/.worktrees/toolbox--release-notes/tools/ldm-jobs/visibility-audit.sh +27 -0
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/README.md +29 -0
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/SKILL.md +57 -0
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/package.json +9 -0
- package/.worktrees/toolbox--release-notes/tools/post-merge-rename/post-merge-rename.sh +122 -0
- package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/INSTALL.md +41 -0
- package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/guard.mjs +459 -0
- package/.worktrees/toolbox--release-notes/tools/wip-branch-guard/package.json +18 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/CHANGELOG.md +6 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/README.md +113 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/REFERENCE.md +86 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/SKILL.md +105 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/guard.mjs +161 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/openclaw.plugin.json +8 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/package.json +27 -0
- package/.worktrees/toolbox--release-notes/tools/wip-file-guard/test.sh +119 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/README.md +69 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/SKILL.md +65 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/cli.mjs +472 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/core.mjs +310 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/guard.mjs +146 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-guard/package.json +22 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/CHANGELOG.md +17 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/README.md +200 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/SKILL.md +111 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.d.ts +15 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js +170 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/cli/index.js.map +1 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.d.ts +12 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js +104 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/detector.js.map +1 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.d.ts +4 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js +5 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/index.js.map +1 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.d.ts +49 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js +72 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/ledger.js.map +1 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.d.ts +14 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js +227 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/reporter.js.map +1 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.d.ts +39 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js +325 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/dist/core/scanner.js.map +1 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-pull.sh +55 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/hooks/pre-push.sh +51 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/mcp-server.mjs +119 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package-lock.json +54 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/package.json +43 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/cli/index.ts +189 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/detector.ts +130 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/index.ts +4 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/ledger.ts +116 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/reporter.ts +255 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/src/core/scanner.ts +367 -0
- package/.worktrees/toolbox--release-notes/tools/wip-license-hook/tsconfig.json +16 -0
- package/.worktrees/toolbox--release-notes/tools/wip-readme-format/README.md +49 -0
- package/.worktrees/toolbox--release-notes/tools/wip-readme-format/SKILL.md +84 -0
- package/.worktrees/toolbox--release-notes/tools/wip-readme-format/format.mjs +597 -0
- package/.worktrees/toolbox--release-notes/tools/wip-readme-format/package.json +15 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/CHANGELOG.md +42 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/README.md +45 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/REFERENCE.md +100 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/SKILL.md +139 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/cli.js +175 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/core.mjs +1664 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/mcp-server.mjs +113 -0
- package/.worktrees/toolbox--release-notes/tools/wip-release/package.json +36 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/README.md +38 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/SKILL.md +77 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/init.mjs +148 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/package.json +11 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_sort/README.md +15 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/_trash/README.md +16 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/dev-updates/README.md +50 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/notes/README.md +26 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +77 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +63 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/product-ideas/README.md +24 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/readme-first-product.md +128 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/read-me-first.md +80 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/README.md +86 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/SKILL.md +73 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/cli.js +93 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/core.mjs +122 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/guard.mjs +64 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/mcp-server.mjs +92 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/openclaw.plugin.json +8 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repo-permissions-hook/package.json +31 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repos/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repos/README.md +77 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repos/SKILL.md +80 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repos/claude.mjs +248 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repos/cli.mjs +191 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repos/core.mjs +290 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repos/mcp-server.mjs +157 -0
- package/.worktrees/toolbox--release-notes/tools/wip-repos/package.json +34 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/CHANGELOG.md +57 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/LICENSE +52 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/README.md +81 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/REFERENCE.md +122 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SKILL.md +87 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/SPEC.md +206 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/detect.mjs +130 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/README.md +20 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/SKILL.md +28 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/cli.mjs +4 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/core.mjs +8 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +27 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/examples/minimal/package.json +12 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/install.js +930 -0
- package/.worktrees/toolbox--release-notes/tools/wip-universal-installer/package.json +32 -0
- package/.worktrees/toolbox--save-stale/.license-guard.json +7 -0
- package/.worktrees/toolbox--save-stale/.publish-skill.json +4 -0
- package/.worktrees/toolbox--save-stale/CHANGELOG.md +1875 -0
- package/.worktrees/toolbox--save-stale/CLA.md +19 -0
- package/.worktrees/toolbox--save-stale/DEV-GUIDE-GENERAL-PUBLIC.md +949 -0
- package/.worktrees/toolbox--save-stale/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/README.md +238 -0
- package/.worktrees/toolbox--save-stale/SKILL.md +821 -0
- package/.worktrees/toolbox--save-stale/TECHNICAL.md +416 -0
- package/.worktrees/toolbox--save-stale/UNIVERSAL-INTERFACE.md +180 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-0.md +29 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-1.md +7 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-8-2.md +7 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-0.md +37 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-1.md +38 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-10.md +40 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-2.md +40 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-31.md +26 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-32.md +18 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-41.md +28 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-45.md +25 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-46.md +38 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-47.md +42 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-48.md +22 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-49.md +31 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-50.md +24 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-51.md +11 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-52.md +25 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-53.md +22 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-54.md +13 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-55.md +11 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-6.md +72 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-7.md +23 -0
- package/.worktrees/toolbox--save-stale/_trash/RELEASE-NOTES-v1-9-9.md +75 -0
- package/.worktrees/toolbox--save-stale/_trash/guide 2/DEV-GUIDE.md +487 -0
- package/.worktrees/toolbox--save-stale/_trash/guide 2/scripts/deploy-public.sh +152 -0
- package/.worktrees/toolbox--save-stale/package.json +27 -0
- package/.worktrees/toolbox--save-stale/scripts/SKILL-deploy-public.md +61 -0
- package/.worktrees/toolbox--save-stale/scripts/SKILL-post-merge-rename.md +47 -0
- package/.worktrees/toolbox--save-stale/scripts/deploy-public.sh +345 -0
- package/.worktrees/toolbox--save-stale/scripts/post-merge-rename.sh +210 -0
- package/.worktrees/toolbox--save-stale/scripts/publish-skill.sh +134 -0
- package/.worktrees/toolbox--save-stale/templates/global-claude-md.md +73 -0
- package/.worktrees/toolbox--save-stale/templates/repo-claude-md.template +24 -0
- package/.worktrees/toolbox--save-stale/tools/deploy-public/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/deploy-public/README.md +31 -0
- package/.worktrees/toolbox--save-stale/tools/deploy-public/SKILL.md +71 -0
- package/.worktrees/toolbox--save-stale/tools/deploy-public/deploy-public.sh +264 -0
- package/.worktrees/toolbox--save-stale/tools/deploy-public/package.json +9 -0
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/README.md +46 -0
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/backup.sh +16 -0
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/branch-protect.sh +39 -0
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/crystal-capture.sh +19 -0
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/setup-shell.sh +27 -0
- package/.worktrees/toolbox--save-stale/tools/ldm-jobs/visibility-audit.sh +27 -0
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/README.md +29 -0
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/SKILL.md +57 -0
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/package.json +9 -0
- package/.worktrees/toolbox--save-stale/tools/post-merge-rename/post-merge-rename.sh +122 -0
- package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/INSTALL.md +41 -0
- package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/guard.mjs +459 -0
- package/.worktrees/toolbox--save-stale/tools/wip-branch-guard/package.json +18 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/CHANGELOG.md +6 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/README.md +113 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/REFERENCE.md +86 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/SKILL.md +105 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/guard.mjs +161 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/openclaw.plugin.json +8 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/package.json +27 -0
- package/.worktrees/toolbox--save-stale/tools/wip-file-guard/test.sh +119 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/README.md +69 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/SKILL.md +65 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/cli.mjs +472 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/core.mjs +310 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/guard.mjs +146 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-guard/package.json +22 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/CHANGELOG.md +17 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/README.md +200 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/SKILL.md +111 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.d.ts +15 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js +170 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/cli/index.js.map +1 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.d.ts +12 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js +104 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/detector.js.map +1 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.d.ts +4 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js +5 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/index.js.map +1 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.d.ts +49 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js +72 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/ledger.js.map +1 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.d.ts +14 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js +227 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/reporter.js.map +1 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.d.ts +39 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js +325 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/dist/core/scanner.js.map +1 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-pull.sh +55 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/hooks/pre-push.sh +51 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/mcp-server.mjs +119 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package-lock.json +54 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/package.json +43 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/cli/index.ts +189 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/detector.ts +130 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/index.ts +4 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/ledger.ts +116 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/reporter.ts +255 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/src/core/scanner.ts +367 -0
- package/.worktrees/toolbox--save-stale/tools/wip-license-hook/tsconfig.json +16 -0
- package/.worktrees/toolbox--save-stale/tools/wip-readme-format/README.md +49 -0
- package/.worktrees/toolbox--save-stale/tools/wip-readme-format/SKILL.md +84 -0
- package/.worktrees/toolbox--save-stale/tools/wip-readme-format/format.mjs +597 -0
- package/.worktrees/toolbox--save-stale/tools/wip-readme-format/package.json +15 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/CHANGELOG.md +42 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/README.md +45 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/REFERENCE.md +100 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/SKILL.md +139 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/cli.js +175 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/core.mjs +1664 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/mcp-server.mjs +113 -0
- package/.worktrees/toolbox--save-stale/tools/wip-release/package.json +36 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/README.md +38 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/SKILL.md +77 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/init.mjs +148 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/package.json +11 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_sort/README.md +15 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/_trash/README.md +16 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/dev-updates/README.md +50 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/notes/README.md +26 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +77 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +63 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/product-ideas/README.md +24 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/product/readme-first-product.md +128 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-init/templates/read-me-first.md +80 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/README.md +86 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/SKILL.md +73 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/cli.js +93 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/core.mjs +122 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/guard.mjs +64 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/mcp-server.mjs +92 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/openclaw.plugin.json +8 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repo-permissions-hook/package.json +31 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repos/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repos/README.md +77 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repos/SKILL.md +80 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repos/claude.mjs +248 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repos/cli.mjs +191 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repos/core.mjs +290 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repos/mcp-server.mjs +157 -0
- package/.worktrees/toolbox--save-stale/tools/wip-repos/package.json +34 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/CHANGELOG.md +57 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/LICENSE +52 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/README.md +81 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/REFERENCE.md +122 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SKILL.md +87 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/SPEC.md +206 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/detect.mjs +130 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/README.md +20 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/SKILL.md +28 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/cli.mjs +4 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/core.mjs +8 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +27 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/examples/minimal/package.json +12 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/install.js +930 -0
- package/.worktrees/toolbox--save-stale/tools/wip-universal-installer/package.json +32 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.license-guard.json +7 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/.publish-skill.json +4 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CHANGELOG.md +1875 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/CLA.md +19 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/DEV-GUIDE-GENERAL-PUBLIC.md +949 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/README.md +238 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/SKILL.md +821 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/TECHNICAL.md +416 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/UNIVERSAL-INTERFACE.md +180 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-0.md +29 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-1.md +7 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-8-2.md +7 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-0.md +37 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-1.md +38 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-10.md +40 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-2.md +40 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-31.md +26 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-32.md +18 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-41.md +28 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-45.md +25 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-46.md +38 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-47.md +42 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-48.md +22 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-49.md +31 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-50.md +24 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-51.md +11 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-52.md +25 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-53.md +22 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-54.md +13 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-55.md +11 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-6.md +72 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-7.md +23 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/RELEASE-NOTES-v1-9-9.md +75 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/DEV-GUIDE.md +487 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/_trash/guide 2/scripts/deploy-public.sh +152 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/package.json +27 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-deploy-public.md +61 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/SKILL-post-merge-rename.md +47 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/deploy-public.sh +345 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/post-merge-rename.sh +210 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/scripts/publish-skill.sh +134 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/global-claude-md.md +73 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/templates/repo-claude-md.template +24 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/README.md +31 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/SKILL.md +71 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/deploy-public.sh +264 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/deploy-public/package.json +9 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/README.md +46 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/backup.sh +16 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/branch-protect.sh +39 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/crystal-capture.sh +19 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/setup-shell.sh +27 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/ldm-jobs/visibility-audit.sh +27 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/README.md +29 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/SKILL.md +57 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/package.json +9 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/post-merge-rename/post-merge-rename.sh +122 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/INSTALL.md +41 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/guard.mjs +418 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-branch-guard/package.json +18 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/CHANGELOG.md +6 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/README.md +113 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/REFERENCE.md +86 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/SKILL.md +105 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/guard.mjs +161 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/openclaw.plugin.json +8 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/package.json +27 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-file-guard/test.sh +119 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/README.md +69 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/SKILL.md +65 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/cli.mjs +472 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/core.mjs +310 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/guard.mjs +146 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-guard/package.json +22 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/CHANGELOG.md +17 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/README.md +200 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/SKILL.md +111 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.d.ts +15 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js +170 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/cli/index.js.map +1 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.d.ts +12 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js +104 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/detector.js.map +1 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.d.ts +4 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js +5 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/index.js.map +1 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.d.ts +49 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js +72 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/ledger.js.map +1 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.d.ts +14 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js +227 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/reporter.js.map +1 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.d.ts +39 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js +325 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/dist/core/scanner.js.map +1 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-pull.sh +55 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/hooks/pre-push.sh +51 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/mcp-server.mjs +119 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package-lock.json +54 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/package.json +43 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/cli/index.ts +189 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/detector.ts +130 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/index.ts +4 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/ledger.ts +116 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/reporter.ts +255 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/src/core/scanner.ts +367 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-license-hook/tsconfig.json +16 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/README.md +49 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/SKILL.md +84 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/format.mjs +597 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-readme-format/package.json +15 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/CHANGELOG.md +42 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/README.md +45 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/REFERENCE.md +100 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/SKILL.md +139 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/cli.js +175 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/core.mjs +1664 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/mcp-server.mjs +113 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-release/package.json +36 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/README.md +38 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/SKILL.md +77 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/init.mjs +148 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/package.json +11 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_sort/README.md +15 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/_trash/README.md +16 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/dev-updates/README.md +50 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/notes/README.md +26 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/roadmap.md +77 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/plans-prds/todos/README.md +63 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/product-ideas/README.md +24 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/product/readme-first-product.md +128 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-init/templates/read-me-first.md +80 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/README.md +86 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/SKILL.md +73 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/cli.js +93 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/core.mjs +122 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/guard.mjs +64 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/mcp-server.mjs +92 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/openclaw.plugin.json +8 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repo-permissions-hook/package.json +31 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/README.md +77 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/SKILL.md +80 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/claude.mjs +248 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/cli.mjs +191 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/core.mjs +290 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/mcp-server.mjs +157 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-repos/package.json +34 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/CHANGELOG.md +57 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/LICENSE +52 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/README.md +81 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/REFERENCE.md +122 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SKILL.md +87 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/SPEC.md +206 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/detect.mjs +130 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/README.md +20 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/SKILL.md +28 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/cli.mjs +4 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/core.mjs +8 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/mcp-server.mjs +27 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/examples/minimal/package.json +12 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/install.js +930 -0
- package/.worktrees/wip-ai-devops-toolbox-private--cc-mini--dot-worktrees/tools/wip-universal-installer/package.json +32 -0
- package/CHANGELOG.md +45 -0
- package/DEV-GUIDE-GENERAL-PUBLIC.md +6 -6
- package/SKILL.md +1 -1
- package/_trash/RELEASE-NOTES-v1-9-56.md +42 -0
- 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/guard.mjs +46 -5
- 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/core.mjs +3 -3
- 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
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// wip-release/mcp-server.mjs
|
|
3
|
+
// MCP server exposing release pipeline 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
|
+
release, detectCurrentVersion, bumpSemver, buildReleaseNotes,
|
|
11
|
+
} from './core.mjs';
|
|
12
|
+
|
|
13
|
+
const server = new Server(
|
|
14
|
+
{ name: 'wip-release', version: '1.3.0' },
|
|
15
|
+
{ capabilities: { tools: {} } }
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
// ── Tool Definitions ──
|
|
19
|
+
|
|
20
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
21
|
+
tools: [
|
|
22
|
+
{
|
|
23
|
+
name: 'release',
|
|
24
|
+
description: 'Run the full release pipeline. Bumps version, updates changelog + SKILL.md, commits, tags, publishes to npm + GitHub. Must be run from repo root or provide repoPath.',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
repoPath: { type: 'string', description: 'Absolute path to the repo. Defaults to cwd.' },
|
|
29
|
+
level: { type: 'string', enum: ['patch', 'minor', 'major'], description: 'Semver bump level' },
|
|
30
|
+
notes: { type: 'string', description: 'Changelog entry and release notes summary' },
|
|
31
|
+
dryRun: { type: 'boolean', description: 'Preview only, no changes', default: false },
|
|
32
|
+
noPublish: { type: 'boolean', description: 'Bump + tag only, skip npm/GitHub publish', default: false },
|
|
33
|
+
skipProductCheck: { type: 'boolean', description: 'Skip product doc freshness check', default: false },
|
|
34
|
+
skipTechDocsCheck: { type: 'boolean', description: 'Skip technical docs freshness check', default: false },
|
|
35
|
+
skipCoverageCheck: { type: 'boolean', description: 'Skip interface coverage table check', default: false },
|
|
36
|
+
},
|
|
37
|
+
required: ['level', 'notes'],
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'release_status',
|
|
42
|
+
description: 'Check current version and what the next version would be for a given bump level.',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
properties: {
|
|
46
|
+
repoPath: { type: 'string', description: 'Absolute path to the repo. Defaults to cwd.' },
|
|
47
|
+
level: { type: 'string', enum: ['patch', 'minor', 'major'], description: 'Semver bump level to preview' },
|
|
48
|
+
},
|
|
49
|
+
required: ['level'],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
}));
|
|
54
|
+
|
|
55
|
+
// ── Tool Handlers ──
|
|
56
|
+
|
|
57
|
+
server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
58
|
+
const { name, arguments: args } = req.params;
|
|
59
|
+
|
|
60
|
+
if (name === 'release') {
|
|
61
|
+
try {
|
|
62
|
+
const result = await release({
|
|
63
|
+
repoPath: args.repoPath || process.cwd(),
|
|
64
|
+
level: args.level,
|
|
65
|
+
notes: args.notes,
|
|
66
|
+
dryRun: args.dryRun || false,
|
|
67
|
+
notesSource: 'flag', // MCP always passes notes directly
|
|
68
|
+
noPublish: args.noPublish || false,
|
|
69
|
+
skipProductCheck: args.skipProductCheck || false,
|
|
70
|
+
skipTechDocsCheck: args.skipTechDocsCheck || false,
|
|
71
|
+
skipCoverageCheck: args.skipCoverageCheck || false,
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
content: [{
|
|
75
|
+
type: 'text',
|
|
76
|
+
text: `Release complete: ${result.currentVersion} -> ${result.newVersion}${result.dryRun ? ' (dry run)' : ''}`,
|
|
77
|
+
}],
|
|
78
|
+
};
|
|
79
|
+
} catch (err) {
|
|
80
|
+
return {
|
|
81
|
+
content: [{ type: 'text', text: `Release failed: ${err.message}` }],
|
|
82
|
+
isError: true,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (name === 'release_status') {
|
|
88
|
+
try {
|
|
89
|
+
const repoPath = args.repoPath || process.cwd();
|
|
90
|
+
const current = detectCurrentVersion(repoPath);
|
|
91
|
+
const next = bumpSemver(current, args.level);
|
|
92
|
+
return {
|
|
93
|
+
content: [{
|
|
94
|
+
type: 'text',
|
|
95
|
+
text: `Current: ${current}\nNext (${args.level}): ${next}`,
|
|
96
|
+
}],
|
|
97
|
+
};
|
|
98
|
+
} catch (err) {
|
|
99
|
+
return {
|
|
100
|
+
content: [{ type: 'text', text: `Status check failed: ${err.message}` }],
|
|
101
|
+
isError: true,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return {
|
|
107
|
+
content: [{ type: 'text', text: `Unknown tool: ${name}` }],
|
|
108
|
+
isError: true,
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
const transport = new StdioServerTransport();
|
|
113
|
+
await server.connect(transport);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wipcomputer/wip-release",
|
|
3
|
+
"version": "1.9.15",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "One-command release pipeline. Bumps version, updates changelog + SKILL.md, publishes to npm + GitHub.",
|
|
6
|
+
"main": "core.mjs",
|
|
7
|
+
"bin": {
|
|
8
|
+
"wip-release": "cli.js"
|
|
9
|
+
},
|
|
10
|
+
"exports": {
|
|
11
|
+
".": "./core.mjs",
|
|
12
|
+
"./cli": "./cli.js"
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"test": "node cli.js --help"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"release",
|
|
19
|
+
"version",
|
|
20
|
+
"publish",
|
|
21
|
+
"npm",
|
|
22
|
+
"agent-native",
|
|
23
|
+
"sensor",
|
|
24
|
+
"actuator"
|
|
25
|
+
],
|
|
26
|
+
"author": "Parker Todd Brooks",
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git+https://github.com/wipcomputer/wip-release.git"
|
|
31
|
+
},
|
|
32
|
+
"homepage": "https://github.com/wipcomputer/wip-ai-devops-toolbox",
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
###### WIP Computer
|
|
2
|
+
|
|
3
|
+
# Repo Init
|
|
4
|
+
|
|
5
|
+
Scaffold the standard `ai/` directory in any repo. Plans, notes, ideas, dev updates, todos. One command.
|
|
6
|
+
|
|
7
|
+
## What it does
|
|
8
|
+
|
|
9
|
+
- **New repo:** Creates the full `ai/` directory structure
|
|
10
|
+
- **Existing repo:** Moves old `ai/` contents to `ai/_sort/ai_old/` so you can sort at your own pace
|
|
11
|
+
- Nothing is deleted
|
|
12
|
+
|
|
13
|
+
## The `ai/` directory
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
ai/
|
|
17
|
+
plan/ architecture plans, roadmaps
|
|
18
|
+
dev-updates/ what was built, session logs
|
|
19
|
+
todos/
|
|
20
|
+
PUNCHLIST.md blockers to ship
|
|
21
|
+
inboxes/ per-agent action items
|
|
22
|
+
notes/ research, references, raw conversation logs
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The `ai/` folder is the development process. It is not part of the published product. Public repos exclude it via deploy-public.sh.
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
node tools/wip-repo-init/init.mjs /path/to/repo
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Interfaces
|
|
34
|
+
|
|
35
|
+
- **CLI**: Run from terminal
|
|
36
|
+
- **Skill**: SKILL.md for agent instructions
|
|
37
|
+
|
|
38
|
+
## Part of [AI DevOps Toolbox](https://github.com/wipcomputer/wip-ai-devops-toolbox)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wip-repo-init
|
|
3
|
+
description: Scaffold the standard ai/ directory structure in any repo.
|
|
4
|
+
license: MIT
|
|
5
|
+
interface: [cli, skill]
|
|
6
|
+
metadata:
|
|
7
|
+
display-name: "Repo Init"
|
|
8
|
+
version: "1.0.0"
|
|
9
|
+
homepage: "https://github.com/wipcomputer/wip-ai-devops-toolbox"
|
|
10
|
+
author: "Parker Todd Brooks"
|
|
11
|
+
category: repo-management
|
|
12
|
+
capabilities:
|
|
13
|
+
- scaffold-ai-dir
|
|
14
|
+
- template-copy
|
|
15
|
+
requires:
|
|
16
|
+
bins: [node]
|
|
17
|
+
openclaw:
|
|
18
|
+
requires:
|
|
19
|
+
bins: [node]
|
|
20
|
+
install:
|
|
21
|
+
- id: node
|
|
22
|
+
kind: node
|
|
23
|
+
package: "@wipcomputer/wip-repo-init"
|
|
24
|
+
bins: [wip-repo-init]
|
|
25
|
+
label: "Install via npm"
|
|
26
|
+
emoji: "📁"
|
|
27
|
+
compatibility: Requires node. Node.js 18+.
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# Repo Init
|
|
31
|
+
|
|
32
|
+
Scaffolds the standard `ai/` directory structure in any repo.
|
|
33
|
+
|
|
34
|
+
## Commands
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
wip-repo-init /path/to/repo # scaffold ai/ in a repo
|
|
38
|
+
wip-repo-init /path/to/repo --dry-run # preview without changes
|
|
39
|
+
wip-repo-init /path/to/repo --yes # skip confirmation prompt
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## What happens
|
|
43
|
+
|
|
44
|
+
**New repo (no ai/ folder):** Creates the full standard structure with all READMEs explaining what goes where.
|
|
45
|
+
|
|
46
|
+
**Existing repo (ai/ folder exists):** Shows you what will happen and asks for confirmation. If you say yes:
|
|
47
|
+
1. Moves your current `ai/` contents to `ai/_sort/ai_old/`
|
|
48
|
+
2. Scaffolds the new standard structure
|
|
49
|
+
3. You sort files from `ai_old/` into the new structure at your own pace
|
|
50
|
+
|
|
51
|
+
Nothing is deleted. Your old files are all in `ai/_sort/ai_old/`.
|
|
52
|
+
|
|
53
|
+
## The standard ai/ structure
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
ai/
|
|
57
|
+
read-me-first.md <- explains everything, links to all sections
|
|
58
|
+
_sort/ <- holding pen for files that need sorting
|
|
59
|
+
_trash/ <- archive (never delete, move here)
|
|
60
|
+
dev-updates/ <- engineering changelog, auto-detected by wip-release
|
|
61
|
+
product/
|
|
62
|
+
readme-first-product.md <- the product bible
|
|
63
|
+
notes/ <- freeform notes, research
|
|
64
|
+
plans-prds/ <- plans with lifecycle stages
|
|
65
|
+
roadmap.md <- prioritized roadmap
|
|
66
|
+
current/ <- plans being built now
|
|
67
|
+
upcoming/ <- plans that are next
|
|
68
|
+
archive-complete/ <- plans that shipped
|
|
69
|
+
todos/ <- per-agent todo files
|
|
70
|
+
product-ideas/ <- ideas that aren't plans yet
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Every folder has a `_trash/` subfolder. Every section has a README explaining what it is, what goes in it, and how to maintain it.
|
|
74
|
+
|
|
75
|
+
## Interfaces
|
|
76
|
+
|
|
77
|
+
CLI, Skill
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// wip-repo-init: scaffold the standard ai/ directory structure in any repo.
|
|
3
|
+
//
|
|
4
|
+
// New repo (no ai/ folder):
|
|
5
|
+
// Copies the template as-is.
|
|
6
|
+
//
|
|
7
|
+
// Existing repo (ai/ folder exists):
|
|
8
|
+
// 1. Creates the new ai/ structure
|
|
9
|
+
// 2. Moves old ai/ contents into ai/_sort/ai_old/
|
|
10
|
+
// 3. You sort from there at your own pace.
|
|
11
|
+
|
|
12
|
+
import { existsSync, mkdirSync, cpSync, renameSync, readdirSync, statSync, readFileSync } from 'node:fs';
|
|
13
|
+
import { join, resolve, dirname } from 'node:path';
|
|
14
|
+
import { fileURLToPath } from 'node:url';
|
|
15
|
+
import { createInterface } from 'node:readline';
|
|
16
|
+
|
|
17
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
18
|
+
|
|
19
|
+
if (process.argv.includes('--version') || process.argv.includes('-v')) {
|
|
20
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf8'));
|
|
21
|
+
console.log(pkg.version);
|
|
22
|
+
process.exit(0);
|
|
23
|
+
}
|
|
24
|
+
const TEMPLATE = join(__dirname, 'templates');
|
|
25
|
+
|
|
26
|
+
const targetRepo = resolve(process.argv[2] || process.cwd());
|
|
27
|
+
const aiDir = join(targetRepo, 'ai');
|
|
28
|
+
const dryRun = process.argv.includes('--dry-run');
|
|
29
|
+
|
|
30
|
+
const forceYes = process.argv.includes('--yes') || process.argv.includes('-y');
|
|
31
|
+
|
|
32
|
+
function log(msg) { console.log(` ${msg}`); }
|
|
33
|
+
function ok(msg) { console.log(` ✓ ${msg}`); }
|
|
34
|
+
function skip(msg) { console.log(` - ${msg}`); }
|
|
35
|
+
|
|
36
|
+
async function confirm(question) {
|
|
37
|
+
if (forceYes) return true;
|
|
38
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
39
|
+
return new Promise(resolve => {
|
|
40
|
+
rl.question(` ${question} (y/N) `, answer => {
|
|
41
|
+
rl.close();
|
|
42
|
+
resolve(answer.trim().toLowerCase() === 'y');
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Recursively copy template, skipping files that already exist
|
|
48
|
+
function scaffoldDir(src, dest) {
|
|
49
|
+
if (!existsSync(dest)) {
|
|
50
|
+
if (!dryRun) mkdirSync(dest, { recursive: true });
|
|
51
|
+
ok(`Created ${dest.replace(targetRepo + '/', '')}`);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
for (const entry of readdirSync(src)) {
|
|
55
|
+
if (entry === '.DS_Store') continue;
|
|
56
|
+
const srcPath = join(src, entry);
|
|
57
|
+
const destPath = join(dest, entry);
|
|
58
|
+
const stat = statSync(srcPath);
|
|
59
|
+
|
|
60
|
+
if (stat.isDirectory()) {
|
|
61
|
+
scaffoldDir(srcPath, destPath);
|
|
62
|
+
} else {
|
|
63
|
+
if (existsSync(destPath)) {
|
|
64
|
+
skip(`${destPath.replace(targetRepo + '/', '')} already exists`);
|
|
65
|
+
} else {
|
|
66
|
+
if (!dryRun) cpSync(srcPath, destPath);
|
|
67
|
+
ok(`${destPath.replace(targetRepo + '/', '')}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
console.log('');
|
|
74
|
+
console.log(` wip-repo-init${dryRun ? ' (dry run)' : ''}`);
|
|
75
|
+
console.log(` Target: ${targetRepo}`);
|
|
76
|
+
console.log(` ${'─'.repeat(40)}`);
|
|
77
|
+
|
|
78
|
+
if (!existsSync(targetRepo)) {
|
|
79
|
+
console.log(` ✗ Target directory does not exist: ${targetRepo}`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (existsSync(aiDir)) {
|
|
84
|
+
// Existing ai/ folder: explain what will happen, then confirm
|
|
85
|
+
log('Found existing ai/ folder.');
|
|
86
|
+
console.log('');
|
|
87
|
+
log('Here\'s what will happen:');
|
|
88
|
+
log(' 1. Your current ai/ contents will be moved to ai/_sort/ai_old/');
|
|
89
|
+
log(' 2. The standard ai/ structure will be scaffolded');
|
|
90
|
+
log(' 3. You can sort files from ai_old/ into the new structure at your own pace');
|
|
91
|
+
console.log('');
|
|
92
|
+
log('Nothing is deleted. Your old files will all be in ai/_sort/ai_old/.');
|
|
93
|
+
console.log('');
|
|
94
|
+
|
|
95
|
+
const sortDir = join(aiDir, '_sort');
|
|
96
|
+
const aiOldDir = join(sortDir, 'ai_old');
|
|
97
|
+
|
|
98
|
+
if (existsSync(aiOldDir)) {
|
|
99
|
+
console.log(` ✗ ai/_sort/ai_old/ already exists. A previous init was run but not sorted yet.`);
|
|
100
|
+
console.log(` Sort the files in ai/_sort/ai_old/ first, then run again.`);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (dryRun) {
|
|
105
|
+
log('[dry run] Would move old ai/ contents to ai/_sort/ai_old/');
|
|
106
|
+
log('[dry run] Would scaffold new ai/ structure:');
|
|
107
|
+
console.log('');
|
|
108
|
+
scaffoldDir(TEMPLATE, aiDir);
|
|
109
|
+
console.log(`\n ${'─'.repeat(40)}`);
|
|
110
|
+
console.log(' Dry run complete. No changes made.\n');
|
|
111
|
+
process.exit(0);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const proceed = await confirm('Proceed?');
|
|
115
|
+
if (!proceed) {
|
|
116
|
+
console.log(' Cancelled.\n');
|
|
117
|
+
process.exit(0);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
console.log('');
|
|
121
|
+
const tmpOld = join(targetRepo, '_ai_old_tmp');
|
|
122
|
+
renameSync(aiDir, tmpOld);
|
|
123
|
+
ok('Moved old ai/ to temporary location');
|
|
124
|
+
|
|
125
|
+
scaffoldDir(TEMPLATE, aiDir);
|
|
126
|
+
|
|
127
|
+
mkdirSync(join(aiDir, '_sort'), { recursive: true });
|
|
128
|
+
renameSync(tmpOld, aiOldDir);
|
|
129
|
+
ok('Moved old ai/ contents to ai/_sort/ai_old/');
|
|
130
|
+
} else {
|
|
131
|
+
// No ai/ folder: scaffold from scratch
|
|
132
|
+
log('No existing ai/ folder. Scaffolding from template.');
|
|
133
|
+
console.log('');
|
|
134
|
+
scaffoldDir(TEMPLATE, aiDir);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
console.log(` ${'─'.repeat(40)}`);
|
|
138
|
+
if (dryRun) {
|
|
139
|
+
console.log(' Dry run complete. No changes made.');
|
|
140
|
+
} else {
|
|
141
|
+
ok('Done.');
|
|
142
|
+
if (existsSync(join(aiDir, '_sort', 'ai_old'))) {
|
|
143
|
+
console.log('');
|
|
144
|
+
log('Your old ai/ contents are in ai/_sort/ai_old/');
|
|
145
|
+
log('Sort them into the new structure at your own pace.');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
console.log('');
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wipcomputer/wip-repo-init",
|
|
3
|
+
"version": "1.9.26",
|
|
4
|
+
"description": "Scaffold the standard ai/ directory structure in any repo",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"wip-repo-init": "init.mjs"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"author": "WIP Computer"
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# _sort/
|
|
2
|
+
|
|
3
|
+
The holding pen. Files that need to be looked at and filed somewhere.
|
|
4
|
+
|
|
5
|
+
## What Goes Here
|
|
6
|
+
|
|
7
|
+
- iCloud duplicates or randomly placed files that need sorting
|
|
8
|
+
- Files you're not sure where to put yet
|
|
9
|
+
- Anything that needs a human to look at it and decide where it belongs
|
|
10
|
+
|
|
11
|
+
## Rules
|
|
12
|
+
|
|
13
|
+
- **Not trash.** `_sort/` is for files you want to review. `_trash/` is for files you're done with.
|
|
14
|
+
- **Don't let it pile up.** Check this folder periodically. File things or trash them.
|
|
15
|
+
- **Agents:** If you don't know where a file goes, put it in `_sort/`. A human will sort it later.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# _trash/
|
|
2
|
+
|
|
3
|
+
The archive. Files that are done, replaced, or consumed. Never delete anything. Move it here.
|
|
4
|
+
|
|
5
|
+
## What Goes Here
|
|
6
|
+
|
|
7
|
+
- Superseded plans (replaced by a newer version)
|
|
8
|
+
- Consumed release notes (already used by `wip-release`)
|
|
9
|
+
- Abandoned drafts
|
|
10
|
+
- Anything you're done with but might need to reference later
|
|
11
|
+
|
|
12
|
+
## Rules
|
|
13
|
+
|
|
14
|
+
- **This is not garbage.** It's the archive. Everything in git history is recoverable, but `_trash/` keeps things findable without digging through commits.
|
|
15
|
+
- **Subfolders have their own `_trash/`.** Use the nearest one. `dev-updates/_trash/` for old dev updates, `product/notes/_trash/` for old notes, etc.
|
|
16
|
+
- **Never delete files from the repo.** Move them to `_trash/` instead.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# dev-updates/
|
|
2
|
+
|
|
3
|
+
One file per significant change. Written as you work, auto-detected by `wip-release`.
|
|
4
|
+
|
|
5
|
+
## What This Folder Is
|
|
6
|
+
|
|
7
|
+
Dev updates are the engineering changelog. Every time you do significant work (ship a feature, fix a bug, change architecture), write a dev update. `wip-release` picks up today's dev updates and uses them as release notes.
|
|
8
|
+
|
|
9
|
+
This is not a place for plans or ideas. It's a record of what was built and why.
|
|
10
|
+
|
|
11
|
+
## Naming Convention
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
YYYY-MM-DD--HH-MM--agent--description.md
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Examples:
|
|
18
|
+
- `2026-03-11--09-30--cc-mini--fix-hook-duplicates.md`
|
|
19
|
+
- `2026-03-10--14-00--lesa-mini--add-voice-call-support.md`
|
|
20
|
+
|
|
21
|
+
## File Format
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
# Short title of what changed
|
|
25
|
+
|
|
26
|
+
**Date:** YYYY-MM-DD HH:MM TZ
|
|
27
|
+
**Author:** Agent Name (agent-id)
|
|
28
|
+
|
|
29
|
+
## Problem
|
|
30
|
+
|
|
31
|
+
What was broken or missing.
|
|
32
|
+
|
|
33
|
+
## Fix / What Changed
|
|
34
|
+
|
|
35
|
+
What you did and why.
|
|
36
|
+
|
|
37
|
+
## Files changed
|
|
38
|
+
|
|
39
|
+
- `path/to/file.js` ... what changed in it
|
|
40
|
+
|
|
41
|
+
Closes #issue-number (if applicable)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Rules
|
|
45
|
+
|
|
46
|
+
- **Write them as you work.** Don't batch them at the end. Each significant change gets its own file.
|
|
47
|
+
- **One file per change.** Not one file per day. If you fix two unrelated bugs, write two files.
|
|
48
|
+
- **Include the "why."** "Fixed X" is a commit message. A dev update explains why it was broken and why the fix works.
|
|
49
|
+
- **Reference issues.** If there's a GitHub issue, add `Closes #N` at the bottom.
|
|
50
|
+
- **Consumed files go to `_trash/`.** `wip-release` doesn't move them automatically, but the release notes files it generates do get trashed after release.
|
package/.worktrees/toolbox--release-notes/tools/wip-repo-init/templates/product/notes/README.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# notes/
|
|
2
|
+
|
|
3
|
+
Freeform notes, research, and observations. Anything that's useful context but isn't a plan, idea, or dev update.
|
|
4
|
+
|
|
5
|
+
## What Goes Here
|
|
6
|
+
|
|
7
|
+
- Research notes ("I looked into X and found...")
|
|
8
|
+
- Meeting notes or conversation summaries
|
|
9
|
+
- Technical investigations
|
|
10
|
+
- Context that multiple plans reference
|
|
11
|
+
- Anything that doesn't fit in `plans-prds/` or `product-ideas/`
|
|
12
|
+
|
|
13
|
+
## Naming
|
|
14
|
+
|
|
15
|
+
No strict convention. Use descriptive names:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
YYYY-MM-DD--agent--topic.md
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Example: `2026-03-10--cc-mini--readme-standard-and-universal-installer-vision.md`
|
|
22
|
+
|
|
23
|
+
## Rules
|
|
24
|
+
|
|
25
|
+
- **Not a plan?** Put it here, not in `plans-prds/`.
|
|
26
|
+
- **Done with it?** Move to `_trash/`. Don't delete.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# [Product Name] ... Roadmap
|
|
2
|
+
|
|
3
|
+
**Last updated:** YYYY-MM-DD
|
|
4
|
+
**Current version:** vX.Y.Z
|
|
5
|
+
|
|
6
|
+
Items are either **Upcoming**, **Done**, or **Deprecated**. Never delete. Always move.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## What This File Is
|
|
11
|
+
|
|
12
|
+
The prioritized roadmap for this product. Three sections:
|
|
13
|
+
|
|
14
|
+
- **Upcoming** ... work that's planned, ordered by priority. Top = most important.
|
|
15
|
+
- **Done** ... shipped work. Moved here with a date when it's released.
|
|
16
|
+
- **Deprecated** ... planned work that's no longer needed. Strikethrough, add the reason and date. Not the same as Done. Done means it shipped. Deprecated means the plan changed.
|
|
17
|
+
|
|
18
|
+
**Keep it honest.** If something isn't going to happen, deprecate it. Don't leave dead items in Upcoming.
|
|
19
|
+
|
|
20
|
+
**Keep it prioritized.** Upcoming items have priority numbers. When priorities shift, renumber them. The order is the strategy.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Vision
|
|
25
|
+
|
|
26
|
+
_One paragraph. Where is this product going? Not the feature list. The north star._
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Upcoming
|
|
31
|
+
|
|
32
|
+
### Priority 1 ... [Feature/Epic Name]
|
|
33
|
+
|
|
34
|
+
_What it is and why it matters in 1-2 sentences._
|
|
35
|
+
|
|
36
|
+
- [ ] Task one
|
|
37
|
+
- [ ] Task two
|
|
38
|
+
- [ ] Task three
|
|
39
|
+
|
|
40
|
+
### Priority 2 ... [Feature/Epic Name]
|
|
41
|
+
|
|
42
|
+
_What it is and why it matters._
|
|
43
|
+
|
|
44
|
+
- [ ] Task one
|
|
45
|
+
- [ ] Task two
|
|
46
|
+
|
|
47
|
+
_Add more priorities as needed. Number them. The number is the priority._
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Done
|
|
52
|
+
|
|
53
|
+
### [Feature Name] (YYYY-MM-DD)
|
|
54
|
+
|
|
55
|
+
- [x] What shipped
|
|
56
|
+
- [x] What shipped
|
|
57
|
+
|
|
58
|
+
_Move items here when they're released. Include the date. Keep the checkbox format so it's clear what was planned vs what actually shipped._
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Deprecated
|
|
63
|
+
|
|
64
|
+
- ~~[Feature that was planned]~~ ... reason it was dropped. (YYYY-MM-DD)
|
|
65
|
+
|
|
66
|
+
_Deprecated is not a graveyard. It's a record of decisions. When someone asks "why didn't we build X?" the answer is here._
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## How to Update This File
|
|
71
|
+
|
|
72
|
+
- **Shipped a feature?** Move it from Upcoming to Done. Add the date. Check the boxes.
|
|
73
|
+
- **Dropped a plan?** Move it to Deprecated. Strikethrough, add the reason and date.
|
|
74
|
+
- **New idea that's ready to plan?** Add to Upcoming with a priority number. Renumber if needed.
|
|
75
|
+
- **Idea that's NOT ready to plan?** Put it in `../product-ideas/` instead. The roadmap is for committed work.
|
|
76
|
+
- **Priorities shifted?** Renumber the Upcoming section. The order matters.
|
|
77
|
+
- **Always update** "Last updated" and "Current version" at the top.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# todos/
|
|
2
|
+
|
|
3
|
+
One todo file per person or agent. Three sections per file: To Do, Done, Deprecated.
|
|
4
|
+
|
|
5
|
+
## What This Folder Is
|
|
6
|
+
|
|
7
|
+
Todos that are specific to this repo. Each person or agent who works on this repo gets one file. The file tracks what they need to do, what they've done, and what got dropped.
|
|
8
|
+
|
|
9
|
+
For cross-repo work or bigger items, use GitHub Issues. Todos here are for repo-scoped tasks that don't need the overhead of an issue.
|
|
10
|
+
|
|
11
|
+
## Files
|
|
12
|
+
|
|
13
|
+
One file per person/agent. Name it `[Name]-todo.md`.
|
|
14
|
+
|
|
15
|
+
Example:
|
|
16
|
+
|
|
17
|
+
| File | Who |
|
|
18
|
+
|------|-----|
|
|
19
|
+
| `Parker-todo.md` | Parker (human tasks: reviews, credentials, approvals) |
|
|
20
|
+
| `CC-Mini-todo.md` | Claude Code on Mac Mini (code, builds, deploys) |
|
|
21
|
+
|
|
22
|
+
Create the file when that person/agent first has work to do. No empty placeholder files.
|
|
23
|
+
|
|
24
|
+
## File Format
|
|
25
|
+
|
|
26
|
+
```markdown
|
|
27
|
+
# [Name] Todos
|
|
28
|
+
|
|
29
|
+
**Last updated:** YYYY-MM-DD
|
|
30
|
+
|
|
31
|
+
## To Do
|
|
32
|
+
|
|
33
|
+
- [ ] Task description
|
|
34
|
+
- [ ] Task description (blocked by: reason)
|
|
35
|
+
|
|
36
|
+
## Done
|
|
37
|
+
|
|
38
|
+
- [x] Task description (YYYY-MM-DD)
|
|
39
|
+
- [x] Task description (YYYY-MM-DD)
|
|
40
|
+
|
|
41
|
+
## Deprecated
|
|
42
|
+
|
|
43
|
+
- ~~Task description~~ ... reason. (YYYY-MM-DD)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Rules
|
|
47
|
+
|
|
48
|
+
- **Never delete anything.** Items move between sections, never off the page.
|
|
49
|
+
- **To Do** ... work that needs to happen.
|
|
50
|
+
- **Done** ... completed work. Check the box, add the date.
|
|
51
|
+
- **Deprecated** ... planned but no longer needed. Strikethrough, add the reason and date. Not the same as Done. Done means it shipped. Deprecated means the requirement changed.
|
|
52
|
+
- **Update the date** at the top of the file every time you edit it.
|
|
53
|
+
- **One file per person/agent.** No dated files, no subfolders, no inboxes.
|
|
54
|
+
- **Blocked items** stay in To Do with a `(blocked by: reason)` note. Don't move them to a separate section.
|
|
55
|
+
|
|
56
|
+
## When to Use Todos vs GitHub Issues
|
|
57
|
+
|
|
58
|
+
| Use | When |
|
|
59
|
+
|-----|------|
|
|
60
|
+
| **Todo file** | Quick tasks, repo-scoped work, things you'll do this session or this week |
|
|
61
|
+
| **GitHub Issue** | Bugs, feature requests, cross-repo work, things that need tracking or discussion |
|
|
62
|
+
|
|
63
|
+
Both is fine. File an issue AND add a todo that references it. The todo is your personal checklist. The issue is the team's record.
|