Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
8052f4b
fix(skill-check): honor primary host skipSkills in Templates check
EricXu-0805 May 11, 2026
2d19016
fix(hooks): don't emit permissionDecision 'defer' from question-prefe…
dpnascimento Jul 3, 2026
e15e897
fix: pre-empt broken AskUserQuestion on the Claude Desktop host
Jul 13, 2026
f36fe81
docs+test: correct hook spike's 'defer' contract, add empty-stdout AU…
ztownsend Jul 13, 2026
f7c7feb
fix: make team hook launcher cross-platform
neallee2012 Jul 10, 2026
74cb100
fix: deny stale team hook paths safely
neallee2012 Jul 10, 2026
5bdb043
fix: remove legacy team hook on migration
neallee2012 Jul 10, 2026
27fe4e3
fix: stage legacy team hook deletion
neallee2012 Jul 10, 2026
344b398
fix: fail closed across hook decision schemas
test22345 Jul 10, 2026
bad63fc
fix(benchmark): parse current gemini stream-json content/stats shape
time-attack Jul 10, 2026
f375ef0
test(benchmark): full post-CLI gemini e2e + GEMINI_API_KEY auth path
time-attack Jul 10, 2026
82cf770
fix(benchmark): skip-trust for headless gemini + drop release metadata
time-attack Jul 10, 2026
19e3fd6
fix: copy supabase/config.sh in Kiro/Codex/Factory/OpenCode setup paths
jizusun Jul 10, 2026
8dd528d
fix(setup): copy lib/ into opencode runtime root
FranzAlarcon Jul 13, 2026
05261e5
fix(setup): extend missing-lib fix to codex, factory, kiro roots and …
test22345 Jul 13, 2026
4fe6b21
fix(setup): clarify Hermes host banner
jbetala7 May 14, 2026
269c63c
fix: namespace generated Hermes skill names
Apr 18, 2026
944c5f1
Fix Claude Code auth preflight for Codex host
spacegeologist May 28, 2026
d1ac279
Fix Codex design binary path resolution
mamedov Jul 13, 2026
df1fbf6
Align Codex install paths with current skill spec
dpattonux Jun 27, 2026
4ed5f3b
fix(codex): rewrite CLAUDE.md -> AGENTS.md in generated Codex skills
ashcharus-hue Jun 13, 2026
0e66478
fix(codex): load qa-only from gstack root in ship
spacegeologist May 28, 2026
a72088f
fix(codex): add AskUserQuestion→request_user_input tool rewrite
JiayuuWang Apr 20, 2026
151de58
chore(codex): legacy-path migration, stale doc mention, toolRewrites …
test22345 Jul 13, 2026
a952b60
fix(host): bump Claude co-author trailer to Opus 4.8
jbetala7 Jul 13, 2026
f1ef71a
fix(setup): wire --host cursor through bash dispatch and install path
mvanhorn May 15, 2026
2b4aeed
fix(setup): wire --host slate through bash dispatch and install path
test22345 Jul 13, 2026
31157f9
feat(hosts): add pi as a supported host
withabdul Jun 8, 2026
2c85718
chore(pi): host-count bump, warn-mode description limit, honest insta…
test22345 Jul 13, 2026
0b75b2b
feat(hosts): add agy config for Antigravity
0xshae Jun 25, 2026
450a49f
chore: ignore .agy directory in .gitignore
0xshae Jun 25, 2026
86c8b13
docs: add Antigravity to supported agents in README
0xshae Jun 25, 2026
994ebc4
chore(agy): host-count bump, print-only setup case, honest README row
test22345 Jul 13, 2026
b1e3d15
feat: add Mistral Vibe as a supported host
nmrtn May 21, 2026
59fec15
chore(vibe): print-only setup case, honest README row
test22345 Jul 13, 2026
2e85e6d
feat: add qoder host support
Jun 3, 2026
2ac83aa
fix(test): pair-agent may reference .agents/skills in Claude output
test22345 Jul 13, 2026
d795266
fix: tool rewrites catch all 'Agent tool' phrasings across agent-runt…
katlun-lgtm Jun 9, 2026
b6f16e4
test: golden regression checks for hermes/gbrain/openclaw ship skill
katlun-lgtm Jul 13, 2026
d46a20d
fix: flip autoplan outside voice for codex hosts
Spenquatch Apr 30, 2026
abf3bfb
chore: regenerate tracked docs after trailer + codex-path source changes
test22345 Jul 13, 2026
f0307dc
feat(grok-build): first-class Grok packaging + multi-CLI bridges
AgileInnov8tor Jul 13, 2026
e79cbd7
fix(setup): print-only host hints avoid raw ln in echoed text
test22345 Jul 13, 2026
217b7bd
feat: add /grok skill for xAI second opinion from Claude Code
ljodea Jul 13, 2026
a553876
fix(hosts): new hosts skip the /grok wrapper skill; README counts 15 …
test22345 Jul 13, 2026
3320fbd
chore: regenerate golden ship fixtures for all hosts
test22345 Jul 13, 2026
8500748
fix: address codex review findings on the consolidated wave
test22345 Jul 13, 2026
b351450
fix(test): remediation-hint regex accepts capitalized 'Export'
test22345 Jul 13, 2026
a8fa378
fix(qoder): retarget to the real product — qodercli binary, ~/.qoder/…
test22345 Jul 13, 2026
c2e5239
fix(benchmark): surface gemini's real API error message from result s…
test22345 Jul 13, 2026
c18190c
revert: hold /grok skill until a live review round-trip is verified
test22345 Jul 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,15 @@ bin/gstack-global-discover*
.opencode/
.slate/
.cursor/
.grok/
.openclaw/
.pi/
.hermes/
.gbrain/
.agy/
.vibe/
.gbrain-source
.qoder/
.context/
extension/.auth.json
# xterm assets are vendored from npm at build time; not source-of-truth.
Expand Down
36 changes: 30 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ From inside your repo, paste this. Switches you to team mode, bootstraps the rep
(cd ~/.claude/skills/gstack && ./setup --team) && ~/.claude/skills/gstack/bin/gstack-team-init required && git add .claude/ CLAUDE.md && git commit -m "require gstack for AI-assisted work"
```

No vendored files in your repo, no version drift, no manual upgrades. Every Claude Code session starts with a fast auto-update check (throttled to once/hour, network-failure-safe, completely silent).
Your project stays small, and everyone gets the same up-to-date version of gstack. If gstack is missing or its safety check cannot run, Claude Code and Copilot stop and explain what to do. If everything is ready, the check stays out of the way and your usual permission questions still appear. Updates happen quietly when a Claude Code session starts, at most once an hour.

Swap `required` for `optional` if you'd rather nudge teammates than block them.

Expand Down Expand Up @@ -101,7 +101,7 @@ These are conversational skills. Your OpenClaw agent runs them directly via chat

### Other AI Agents

gstack works on 10 AI coding agents, not just Claude. Setup auto-detects which
gstack works on 15 AI coding agents, not just Claude. Setup auto-detects which
agents you have installed:

```bash
Expand All @@ -113,18 +113,41 @@ Or target a specific agent with `./setup --host <name>`:

