opencode-keystoneAn opinionated /keystone slash command that bootstraps a new project: research, foresight pass, PLAN.md, AGENTS.md, review gate, then parallel worktree execution. Installable as an OpenCode plugin or for Claude Code and Copilot CLI.
0
178
20 in 7 days
30.2
Multi-signal model
2 months ago
2026-06-08
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-keystone@0.3.15"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-keystone@0.3.15"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D opencode-keystoneopencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
opencode-keystone
An opinionated /keystone slash command that bootstraps a new project the way you actually want.
Drop /keystone <idea> into any OpenCode, Claude Code, or GitHub Copilot CLI session. It researches, lists likely future problems, writes PLAN.md and AGENTS.md, stops for your review, then bootstraps the repo and runs phase 1 in parallel git worktrees with the Copilot review loop after every PR.
Highlights
- Foresight first — explicit pass over perf, licensing, security, cost, portability, and abandonment risk before the plan is written.
- Phased
PLAN.md— MVP-first, exit tests per phase, anticipated risks, one-command teardown. - Self-contained
AGENTS.md— conventional commits, branch-per-issue, Copilot second-opinion loop, worktree convention, cloud cost discipline. No global file required. - Operational memory —
NOTES.md+ ADRs catch the "agent reintroduces a bug we already fixed" and "reintroduces a library we rejected" failure modes. - Review gate — nothing gets built until you read both files and say
go. - Parallel worktrees — sub-agents work in
../<project>-wt/<task>/(single dir for permission scoping), max 3 concurrent, squash-merged, cleaned up on merge and again on project wind-down. - Opinionated — every choice above is baked in. Disagree with one? It's one markdown file. Fork it.
Install
OpenCode (recommended path)
opencode plugin opencode-keystone -g
Installs the npm package globally, adds "opencode-keystone" to your opencode.json plugin array, and on next session start the plugin auto-installs /keystone into ~/.config/opencode/commands/.
Other CLIs (or OpenCode without the plugin)
curl -fsSL https://raw.githubusercontent.com/Adamkadaban/opencode-keystone/main/install.sh | bash
Run interactively for a menu, or pass --target for unattended install:
curl -fsSL https://raw.githubusercontent.com/Adamkadaban/opencode-keystone/main/install.sh | bash -s -- --target=claude
curl -fsSL https://raw.githubusercontent.com/Adamkadaban/opencode-keystone/main/install.sh | bash -s -- --target=all
Or via npx
npx opencode-keystone install --target=opencode # default
npx opencode-keystone install --target=claude
npx opencode-keystone install --target=copilot
npx opencode-keystone install --target=all
| Target | Install location | Invoke |
|---|---|---|
| OpenCode | ~/.config/opencode/commands/keystone.md |
/keystone |
| Claude Code | ~/.claude/commands/keystone.md |
/keystone |
| Copilot CLI | ~/.copilot/agents/keystone.md |
copilot --agent=keystone --prompt '<idea>' |
The same source file is used for every target — Copilot CLI gets a one-line frontmatter strip at install time so the file fits its agent format. Nothing else in your config is touched.
Use
/keystone i want to build a rust cli that renders markdown to ANSI in the terminal
Or invoke with no argument and Keystone will ask for the idea once, then proceed.
Companions
Required:
copilot-second-opinion— Keystone's Phase 7 PR review loop hard-depends on it. Install before first use.
Strongly recommended:
- GitHub MCP — author identity, repo creation, issues, PRs, review threads. Without it Keystone falls back to
ghCLI for what it can. - Context7 MCP — live library docs during the Research phase.
Hacking on it
git clone https://github.com/Adamkadaban/opencode-keystone && cd opencode-keystone
node bin/install.mjs install --dev --force # symlinks live from your checkout
Edits to commands/keystone.md are picked up live on the next /keystone.
Releasing
npm version patch && git push --follow-tags
The publish workflow handles npm (Trusted Publishing + provenance) and the GitHub Release.