Files
gstack/contrib/add-host/SKILL.md.tmpl
Rocky 834c6db075
Some checks failed
Workflow Lint / actionlint (push) Has been cancelled
Build CI Image / build (push) Has been cancelled
Skill Docs Freshness / check-freshness (push) Has been cancelled
Periodic Evals / build-image (push) Has been cancelled
Periodic Evals / evals (map[file:test/codex-e2e.test.ts name:e2e-codex]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/gemini-e2e.test.ts name:e2e-gemini]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-design.test.ts name:e2e-design]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-plan.test.ts name:e2e-plan]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-bugs.test.ts name:e2e-qa-bugs]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-workflow.test.ts name:e2e-qa-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-review.test.ts name:e2e-review]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-workflow.test.ts name:e2e-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-routing-e2e.test.ts name:e2e-routing]) (push) Has been cancelled
Initial import from garrytan/gstack@026751e (main snapshot via local relay)
Source: https://github.com/garrytan/gstack/commit/026751e
2026-05-19 21:18:17 +02:00

68 lines
1.7 KiB
Cheetah

---
name: gstack-contrib-add-host
description: |
Contributor-only skill: create a new host config for gstack's multi-host system.
NOT installed for end users. Only usable from the gstack source repo.
triggers:
- add new host
- create host config
- contribute new agent host
---
# /gstack-contrib-add-host — Add a New Host
This skill helps contributors add support for a new AI coding agent to gstack.
## What you'll create
A single TypeScript file in `hosts/<name>.ts` that defines:
- CLI binary name for detection
- Skill directory paths (global + local)
- Frontmatter transformation rules
- Path and tool rewrites
- Runtime root symlink manifest
## Steps
### 1. Gather host info
Ask the contributor:
- What's the agent's name? (e.g., "OpenCode")
- What's the CLI binary? (e.g., "opencode")
- Where does it store skills globally? (e.g., "~/.config/opencode/skills/")
- Where does it store skills locally in a project? (e.g., ".opencode/skills/")
- What frontmatter fields does it support? (name + description is the minimum)
- Does it have its own tool names? (e.g., "exec" instead of "Bash")
### 2. Create the config file
Use `hosts/opencode.ts` as a reference. Create `hosts/<name>.ts` with the
gathered info. Follow the HostConfig interface in `scripts/host-config.ts`.
### 3. Register in index
Add the import and re-export in `hosts/index.ts`.
### 4. Add to .gitignore
Add `.<name>/` to `.gitignore`.
### 5. Generate and verify
```bash
bun run gen:skill-docs --host <name>
```
Check:
- Output exists at `.<name>/skills/gstack-*/SKILL.md`
- No `.claude/skills` path leakage
- Frontmatter matches expected format
### 6. Run tests
```bash
bun test test/gen-skill-docs.test.ts
```
All parameterized tests auto-include the new host.