| Agent | Flag | Skills install to |
|-------|------|-------------------|
| OpenAI Codex CLI | `--host codex` | `~/.codex/skills/gstack-*/` |
| OpenAI Codex CLI | `--host codex` | `~/.agents/skills/gstack-*/` |
| OpenCode | `--host opencode` | `~/.config/opencode/skills/gstack-*/` |
| Cursor | `--host cursor` | `~/.cursor/skills/gstack-*/` |
| Factory Droid | `--host factory` | `~/.factory/skills/gstack-*/` |
| Slate | `--host slate` | `~/.slate/skills/gstack-*/` |
| Kiro | `--host kiro` | `~/.kiro/skills/gstack-*/` |
| Hermes | `--host hermes` | `~/.hermes/skills/gstack-*/` |
| Hermes | `--host hermes` | Prints integration instructions; `bun run gen:skill-docs --host hermes` writes `.hermes/skills/` |
| Pi | `--host pi` | Prints integration instructions; `bun run gen:skill-docs --host pi` writes `.pi/skills/` |
| Antigravity | `--host agy` | Prints integration instructions; `bun run gen:skill-docs --host agy` writes `.agy/skills/` |
| Mistral Vibe | `--host vibe` | Prints integration instructions; `bun run gen:skill-docs --host vibe` writes `.vibe/skills/` |
| GBrain (mod) | `--host gbrain` | `~/.gbrain/skills/gstack-*/` |
| Qoder | `--host qoder` | `~/.qoder/skills/gstack-*/` |

**Want to add support for another agent?** See [docs/ADDING_A_HOST.md](docs/ADDING_A_HOST.md).
It's one TypeScript config file, zero code changes.

### Pi

