An opencode plugin that merges the best of two worlds:
Terse, direct responsesβ single low intensity: trim filler and hedging, keep full sentences, preserve technical terms verbatim. Auto-clarity drops the terseness on security warnings, irreversible actions, and ambiguity.Lazy devβ YAGNI ladder before writing code, reuse over reinvention, bug fix = root cause not symptom, strict calibration at trust boundaries, one runnable check per non-trivial change.
Plus two read-only primary agents:
Reviewβ always runs the full protocol: functional (YAGNI, overengineering, dead code, root cause) and four non-functional layers (performance, security, maintainability, architecture), using pattern skills and conditional deep-dive subagents.Dreamβ a planner that settles the architectural decisions of a new build before code is written, asking only what matters and handing a plan to Build.
Get the CLI, then register the plugin in an opencode config.
Globally (the command lands in your PATH), or on demand with bunx
/npx
/pnpm dlx
(no PATH pollution):
npm install -g <package-or-tarball> # or: bun install -g ...
bunx --bun yet-another-opencode-plugin install --global
npx yet-another-opencode-plugin install --global
pnpm dlx yet-another-opencode-plugin install --global
--bun
is a bunx
-only flag; it is optional and not supported by npx
/pnpm dlx
.
yet-another-opencode-plugin install
adds the entry: --global
targets
~/.config/opencode/opencode.json
, the default targets ./opencode.json
.
Until the package is published to npm, register the local build instead:
bunx --bun yet-another-opencode-plugin install --global --entry-file
--entry-file
writes the local dist/plugin.mjs
path instead of the package name.
The Review and Dream agents, the Review's deep-dive subagents, and the skill paths are
registered at runtime by the plugin β no manual editing. Both opencode.json
and
opencode.jsonc
are supported; JSONC files are edited in place, preserving comments and formatting.
Review agentβ cycle withTab
to thereview
agent, then ask it to review (e.g. "review the changes"). It is read-only, like Plan: it always runs the full protocol and reports; it never edits.Dream agentβ cycle withTab
to thedream
agent to settle the architectural decisions of a new build before code is written. It is read-only: it asks the decisions that matter and hands a plan to Build.Rulesetβ the yaop communication + engineering rules are embedded by default in thereview
anddream
agent prompts. The main Build/Plan agents are untouched.
opencode validates opencode.json
strictly, so plugin settings live in
~/.config/opencode/yaop.json
:
{
"yaop": {
"review": {
"model": "anthropic/claude-haiku-4-20250514",
"deepDiveThreshold": "high",
"parallelSkills": true
},
"dream": {
"model": "anthropic/claude-haiku-4-20250514"
}
}
}
| Key | Default | Meaning |
|---|---|---|
review.model |
||
| (inherit global) | ||
Override the model for the Review agent. Omit to use your global model; change at any time via /models . |
||
review.deepDiveThreshold |
||
"high" |
||
Severity at or above which the Review spawns the matching deep-dive subagent. critical |
high |
medium |
review.parallelSkills |
||
true |
||
Analyze the four NFR layers in parallel (true ) or one at a time (false ). |
||
review.deepDiveSubagents |
||
all true |
||
Per-layer toggle: { "security", "performance", "architecture" } booleans. |
||
dream.model |
||
| (inherit global) | ||
| Override the model for the Dream planner. Omit to use your global model. |
CLI equivalents: --review.model=MODEL
, --review.deepDiveThreshold=T
,
--review.parallelSkills=true|false
, --dream.model=MODEL
.
β server plugin. Registers theplugin.mjs
review
primary agent, thedream
primary agent, three hidden read-only deep-dive subagents (security-deep
,performance-deep
,architecture-deep
), and theyaop-review
/yaop-plan
skill paths. Both primary agents carry the yaop ruleset embedded in their prompt.Review agentβ peer of Build/Plan, read-only:edit
=deny
,bash
=ask
(git read subcommands allowed),permission.task
restricted to its own*-deep
subagents. Protocol: determine target (git diff
/status by default) β read full context β functional lenses β 4 NFR layers via theyaop-review
skill β deep-dive subagent per layer at or above the threshold β one severity-ranked report.Dream agentβ peer of Build/Plan, read-only:edit
=deny
,bash
=ask
(git read subcommands allowed),permission.task
denied. Protocol: classify the project (kind + concern tags) β prune theyaop-plan
catalog β drive the question tool over the remaining decisions β confirm the idea β agree the Build execution mode β one concise hand-off plan. Writes no files.β pattern checklists for the four layers and a uniform finding output contract.yaop-review
skillβ the Dream's decision catalog and signal table, pruned by the project's kind + concern tags.yaop-plan
skill
bun install
bunx tsc --noEmit # typecheck
bun test # tests
bun run build # bundle plugin + cli, copy markdown assets to dist/
MIT