{"slug": "show-hn-yet-another-opencode-plugin", "title": "Show HN: Yet Another OpenCode Plugin", "summary": "A developer released Yet Another OpenCode Plugin, an opencode plugin that adds terse response modes, a YAGNI-based 'lazy dev' ruleset, and two read-only agents (Review and Dream) to the opencode AI coding assistant. The plugin, installable via npm, bunx, npx, or pnpm dlx, configures settings in ~/.config/opencode/yaop.json and supports both opencode.json and opencode.jsonc files.", "body_md": "An [opencode](https://opencode.ai) plugin that merges the best of two worlds:\n\n**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.\n\nPlus two read-only primary agents:\n\n**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.\n\nGet the CLI, then register the plugin in an opencode config.\n\nGlobally (the command lands in your PATH), or on demand with `bunx`\n\n/`npx`\n\n/`pnpm dlx`\n\n(no PATH pollution):\n\n```\nnpm install -g <package-or-tarball>   # or: bun install -g ...\n# or on demand — any of these are equivalent\nbunx --bun yet-another-opencode-plugin install --global\nnpx yet-another-opencode-plugin install --global\npnpm dlx yet-another-opencode-plugin install --global\n```\n\n`--bun`\n\nis a `bunx`\n\n-only flag; it is optional and not supported by `npx`\n\n/`pnpm dlx`\n\n.\n\n`yet-another-opencode-plugin install`\n\nadds the entry: `--global`\n\ntargets\n`~/.config/opencode/opencode.json`\n\n, the default targets `./opencode.json`\n\n.\n\nUntil the package is published to npm, register the local build instead:\n\n```\n# after `bun run build`, use the local plugin file\nbunx --bun yet-another-opencode-plugin install --global --entry-file\n```\n\n`--entry-file`\n\nwrites the local `dist/plugin.mjs`\n\npath instead of the package name.\n\nThe Review and Dream agents, the Review's deep-dive subagents, and the skill paths are\nregistered at runtime by the plugin — no manual editing. Both `opencode.json`\n\nand\n`opencode.jsonc`\n\nare supported; JSONC files are edited in place, preserving comments\nand formatting.\n\n**Review agent**— cycle with`Tab`\n\nto the`review`\n\nagent, 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 with`Tab`\n\nto the`dream`\n\nagent 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 the`review`\n\nand`dream`\n\nagent prompts. The main Build/Plan agents are untouched.\n\nopencode validates `opencode.json`\n\nstrictly, so plugin settings live in\n`~/.config/opencode/yaop.json`\n\n:\n\n```\n{\n  \"yaop\": {\n    \"review\": {\n      \"model\": \"anthropic/claude-haiku-4-20250514\",\n      \"deepDiveThreshold\": \"high\",\n      \"parallelSkills\": true\n    },\n    \"dream\": {\n      \"model\": \"anthropic/claude-haiku-4-20250514\"\n    }\n  }\n}\n```\n\n| Key | Default | Meaning |\n|---|---|---|\n`review.model` |\n(inherit global) |\nOverride the model for the Review agent. Omit to use your global model; change at any time via `/models` . |\n`review.deepDiveThreshold` |\n`\"high\"` |\nSeverity at or above which the Review spawns the matching deep-dive subagent. `critical` | `high` | `medium` | `never` . |\n`review.parallelSkills` |\n`true` |\nAnalyze the four NFR layers in parallel (`true` ) or one at a time (`false` ). |\n`review.deepDiveSubagents` |\nall `true` |\nPer-layer toggle: `{ \"security\", \"performance\", \"architecture\" }` booleans. |\n`dream.model` |\n(inherit global) |\nOverride the model for the Dream planner. Omit to use your global model. |\n\nCLI equivalents: `--review.model=MODEL`\n\n, `--review.deepDiveThreshold=T`\n\n,\n`--review.parallelSkills=true|false`\n\n, `--dream.model=MODEL`\n\n.\n\n— server plugin. Registers the`plugin.mjs`\n\n`review`\n\nprimary agent, the`dream`\n\nprimary agent, three hidden read-only deep-dive subagents (`security-deep`\n\n,`performance-deep`\n\n,`architecture-deep`\n\n), and the`yaop-review`\n\n/`yaop-plan`\n\nskill paths. Both primary agents carry the yaop ruleset embedded in their prompt.**Review agent**— peer of Build/Plan, read-only:`edit`\n\n=`deny`\n\n,`bash`\n\n=`ask`\n\n(git read subcommands allowed),`permission.task`\n\nrestricted to its own`*-deep`\n\nsubagents. Protocol: determine target (`git diff`\n\n/status by default) → read full context → functional lenses → 4 NFR layers via the`yaop-review`\n\nskill → deep-dive subagent per layer at or above the threshold → one severity-ranked report.**Dream agent**— peer of Build/Plan, read-only:`edit`\n\n=`deny`\n\n,`bash`\n\n=`ask`\n\n(git read subcommands allowed),`permission.task`\n\ndenied. Protocol: classify the project (kind + concern tags) → prune the`yaop-plan`\n\ncatalog → 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`\n\nskill— the Dream's decision catalog and signal table, pruned by the project's kind + concern tags.`yaop-plan`\n\nskill\n\n```\nbun install\nbunx tsc --noEmit     # typecheck\nbun test              # tests\nbun run build         # bundle plugin + cli, copy markdown assets to dist/\n```\n\nMIT", "url": "https://wpnews.pro/news/show-hn-yet-another-opencode-plugin", "canonical_source": "https://github.com/smokeeaasd/yet-another-opencode-plugin", "published_at": "2026-08-03 19:41:12+00:00", "updated_at": "2026-08-03 19:52:29.553709+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-agents"], "entities": ["opencode", "Yet Another OpenCode Plugin", "Review agent", "Dream agent", "npm", "bunx", "npx", "pnpm dlx"], "alternates": {"html": "https://wpnews.pro/news/show-hn-yet-another-opencode-plugin", "markdown": "https://wpnews.pro/news/show-hn-yet-another-opencode-plugin.md", "text": "https://wpnews.pro/news/show-hn-yet-another-opencode-plugin.txt", "jsonld": "https://wpnews.pro/news/show-hn-yet-another-opencode-plugin.jsonld"}}