@wipcomputer/wip-ai-devops-toolbox 1.9.34 → 1.9.36

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 CHANGED
@@ -31,6 +31,40 @@
31
31
 
32
32
 
33
33
 
34
+
35
+ ## 1.9.36 (2026-03-16)
36
+
37
+ # GitHub Packages publish from public repo
38
+
39
+ **Date:** 2026-03-16
40
+ **Closes:** #193
41
+
42
+ ## What changed
43
+
44
+ `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
45
+
46
+ Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
47
+
48
+ ## Why
49
+
50
+ The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
51
+
52
+ ## 1.9.35 (2026-03-16)
53
+
54
+ # GitHub Packages publish from public repo
55
+
56
+ **Date:** 2026-03-16
57
+ **Closes:** #193
58
+
59
+ ## What changed
60
+
61
+ `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
62
+
63
+ Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
64
+
65
+ ## Why
66
+
67
+ The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
34
68
 
35
69
  ## 1.9.34 (2026-03-16)
36
70
 
package/README.md CHANGED
@@ -66,40 +66,48 @@ As Andrej Karpathy [said](https://x.com/karpathy/status/2024583544157458452): *"
66
66
  - *Stable*
67
67
  - [Read more about LDM Dev Tools.app](tools/ldm-jobs/README.md)
68
68
 
69
- ### Release & Deploy
69
+ ### Repo Management
70
70
 
71
- **Release Pipeline**
72
- - Release software correctly. Version bump, changelog, npm publish, GitHub release. One command, nothing forgotten.
73
- - SKILL.md sync, release notes on the branch for PR review. Warns when notes are too short or look like changelogs instead of narrative
71
+ **Repo Visibility Guard**
72
+ - Never accidentally expose a private repo.
73
+ - Blocks repos from going public without a `-private` counterpart. Catches accidental exposure of internal plans, todos, and development context before it happens
74
+ - **Interfaces:** CLI, Module, MCP, OpenClaw, Skill, CC Hook
75
+ - *Stable*
76
+ - [Read more about Repo Visibility Guard](tools/wip-repo-permissions-hook/README.md)
77
+
78
+ **Repo Manifest Reconciler**
79
+ - Know where every repo belongs. One source of truth for folder structure.
80
+ - Like prettier for folder structure. Move folders around all day; on sync, everything snaps back to where the manifest says
74
81
  - **Interfaces:** CLI, Module, MCP, Skill
75
82
  - *Stable*
76
- - [Read more about Release Pipeline](tools/wip-release/README.md)
83
+ - [Read more about Repo Manifest](tools/wip-repos/README.md)
77
84
 
78
- **Private-to-Public Sync**
79
- - Publish safely. Syncs private to public, excludes internal files, every time.
80
- - One script syncs your private working repo to a clean public mirror. Excludes internal `ai/` folders automatically. Creates a PR, merges it, cleans up branches
85
+ **Repo Init**
86
+ - Scaffold the standard `ai/` directory in any repo. Plans, notes, ideas, dev updates, todos. One command.
87
+ - New repo: creates the full structure. Existing repo: moves old `ai/` contents to `ai/_sort/ai_old/` so you can sort at your own pace. Nothing is deleted.
81
88
  - **Interfaces:** CLI, Skill
82
89
  - *Stable*
83
- - [Read more about Private-to-Public Sync](tools/deploy-public/README.md)
90
+ - [Read more about Repo Init](tools/wip-repo-init/README.md)
84
91
 
85
- **Post-Merge Branch Naming**
86
- - Cleans up after itself. Merged branches get renamed with dates automatically.
87
- - Renames merged branches with `--merged-YYYY-MM-DD`. Preserves history without cluttering your branch list
92
+ **README Formatter**
93
+ - Generate or validate READMEs that follow the WIP Computer standard. Badges, title, tagline, "Teach Your AI" block, features, interface coverage table, license.
94
+ - Generates separate section files (README-init-badges.md, README-init-features.md, etc.) so you can edit any section independently. Deploy assembles them into the final README. Same pattern as release notes: staging, review, deploy.
88
95
  - **Interfaces:** CLI, Skill
89
96
  - *Stable*
90
- - [Read more about Post-Merge Naming](tools/post-merge-rename/README.md)
97
+ - [Read more about README Formatter](tools/wip-readme-format/README.md)
91
98
 
92
- **Skill Publish to Website**
93
- - After every release, your SKILL.md goes live as plain text on your website. No manual copying. No forgetting.
94
- - Add `.publish-skill.json` to your repo with `name` and `websiteRepo`. On release, SKILL.md is copied to `yoursite.com/install/{name}.txt` and deployed automatically. Any AI can fetch the URL and get clean, parseable instructions. Like `robots.txt` but for agent install prompts.
95
- - **Interfaces:** Module (built into Release Pipeline)
99
+ **Forced Git Worktrees**
100
+ - Every repo uses git worktrees. Agents never edit on main. Period.
101
+ - When an agent needs to make changes, it creates a worktree (isolated copy of the repo on its own branch). All edits happen there. Main stays clean. Multiple agents can work on the same repo simultaneously without collisions. When the work is done, it goes through a PR to merge back.
102
+ - **Interfaces:** CLI, CC Hook
96
103
  - *Stable*
97
104
 
98
- **Make Discoverable in Claude Code**
99
- - Turn any repo into a Claude Code plugin. Auto-generates `.claude-plugin/plugin.json` from your existing interfaces.
100
- - Runs during release. Detects what your repo exposes (skills, hooks, MCP servers, agents) and builds the plugin manifest so it shows up in Claude Code's `/plugin` marketplace. No manual config.
101
- - **Interfaces:** Module (built into Release Pipeline)
102
- - *Planned*
105
+ **Branch Guard**
106
+ - Blocks all writes on main. The enforcement layer for forced worktrees.
107
+ - PreToolUse hook that catches Write, Edit, and destructive Bash commands. Resolves the repo from the file path, not the CWD, so it works when Claude Code opens in a different directory. Read-only operations and merge/pull are still allowed on main.
108
+ - **Interfaces:** CC Hook
109
+ - *Stable*
110
+ - [Read more about Branch Guard](tools/wip-branch-guard/INSTALL.md)
103
111
 
104
112
  ### License, Compliance, and Protection
105
113
 
@@ -125,48 +133,40 @@ As Andrej Karpathy [said](https://x.com/karpathy/status/2024583544157458452): *"
125
133
  - *Stable*
126
134
  - [Read more about License Detection](tools/wip-license-hook/README.md)
127
135
 
128
- ### Repo Management
129
-
130
- **Repo Visibility Guard**
131
- - Never accidentally expose a private repo.
132
- - Blocks repos from going public without a `-private` counterpart. Catches accidental exposure of internal plans, todos, and development context before it happens
133
- - **Interfaces:** CLI, Module, MCP, OpenClaw, Skill, CC Hook
134
- - *Stable*
135
- - [Read more about Repo Visibility Guard](tools/wip-repo-permissions-hook/README.md)
136
+ ### Release & Deploy
136
137
 
137
- **Repo Manifest Reconciler**
138
- - Know where every repo belongs. One source of truth for folder structure.
139
- - Like prettier for folder structure. Move folders around all day; on sync, everything snaps back to where the manifest says
138
+ **Release Pipeline**
139
+ - Release software correctly. Version bump, changelog, npm publish, GitHub release. One command, nothing forgotten.
140
+ - SKILL.md sync, release notes on the branch for PR review. Warns when notes are too short or look like changelogs instead of narrative
140
141
  - **Interfaces:** CLI, Module, MCP, Skill
141
142
  - *Stable*
142
- - [Read more about Repo Manifest](tools/wip-repos/README.md)
143
+ - [Read more about Release Pipeline](tools/wip-release/README.md)
143
144
 
144
- **Repo Init**
145
- - Scaffold the standard `ai/` directory in any repo. Plans, notes, ideas, dev updates, todos. One command.
146
- - New repo: creates the full structure. Existing repo: moves old `ai/` contents to `ai/_sort/ai_old/` so you can sort at your own pace. Nothing is deleted.
145
+ **Private-to-Public Sync**
146
+ - Publish safely. Syncs private to public, excludes internal files, every time.
147
+ - One script syncs your private working repo to a clean public mirror. Excludes internal `ai/` folders automatically. Creates a PR, merges it, cleans up branches
147
148
  - **Interfaces:** CLI, Skill
148
149
  - *Stable*
149
- - [Read more about Repo Init](tools/wip-repo-init/README.md)
150
+ - [Read more about Private-to-Public Sync](tools/deploy-public/README.md)
150
151
 
151
- **README Formatter**
152
- - Generate or validate READMEs that follow the WIP Computer standard. Badges, title, tagline, "Teach Your AI" block, features, interface coverage table, license.
153
- - Generates separate section files (README-init-badges.md, README-init-features.md, etc.) so you can edit any section independently. Deploy assembles them into the final README. Same pattern as release notes: staging, review, deploy.
152
+ **Post-Merge Branch Naming**
153
+ - Cleans up after itself. Merged branches get renamed with dates automatically.
154
+ - Renames merged branches with `--merged-YYYY-MM-DD`. Preserves history without cluttering your branch list
154
155
  - **Interfaces:** CLI, Skill
155
156
  - *Stable*
156
- - [Read more about README Formatter](tools/wip-readme-format/README.md)
157
+ - [Read more about Post-Merge Naming](tools/post-merge-rename/README.md)
157
158
 
158
- **Forced Git Worktrees**
159
- - Every repo uses git worktrees. Agents never edit on main. Period.
160
- - When an agent needs to make changes, it creates a worktree (isolated copy of the repo on its own branch). All edits happen there. Main stays clean. Multiple agents can work on the same repo simultaneously without collisions. When the work is done, it goes through a PR to merge back.
161
- - **Interfaces:** CLI, CC Hook
159
+ **Skill Publish to Website**
160
+ - After every release, your SKILL.md goes live as plain text on your website. No manual copying. No forgetting.
161
+ - Add `.publish-skill.json` to your repo with `name` and `websiteRepo`. On release, SKILL.md is copied to `yoursite.com/install/{name}.txt` and deployed automatically. Any AI can fetch the URL and get clean, parseable instructions. Like `robots.txt` but for agent install prompts.
162
+ - **Interfaces:** Module (built into Release Pipeline)
162
163
  - *Stable*
163
164
 
164
- **Branch Guard**
165
- - Blocks all writes on main. The enforcement layer for forced worktrees.
166
- - PreToolUse hook that catches Write, Edit, and destructive Bash commands. Resolves the repo from the file path, not the CWD, so it works when Claude Code opens in a different directory. Read-only operations and merge/pull are still allowed on main.
167
- - **Interfaces:** CC Hook
168
- - *Stable*
169
- - [Read more about Branch Guard](tools/wip-branch-guard/INSTALL.md)
165
+ **Make Discoverable in Claude Code**
166
+ - Turn any repo into a Claude Code plugin. Auto-generates `.claude-plugin/plugin.json` from your existing interfaces.
167
+ - Runs during release. Detects what your repo exposes (skills, hooks, MCP servers, agents) and builds the plugin manifest so it shows up in Claude Code's `/plugin` marketplace. No manual config.
168
+ - **Interfaces:** Module (built into Release Pipeline)
169
+ - *Planned*
170
170
 
171
171
  ## Interface Coverage
172
172
 
@@ -177,23 +177,23 @@ As Andrej Karpathy [said](https://x.com/karpathy/status/2024583544157458452): *"
177
177
  | 2 | Dev Guide | | | | | | |
178
178
  | | **Infrastructure** | | | | | | |
179
179
  | 3 | LDM Dev Tools.app | | | | | | |
180
- | | **Release & Deploy** | | | | | | |
181
- | 4 | Release Pipeline | Y | Y | Y | | Y | |
182
- | 5 | Private-to-Public Sync | Y | | | | Y | |
183
- | 6 | Post-Merge Branch Naming | Y | | | | Y | |
184
- | 7 | Skill Publish to Website | | Y | | | | |
185
- | 8 | Make Discoverable in CC | | Y | | | | |
186
- | | **License, Compliance, and Protection** | | | | | | |
187
- | 9 | Identity File Protection | Y | Y | | Y | Y | Y |
188
- | 10 | License Guard | Y | | | | | |
189
- | 11 | License Rug-Pull Detection | Y | Y | Y | | Y | |
190
180
  | | **Repo Management** | | | | | | |
191
- | 12 | Repo Visibility Guard | Y | Y | Y | Y | Y | Y |
192
- | 13 | Repo Manifest Reconciler | Y | Y | Y | | Y | |
193
- | 14 | Repo Init | Y | | | | Y | |
194
- | 15 | README Formatter | Y | | | | Y | |
195
- | 16 | Forced Git Worktrees | Y | | | | | Y |
196
- | 17 | Branch Guard | | | | | | Y |
181
+ | 4 | Repo Visibility Guard | Y | Y | Y | Y | Y | Y |
182
+ | 5 | Repo Manifest Reconciler | Y | Y | Y | | Y | |
183
+ | 6 | Repo Init | Y | | | | Y | |
184
+ | 7 | README Formatter | Y | | | | Y | |
185
+ | 8 | Forced Git Worktrees | Y | | | | | Y |
186
+ | 9 | Branch Guard | | | | | | Y |
187
+ | | **License, Compliance, and Protection** | | | | | | |
188
+ | 10 | Identity File Protection | Y | Y | | Y | Y | Y |
189
+ | 11 | License Guard | Y | | | | | |
190
+ | 12 | License Rug-Pull Detection | Y | Y | Y | | Y | |
191
+ | | **Release & Deploy** | | | | | | |
192
+ | 13 | Release Pipeline | Y | Y | Y | | Y | |
193
+ | 14 | Private-to-Public Sync | Y | | | | Y | |
194
+ | 15 | Post-Merge Branch Naming | Y | | | | Y | |
195
+ | 16 | Skill Publish to Website | | Y | | | | |
196
+ | 17 | Make Discoverable in Claude Code | | Y | | | | |
197
197
 
198
198
  ## More Info
199
199
 
package/SKILL.md CHANGED
@@ -5,7 +5,7 @@ license: MIT
5
5
  interface: [cli, module, mcp, skill, hook, plugin]
6
6
  metadata:
7
7
  display-name: "WIP AI DevOps Toolbox"
8
- version: "1.9.34"
8
+ version: "1.9.36"
9
9
  homepage: "https://github.com/wipcomputer/wip-ai-devops-toolbox"
10
10
  author: "Parker Todd Brooks"
11
11
  category: dev-tools
@@ -777,26 +777,30 @@ Tools with MCP interfaces are agent-callable. Add to `.mcp.json`:
777
777
 
778
778
  ## Interface Coverage
779
779
 
780
- | # | Tool | CLI | Module | MCP | OC Plugin | Skill | CC Hook | ClawHub |
781
- |---|------|-----|--------|-----|-----------|-------|---------|---------|
782
- | | **Setup & Onboarding** | | | | | | | |
783
- | 1 | Universal Installer | Y | Y | | | Y | | |
784
- | 2 | Dev Guide | | | | | | | |
785
- | | **Infrastructure** | | | | | | | |
786
- | 3 | LDM Dev Tools.app | | | | | | | |
787
- | | **Release & Deploy** | | | | | | | |
788
- | 4 | Release Pipeline | Y | Y | Y | | Y | | Y |
789
- | 5 | Private-to-Public Sync | Y | | | | Y | | |
790
- | 6 | Post-Merge Branch Naming | Y | | | | Y | | |
791
- | | **License, Compliance, and Protection** | | | | | | | |
792
- | 7 | Identity File Protection | Y | Y | | Y | Y | Y | Y |
793
- | 8 | License Guard | Y | | | | | | |
794
- | 9 | License Rug-Pull Detection | Y | Y | Y | | Y | | Y |
795
- | | **Repo Management** | | | | | | | |
796
- | 10 | Repo Visibility Guard | Y | Y | Y | Y | Y | Y | Y |
797
- | 11 | Repo Manifest Reconciler | Y | Y | Y | | Y | | Y |
798
- | 12 | Repo Init | Y | | | | Y | | |
799
- | 13 | README Formatter | Y | | | | Y | | |
780
+ | # | Tool | CLI | Module | MCP | OC Plugin | Skill | CC Hook |
781
+ |---|------|-----|--------|-----|-----------|-------|---------|
782
+ | | **Setup & Onboarding** | | | | | | |
783
+ | 1 | Universal Installer | Y | Y | | | Y | |
784
+ | 2 | Dev Guide | | | | | | |
785
+ | | **Infrastructure** | | | | | | |
786
+ | 3 | LDM Dev Tools.app | | | | | | |
787
+ | | **Repo Management** | | | | | | |
788
+ | 4 | Repo Visibility Guard | Y | Y | Y | Y | Y | Y |
789
+ | 5 | Repo Manifest Reconciler | Y | Y | Y | | Y | |
790
+ | 6 | Repo Init | Y | | | | Y | |
791
+ | 7 | README Formatter | Y | | | | Y | |
792
+ | 8 | Forced Git Worktrees | Y | | | | | Y |
793
+ | 9 | Branch Guard | | | | | | Y |
794
+ | | **License, Compliance, and Protection** | | | | | | |
795
+ | 10 | Identity File Protection | Y | Y | | Y | Y | Y |
796
+ | 11 | License Guard | Y | | | | | |
797
+ | 12 | License Rug-Pull Detection | Y | Y | Y | | Y | |
798
+ | | **Release & Deploy** | | | | | | |
799
+ | 13 | Release Pipeline | Y | Y | Y | | Y | |
800
+ | 14 | Private-to-Public Sync | Y | | | | Y | |
801
+ | 15 | Post-Merge Branch Naming | Y | | | | Y | |
802
+ | 16 | Skill Publish to Website | | Y | | | | |
803
+ | 17 | Make Discoverable in Claude Code | | Y | | | | |
800
804
 
801
805
  ---
802
806
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-ai-devops-toolbox",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "type": "module",
5
5
  "description": "The complete AI DevOps toolkit for AI-assisted development teams.",
6
6
  "license": "MIT",
@@ -158,7 +158,14 @@ if $DRY_RUN; then
158
158
  exit 0
159
159
  fi
160
160
 
161
- git commit -m "$COMMIT_MSG (from $COMMIT_HASH)"
161
+ git commit -m "$(cat <<COMMITEOF
162
+ $COMMIT_MSG (from $COMMIT_HASH)
163
+
164
+ Co-Authored-By: Parker Todd Brooks <parkertoddbrooks@users.noreply.github.com>
165
+ Co-Authored-By: Lēsa <lesaai@icloud.com>
166
+ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
167
+ COMMITEOF
168
+ )"
162
169
 
163
170
  if [[ "$EMPTY_REPO" == "true" ]]; then
164
171
  # Empty repo: push directly to main (no base branch to PR against)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/deploy-public",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "description": "Private-to-public repo sync. Excludes ai/ folder, creates PR, merges, cleans up branches.",
5
5
  "bin": {
6
6
  "deploy-public": "./deploy-public.sh"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/post-merge-rename",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "description": "Post-merge branch renaming. Appends --merged-YYYY-MM-DD to preserve history.",
5
5
  "bin": {
6
6
  "post-merge-rename": "./post-merge-rename.sh"
@@ -205,10 +205,30 @@ async function main() {
205
205
  repoDir = process.env.CWD || process.cwd();
206
206
  }
207
207
 
208
- // Check if the target repo is on main
208
+ // Check if the target repo is on main AND if we're in a worktree
209
209
  const branch = getCurrentBranch(repoDir);
210
- if (!branch || (branch !== 'main' && branch !== 'master')) {
211
- // Not on main, allow everything
210
+ const worktree = isInWorktree(repoDir);
211
+
212
+ if (!branch) {
213
+ // Not in a git repo, allow
214
+ process.exit(0);
215
+ }
216
+
217
+ if (branch !== 'main' && branch !== 'master' && worktree) {
218
+ // On a branch AND in a worktree. Correct workflow. Allow.
219
+ process.exit(0);
220
+ }
221
+
222
+ if (branch !== 'main' && branch !== 'master' && !worktree) {
223
+ // On a branch but NOT in a worktree. Block writes.
224
+ const isWriteOp = WRITE_TOOLS.has(toolName) ||
225
+ (toolName === BASH_TOOL && command &&
226
+ BLOCKED_BASH_PATTERNS.some(p => p.test(command)) &&
227
+ !ALLOWED_BASH_PATTERNS.some(p => p.test(command)));
228
+ if (isWriteOp) {
229
+ deny(`BLOCKED: On branch "${branch}" but not in a worktree. Use: git worktree add ../my-worktree -b ${branch}`);
230
+ process.exit(0);
231
+ }
212
232
  process.exit(0);
213
233
  }
214
234
 
@@ -216,7 +236,7 @@ async function main() {
216
236
 
217
237
  // Block Write/Edit tools entirely on main
218
238
  if (WRITE_TOOLS.has(toolName)) {
219
- deny(`BLOCKED: Cannot ${toolName} while on main branch. Create a branch first: git checkout -b cc-mini/your-feature. Or use a worktree.`);
239
+ deny(`BLOCKED: Cannot ${toolName} while on main branch. Use a worktree: git worktree add ../my-worktree -b cc-mini/your-feature`);
220
240
  process.exit(0);
221
241
  }
222
242
 
@@ -238,7 +258,7 @@ async function main() {
238
258
  if (ap.test(command)) { isAllowed = true; break; }
239
259
  }
240
260
  if (!isAllowed) {
241
- deny(`BLOCKED: Cannot run "${command.substring(0, 60)}..." on main branch. Create a branch first.`);
261
+ deny(`BLOCKED: Cannot run "${command.substring(0, 60)}..." on main branch. Use a worktree: git worktree add ../my-worktree -b cc-mini/your-feature`);
242
262
  process.exit(0);
243
263
  }
244
264
  }
@@ -253,7 +273,7 @@ async function main() {
253
273
  if (ap.test(command)) { isAllowed = true; break; }
254
274
  }
255
275
  if (!isAllowed) {
256
- deny(`BLOCKED: Cannot run file-modifying command on main branch. Create a branch first.`);
276
+ deny(`BLOCKED: Cannot run file-modifying command on main branch. Use a worktree: git worktree add ../my-worktree -b cc-mini/your-feature`);
257
277
  process.exit(0);
258
278
  }
259
279
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-branch-guard",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "description": "PreToolUse hook that blocks all writes on main branch. Forces agents to work on branches or worktrees.",
5
5
  "type": "module",
6
6
  "main": "guard.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-file-guard",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "type": "module",
5
5
  "description": "Hook that blocks destructive edits to protected identity files. For Claude Code CLI and OpenClaw.",
6
6
  "main": "guard.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-license-guard",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "description": "License compliance for your own repos. Ensures correct copyright, dual-license blocks, and LICENSE files.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-license-hook",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "description": "License rug-pull detection and dependency license compliance for open source projects",
5
5
  "type": "module",
6
6
  "main": "dist/cli/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-readme-format",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "description": "Reformat any repo's README to follow the WIP Computer standard. Agent-first, human-readable.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -941,7 +941,7 @@ export async function release({ repoPath, level, notes, notesSource, dryRun, noP
941
941
  console.log(` [dry run] Would commit and tag v${newVersion}`);
942
942
  if (!noPublish) {
943
943
  console.log(` [dry run] Would publish to npm (@wipcomputer scope)`);
944
- console.log(` [dry run] Would publish to GitHub Packages`);
944
+ console.log(` [dry run] GitHub Packages: handled by deploy-public.sh`);
945
945
  console.log(` [dry run] Would create GitHub release v${newVersion}`);
946
946
  if (hasSkill) console.log(` [dry run] Would publish to ClawHub`);
947
947
  // Skill-to-website dry run (auto-detects SKILL.md, no config needed)
@@ -1043,15 +1043,11 @@ export async function release({ repoPath, level, notes, notesSource, dryRun, noP
1043
1043
  console.log(` ✗ npm publish failed: ${e.message}`);
1044
1044
  }
1045
1045
 
1046
- // 7. GitHub Packages
1047
- try {
1048
- publishGitHubPackages(repoPath);
1049
- distResults.push({ target: 'GitHub Packages', status: 'ok', detail: `${newVersion}` });
1050
- console.log(` Published to GitHub Packages`);
1051
- } catch (e) {
1052
- distResults.push({ target: 'GitHub Packages', status: 'failed', detail: e.message });
1053
- console.log(` ✗ GitHub Packages publish failed: ${e.message}`);
1054
- }
1046
+ // 7. GitHub Packages ... SKIPPED from private repos.
1047
+ // deploy-public.sh publishes to GitHub Packages from the public repo clone.
1048
+ // Publishing from private ties the package to the private repo, making it
1049
+ // invisible on the public repo's Packages tab. (#53)
1050
+ console.log(` - GitHub Packages: handled by deploy-public.sh (from public repo)`);
1055
1051
 
1056
1052
  // 8. GitHub release
1057
1053
  try {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-release",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "type": "module",
5
5
  "description": "One-command release pipeline. Bumps version, updates changelog + SKILL.md, publishes to npm + GitHub.",
6
6
  "main": "core.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-repo-init",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "description": "Scaffold the standard ai/ directory structure in any repo",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-repo-permissions-hook",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "type": "module",
5
5
  "description": "Repo visibility guard. Blocks repos from going public without a -private counterpart.",
6
6
  "main": "core.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-repos",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "type": "module",
5
5
  "description": "Repo manifest reconciler. Single source of truth for repo organization. Like prettier for folder structure.",
6
6
  "main": "core.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/universal-installer",
3
- "version": "1.9.34",
3
+ "version": "1.9.36",
4
4
  "type": "module",
5
5
  "description": "The Universal Interface specification for agent-native software. Teaches your AI how to build repos with every interface: CLI, Module, MCP Server, OpenClaw Plugin, Skill, Claude Code Hook.",
6
6
  "main": "detect.mjs",