mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-05 05:05:08 +02:00
feat(ship): Step 19.5 — offer gstack-publish for methodology skill changes
Wires the orphaned gstack-publish binary into /ship. When a PR touches any standalone methodology skill (openclaw/skills/gstack-*/SKILL.md) or skills.json, /ship now runs gstack-publish --dry-run after PR creation and asks the user if they want to actually publish. Previously, the only way to discover gstack-publish was reading the CHANGELOG or README. Most methodology skill updates landed on main without ever being pushed to ClawHub / SkillsMP / Vercel Skills.sh, defeating the whole point of having a marketplace publisher. The check is conditional — for PRs that don't touch methodology skills (the common case), this step is a silent no-op. Dry-run runs first so the user sees the full list of what would publish and which marketplaces are authed before committing. Golden fixtures (claude/codex/factory) regenerated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+32
-1
@@ -2684,7 +2684,38 @@ EOF
|
||||
**If neither CLI is available:**
|
||||
Print the branch name, remote URL, and instruct the user to create the PR/MR manually via the web UI. Do not stop — the code is pushed and ready.
|
||||
|
||||
**Output the PR/MR URL** — then proceed to Step 20.
|
||||
**Output the PR/MR URL** — then proceed to Step 19.5.
|
||||
|
||||
---
|
||||
|
||||
## Step 19.5: Offer methodology skill publishing (conditional)
|
||||
|
||||
If this PR touched any standalone methodology skill (`openclaw/skills/gstack-*/SKILL.md`) or the marketplace manifest (`skills.json`), offer to publish the updated skills to the configured marketplaces after merge.
|
||||
|
||||
```bash
|
||||
git diff origin/<base>...HEAD --name-only | grep -E '^(openclaw/skills/gstack-[^/]+/SKILL\.md|skills\.json)$' || true
|
||||
```
|
||||
|
||||
If the output is empty: skip this step silently. Continue to Step 20.
|
||||
|
||||
If any matches: run a dry-run preview so the user sees exactly what would publish and what auth is missing.
|
||||
|
||||
```bash
|
||||
~/.claude/skills/gstack/bin/gstack-publish --dry-run
|
||||
```
|
||||
|
||||
Then use AskUserQuestion with the structure in the preamble:
|
||||
- **Re-ground:** project, branch, PR just opened.
|
||||
- **Simplify:** "This PR updated methodology skills. gstack-publish can push them to ClawHub, SkillsMP, and Vercel Skills.sh so other developers on other agents can install them. Dry-run above shows what would ship and whether each marketplace is authed."
|
||||
- **RECOMMENDATION:** A because the dry-run just verified the manifest and one-command distribution is the whole point of having a marketplace publisher.
|
||||
- **Options:**
|
||||
- A) Publish now — run `gstack-publish` (human: ~2min / CC: ~30s). Completeness: 9/10.
|
||||
- B) Publish after the PR merges — `/document-release` won't push this automatically; you'll run `gstack-publish` manually once the branch is on main. Completeness: 7/10.
|
||||
- C) Skip — don't publish this release. Completeness: 4/10.
|
||||
|
||||
If A: run `~/.claude/skills/gstack/bin/gstack-publish` (no --dry-run). Report success/failure per marketplace. If any marketplace auth is missing, the dry-run above surfaced it; the real publish will skip that marketplace with an isolated error rather than aborting the batch.
|
||||
|
||||
If B or C: continue to Step 20.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+32
-1
@@ -767,7 +767,38 @@ EOF
|
||||
**If neither CLI is available:**
|
||||
Print the branch name, remote URL, and instruct the user to create the PR/MR manually via the web UI. Do not stop — the code is pushed and ready.
|
||||
|
||||
**Output the PR/MR URL** — then proceed to Step 20.
|
||||
**Output the PR/MR URL** — then proceed to Step 19.5.
|
||||
|
||||
---
|
||||
|
||||
## Step 19.5: Offer methodology skill publishing (conditional)
|
||||
|
||||
If this PR touched any standalone methodology skill (`openclaw/skills/gstack-*/SKILL.md`) or the marketplace manifest (`skills.json`), offer to publish the updated skills to the configured marketplaces after merge.
|
||||
|
||||
```bash
|
||||
git diff origin/<base>...HEAD --name-only | grep -E '^(openclaw/skills/gstack-[^/]+/SKILL\.md|skills\.json)$' || true
|
||||
```
|
||||
|
||||
If the output is empty: skip this step silently. Continue to Step 20.
|
||||
|
||||
If any matches: run a dry-run preview so the user sees exactly what would publish and what auth is missing.
|
||||
|
||||
```bash
|
||||
~/.claude/skills/gstack/bin/gstack-publish --dry-run
|
||||
```
|
||||
|
||||
Then use AskUserQuestion with the structure in the preamble:
|
||||
- **Re-ground:** project, branch, PR just opened.
|
||||
- **Simplify:** "This PR updated methodology skills. gstack-publish can push them to ClawHub, SkillsMP, and Vercel Skills.sh so other developers on other agents can install them. Dry-run above shows what would ship and whether each marketplace is authed."
|
||||
- **RECOMMENDATION:** A because the dry-run just verified the manifest and one-command distribution is the whole point of having a marketplace publisher.
|
||||
- **Options:**
|
||||
- A) Publish now — run `gstack-publish` (human: ~2min / CC: ~30s). Completeness: 9/10.
|
||||
- B) Publish after the PR merges — `/document-release` won't push this automatically; you'll run `gstack-publish` manually once the branch is on main. Completeness: 7/10.
|
||||
- C) Skip — don't publish this release. Completeness: 4/10.
|
||||
|
||||
If A: run `~/.claude/skills/gstack/bin/gstack-publish` (no --dry-run). Report success/failure per marketplace. If any marketplace auth is missing, the dry-run above surfaced it; the real publish will skip that marketplace with an isolated error rather than aborting the batch.
|
||||
|
||||
If B or C: continue to Step 20.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+32
-1
@@ -2684,7 +2684,38 @@ EOF
|
||||
**If neither CLI is available:**
|
||||
Print the branch name, remote URL, and instruct the user to create the PR/MR manually via the web UI. Do not stop — the code is pushed and ready.
|
||||
|
||||
**Output the PR/MR URL** — then proceed to Step 20.
|
||||
**Output the PR/MR URL** — then proceed to Step 19.5.
|
||||
|
||||
---
|
||||
|
||||
## Step 19.5: Offer methodology skill publishing (conditional)
|
||||
|
||||
If this PR touched any standalone methodology skill (`openclaw/skills/gstack-*/SKILL.md`) or the marketplace manifest (`skills.json`), offer to publish the updated skills to the configured marketplaces after merge.
|
||||
|
||||
```bash
|
||||
git diff origin/<base>...HEAD --name-only | grep -E '^(openclaw/skills/gstack-[^/]+/SKILL\.md|skills\.json)$' || true
|
||||
```
|
||||
|
||||
If the output is empty: skip this step silently. Continue to Step 20.
|
||||
|
||||
If any matches: run a dry-run preview so the user sees exactly what would publish and what auth is missing.
|
||||
|
||||
```bash
|
||||
~/.claude/skills/gstack/bin/gstack-publish --dry-run
|
||||
```
|
||||
|
||||
Then use AskUserQuestion with the structure in the preamble:
|
||||
- **Re-ground:** project, branch, PR just opened.
|
||||
- **Simplify:** "This PR updated methodology skills. gstack-publish can push them to ClawHub, SkillsMP, and Vercel Skills.sh so other developers on other agents can install them. Dry-run above shows what would ship and whether each marketplace is authed."
|
||||
- **RECOMMENDATION:** A because the dry-run just verified the manifest and one-command distribution is the whole point of having a marketplace publisher.
|
||||
- **Options:**
|
||||
- A) Publish now — run `gstack-publish` (human: ~2min / CC: ~30s). Completeness: 9/10.
|
||||
- B) Publish after the PR merges — `/document-release` won't push this automatically; you'll run `gstack-publish` manually once the branch is on main. Completeness: 7/10.
|
||||
- C) Skip — don't publish this release. Completeness: 4/10.
|
||||
|
||||
If A: run `~/.claude/skills/gstack/bin/gstack-publish` (no --dry-run). Report success/failure per marketplace. If any marketplace auth is missing, the dry-run above surfaced it; the real publish will skip that marketplace with an isolated error rather than aborting the batch.
|
||||
|
||||
If B or C: continue to Step 20.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+32
-1
@@ -2299,7 +2299,38 @@ EOF
|
||||
**If neither CLI is available:**
|
||||
Print the branch name, remote URL, and instruct the user to create the PR/MR manually via the web UI. Do not stop — the code is pushed and ready.
|
||||
|
||||
**Output the PR/MR URL** — then proceed to Step 20.
|
||||
**Output the PR/MR URL** — then proceed to Step 19.5.
|
||||
|
||||
---
|
||||
|
||||
## Step 19.5: Offer methodology skill publishing (conditional)
|
||||
|
||||
If this PR touched any standalone methodology skill (`openclaw/skills/gstack-*/SKILL.md`) or the marketplace manifest (`skills.json`), offer to publish the updated skills to the configured marketplaces after merge.
|
||||
|
||||
```bash
|
||||
git diff origin/<base>...HEAD --name-only | grep -E '^(openclaw/skills/gstack-[^/]+/SKILL\.md|skills\.json)$' || true
|
||||
```
|
||||
|
||||
If the output is empty: skip this step silently. Continue to Step 20.
|
||||
|
||||
If any matches: run a dry-run preview so the user sees exactly what would publish and what auth is missing.
|
||||
|
||||
```bash
|
||||
$GSTACK_ROOT/bin/gstack-publish --dry-run
|
||||
```
|
||||
|
||||
Then use AskUserQuestion with the structure in the preamble:
|
||||
- **Re-ground:** project, branch, PR just opened.
|
||||
- **Simplify:** "This PR updated methodology skills. gstack-publish can push them to ClawHub, SkillsMP, and Vercel Skills.sh so other developers on other agents can install them. Dry-run above shows what would ship and whether each marketplace is authed."
|
||||
- **RECOMMENDATION:** A because the dry-run just verified the manifest and one-command distribution is the whole point of having a marketplace publisher.
|
||||
- **Options:**
|
||||
- A) Publish now — run `gstack-publish` (human: ~2min / CC: ~30s). Completeness: 9/10.
|
||||
- B) Publish after the PR merges — `/document-release` won't push this automatically; you'll run `gstack-publish` manually once the branch is on main. Completeness: 7/10.
|
||||
- C) Skip — don't publish this release. Completeness: 4/10.
|
||||
|
||||
If A: run `$GSTACK_ROOT/bin/gstack-publish` (no --dry-run). Report success/failure per marketplace. If any marketplace auth is missing, the dry-run above surfaced it; the real publish will skip that marketplace with an isolated error rather than aborting the batch.
|
||||
|
||||
If B or C: continue to Step 20.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+32
-1
@@ -2675,7 +2675,38 @@ EOF
|
||||
**If neither CLI is available:**
|
||||
Print the branch name, remote URL, and instruct the user to create the PR/MR manually via the web UI. Do not stop — the code is pushed and ready.
|
||||
|
||||
**Output the PR/MR URL** — then proceed to Step 20.
|
||||
**Output the PR/MR URL** — then proceed to Step 19.5.
|
||||
|
||||
---
|
||||
|
||||
## Step 19.5: Offer methodology skill publishing (conditional)
|
||||
|
||||
If this PR touched any standalone methodology skill (`openclaw/skills/gstack-*/SKILL.md`) or the marketplace manifest (`skills.json`), offer to publish the updated skills to the configured marketplaces after merge.
|
||||
|
||||
```bash
|
||||
git diff origin/<base>...HEAD --name-only | grep -E '^(openclaw/skills/gstack-[^/]+/SKILL\.md|skills\.json)$' || true
|
||||
```
|
||||
|
||||
If the output is empty: skip this step silently. Continue to Step 20.
|
||||
|
||||
If any matches: run a dry-run preview so the user sees exactly what would publish and what auth is missing.
|
||||
|
||||
```bash
|
||||
$GSTACK_ROOT/bin/gstack-publish --dry-run
|
||||
```
|
||||
|
||||
Then use AskUserQuestion with the structure in the preamble:
|
||||
- **Re-ground:** project, branch, PR just opened.
|
||||
- **Simplify:** "This PR updated methodology skills. gstack-publish can push them to ClawHub, SkillsMP, and Vercel Skills.sh so other developers on other agents can install them. Dry-run above shows what would ship and whether each marketplace is authed."
|
||||
- **RECOMMENDATION:** A because the dry-run just verified the manifest and one-command distribution is the whole point of having a marketplace publisher.
|
||||
- **Options:**
|
||||
- A) Publish now — run `gstack-publish` (human: ~2min / CC: ~30s). Completeness: 9/10.
|
||||
- B) Publish after the PR merges — `/document-release` won't push this automatically; you'll run `gstack-publish` manually once the branch is on main. Completeness: 7/10.
|
||||
- C) Skip — don't publish this release. Completeness: 4/10.
|
||||
|
||||
If A: run `$GSTACK_ROOT/bin/gstack-publish` (no --dry-run). Report success/failure per marketplace. If any marketplace auth is missing, the dry-run above surfaced it; the real publish will skip that marketplace with an isolated error rather than aborting the batch.
|
||||
|
||||
If B or C: continue to Step 20.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user