@nntoan/gstack is an OpenCode plugin + CLI that brings a structured multi-agent engineering workflow into your coding sessions.
It ships with:
- 13 built-in agents (CEO, Eng Manager, Designer, Builder, Reviewer, Debugger, QA Lead, Release Engineer, Doc Engineer, Retro Lead, Safety Guard, Upgrader, Session Manager)
- 25 built-in skills for planning, implementation, QA, release, investigation, and safety checks
- Bun-first DX with reproducible build/test/lint/typecheck scripts
npm i -g @nntoan/gstackFrom your project root:
gstack installThis command does two things:
- Creates project config at
.opencode/gstack.jsonc(if missing) - Adds
@nntoan/gstackto your global OpenCode plugin list at~/.config/opencode/opencode.json
gstack doctorYou're ready when doctor reports no blocking configuration/environment issues and your project contains .opencode/gstack.jsonc.
If onboarding fails, check these first:
HOMEis available (required for~/.config/opencode/opencode.jsonupdates)- OpenCode global config is writable (
~/.config/opencode/opencode.json) - Project directory is writable (for
.opencode/gstack.jsonc)
Then run:
gstack doctorIf you still have issues, include doctor output and your Bun/OS environment when opening an issue.
gstack install— bootstrap local config + plugin registrationgstack doctor— run environment/config health checks
At runtime, the plugin entry (src/index.ts) does:
- Load plugin config
- Create skills + agents
- Create managers
- Create orchestrator
- Register tools + hooks
- Return plugin interface handlers (
chat.message,event, tool hooks)
Your project-level config lives at:
.opencode/gstack.jsonc
Default template generated by gstack install:
Schema file in this repo: schemas/config.schema.json
Important top-level config keys:
orchestration_mode:multi-agent|skills-onlydisabled_agents: string[]disabled_skills: string[]disabled_mcps: string[]disabled_hooks: string[]agents: per-agent overrides (model,instructions,enabled)mcp: provider and enable/disable controls (websearch,context7,contexthub,grep_app,backlog_md)backlog,browser,telemetry
All built-in agents are registered in src/agents/index.ts.
| Agent role | Purpose |
|---|---|
ceo |
Strategic direction and decomposition |
eng-manager |
Planning and execution framing |
designer |
UX and product-design decisions |
builder |
Implementation execution |
reviewer |
Code quality and review |
debugger |
Root-cause analysis and fixes |
qa-lead |
Test strategy and quality assurance |
release-engineer |
Release readiness and publishing flow |
doc-engineer |
Documentation and handoff quality |
retro-lead |
Retrospectives and process improvement |
safety-guard |
Risk/safety policy checks |
upgrader |
Dependency/runtime upgrade guidance |
session-manager |
Session continuity and context management |
Built-in skills are exported from src/features/builtin-skills/skills/index.ts.
bun install- Build library:
bun run build - Build CLI:
bun run build:cli - Build all:
bun run build:all - Test:
bun run test - Typecheck:
bun run typecheck - Lint:
bun run lint - Lint fix:
bun run lint:fix - Format:
bun run format
Equivalent mise shortcuts:
mise run buildmise run testmise run lintmise run lint:fixmise run format
bun run test && bun run typecheck && bun run lint && bun run build:allIf you are an AI coding agent contributing to this repo, read these first:
AGENTS.md— command standards, style rules, test/lint expectationsCLAUDE.md— GitNexus workflow and safety requirementsCONTRIBUTING.md— PR and commit conventions
Required workflow guardrails:
- Run impact analysis before symbol edits (
gitnexus_impact) - Run change-scope checks before commit (
gitnexus_detect_changes) - Use Conventional Commits
- Keep
no-consoleand strict TypeScript requirements intact
Safe local validation loop before proposing changes:
bun run test && bun run typecheck && bun run lint && bun run build:all- CLI definition:
src/cli/cli-program.ts - Install behavior:
src/cli/install.ts - Plugin entry:
src/index.ts - Plugin interface hooks:
src/plugin-interface.ts - Skills + agents composition:
src/create-skills-and-agents.ts - Orchestrator:
src/features/orchestrator/ - MCP integrations:
src/mcp/
If you are new to the codebase, start with src/cli/install.ts and src/index.ts.
Release automation is documented in RELEASE.md.
Short version:
- Standard releases go through Release Please (
.github/workflows/release-please.yml) - Manual fallback publishing exists in
.github/workflows/publish.yml
Please follow CONTRIBUTING.md.
Minimum bar before opening a PR:
mise run test
mise run lintUse Conventional Commits for commit messages and PR titles.
AGENTS.md— engineering and code quality rulesCONTRIBUTING.md— PR and contribution processRELEASE.md— release and publishing workflows
See LICENSE.
{ "$schema": "https://raw.githubusercontent.com/nntoan/gstack-opencode/main/schemas/config.schema.json", "orchestration_mode": "multi-agent", "disabled_agents": [], "disabled_skills": [], }