Spec-first spec-driven development for Claude Code and OpenCode: a
durable per-initiative spec document (ROADMAP.md, cavekit-style
sections, no symbol table) plus a right-sized, subagent-driven build
pipeline.
/plugin marketplace add MartyBeGood/specfirst
/plugin install sf@specfirst
From git:
{
"plugin": ["specfirst@git+https://github.com/MartyBeGood/specfirst.git"]
}OpenCode installs it with Bun at startup. Pin a branch/tag with #<ref>.
For a local checkout (development, symlinked plugin), tool mapping, and
troubleshooting, see .opencode/INSTALL.md.
Restart OpenCode after any install change.
/sf:spec <idea>— creates.specfirst/build/<slug>/ROADMAP.md, the initiative's spec (goal, constraints, interfaces, invariants, tasks)./sf:build --next— executes the next§Ttask: trivial tasks run natively, tasks that cite a§V/§Iitem (or turn out to touch more than one file) get the full implementer + reviewer + fix-loop pipeline./sf:check— read-only drift report: does the code still match the spec's invariants and interfaces?
Four optional commands sit around this core loop: /sf:grill sharpens
a fuzzy idea before spec, /sf:research gathers external facts into
§R, /sf:review adversarially reviews the spec before build,
/sf:deepen spends spare budget improving a module's design. Each
drafts content and hands it to /sf:spec to write.
See docs/FORMAT.md for the full spec document format, and
docs/superpowers/specs/2026-08-21-specfirst-design.md for the design
this was built from. OpenCode differences (command names, tool mapping)
are in .opencode/INSTALL.md; the port's design is in
docs/superpowers/specs/2026-08-21-opencode-support-design.md.