Multi-agent development workflow for OpenCode.
Structured planning. Delegated execution. Quality gates at every boundary.
- About Corvus
- What Corvus Does
- Installation
- What's Included
- How Corvus Works
- Corvus PR Review
- Project Structure
- Development
- Troubleshooting
- License
In Norse mythology, Odin's ravens Huginn (thought) and Muninn (memory) fly across the world each day, gathering information and reporting back. Corvus works the same way — sending specialized agents out to research, explore, implement, and validate, then synthesizing their findings into a coherent whole.
One agent to drive your entire workflow. Describe what you need, and Corvus handles the rest — clarifying requirements, exploring the codebase, planning, implementing, testing, and validating.
- Single point of entry — no need to pick the right agent or remember who does what
- Adaptive planning depth — automatically scales from zero-ceremony quick fixes to spec-driven workflows based on task complexity
- Full lifecycle management — from requirements through implementation to validation
- Context across phases — maintains coherence across a complex, multi-step task
- Quality gates at every boundary — objective and subjective validation before moving on
Have a complex task in mind? Tell @corvus what you need. It handles clarification, planning, implementation, and validation automatically — scaling its process to match the task:
@corvus fix the typo in the footer # no plan — direct delegation
@corvus add a dark mode toggle with tests # lightweight plan — minimal ceremony
@corvus refactor the payment module to use the new API # standard plan — full workflow
@corvus redesign the plugin architecture # spec-driven — formal specs + full workflow
Need something quick? Talk to @corvus directly, it'll know which specialists to involve:
@corvus find all auth files
@corvus review the login endpoint
@corvus how does JWT refresh rotation work?
npx corvus-ai
# or for a global install
npx corvus-ai --globalThis adds corvus-ai@latest to your OpenCode plugin config. All agents, commands, and skills are loaded automatically.
Clone the repo and symlink the directories into your OpenCode config:
git clone https://github.com/NachoFLizaur/corvus.git
cd corvus
ln -s $(pwd)/agent ~/.config/opencode/agent
ln -s $(pwd)/command ~/.config/opencode/command
ln -s $(pwd)/skill ~/.config/opencode/skillOr copy instead of symlinking:
cp -r agent/ ~/.config/opencode/agent/
cp -r command/ ~/.config/opencode/command/
cp -r skill/ ~/.config/opencode/skill/Corvus agents work with whichever model you've set up as default in opencode, but you can assign specific models per agent in your OpenCode config if you wish to:
{
"plugin": ["corvus-ai"],
"agent": {
"corvus": {
"model": "anthropic/claude-opus-4"
},
"code-implementer": {
"model": "anthropic/claude-sonnet-4"
},
"code-explorer": {
"model": "anthropic/claude-haiku-4"
}
}
}Any agent field (model, temperature, tools, etc.) can be overridden this way. Your config takes precedence over the plugin defaults.
| Agent | Purpose |
|---|---|
@corvus |
Coordinator — orchestrates complex multi-step workflows |
@corvus-auto |
Autonomous Coordinator — zero-interruption workflow: auto-selects plan type, mandatory Phase 3.5, tests deferred to Phase 5, git commit/push/PR in Phase 6 |
@code-explorer |
Find files, understand architecture, discover patterns |
@code-implementer |
Write production code with plan-approve workflow |
@code-quality |
Test, review, validate, security audit |
@task-planner |
Break complex features into subtasks |
@plan-reviewer |
High-accuracy plan review before implementation |
@researcher |
Technical questions, best practices |
@requirements-analyst |
Analyze requests, identify gaps, clarify requirements |
@ux-dx-quality |
Subjective quality: UX, DX, docs, architecture |
@corvus-review |
PR Review Coordinator — interactive multi-pass PR review with user gates |
@corvus-review-auto |
Autonomous PR Review — zero-interruption PR review with safety rails |
@security-reviewer |
Dedicated security analysis: OWASP Top 10, CWE, taint analysis |
@pr-context-gatherer |
PR-specific context gathering: diffs, dependencies, conventions |
@pr-comment-writer |
GitHub review posting: API payloads, error recovery, line validation |
| Command | Purpose |
|---|---|
/git-commit |
Smart git commit with conventional commit message generation |
/readme |
Analyze commits and update README with relevant changes |
/summary |
Generate summary of current conversation for portability |
/cleanup-subagents |
Clean up subagent sessions |
Skills are loaded on-demand to minimize initial context size. Each Corvus phase has a dedicated skill that's loaded only when entering that phase.
| Skill | Purpose |
|---|---|
corvus-phase-0 |
Requirements analysis |
corvus-phase-1 |
Discovery and research |
corvus-phase-2 |
Planning and user approval |
corvus-phase-4 |
Implementation loop |
corvus-phase-5 |
Final validation |
corvus-phase-6 |
Completion and summary |
corvus-phase-7 |
Follow-up triage |
corvus-extras |
Utilities (subagent reference, todo patterns, error handling) |
frontend-design |
Frontend UI/UX design guidelines |
deep-research |
Deep research for complex technical questions |
web-search |
Quick web search for focused factual lookups |
PR Review Skills:
| Skill | Purpose |
|---|---|
corvus-review-r0 |
PR intake, triage, config loading |
corvus-review-r1 |
Parallel context gathering |
corvus-review-r2 |
Multi-pass review orchestration |
corvus-review-r3 |
Comment synthesis and filtering |
corvus-review-r4 |
User gate / autonomous auto-proceed |
corvus-review-r5 |
GitHub posting and completion |
corvus-review-extras |
Shared schemas, Conventional Comments, config |
Under the hood, Corvus follows a structured multi-phase workflow:
User Request
│
▼
Phase 0a: Requirements Clarification (@requirements-analyst)
│
├─── CLEAR ──────────────────────────────────► Plan-Type Selection
└─── DISCOVERY_NEEDED ──► Phase 1 ──► Phase 0b ──► Plan-Type Selection
│
▼
Phase 1: Discovery (@researcher + @code-explorer) [parallel]
│
▼
Plan-Type Selection (complexity heuristic → user override)
│
├─── No Plan ────────► Direct delegation (single task, done)
├─── Lightweight ────► Phase 2 (1 phase, 3-6 tasks, skip discovery + final validation)
├─── Standard ───────► Phase 2 (full workflow, unchanged)
└─── Spec-Driven ───► Formal specs → Phase 2 (full workflow)
│
▼
Phase 2: Planning (@task-planner creates MASTER_PLAN.md)
│
▼
Phase 3: User Approval (single approval gate)
│
▼
User Choice: "Start Implementation" → Phase 4
"High Accuracy Review" → Phase 3.5
│
▼
Phase 3.5: Plan Review (@plan-reviewer) [optional]
│ OKAY → Phase 4
│ REJECT → @task-planner fixes → User chooses: re-review or proceed
│
▼
Phase 4: Implementation Loop (per-PHASE, not per-task)
│ 4a: @code-implementer (all phase tasks, parallel where possible)
│ 4b: @code-quality (entire phase, with failure attribution)
│ FAIL → FAILURE_ANALYSIS → fix → revalidate
│ 4c: Update master plan → next phase
│
▼
Phase 5: Final Validation
│ 5a: @code-quality (comprehensive)
│ 5b: @ux-dx-quality (if any task flagged it)
│
▼
Phase 6: Completion
Key features:
- Adaptive plan-type selection: Scores task complexity across 6 dimensions, recommends one of 4 tiers (No Plan → Lightweight → Standard → Spec-Driven), user can override
- Phase-level validation: Quality checks run once per phase (~70% fewer subagent invocations)
- Parallel execution: Independent tasks within a phase run simultaneously
- Conditional clarification: Phase 0b skipped when requirements are already clear
- Two-tier quality gates: Objective (@code-quality) at phase boundaries + Subjective (@ux-dx-quality) at feature completion
- Failure attribution: Quality gate identifies exactly which task(s) failed
- Learning loops: Analyze failures before fixing, extract learnings after success
- Optional plan review: Phase 3.5 validates plan quality before implementation begins
📖 Detailed Documentation: See docs/CORVUS-STATE-MACHINE.md for complete state machine diagrams, parallel execution rules, and constraint tables.
Corvus PR Review is a multi-pass code review system that brings the same structured, multi-agent approach to pull request reviews. It runs dedicated review passes in parallel, synthesizes findings, and posts formatted reviews to GitHub — either interactively with user gates or fully autonomously.
- You want a thorough, structured review that goes beyond surface-level linting
- You need security-focused analysis with OWASP/CWE knowledge
- You want consistent review quality across your team
- You want to preview and edit review comments before posting
@corvus-review review PR #123
@corvus-review review https://github.com/owner/repo/pull/123
@corvus-review-auto #456 # autonomous, auto-posts
User: "Review PR #123"
│
▼
R0: Intake & Triage (parse PR, fetch metadata, load config)
│
▼
R1: Context Gathering [parallel]
├── @pr-context-gatherer (files, deps, tests, conventions)
└── @researcher (issues, CI, advisories)
│
▼
R2: Multi-Pass Review
├── Pass 1: Architecture & Design (@ux-dx-quality) ─┐
├── Pass 2: Logic & Correctness (@code-quality) ├─ parallel
├── Pass 3: Security (@security-reviewer) ─┘
└── Pass 4: Conventions & Polish (max 3 nits) ─ sequential
│
▼
R3: Comment Synthesis (dedup, filter, severity, nit budget)
│
▼
R4: User Gate → Post / Edit / Save Locally / Re-run
│
▼
R5: Post to GitHub via @pr-comment-writer
- Multi-pass review following Google's priority order (correctness → design → security → style)
- Dedicated security agent with OWASP Top 10 and CWE knowledge base
- Aggressive false-positive filtering with confidence scores and nit budget enforcement
- Conventional Comments format for consistent, actionable feedback
- Configurable via
.opencode/review-config.yamlfor per-project tuning - Interactive and autonomous modes — preview before posting, or let it run hands-free
- Just-in-time context gathering — no pre-built index needed, works on any repo
# .opencode/review-config.yaml
severity_threshold: "nitpick"
max_nits: 3
passes:
architecture: true
correctness: true
security: true
conventions: true
path_rules:
- pattern: "src/auth/**"
elevate_security: true
- pattern: "vendor/**"
skip_passes: ["conventions"]📖 Detailed Documentation: See docs/CORVUS-REVIEW-SKILL-SET.md for complete review workflow documentation, configuration reference, and Conventional Comments specification.
.
├── agent/ # Agent definitions (15 agents)
│ ├── corvus.md # Implementation orchestrator
│ ├── corvus-auto.md # Autonomous implementation orchestrator
│ ├── corvus-review.md # PR review orchestrator
│ ├── corvus-review-auto.md # Autonomous PR review orchestrator
│ ├── security-reviewer.md # Security analysis specialist
│ ├── pr-context-gatherer.md # PR context gathering
│ ├── pr-comment-writer.md # GitHub review posting
│ └── ... # (8 more existing agents)
├── command/ # Custom slash commands (4 commands)
├── skill/ # On-demand skills (18 skills)
│ ├── corvus-phase-*/ # Corvus workflow phases (7)
│ ├── corvus-review-*/ # PR review phases (7)
│ └── *.../ # Utilities (corvus-extras, frontend-design, deep-research, web-search)
├── src/ # Plugin source code
├── docs/ # Detailed documentation
│ ├── CORVUS-STATE-MACHINE.md
│ └── CORVUS-REVIEW-SKILL-SET.md
├── AGENTS.md
└── README.md
See AGENTS.md for delegation instructions and docs/CORVUS-STATE-MACHINE.md for detailed workflow documentation.
# Install dependencies
bun install
# Run tests
bun test
# Build
bun run build
# Type check
bun x tsc --noEmitPlugin not loading — Verify your OpenCode config (~/.config/opencode/config.json or .opencode/config.json) has "corvus-ai": true under plugins.
Agents not appearing — Make sure bun install or npm install completed successfully. The package must be present in node_modules with its agent/, command/, and skill/ directories.
Skills not found — Skills are loaded from the package's skill/ directory at runtime. If you used the manual install method, verify your symlinks point to the correct location (ls -la ~/.config/opencode/skill/).
Duplicate agents — If you have both the plugin install and manual symlinks active, agents may appear twice. Pick one installation method and remove the other.
MIT © Nacho F. Lizaur