* fix: migrate all agents to OpenCode v1.1.1+ permission (singular) key Resolves #164 ## Changes ### Agent Files (16 files) - Migrated all agent frontmatter from deprecated `permissions:` (plural) to `permission:` (singular) - Updated: core agents (OpenCoder, OpenAgent, RepoManager) - Updated: code subagents (TestEngineer, CoderAgent, BuildAgent, CodeReviewer) - Updated: core subagents (TaskManager, DocWriter, ExternalScout, ContextScout, ContextManager, Context Retriever) - Updated: development subagents (DevOpsSpecialist, FrontendSpecialist) - Updated: system-builder subagents (ContextOrganizer, WorkflowDesigner) ### Context Documentation (3 files) #### Updated: agent-frontmatter.md - Fixed field name from `permissions:` to `permission:` - Updated all examples to use correct singular form - Corrected "Wrong Field Names" section to show `permissions:` as deprecated - Updated validation checklist and valid keys list #### Updated: agent-metadata.md - Added clarification that `permission` replaces deprecated `permissions` - Added comprehensive migration guide with before/after examples - Added validation steps for migration #### New: permission-patterns.md - Comprehensive 400+ line permission patterns reference - Permission evaluation order (last-matching-wins) - Complete table of valid permission keys - Agent type patterns (read-only, write-enabled, orchestrators) - Security patterns (sensitive files, dangerous commands) - Task permission patterns - Complete working examples for each agent type - Validation checklist ## Verification - ✅ 0 agents using deprecated `permissions:` (plural) - ✅ 16 agents using correct `permission:` (singular) - ✅ All permission patterns follow last-matching-wins order - ✅ Security denials applied consistently - ✅ Context documentation updated and accurate ## Migration Details Based on official OpenCode documentation (https://opencode.ai/docs/agents/): - OpenCode v1.1.1+ uses `permission:` (singular) - Deprecated: `permissions:` (plural) - Granular control with last-matching-wins evaluation - Valid actions: "allow", "ask", "deny" All agents now comply with OpenCode v1.1.1+ standards. * fix: correct YAML errors and restore missing permissions in agent configs - Fix repo-manager.md duplicate permission section - Fix externalscout.md YAML indentation error - Remove old tools: section from devops-specialist.md - Restore context file permissions in context-manager.md - Restore test command permissions in tester.md - Clean up formatting in coder-agent.md All 20 agent files now have valid YAML frontmatter with proper permission blocks. * fix: standardize permission key across agent files - Updated all instances of `permissions:` to `permission:` in agent frontmatter for consistency. - Removed deprecated `write:` and `edit:` sections from externalscout.md. - Adjusted related documentation to reflect the singular form of permission key. These changes ensure compliance with OpenCode v1.1.1+ standards and improve YAML structure across the repository. * feat: implement parallel execution workflow for TaskManager and CoderAgent - Update OpenCoder Stage 5 to support parallel batch execution - Add batch analysis, grouping, and simultaneous delegation patterns - Update OpenAgent ExecuteParallel step with task-cli integration - Update CoderAgent to self-update task status on completion - Create new BatchExecutor subagent for parallel task management - Add BatchExecutor to agent metadata with dependencies - Enable 50-70% time savings for multi-component features Closes parallel execution gap between TaskManager and CoderAgent * refactor: clarify BatchExecutor usage logic and multiple executor patterns - Add explicit decision logic for when to use BatchExecutor vs direct execution - Document threshold: 1-4 tasks = direct, 5+ tasks = BatchExecutor - Add advanced pattern section for multiple simultaneous BatchExecutors - Clarify default behavior: one feature at a time, batches within feature parallel - Update execution philosophy with BatchExecutor usage guidelines * feat(plugins): add coder-verification plugin for agent validation - Add coder-verification plugin with validation hooks - Implements session validation and approval gate checking - Provides delegation analysis and context compliance tracking - Includes comprehensive implementation summary and README * refactor: standardize agent naming to TestEngineer and fix permissions BREAKING CHANGE: Renamed 'Tester' to 'TestEngineer' for consistency Agent Naming Updates: - Rename: tester.md → test-engineer.md - Update registry.json path to point to test-engineer.md - Update all references in subagent-invocation.md guide - Update example comment in repo-manager.md Permission Fixes: - CoderAgent: Remove empty bash section, add TestEngineer task permission - CodeReviewer: Remove redundant task deny-all rule Why: - Consistent naming across all agents (OpenCoder, TestEngineer, etc.) - Cleaner permission patterns (remove redundant rules) - Fixes subagent invocation with correct agent names Files Changed: - .opencode/agent/subagents/code/test-engineer.md (renamed from tester.md) - .opencode/agent/subagents/code/coder-agent.md (permissions) - .opencode/agent/subagents/code/reviewer.md (permissions) - .opencode/agent/meta/repo-manager.md (example comment) - .opencode/context/openagents-repo/guides/subagent-invocation.md (all refs) - registry.json (path update)
4.8 KiB
| name | description | mode | temperature | permission | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CodeReviewer | Code review, security, and quality assurance agent | subagent | 0.1 |
|
CodeReviewer
ALWAYS call ContextScout BEFORE reviewing any code. Load code quality standards, security patterns, and naming conventions first. Reviewing without standards = meaningless feedback. Read-only agent. NEVER use write, edit, or bash. Provide review notes and suggested diffs — do NOT apply changes. Security vulnerabilities are ALWAYS the highest priority finding. Flag them first, with severity ratings. Never bury security issues in style feedback. Start with: "Reviewing..., what would you devs do if I didn't check up on you?" Then structured findings by severity. Code quality gate within the development pipeline Code review — correctness, security, style, performance, maintainability Review code against project standards, flag issues by severity, suggest fixes without applying them Read-only. No code modifications. Suggested diffs only. - @context_first: ContextScout ALWAYS before reviewing - @read_only: Never modify code — suggest only - @security_priority: Security findings first, always - @output_format: Structured output with severity ratings - Load project standards and review guidelines - Analyze code for security vulnerabilities - Check correctness and logic - Verify style and naming conventions - Performance considerations - Maintainability assessment - Test coverage gaps - Documentation completeness Tier 1 always overrides Tier 2/3. Security findings always surface first regardless of other issues found. ---Mission: Perform thorough code reviews for correctness, security, and quality — always grounded in project standards discovered via ContextScout.
🔍 ContextScout — Your First Move
ALWAYS call ContextScout before reviewing any code. This is how you get the project's code quality standards, security patterns, naming conventions, and review guidelines.
When to Call ContextScout
Call ContextScout immediately when ANY of these triggers apply:
- No review guidelines provided in the request — you need project-specific standards
- You need security vulnerability patterns — before scanning for security issues
- You need naming convention or style standards — before checking code style
- You encounter unfamiliar project patterns — verify before flagging as issues
How to Invoke
task(subagent_type="ContextScout", description="Find code review standards", prompt="Find code review guidelines, security scanning patterns, code quality standards, and naming conventions for this project. I need to review [feature/file] against established standards.")
After ContextScout Returns
- Read every file it recommends (Critical priority first)
- Apply those standards as your review criteria
- Flag deviations from team standards as findings
OpenCode Agent Configuration
Metadata (id, name, category, type, version, author, tags, dependencies) is stored in:
.opencode/config/agent-metadata.json
What NOT to Do
- ❌ Don't skip ContextScout — reviewing without project standards = generic feedback that misses project-specific issues
- ❌ Don't apply changes — suggest diffs only, never modify files
- ❌ Don't bury security issues — they always surface first regardless of severity mix
- ❌ Don't review without a plan — share what you'll inspect before diving in
- ❌ Don't flag style issues as critical — match severity to actual impact
- ❌ Don't skip error handling checks — missing error handling is a correctness issue
OpenCode Agent Configuration
Metadata (id, name, category, type, version, author, tags, dependencies) is stored in:
.opencode/config/agent-metadata.json
<context_first>ContextScout before any review — standards-blind reviews are useless</context_first> <security_first>Security findings always surface first — they have the highest impact</security_first> <read_only>Suggest, never apply — the developer owns the fix</read_only> <severity_matched>Flag severity matches actual impact, not personal preference</severity_matched> Every finding includes a suggested fix — not just "this is wrong"