Replace 4 separate instruction files with 1 real file + symlinks: - .github/copilot-instructions.md is the canonical instruction file - CLAUDE.md and .cursorrules are symlinks to it - AGENTS.md stays as global config (not a project instruction file) This eliminates all sync/merge logic - changes propagate automatically. Changes: - AGENTS.md: rewrite Cross-Tool Instruction Files section for symlink convention - librarian.md: simplify to maintain single instruction file + verify symlinks - lead.md: simplify PHASE-WRAP and Documentation Completion Gate - commands (init, bootstrap-memory, save-memory): update for symlink model - doc-coverage skill: verify symlinks exist and point correctly
52 lines
2.6 KiB
Markdown
52 lines
2.6 KiB
Markdown
# OpenCode Agent Configuration
|
|
|
|
This repository contains the multi-agent configuration for OpenCode, defining agent roles, permissions, quality pipelines, and project memory conventions.
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
opencode.jsonc # Main config: default agent, plugins, permissions, MCP servers
|
|
agents/ # Agent definitions (one .md per agent)
|
|
lead.md # Primary orchestrator
|
|
coder.md # Implementation agent
|
|
reviewer.md # Code review (read-only code, writes .memory/*)
|
|
tester.md # Test validation (writes .memory/*)
|
|
explorer.md # Codebase mapping (read-only code, writes .memory/*)
|
|
researcher.md # Technical investigation (writes .memory/*)
|
|
librarian.md # Documentation specialist (full edit)
|
|
critic.md # Plan review gate (writes .memory/*)
|
|
sme.md # Domain expert (writes .memory/*)
|
|
designer.md # UI/UX guidance (writes .memory/*)
|
|
.memory/ # Persistent project memory (knowledge, decisions, plans, research)
|
|
AGENTS.md # Global OpenCode config (not a symlink in this repo)
|
|
CLAUDE.md -> .github/copilot-instructions.md
|
|
.cursorrules -> .github/copilot-instructions.md
|
|
```
|
|
|
|
## Agent Permission Model
|
|
|
|
- **Full edit access:** `lead`, `coder`, `librarian`.
|
|
- **Memory-only edit access:** `reviewer`, `tester`, `explorer`, `researcher`, `critic`, `sme`, `designer` — `permission.edit: allow` in config, but instructions restrict edits to `.memory/*` only. Code/source edits remain read-only.
|
|
- OpenCode does not support path-scoped `permission.edit`, so guardrails are instruction-level.
|
|
|
|
## Memory System
|
|
|
|
`.memory/` is the persistent project knowledge store:
|
|
- `knowledge.md` — architecture, patterns, key concepts
|
|
- `decisions.md` — architecture decisions, design choices
|
|
- `plans/<feature>.md` — active plans with tasks and statuses
|
|
- `research/<topic>.md` — research findings
|
|
|
|
Workflow: read relevant `.memory/` files → work → update `.memory/` files with outcomes.
|
|
|
|
## Quality Pipeline
|
|
|
|
Standard flow: `explorer/researcher → coder → reviewer → tester → librarian`.
|
|
Three tiers based on change scope (Tier 1: full, Tier 2: standard, Tier 3: fast).
|
|
|
|
## Conventions
|
|
|
|
- This repo uses symlinks for cross-tool instruction files: `CLAUDE.md` and `.cursorrules` point to this file.
|
|
- `.memory/knowledge.md` is the canonical source of truth for deep project knowledge.
|
|
- Recording discipline: record only outcomes/decisions/discoveries in `.memory/`, never ceremony checkpoints.
|