[Pi](https://pi.dev) implements the [Agent Skills standard](https://agentskills.io/specification)
end-to-end, so every gstack skill works out of the box once the skills directory
is configured. `./setup --host pi` prints these instructions; the install itself
is two commands:

```bash
git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/gstack
cd ~/gstack && bun run gen:skill-docs --host pi
mkdir -p ~/.pi/agent/skills && ln -snf "$(pwd)"/.pi/skills/gstack* ~/.pi/agent/skills/
```

Skills land at `~/.pi/agent/skills/gstack-*/`. For project-local skills (trusted
project), pi also discovers `.pi/skills/`. Pi loads skill descriptions at startup
and lazy-loads the full `SKILL.md` on demand, matching Claude Code's behavior.

Invoke a skill with `/skill:<name>` (e.g. `/skill:review`, `/skill:ship`).

## See it work

```
Expand Down Expand Up @@ -356,10 +379,11 @@ rm -rf ~/.claude/skills/gstack
rm -rf ~/.gstack

# 5. Remove integrations (skip any you never installed)
rm -rf ~/.codex/skills/gstack* 2>/dev/null
rm -rf ~/.agents/skills/gstack* ~/.codex/skills/gstack* 2>/dev/null
rm -rf ~/.factory/skills/gstack* 2>/dev/null
rm -rf ~/.kiro/skills/gstack* 2>/dev/null
rm -rf ~/.openclaw/skills/gstack* 2>/dev/null
rm -rf ~/.qoder/skills/gstack* 2>/dev/null

# 6. Remove temp files
rm -f /tmp/gstack-* 2>/dev/null
Expand Down Expand Up @@ -466,7 +490,7 @@ Data is stored in [Supabase](https://supabase.com) (open source Firebase alterna

**Want namespaced commands?** `cd ~/.claude/skills/gstack && ./setup --prefix` — switches from `/qa` to `/gstack-qa`. Useful if you run other skill packs alongside gstack.

**Codex says "Skipped loading skill(s) due to invalid SKILL.md"?** Your Codex skill descriptions are stale. Fix: `cd ~/.codex/skills/gstack && git pull && ./setup --host codex` — or for repo-local installs: `cd "$(readlink -f .agents/skills/gstack)" && git pull && ./setup --host codex`
**Codex says "Skipped loading skill(s) due to invalid SKILL.md"?** Your Codex skill descriptions are stale. Fix: `cd ~/.agents/skills/gstack && git pull && ./setup --host codex` — or for repo-local installs: `cd "$(readlink -f .agents/skills/gstack)" && git pull && ./setup --host codex`

**Windows users:** gstack works on Windows 11 via Git Bash or WSL. Node.js is required in addition to Bun — Bun has a known bug with Playwright's pipe transport on Windows ([bun#4253](https://github.com/oven-sh/bun/issues/4253)). The browse server automatically falls back to Node.js. Make sure both `bun` and `node` are on your PATH.

Expand Down
49 changes: 49 additions & 0 deletions TODOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,55 @@

## NEXT PRIORITY

### P2: Grok Build full-compat follow-ups (after `feat/grok-build-host`)

**What:** Finish / harden the Grok-native packaging work landed on
`feat/grok-build-host` (runtime root, SETUP path fix, host-bleed cleanup,
bridges, `bin/gstack-grok-compat-audit`, section pointers for token ceiling).
These are the remaining product/ship items — not blockers for local Grok use.

**Context (landed on branch):**
- U1–U3 packaging + U4–U7 bridges + U9 audit gate
- Setup host-scoping (no always-on Codex `.agents/` regen / Claude plan-tune
prompt on `--host grok-build`)
- Option A: Grok carved skills use STOP-Read section pointers
(`~/.grok/skills/gstack-*/sections/`) — `/ship` always-loaded ~20k tokens
(was ~45k)

**Follow-ups to track:**

1. **Upstream PR** — open/update PR against `garrytan/gstack` for
`feat/grok-build-host` (VERSION/CHANGELOG/title deferred until local DoD
green on main merge path).
2. **U4 behavioral smoke** — if claiming `/spec --execute` COMPATIBLE (not
file-only), record multi-turn tool-use / cwd isolation / fail-closed auth
smoke or fixture; flag-string greps alone are not enough.
3. **Section pointers for other external hosts (optional)** — Codex ship is
still monolith ~39k (near soft ceiling). Reuse
`hostUsesSectionPointers` for Codex/Cursor/Factory when package paths are
portable (Codex: `.agents/skills/gstack-*` or global
`~/.codex/skills/gstack-*`).
4. **R10 / U8 optional `gstack-codex`** — only if product wants suite
completeness; keep bare `/codex` = OpenAI plugin; deny bare `codex` alias
on Grok install (partial deny already in `link_grok_skill_dirs`).
5. **Gbrain Grok MCP stretch** — optional `~/.grok/config.toml` gbrain stanza
(absolute path, TOML RMW, atomic write + backup; non-interactive refuse
overwrite without `--force`). Success path remains CLI + AGENTS.md.
6. **Audit harness productization** — keep `bin/gstack-grok-compat-audit` as
long-lived multi-host CI later, or document as branch/DoD gate only
(open question from plan ce-doc-review).
7. **Name collision note** — document `/review` vs compound-engineering
`code-review` routing in `~/.grok/AGENTS.md` (do not delete CE skill).

**Why:** Branch is implementation-ready for local Grok; these items close
honesty gaps, upstream ship, and optional suite completeness without
reopening Phase A packaging.

**Depends on / blocked by:** Nothing for local use. Upstream PR waits on
clean validation + VERSION/CHANGELOG if that is the release process.

---

### P1: #1882 — portable skill-install prefix (non-`gstack` install dirs break silently)

**What:** Every generated SKILL.md hardcodes the literal `~/.claude/skills/gstack/...`
Expand Down
Loading