Releases: CKGrafico/opencode-onboard
Release list
v1.2.0 — Engineer system overhaul, agentmemory, docs site, command refactor
Overview
opencode-onboard 1.2.0 — Complete rework of the engineer creation system, agentmemory integration, documentation site, and a major command refactor.
Major changes since v1.1.0
Engineer System Overhaul
/make-engineer — full rewrite
- Persona-driven interactive design: 9 personas + custom option (Frontend, Backend, DevOps, Data, Security, Mobile, API/Integration, QA, Layout Designer)
- Deterministic skill discovery: mandatory
npx skills findper detected signal, no skipping - 5-10 skills per engineer (was 2-5), minimum = detected signals
- Quality filter: install count ≥100, prefer ≥1000, prefer official sources
- Post-install verification: every
@skill-namechecked against.agents/skills/+skills-lock.json - Global/personal skills from
~/.claude/skills/and~/.agents/skills/are FORBIDDEN - Template enforcement: frontmatter + one identity paragraph (2-3 sentences) +
## Abilitiesonly - FORBIDDEN list: no
## Core Expertise,## Key Patterns,## Domain Expertise,## FSD Layer Rules,## Testing,## Conventions,## File Responsibilities,## When Spawned,## Gate Order,## i18n,## What You Do NOT Touchsections - Critical rules preamble at top of command + hard gate before file writing
- Structural validation: re-reads file, checks only
## Abilitiesheading exists, nomodel:field, categorized abilities - Idempotency: checks if engineer exists before overwriting
Agent mode enforcement
- Persona engineer templates: always
mode: primary(wasmode: all) - Tier variants: always
mode: subagent(injected byob-subagent-tiersplugin at startup) ob-subagent-tiersplugin now fixes wrong modes in-place on disk + in-memoryfullstack-engineer.mdexcluded from variant generation (it ismode: primary, never spawned)
fullstack-engineer.md — identity + additive skills
- New identity paragraph: "You are the default engineer, mostly used by the user for architecture and planning..."
- Skills merged additively (dedup by name), never overwrites existing abilities
- Preserves existing frontmatter (model, color, permissions)
fullstack-engineer banned from task assignment
/plan-proposeStep 2: NEVER assignfullstack-engineerto a task — it ismode: primary, not a spawned worker/plan-applyStep 7: NEVER spawnfullstack-engineer- AGENTS.md, README.md, repo-onboard.md, agents-content.json: all references updated
- If no specialist matches a task, the user is told to create one with
/make-engineer
Agentmemory Integration
- Replaced basic-memory with agentmemory (local, no server required)
- All commands and skills updated: context notes, task-result notes, change-context notes
- Skills-lock.json updated with agentmemory dependency
Command Refactor
- Renamed all commands from
ob-*to clearer names:/ob-apply→/plan-apply/ob-propose→/plan-propose/ob-archive→/plan-archive/ob-explore→/plan-explore/ob-init→/repo-initialize/ob-help→/repo-help/ob-create-engineer→/make-engineer/ob-create-architecture→/make-architecture/ob-create-design→/make-design/ob-set-model→/make-user-model/ob-create-project-guardrails→/make-guardrails/ob-pullrequest→/ops-review(feedback mode) +/ops-ship(ship mode)/ob-autopilot→/plan-goal/ob-main→/plan-quick
- New
/repo-onboardcommand for onboarding new team members - New
/plan-quickfor small in-session tasks without the full plan flow
Platform Skills as Commands
ob-pullrequest-az/gh/glskills consolidated into/ops-shipand/ops-reviewcommands with platform-specific presetsob-userstory-*skills remain as skills (loaded by the lead when a work item URL is detected)
Documentation Site
- New landing page at
docs/with GitHub Pages deploy workflow - Custom CSS, demo GIF, logo, feature highlights
- Contributing guide (
CONTRIBUTING.md) and security policy (SECURITY.md)
Plugin Improvements
ob-subagent-tiers: write deduplication (skip if unchanged),fullstack-engineerexcluded from variants, enforcesmode: primaryon templates +mode: subagenton variantsob-subagent-monitor: trimmed dead code, debounced persist
Update Command Restored
npx opencode-onboard update— non-interactive re-apply from saved config- Protects user-owned files from force-overwrite
Other Improvements
opencode-onboard.jsonflattened (nowizardwrapper, version 2)source-roots.jsonmoved to.opencode/- Guardrails split:
ob-guardrails-generic(git, secrets, code quality) +ob-guardrails-project(project-specific rules) - Optimization markers in commands (RTK, codegraph, memory, caveman)
- Skills installer with
skills-lock.jsontracking opencode-json.js— merge agent block into existing config without touching other keys- ESLint config added
Getting started
Initialize a project:
npx opencode-onboard
New team member joining:
npx opencode-onboard join
Then in OpenCode:
/repo-initialize
/plan-propose
/plan-apply
/ops-ship
/plan-archive
For autonomous loop-engineering:
/plan-goal
/plan-goal push
/plan-goal pr
Create a custom engineer:
/make-engineer
Full changelog since v1.1.0
- Complete rewrite of
/make-engineer: deterministic skill discovery, template enforcement, validation - Agent mode enforcement: templates
primary, variantssubagent fullstack-engineerexcluded from variants and banned from task assignment- Agentmemory replaces basic-memory (local, no server)
- All commands renamed from
ob-*toplan-*/ops-*/make-*/repo-* - New
/repo-onboard,/plan-quick,/ops-ship,/ops-reviewcommands - Platform pull request skills consolidated into
/ops-ship+/ops-reviewcommands - Documentation site with GitHub Pages
- Contributing guide + security policy
ob-subagent-tiersplugin: dedup writes, exclude fullstack, enforce modesob-subagent-monitorplugin: debounced persist, dead code removalupdatecommand restored with file protection- Flattened
opencode-onboard.json(version 2) - Guardrails split: generic + project
- Optimization markers in commands
- ESLint config added
- 162 tests passing
v1.1.0 — Multi-platform support, MCP markers, tier plugin improvements
Overview
opencode-onboard 1.1.0 — Multi-platform support, MCP optimization markers, and tier plugin improvements.
Major changes since v1.0.0
Split Platform Choice: Backlog + Repo
- Onboarding now asks two questions: "Where is your backlog?" and "Where is your code repository?"
- Supports mixed-platform setups (e.g. Jira backlog + GitHub repo, Azure backlog + GitLab repo)
- Stores
wizard.backlogPlatformandwizard.repoPlatforminopencode-onboard.json wizard.platformkept as alias for backward compat- Skills installer handles both platforms (installs matching skills for each)
- AGENTS.md patched with mixed-platform workflow content
New Platforms
Jira (Atlassian) — backlog-only
- CLI:
acli(Atlassian CLI) - Fetch work items:
acli jira workitem view --key PROJ-123 - Transition state:
acli jira workitem transition --key PROJ-123 --status "In Progress" - New skill:
ob-userstory-jira - Auth: API token or OAuth via
acli jira auth login
GitLab — repo-only
- CLI:
glab(GitLab CLI) - Create merge requests:
glab mr create - List MRs:
glab mr list --state merged - Read MR comments:
glab mr note list - New skill:
ob-pullrequest-gl - New archive preset:
ob-archive-gl.md - Auth:
glab auth login(OAuth or PAT)
Others (Browser) — backlog-only
- No CLI required — uses opencode-browser plugin to navigate to work item URLs
- For when users have no API tokens or use tools without CLI support (Linear, Trello, Monday, etc.)
- New skill:
ob-userstory-browser - Opens URLs the user explicitly provides, reads page text + accessibility snapshot
browser-automationskill updated with explicit external navigation exception for work item URLs- Read-only — never modifies anything on the page
Full Platform Matrix
| Backlog | Repo |
|---|---|
| GitHub | GitHub |
| GitHub | GitLab |
| Azure DevOps | Azure DevOps |
| Azure DevOps | GitLab |
| Azure DevOps | GitHub |
| Jira | GitHub |
| Jira | Azure DevOps |
| Jira | GitLab |
| Others (Browser) | GitHub |
| Others (Browser) | Azure DevOps |
| Others (Browser) | GitLab |
| None | None |
MCP Optimization Markers in Commands
- Command
.mdfiles now use marker pairs (OB-CMD-CODEGRAPH,OB-CMD-MEMORY,OB-CMD-RTK) around MCP-specific instructions - During onboarding, the optimization step injects or strips these sections based on what the user selected (codegraph, basic-memory, RTK)
- No more "if available" hedging — the CLI controls whether MCP instructions exist at all
- All MCP references explicitly say "MCP tool, NOT CLI command" to prevent agents from running
codegraphorbasic-memoryas bash commands
ob-subagent-tiers Plugin Improvements
- Writes physical
*-engineer.<tier>.mdvariant files on disk AND injects in-memory - Hardened file filter (
^[\w-]+-engineer\.md$) prevents cascading duplicates on restart - Error logging to stderr — visible feedback on what was injected
Basic-Memory Reliability
experimental.mcp_timeout: 300000added toopencode.json— fixes-32001 Request timed outon tool requests- MCP command changed to
basic-memory mcp(direct binary, nouvxresolution delay)
.gitignore npm Fix
- Source renamed to
_gitignoreso npm includes it in the package (npm strips.gitignorefiles during publish) - Merge logic in copy step handles existing files
Other Improvements
/ob-create-project-guardrails— new command extracting rules from ARCHITECTURE.md into a skill/ob-create-architectureand/ob-create-design— incremental update mode using timestamps + git log- All three create commands now use codegraph MCP and basic-memory MCP with markers
- Autopilot modes: default (merge to main),
push(push branch only),pr(push + create PR) /ob-set-model—userprefix for machine-local model overrides- Model suggestions updated to match live models.dev IDs; added OpenCode Go provider
- Removed obsolete
stampAgentModelscall source-roots.jsonmoved to.opencode/- Join command: 10 steps covering all local installs and checks
Getting started
Initialize a project:
npx opencode-onboard
New team member joining:
npx opencode-onboard join
Then in OpenCode:
/ob-init
/ob-propose
/ob-apply
/ob-pullrequest
/ob-archive
For autonomous loop-engineering:
/ob-autopilot
/ob-autopilot push
/ob-autopilot pr
Full changelog since v1.0.0
- Split platform choice into backlog + repo for mixed-platform support
- Add Jira (Atlassian) as backlog-only platform with
acliCLI - Add GitLab as repo-only platform with
glabCLI - Add Others (Browser) as backlog-only platform using opencode-browser plugin
- MCP optimization markers in command files (codegraph, memory, RTK)
- All MCP references clarify "MCP tool, NOT CLI command"
- ob-subagent-tiers plugin: physical files + in-memory injection, hardened filter
- basic-memory: mcp_timeout fix, direct binary command
- _gitignore npm fix
- /ob-create-project-guardrails command
- /ob-create-architecture and /ob-create-design: incremental update mode
- Autopilot output modes (default/push/pr)
- /ob-set-model user prefix for local overrides
- Model suggestions updated, OpenCode Go added
- Join command: 10-step overhaul
- README fully updated with all platform combinations and skills
v1.0.0 — First stable release
Overview
opencode-onboard 1.0.0 — the first stable release. Everything you need to turn any codebase into a multi-agent development workflow powered by OpenCode native subagents.
What is opencode-onboard?
A single interactive wizard that prepares any codebase for AI-driven development. It wires together:
- OpenCode — the agent runtime and TUI
- OpenSpec — spec-driven change management
- codegraph — code intelligence for agents
- basic-memory — persistent knowledge graph across agent sessions
- Native parallel subagents — multi-agent execution via OpenCode's built-in task tool
Supports GitHub, Azure DevOps, or no platform at all.
Major features in this release
Multi-Agent Tier System (ob-subagent-tiers plugin)
- Agent files (*-engineer.md) are templates with no model: field
- On startup, the plugin reads wizard.models from config and injects tier variants (backend-engineer.build, basic-engineer.fast, etc.) into the live config — both in-memory and as physical .md files
- Model resolution: opencode-onboard.user.json (user override, gitignored) then opencode-onboard.json (team shared)
- /ob-set-model [user] — set models per tier. Use user prefix for machine-local overrides. Use current keyword for the active session model
Full Command Suite
- /ob-init — Initialize project (greenfield or brownfield)
- /ob-explore — Think through an idea before committing to a plan
- /ob-propose — Parse a work item or idea into a structured plan with agent + tier annotations
- /ob-apply — Implement tasks via parallel subagent waves
- /ob-autopilot — Fully autonomous pipeline. Default: merge to main + delete branch. push keyword: push branch only. pr keyword: push + create PR
- /ob-pullrequest — Create a PR or process PR feedback
- /ob-archive — Archive a completed OpenSpec change
- /ob-main — Quick direct implementation, no OpenSpec, no waves
- /ob-create-engineer — Create a custom specialist engineer from a description + skills.sh
- /ob-create-architecture — Generate ARCHITECTURE.md from the codebase
- /ob-create-design — Generate DESIGN.md from the design system
- /ob-create-project-guardrails — Generate a project-guardrails skill from ARCHITECTURE.md + project config
- /ob-set-model — Set model for a tier (team or user-local override)
- /ob-help — Show all commands
Onboarding Wizard
- Greenfield vs brownfield detection
- Platform selection (GitHub / Azure DevOps / None)
- Source scope selection for monorepos
- Model selection from 75+ providers via models.dev (including OpenCode Zen and OpenCode Go)
- Optimization toggles: RTK, codegraph, basic-memory, browser extension
- OpenSpec initialization
- Bootstrap AGENTS.md with platform-specific workflow injection
Join Command
- One-command setup for new team members joining an existing onboarded project
- 10 steps: platform CLI, plugins, skills, OpenSpec, basic-memory (uv tool install), codegraph index, RTK, browser extension, model tier guidance, .gitignore check
- Shows team model configuration and guides user to set local overrides
Reliability
- experimental.mcp_timeout: 300000 in opencode.json — fixes basic-memory timeout errors
- basic-memory MCP command uses direct binary (basic-memory mcp), no uvx delay
- .gitignore source renamed to _gitignore so npm includes it in the package
- Tier variant file filter hardened to prevent cascading duplicates on restart
Getting started
Initialize a project:
npx opencode-onboard
New team member joining:
npx opencode-onboard join
Then in OpenCode:
/ob-init
/ob-propose
/ob-apply
/ob-pullrequest
/ob-archive
For autonomous loop-engineering:
/ob-autopilot
/ob-autopilot push
/ob-autopilot pr
Full changelog since v0.8.6
- /ob-create-project-guardrails — new command extracting rules from ARCHITECTURE.md into a skill
- Join command overhaul — 10 steps covering all local installs and checks
- basic-memory — install via uv tool install, execute via basic-memory mcp
- ob-subagent-tiers plugin — writes physical variant files AND injects in-memory; hardened filter
- Autopilot modes — default (merge to main), push (push branch only), pr (push + create PR)
- /ob-set-model — user prefix for machine-local overrides
- Model suggestions updated to match live models.dev IDs; added OpenCode Go provider
- Removed obsolete stampAgentModels call
- .gitignore npm fix (_gitignore)
- source-roots.json moved to .opencode/
1.0.0 means the API, command surface, and config format are now stable.
Huge thanks to everyone who tested, reported bugs, and provided feedback throughout the 0.x cycle.
v0.8.6 — Fix .gitignore stripped by npm
Overview
Fixes a bug where .opencode/.gitignore was never copied to projects during onboarding.
Root Cause
npm automatically strips .gitignore files during npm publish. The file content/.opencode/.gitignore (containing node_modules, .ob-run.json, opencode-onboard.user.json, source-roots.json, *-engineer.*.md) was present in the repo but missing from the published package. The merge code ran but found no source file, so it silently skipped the write.
Fix
- Renamed
content/.opencode/.gitignore→content/.opencode/_gitignore(npm includes it normally). - Updated
src/steps/copy/index.jsto read from_gitignoreand write as.gitignorein the destination project. - Verified
_gitignoreappears innpm packoutput.
v0.8.5 — OpenCode Go, tier plugin fixes, basic-memory reliability, updated model suggestions
Overview
Version 0.8.5 brings the ob-subagent-tiers plugin to a working state, adds OpenCode Go as a provider, fixes basic-memory MCP timeouts, and updates all model suggestions to match current models.dev IDs.
Major Changes
1. ob-subagent-tiers Plugin — Working In-Memory Injection
- Fixed the plugin to reliably inject tier-suffixed agent variants (
backend-engineer.build,basic-engineer.fast, etc.) intocfg.agentvia theconfighook. - Removed silent
catch {}that was hiding errors — now logs to stderr exactly what was injected or why it failed. - Template agent files (
*-engineer.md) remain clean templates with nomodel:field.
2. OpenCode Go Provider Added
- Added
opencode-goto the model provider list inpresets/models.json. - 19 models available (deepseek-v4-pro, qwen3.6-plus, kimi-k2.7-code, glm-5.1, etc.).
- Suggestions per tier:
build→opencode-go/deepseek-v4-pro,fast→opencode-go/qwen3.6-plus.
3. Basic-Memory MCP Reliability
- Added
experimental.mcp_timeout: 300000toopencode.json— fixes-32001 Request timed outerrors on tool calls (the per-servertimeoutonly covered the connect handshake, not tool requests). - Changed MCP command from
uvx basic-memory mcptouv tool run basic-memory mcp— uses the pre-installed binary directly, near-instant startup instead of 15-20suvxresolution.
4. Model Suggestions Updated
- All suggestions now verified against live
models.dev/api.jsonIDs. - Fixed GitHub Copilot provider value:
github→github-copilot(filter was broken — model IDs usegithub-copilot/prefix). - Stale suggestions fixed:
opencode/big-pickle→opencode/glm-4.7github/gpt-4o-mini→github-copilot/gpt-5.4-nanodeepseek/deepseek-v3→deepseek/deepseek-v4-progithub/claude-sonnet-4-5→github-copilot/claude-sonnet-4.5
- Added OpenCode Zen suggestions for
planandbuildtiers (werenullbefore).
5. Removed Obsolete stampAgentModels
- The
stampAgentModelscall in the models step wrotemodel:to agent files during onboarding — obsolete now that the tier plugin handles model injection at startup. - Agent files stay as clean templates; the plugin does the work.
6. .gitignore Copy Fix
- Fixed
.opencode/.gitignorenot being copied when a.gitignorealready exists in the destination (opencode creates one fornode_modules). - Now merges both files (dedup lines) after the bulk copy step.
7. Source Roots Moved to .opencode/
source-roots.jsonrelocated from.agents/to.opencode/for consistency.- All command references updated (
/ob-create-architecture,/ob-create-design, AGENTS.md bootstrap).
v0.8.2 — Tier-based subagent models, autopilot, and user-local model overrides
Overview
Version 0.8.2 introduces a plugin-driven tier model system for subagents, an autonomous end-to-end pipeline command, and user-local model overrides — all designed to make multi-agent execution more flexible without mid-session file hacking.
Major Changes
1. Tier-Based Subagent Models via Plugin (ob-subagent-tiers.js)
- New plugin that injects tier-suffixed agent variants (
backend-engineer.build,backend-engineer.fast,backend-engineer.plan) into the live config at startup via theconfighook. - Template agent files (
*-engineer.md) no longer carry amodel:field — they are pure templates. - The plugin reads
wizard.modelsfrom the config and bakes the right model into each variant at startup. No mid-session file editing, no git churn. - Models are resolved from
opencode-onboard.user.json(user override) first, thenopencode-onboard.json(team shared).
2. /ob-set-model with User Overrides
- New
userprefix:/ob-set-model user fast opencode/big-picklewrites toopencode-onboard.user.json(gitignored, machine-local). - Without prefix: writes to
opencode-onboard.json(team shared, git-tracked). - No more agent file re-stamping — the plugin rebuilds tier variants on next restart.
3. /ob-autopilot — Autonomous Pipeline
- New command: branch off
main→ propose → apply → archive → merge back, with zero human interaction. - Each phase produces its own commit. Stops only on hard failures (stall, verification failure, merge conflict), leaving the branch unmerged.
- Built for loop-engineering / unattended runs.
4. Updated /ob-propose and /ob-apply
/ob-proposenow annotates tasks with tier-suffixed agent names (e.g.backend-engineer.build,basic-engineer.fast)./ob-applyspawns the tier-suffixed name directly — the model is already resolved at startup by the plugin.- Fallback: if a tier variant is missing, strips the suffix and uses the base template (inherits lead model).
5. /ob-create-engineer Simplified
- Agent files are templates with no
model:field. - Removed the model resolution step — the plugin handles it.
- Tier is still recorded for documentation and AGENTS.md.
6. ob-subagent-monitor Updated
- Now resolves models from
wizard.models(user first, then team) instead of readingmodel:from agent files. - Handles tier-suffixed agent names (e.g.
backend-engineer.build→ looks upwizard.models.build).
7. Source Roots Moved to .opencode/
source-roots.jsonrelocated from.agents/to.opencode/for consistency.- All command references updated (
/ob-create-architecture,/ob-create-design, AGENTS.md bootstrap). - Added to
.opencode/.gitignore.
Migration Notes
- After updating, run
/ob-set-model <tier> <model>for each tier (plan, build, fast) and restart opencode — the plugin will rebuild all tier variants. - Existing agent files with
model:fields still work as before (the model is kept), but new agents created via/ob-create-engineerwill not havemodel:in the file.
v0.7.0
Overview
Version 0.7.0 is a workflow shift focused on replacing opencode-ensemble with native OpenCode subagent waves, plus model management and archive-flow improvements.
Major Changes
1. Native Subagent Waves (Core Architecture Change)
- Replaced ensemble/worktree execution with native task-based parallel subagents.
- Updated apply flow to run dependency-aware waves with conflict-safe grouping.
- Added progress/recovery state handling through run-state tracking.
2. Command Workflow Redesign
- Reworked apply command around wave orchestration.
- Propose now enriches tasks with:
- assigned agent
- depends_on metadata
- touches metadata
- Added pre-checks for unarchived changes before propose/explore.
- Updated help/main command language to match wave-based execution.
- Archive flow now prioritizes oldest eligible unarchived merged change.
3. Model Management Overhaul
- Removed ensemble model config flow.
- Moved to per-agent model stamping by tier (plan/build/fast).
- Added set-model command to update tier models and re-stamp engineers.
- Preserved onboarding runtime config as load-bearing metadata.
4. Onboarding and Join Improvements
- Join now performs stronger local setup checks:
- plugin install/update
- skills install
- basic-memory prerequisites
- Improved platform detection and join messaging.
- Default max concurrent agents changed from 4 to 3.
- Concurrency now clamped to 1..5.
5. Plugin and Package Changes
- Removed ensemble plugin dependency.
- Added notifier and TUI support for native subagent visibility.
6. Reliability and Test Coverage
- Added significant tests across copy, metadata, models, optimization, and openspec flows.
- Added process exit wrapper usage to improve testability.
- Added codegraph timeout safeguards under parallel load.
Behavior Impact for Users
- Parallel execution is now native and wave-based instead of ensemble-based.
- Model assignment is tied to agent files/tier config, not ensemble mapping.
- Archiving and proposal flows are stricter and safer for sequencing.
- Setup and re-setup for team members is more automated and robust.
0.6.2 Initial usable version
Big update to the AI agent workflow setup. Here's what changed:
New /ob-* commands — cleaner workflow, no more opsx- confusion:
- /ob-propose — parses a GitHub/ADO work item or idea, generates a plan, and annotates every task with the best agent + model before you confirm
- /ob-apply — implements via parallel engineers using ensemble
- /ob-pullrequest — creates a PR or reads/classifies review comments
- /ob-explore — thinking partner before committing to a plan
- /ob-archive — close out a completed change
- /ob-help — shows all commands and when to use each
Smarter task assignment — /ob-propose now reads every *-engineer.md in .opencode/agents/ (description + abilities) and picks the best specialist per task. Heavy tasks get the build model, light work (i18n, config, verification) gets the fast model.
codegraph — code intelligence for agents — agents use codegraph_search and codegraph_impact to understand your codebase before spawning. No more agents guessing file locations or breaking things they didn't know were connected.
basic-memory — shared context across sessions — agents store decisions, architecture notes, and findings. The next session picks up where the last one left off. Cross-agent context during /ob-apply means engineers share knowledge without stepping on each other.
Model picker UX — 3 models (plan / build / fast), pick provider first then search. ← Change provider to go back if you pick wrong.
Run again to get updates:
npx opencode-onboard@latest