mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-02 11:45:20 +02:00
c205b7d90c
Ships the marketplace-distribution half of Item 5 (reframed): publish
the existing standalone OpenClaw methodology skills to multiple
marketplaces with one command.
Codex review caught that the original plan assumed raw generated
multi-host skills could be published directly. They can't — those
depend on gstack binaries, generated host paths, tool names, and
telemetry. The correct artifact class is hand-crafted standalone
skills in openclaw/skills/gstack-openclaw-* (already exist and work
without gstack runtime). This commit adds the wrapper that publishes
them to ClawHub + SkillsMP + Vercel Skills.sh with per-marketplace
error isolation and dry-run validation.
Changes:
- skills.json: root manifest with 4 skills (office-hours, ceo-review,
investigate, retro) each pointing at its openclaw/skills source.
Each skill declares per-marketplace targets with a slug, a publish
flag, and a compatible-hosts list. Marketplace configs include CLI
name, login command, publish command template (with placeholder
substitution), docs URL, and auth_check command.
- bin/gstack-publish: new CLI. Subcommands:
gstack-publish Publish all skills
gstack-publish <slug> Publish one skill
gstack-publish --dry-run Validate + auth-check without publishing
gstack-publish --list List skills + marketplace targets
Features:
* Manifest validation (missing source files, missing slugs, empty
marketplace list all reported).
* Per-marketplace auth check before any publish attempt.
* Per-skill / per-marketplace error isolation: one failure doesn't
abort the batch.
* Idempotent — re-running with the same version is safe; markets
that reject duplicate versions report it as a failure for that
single target without affecting others.
* --dry-run walks the full pipeline but skips execSync; useful in
CI to validate manifest before bumping version.
Tested locally: clawhub auth detected, skillsmp/vercel CLIs not
installed (marked NOT READY and skipped cleanly in dry-run).
Follow-up work (tracked in TODOS.md later):
- Version-bump helper that reads openclaw/skills/*/SKILL.md frontmatter
and updates skills.json in lockstep.
- CI workflow that runs gstack-publish --dry-run on every PR and
gstack-publish on tags.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
91 lines
3.9 KiB
JSON
91 lines
3.9 KiB
JSON
{
|
|
"$schema": "https://gstack.dev/schemas/skills-manifest.v1.json",
|
|
"version": "1.0.0",
|
|
"description": "Manifest for publishing gstack standalone methodology skills to marketplaces (ClawHub, Vercel Skills.sh, SkillsMP). These skills have NO gstack runtime dependencies — they work as pure Claude Code / OpenClaw skills.",
|
|
"skills": [
|
|
{
|
|
"slug": "gstack-office-hours",
|
|
"source": "openclaw/skills/gstack-openclaw-office-hours/SKILL.md",
|
|
"name": "YC Office Hours",
|
|
"version": "1.0.0",
|
|
"category": "strategy",
|
|
"description": "Product interrogation with six forcing questions. Two modes: startup diagnostic and builder brainstorm. Produces a design doc, not code.",
|
|
"marketplaces": {
|
|
"clawhub": { "slug": "gstack-office-hours", "publish": true },
|
|
"skillsmp": { "slug": "gstack-office-hours", "publish": true },
|
|
"vercel": { "slug": "gstack-office-hours", "publish": true }
|
|
},
|
|
"standalone": true,
|
|
"compatible_hosts": ["claude-code", "openclaw", "cursor"]
|
|
},
|
|
{
|
|
"slug": "gstack-ceo-review",
|
|
"source": "openclaw/skills/gstack-openclaw-ceo-review/SKILL.md",
|
|
"name": "CEO Plan Review",
|
|
"version": "1.0.0",
|
|
"category": "strategy",
|
|
"description": "Founder-mode plan review. Rethink the problem, find the 10x product, challenge premises, expand scope when it creates a better product.",
|
|
"marketplaces": {
|
|
"clawhub": { "slug": "gstack-ceo-review", "publish": true },
|
|
"skillsmp": { "slug": "gstack-ceo-review", "publish": true },
|
|
"vercel": { "slug": "gstack-ceo-review", "publish": true }
|
|
},
|
|
"standalone": true,
|
|
"compatible_hosts": ["claude-code", "openclaw", "cursor"]
|
|
},
|
|
{
|
|
"slug": "gstack-investigate",
|
|
"source": "openclaw/skills/gstack-openclaw-investigate/SKILL.md",
|
|
"name": "Root Cause Investigation",
|
|
"version": "1.0.0",
|
|
"category": "debugging",
|
|
"description": "Systematic debugging with root cause investigation. Four phases: investigate, analyze, hypothesize, implement. Iron Law: no fixes without root cause.",
|
|
"marketplaces": {
|
|
"clawhub": { "slug": "gstack-investigate", "publish": true },
|
|
"skillsmp": { "slug": "gstack-investigate", "publish": true },
|
|
"vercel": { "slug": "gstack-investigate", "publish": true }
|
|
},
|
|
"standalone": true,
|
|
"compatible_hosts": ["claude-code", "openclaw", "cursor"]
|
|
},
|
|
{
|
|
"slug": "gstack-retro",
|
|
"source": "openclaw/skills/gstack-openclaw-retro/SKILL.md",
|
|
"name": "Engineering Retrospective",
|
|
"version": "1.0.0",
|
|
"category": "process",
|
|
"description": "Weekly engineering retrospective. Analyzes commit history and work patterns with per-person breakdown.",
|
|
"marketplaces": {
|
|
"clawhub": { "slug": "gstack-retro", "publish": true },
|
|
"skillsmp": { "slug": "gstack-retro", "publish": true },
|
|
"vercel": { "slug": "gstack-retro", "publish": true }
|
|
},
|
|
"standalone": true,
|
|
"compatible_hosts": ["claude-code", "openclaw", "cursor"]
|
|
}
|
|
],
|
|
"marketplaces": {
|
|
"clawhub": {
|
|
"cli": "clawhub",
|
|
"login_cmd": "clawhub login",
|
|
"publish_cmd_template": "clawhub publish {source_dir} --slug {slug} --name \"{name}\" --version {version} --changelog \"{changelog}\"",
|
|
"docs": "https://clawhub.dev/docs/publishing",
|
|
"auth_check": "clawhub whoami"
|
|
},
|
|
"skillsmp": {
|
|
"cli": "skillsmp",
|
|
"login_cmd": "skillsmp login",
|
|
"publish_cmd_template": "skillsmp publish {source_dir} --name {slug} --version {version}",
|
|
"docs": "https://skillsmp.com/docs/publish",
|
|
"auth_check": "skillsmp whoami"
|
|
},
|
|
"vercel": {
|
|
"cli": "skills",
|
|
"login_cmd": "skills login",
|
|
"publish_cmd_template": "skills publish {source_dir} --package {slug} --version {version}",
|
|
"docs": "https://skills.sh/docs",
|
|
"auth_check": "skills whoami"
|
|
}
|
|
}
|
|
}
|