diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 000000000..1084a27e6 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,31 @@ +{ + "name": "garrytan-gstack", + "metadata": { + "description": "Garry's Stack — a virtual engineering team for Claude Code" + }, + "owner": { + "name": "Garry Tan" + }, + "plugins": [ + { + "name": "gstack", + "source": "./", + "description": "28 development workflow skills that turn Claude Code into a virtual engineering team — office hours, code review, QA with a real browser, design audits, security analysis, release automation, and more.", + "category": "development", + "tags": [ + "gstack", + "code-review", + "qa", + "testing", + "browser", + "design", + "security", + "workflow", + "engineering", + "shipping", + "debugging", + "devtools" + ] + } + ] +} diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 000000000..1d8824161 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,25 @@ +{ + "name": "gstack", + "description": "Garry's Stack — 28 Claude Code skills that turn your AI agent into a virtual engineering team. Code review, QA with a real browser, design audits, security analysis, and release automation, all as slash commands.", + "version": "0.12.2.0", + "author": { + "name": "Garry Tan" + }, + "homepage": "https://github.com/garrytan/gstack", + "repository": "https://github.com/garrytan/gstack", + "license": "MIT", + "keywords": [ + "gstack", + "skills", + "code-review", + "qa", + "testing", + "browser", + "design", + "security", + "workflow", + "engineering", + "productivity", + "devtools" + ] +} diff --git a/README.md b/README.md index aad62290f..4c24d0d43 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,28 @@ cd ~/gstack && ./setup --host auto For Codex-compatible hosts, setup now supports both repo-local installs from `.agents/skills/gstack` and user-global installs from `~/.codex/skills/gstack`. All 28 skills work across all supported agents. Hook-based safety skills (careful, freeze, guard) use inline safety advisory prose on non-Claude hosts. +### Claude Code Plugin Marketplace + +gstack is also available as a [Claude Code plugin](https://code.claude.com/docs/en/plugins). No git clone, no setup script — just install and go. + +```bash +# Step 1: Register the marketplace +/plugin marketplace add garrytan/gstack + +# Step 2: Install the plugin +/plugin install gstack@garrytan-gstack +``` + +Skills are namespaced under the plugin: `/gstack:review`, `/gstack:qa`, `/gstack:office-hours`, etc. + +To upgrade: + +```bash +/plugin update gstack@garrytan-gstack +``` + +**Plugin install vs. git clone install:** The plugin install gives you all 28 skills instantly. The git clone install (Step 1 above) additionally builds the `/browse` headless browser binary and registers hook-based safety skills (`/careful`, `/freeze`, `/guard`). If you need real browser QA testing or safety guardrails, use the git clone install. + ## See it work ``` diff --git a/skills/autoplan b/skills/autoplan new file mode 120000 index 000000000..2c29a859d --- /dev/null +++ b/skills/autoplan @@ -0,0 +1 @@ +../autoplan \ No newline at end of file diff --git a/skills/benchmark b/skills/benchmark new file mode 120000 index 000000000..2fd59423c --- /dev/null +++ b/skills/benchmark @@ -0,0 +1 @@ +../benchmark \ No newline at end of file diff --git a/skills/browse b/skills/browse new file mode 120000 index 000000000..5b98d71de --- /dev/null +++ b/skills/browse @@ -0,0 +1 @@ +../browse \ No newline at end of file diff --git a/skills/canary b/skills/canary new file mode 120000 index 000000000..86b9afce3 --- /dev/null +++ b/skills/canary @@ -0,0 +1 @@ +../canary \ No newline at end of file diff --git a/skills/careful b/skills/careful new file mode 120000 index 000000000..fda3b672d --- /dev/null +++ b/skills/careful @@ -0,0 +1 @@ +../careful \ No newline at end of file diff --git a/skills/codex b/skills/codex new file mode 120000 index 000000000..e5780d1f5 --- /dev/null +++ b/skills/codex @@ -0,0 +1 @@ +../codex \ No newline at end of file diff --git a/skills/connect-chrome b/skills/connect-chrome new file mode 120000 index 000000000..c7596101d --- /dev/null +++ b/skills/connect-chrome @@ -0,0 +1 @@ +../connect-chrome \ No newline at end of file diff --git a/skills/cso b/skills/cso new file mode 120000 index 000000000..863403534 --- /dev/null +++ b/skills/cso @@ -0,0 +1 @@ +../cso \ No newline at end of file diff --git a/skills/design-consultation b/skills/design-consultation new file mode 120000 index 000000000..2805b5183 --- /dev/null +++ b/skills/design-consultation @@ -0,0 +1 @@ +../design-consultation \ No newline at end of file diff --git a/skills/design-review b/skills/design-review new file mode 120000 index 000000000..af5ad36c7 --- /dev/null +++ b/skills/design-review @@ -0,0 +1 @@ +../design-review \ No newline at end of file diff --git a/skills/document-release b/skills/document-release new file mode 120000 index 000000000..d05bd28bc --- /dev/null +++ b/skills/document-release @@ -0,0 +1 @@ +../document-release \ No newline at end of file diff --git a/skills/freeze b/skills/freeze new file mode 120000 index 000000000..762060119 --- /dev/null +++ b/skills/freeze @@ -0,0 +1 @@ +../freeze \ No newline at end of file diff --git a/skills/gstack-upgrade b/skills/gstack-upgrade new file mode 120000 index 000000000..1ba037aa8 --- /dev/null +++ b/skills/gstack-upgrade @@ -0,0 +1 @@ +../gstack-upgrade \ No newline at end of file diff --git a/skills/guard b/skills/guard new file mode 120000 index 000000000..662b51cd2 --- /dev/null +++ b/skills/guard @@ -0,0 +1 @@ +../guard \ No newline at end of file diff --git a/skills/investigate b/skills/investigate new file mode 120000 index 000000000..b3ce0f712 --- /dev/null +++ b/skills/investigate @@ -0,0 +1 @@ +../investigate \ No newline at end of file diff --git a/skills/land-and-deploy b/skills/land-and-deploy new file mode 120000 index 000000000..137a9857c --- /dev/null +++ b/skills/land-and-deploy @@ -0,0 +1 @@ +../land-and-deploy \ No newline at end of file diff --git a/skills/office-hours b/skills/office-hours new file mode 120000 index 000000000..822fcb9b7 --- /dev/null +++ b/skills/office-hours @@ -0,0 +1 @@ +../office-hours \ No newline at end of file diff --git a/skills/plan-ceo-review b/skills/plan-ceo-review new file mode 120000 index 000000000..cee2de41d --- /dev/null +++ b/skills/plan-ceo-review @@ -0,0 +1 @@ +../plan-ceo-review \ No newline at end of file diff --git a/skills/plan-design-review b/skills/plan-design-review new file mode 120000 index 000000000..7f462e0e6 --- /dev/null +++ b/skills/plan-design-review @@ -0,0 +1 @@ +../plan-design-review \ No newline at end of file diff --git a/skills/plan-eng-review b/skills/plan-eng-review new file mode 120000 index 000000000..68023474c --- /dev/null +++ b/skills/plan-eng-review @@ -0,0 +1 @@ +../plan-eng-review \ No newline at end of file diff --git a/skills/qa b/skills/qa new file mode 120000 index 000000000..7175d939a --- /dev/null +++ b/skills/qa @@ -0,0 +1 @@ +../qa \ No newline at end of file diff --git a/skills/qa-only b/skills/qa-only new file mode 120000 index 000000000..7066fd136 --- /dev/null +++ b/skills/qa-only @@ -0,0 +1 @@ +../qa-only \ No newline at end of file diff --git a/skills/retro b/skills/retro new file mode 120000 index 000000000..1fe0bcf7b --- /dev/null +++ b/skills/retro @@ -0,0 +1 @@ +../retro \ No newline at end of file diff --git a/skills/review b/skills/review new file mode 120000 index 000000000..7baec8bad --- /dev/null +++ b/skills/review @@ -0,0 +1 @@ +../review \ No newline at end of file diff --git a/skills/setup-browser-cookies b/skills/setup-browser-cookies new file mode 120000 index 000000000..327e394f2 --- /dev/null +++ b/skills/setup-browser-cookies @@ -0,0 +1 @@ +../setup-browser-cookies \ No newline at end of file diff --git a/skills/setup-deploy b/skills/setup-deploy new file mode 120000 index 000000000..0cef8565d --- /dev/null +++ b/skills/setup-deploy @@ -0,0 +1 @@ +../setup-deploy \ No newline at end of file diff --git a/skills/ship b/skills/ship new file mode 120000 index 000000000..680628206 --- /dev/null +++ b/skills/ship @@ -0,0 +1 @@ +../ship \ No newline at end of file diff --git a/skills/unfreeze b/skills/unfreeze new file mode 120000 index 000000000..53995c265 --- /dev/null +++ b/skills/unfreeze @@ -0,0 +1 @@ +../unfreeze \ No newline at end of file