diff --git a/docs/architecture/AgentCapabilityMatrix.md b/docs/architecture/AgentCapabilityMatrix.md
new file mode 100644
index 00000000..8254955b
--- /dev/null
+++ b/docs/architecture/AgentCapabilityMatrix.md
@@ -0,0 +1,266 @@
+---
+title: PAI-OpenCode Agent Capability Matrix
+description: Permissions, model tiers, tools, and MCP access for every agent type
+type: reference
+wp: WP-N8
+updated: 2026-03-12
+---
+
+# PAI-OpenCode Agent Capability Matrix
+
+> [!NOTE]
+> **Source of truth for agent capabilities (WP-N8).** Model names are resolved from `opencode.json` — this document describes tiers and roles only.
+
+---
+
+## Overview
+
+PAI-OpenCode defines agent types in `opencode.json` under the `agent` key. Each agent type has:
+- A **default model tier** (quick / standard / advanced)
+- Optionally **model tier overrides** per task complexity
+- Inherits **session permissions** from `opencode.json` `permission` block
+
+```text
+Orchestrator (Algorithm)
+ │
+ ├── Task → Engineer (implementation)
+ ├── Task → Architect (design/ADR)
+ ├── Task → explore (fast search)
+ ├── Task → Researcher agents (web/research)
+ └── Task → Intern (simple batch work)
+```
+
+
+Agent hierarchy (Mermaid)
+
+```mermaid
+graph TD
+ ORC[Algorithm
advanced — orchestrates]
+ ORC --> ENG[Engineer
standard — implements]
+ ORC --> ARC[Architect
standard — designs]
+ ORC --> EXP[explore
quick — codebase search]
+ ORC --> INT[Intern
quick — simple tasks]
+ ORC --> WRT[Writer
standard — docs]
+ ORC --> QA[QATester
standard — testing]
+ ORC --> PEN[Pentester
standard — security]
+ ORC --> DSG[Designer
standard — UI/UX]
+ ORC --> ART[Artist
standard — visuals]
+ ORC --> DRS[DeepResearcher
standard — orchestrates research]
+ DRS --> GMR[GeminiResearcher]
+ DRS --> GRK[GrokResearcher]
+ DRS --> PPX[PerplexityResearcher]
+ DRS --> CDX[CodexResearcher]
+```
+
+
+
+---
+
+## Agent Type Reference
+
+### Core Agents
+
+| Agent | Default Tier | Primary Role | Spawned By |
+|---|---|---|---|
+| `Algorithm` | advanced | Full PAI Algorithm runs, orchestration | User directly |
+| `Architect` | standard | System design, ADR writing | Algorithm |
+| `Engineer` | standard | Implementation, code writing, file edits | Algorithm |
+| `general` | standard | General purpose fallback | Algorithm |
+| `explore` | quick | Fast codebase exploration, file search | Algorithm |
+| `Intern` | quick | Simple batch tasks, data transformation | Algorithm |
+| `Writer` | standard | Documentation, content, changelogs | Algorithm |
+| `QATester` | standard | Quality assurance, test writing, review | Algorithm |
+
+### Specialist Agents
+
+| Agent | Default Tier | Primary Role | Notes |
+|---|---|---|---|
+| `Pentester` | standard | Security testing, vulnerability analysis | Offensive security — use with purpose |
+| `Designer` | standard | UI/UX design, component specs | — |
+| `Artist` | standard | Visual content, image generation prompts | — |
+
+### Research Agents
+
+| Agent | Default Tier | Primary Role | Data Source |
+|---|---|---|---|
+| `DeepResearcher` | standard | Research orchestration | Delegates to sub-researchers |
+| `GeminiResearcher` | configured in `opencode.json` | Multi-perspective research | Google Gemini (or equivalent) |
+| `GrokResearcher` | configured in `opencode.json` | Contrarian / fact-based analysis | xAI Grok (or equivalent) |
+| `PerplexityResearcher` | configured in `opencode.json` | Real-time web search | Perplexity (or equivalent) |
+| `CodexResearcher` | standard | Technical archaeology | Multiple models |
+
+> [!NOTE]
+> Research agents that use external providers (Gemini, Grok, Perplexity) require the corresponding API keys and provider configuration in `opencode.json`. The specific model IDs are set by the user — see `Configuration.md` for the agent model routing schema.
+
+---
+
+## Model Tier Matrix
+
+All agents that support model tiers follow the same tier → model mapping defined in `opencode.json`.
+
+| Tier | Cost | When to Use |
+|---|---|---|
+| `quick` | Low | Simple lookups, search, batch ops, data transformation |
+| `standard` | Medium | Default — implementation, research, documentation |
+| `advanced` | High | Complex reasoning, critical architecture, orchestration |
+
+### Tier Override Usage
+
+```typescript
+// Default tier (omit model_tier)
+Task({ subagent_type: "Engineer", prompt: "..." })
+
+// Quick tier — fast/cheap for simple work
+Task({ subagent_type: "Engineer", model_tier: "quick", prompt: "..." })
+
+// Advanced tier — best quality when it matters
+Task({ subagent_type: "Architect", model_tier: "advanced", prompt: "..." })
+```
+
+### Per-Agent Tier Support
+
+| Agent | quick | standard | advanced | Fixed (no override) |
+|---|---|---|---|---|
+| `Algorithm` | — | — | — | ✅ (always advanced) |
+| `Architect` | ✅ | ✅ | ✅ | — |
+| `Engineer` | ✅ | ✅ | ✅ | — |
+| `general` | ✅ | ✅ | ✅ | — |
+| `explore` | — | — | — | ✅ (always quick) |
+| `Intern` | ✅ | ✅ | ✅ (→ standard) | — |
+| `Writer` | ✅ | ✅ | ✅ | — |
+| `DeepResearcher` | ✅ | ✅ | ✅ | — |
+| `GeminiResearcher` | ✅ | ✅ | ✅ | — |
+| `GrokResearcher` | ✅ | ✅ | ✅ | — |
+| `PerplexityResearcher` | ✅ | ✅ | ✅ | — |
+| `CodexResearcher` | ✅ | ✅ | ✅ | — |
+| `QATester` | — | — | — | ✅ (always standard) |
+| `Pentester` | ✅ | ✅ | ✅ | — |
+| `Designer` | ✅ | ✅ | ✅ | — |
+| `Artist` | ✅ | ✅ | ✅ | — |
+
+> [!IMPORTANT]
+> `Algorithm` and `explore` are **fixed** — no tier override applies. `QATester` has a single model with no tier override in the current config.
+
+---
+
+## Tool Access
+
+All agents inherit the session's tool permissions from `opencode.json`. The current permission block:
+
+```json
+"permission": {
+ "*": "allow",
+ "websearch": "allow",
+ "codesearch": "allow",
+ "webfetch": "allow",
+ "doom_loop": "ask",
+ "external_directory": "ask"
+}
+```
+
+### Native Tool Access by Agent Role
+
+| Tool Category | Algorithm | Engineer | Architect | explore | Intern | Researcher |
+|---|---|---|---|---|---|---|
+| File read/write | ✅ | ✅ | ✅ | Read only | ✅ | Read only |
+| Bash / shell | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
+| Web search | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
+| Web fetch | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
+| Task (spawn subagent) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| Custom tools (PAI) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
+| `doom_loop` | ask | ask | ask | ask | ask | ask |
+| `external_directory` | ask | ask | ask | ask | ask | ask |
+
+> [!NOTE]
+> The `explore` agent is designed for **read-only codebase exploration**. It uses `grep`, `glob`, and `read` only — no bash, no writes. Use `Engineer` for any operation that modifies files.
+
+### PAI Custom Tools (WP-N1 + WP-N7)
+
+| Tool | Available To | Description |
+|---|---|---|
+| `session_registry` | All agents | Lists recent sessions with summaries |
+| `session_results` | All agents | Detailed results for a specific session ID |
+| `code_review` | All agents | Runs roborev AI code review on changed files |
+
+---
+
+## MCP Tool Access
+
+MCP servers are configured globally and available to all agents in a session. Each server exposes its own tools.
+
+### Configuring MCP Servers
+
+MCP servers are defined in your `opencode.json` under the `mcp` key. Each server you add exposes its own tools automatically to all agents in a session.
+
+```jsonc
+// opencode.json
+{
+ "mcp": {
+ "my-server": {
+ "type": "local",
+ "command": "npx",
+ "args": ["-y", "@my-org/my-mcp-server"]
+ },
+ "remote-server": {
+ "type": "sse",
+ "url": "https://my-mcp-endpoint.example.com/sse"
+ }
+ }
+}
+```
+
+> [!TIP]
+> Run `/mcp` in an OpenCode session to see all currently connected MCP servers and their available tools.
+
+> [!NOTE]
+> Which MCP servers you configure is entirely up to your workflow. Common categories include project management tools, documentation lookups, CI/CD systems, and external APIs. See [`Configuration.md`](./Configuration.md) for the full `mcp` schema.
+
+### Detecting Active MCP Servers
+
+```bash
+# List MCP server keys defined in your local opencode.json
+jq '.mcp | keys' opencode.json
+```
+
+---
+
+## Agent Selection Guide
+
+| Task | Recommended Agent | Tier | Rationale |
+|---|---|---|---|
+| Complex implementation, multi-file | `Engineer` | standard | Default implementation role |
+| Simple rename, search-replace | `Engineer` | quick | Doesn't need standard for mechanical ops |
+| Architecture decisions, ADR writing | `Architect` | standard | Design role |
+| Major redesign, critical ADR | `Architect` | advanced | Best quality for high-stakes decisions |
+| Find files, search codebase | `explore` | — (fixed quick) | 2-second rule — fastest option |
+| Documentation, README, changelogs | `Writer` | standard | Dedicated writing role |
+| Live web search, real-time facts | `PerplexityResearcher` | — (fixed Sonar) | Real-time web index |
+| Deep multi-angle research | `DeepResearcher` | standard | Orchestrates multiple sub-researchers |
+| Contrarian / fact-check | `GrokResearcher` | — (fixed Grok) | xAI contrarian analysis |
+| Security testing | `Pentester` | standard | Purpose-built security role |
+| Batch/trivial data tasks | `Intern` | quick | Lowest cost for mechanical work |
+
+---
+
+## Decision Rules
+
+> [!IMPORTANT]
+> **2-Second Rule:** If `grep`, `glob`, or `read` can answer in <2 seconds, do NOT spawn an agent. Agent spawn overhead is 5–15s plus potential permission prompt.
+
+| Situation | Action |
+|---|---|
+| Search within 1–3 known files | Use `grep`/`glob`/`read` directly |
+| Unknown codebase structure, 5+ files | Spawn `explore` |
+| Multi-step implementation work | Spawn `Engineer` |
+| You need a web search result | Spawn `PerplexityResearcher` |
+| You need architecture advice | Spawn `Architect` |
+| Multiple independent criteria | Parallelize with `Promise.all` over multiple `Task` calls |
+
+---
+
+## References
+
+- `opencode.json` — authoritative agent + model configuration
+- `docs/architecture/ToolReference.md` — full tool catalog with usage examples
+- `docs/architecture/Configuration.md` — `opencode.json` schema reference
+- `AGENTS.md` — Algorithm operating instructions (CAPABILITIES SELECTION section)
diff --git a/docs/architecture/FormattingGuidelines.md b/docs/architecture/FormattingGuidelines.md
new file mode 100644
index 00000000..305eee39
--- /dev/null
+++ b/docs/architecture/FormattingGuidelines.md
@@ -0,0 +1,388 @@
+---
+title: PAI-OpenCode Formatting Guidelines
+description: Obsidian-compatible formatting patterns for all PAI-OpenCode documentation and AI output
+type: reference
+wp: WP-N8
+updated: 2026-03-12
+---
+
+# PAI-OpenCode Formatting Guidelines
+
+> [!NOTE]
+> **Canonical formatting reference for all PAI-OpenCode docs and AI-generated output (WP-N8)**
+
+---
+
+## Overview
+
+All PAI-OpenCode documentation follows Obsidian-compatible Markdown. This ensures:
+- Correct rendering in Obsidian vaults linked to the repository
+- Consistent structure across architecture docs, ADRs, and skill files
+- AI output that renders cleanly in both Obsidian and GitHub
+
+---
+
+## 1. Document Frontmatter
+
+Every documentation file **must** include YAML frontmatter:
+
+```yaml
+---
+title: Short human-readable title
+description: One sentence describing the document's purpose
+type: reference | adr | skill | guide | spec
+wp: WP-N{X} # Work package that created this file (omit if not applicable)
+adr: ADR-{NNN} # Linked ADR (omit if not applicable)
+updated: YYYY-MM-DD
+---
+```
+
+**Required fields:** `title`, `description`, `type`, `updated`
+**Optional fields:** `wp`, `adr`, `status`, `authors`
+
+### Frontmatter for ADRs
+
+```yaml
+---
+title: "ADR-{NNN}: Short Decision Title"
+description: One sentence summary of the decision
+type: adr
+status: Accepted | Proposed | Deprecated | Superseded
+date: YYYY-MM-DD
+updated: YYYY-MM-DD
+deciders: [Jeremy]
+wp: WP-N{X}
+---
+```
+
+### Frontmatter for SKILL.md files
+
+```yaml
+---
+name: SkillName
+description: One sentence — what this skill does
+version: "1.0"
+updated: YYYY-MM-DD
+---
+```
+
+---
+
+## 2. Obsidian Callouts
+
+Use Obsidian callouts (not raw blockquotes) for highlighted content.
+
+### Standard Callout Types
+
+```markdown
+> [!NOTE]
+> Informational content that adds context without urgency.
+
+> [!IMPORTANT]
+> Critical information the reader must not miss.
+
+> [!WARNING]
+> Potential pitfall or destructive action risk.
+
+> [!TIP]
+> Best practice or efficiency improvement.
+
+> [!DANGER]
+> Data loss, security risk, or irreversible action.
+```
+
+### Collapsible Callouts
+
+Add `-` for collapsed (closed by default) or `+` for expanded (open by default):
+
+```markdown
+> [!NOTE]- Collapsed by default — click to expand
+> This content is hidden until the user clicks the header.
+
+> [!TIP]+ Expanded by default — click to collapse
+> This content is visible but the user can collapse it.
+```
+
+**Rule:** Long supplementary content (>10 lines) that is not essential to the main flow should be wrapped in a collapsed callout.
+
+---
+
+## 3. Diagrams: ASCII + Collapsible Mermaid
+
+Every architecture diagram must provide **both** an ASCII overview and a collapsible Mermaid diagram.
+
+### Pattern
+
+````markdown
+```text
+Short ASCII overview:
+
+ ┌─────────────┐ ┌─────────────┐
+ │ Client │────▶│ Gateway │
+ └─────────────┘ └─────────────┘
+ │
+ ┌─────────┴─────────┐
+ │ │
+ ┌─────▼─────┐ ┌───────▼───────┐
+ │ Handler │ │ Custom Tool │
+ └───────────┘ └───────────────┘
+```
+
+
+Mermaid — detailed view
+
+```mermaid
+graph LR
+ Client --> Gateway
+ Gateway --> Handler
+ Gateway --> CustomTool
+```
+
+
+````
+
+### When to Use Each
+
+| Diagram Type | When |
+|---|---|
+| ASCII only | Simple linear flows, 3–5 nodes |
+| ASCII + Mermaid | Architecture diagrams, multi-system flows |
+| Mermaid only | Never — always pair with ASCII |
+
+### ASCII Drawing Characters
+
+| Shape | Characters |
+|---|---|
+| Box | `┌─┐` / `│ │` / `└─┘` |
+| Arrow right | `──▶` or `───►` |
+| Arrow down | `│` + `▼` |
+| T-junction | `├`, `┤`, `┬`, `┴`, `┼` |
+| Tree branch | `├──`, `└──` |
+
+---
+
+## 4. Code Blocks
+
+All code blocks must include a language hint:
+
+````markdown
+```bash
+# Shell commands
+git checkout -b feature/wp-n8
+```
+
+```typescript
+// TypeScript source
+const handler: Plugin.Handler = (event) => { ... };
+```
+
+```text
+# Plain text / file trees / ASCII diagrams
+.opencode/
+├── plugins/
+└── skills/
+```
+
+```yaml
+# YAML config
+agent: opencode
+timeout: 120
+```
+
+```toml
+# TOML config
+[tool.roborev]
+agent = "opencode"
+```
+````
+
+> [!WARNING]
+> Fenced code blocks without a language hint trigger **MD040** in Biome/markdownlint and will fail CI.
+
+---
+
+## 5. Tables
+
+Use Markdown tables for comparisons, matrices, and reference data.
+
+```markdown
+| Column A | Column B | Column C |
+|---|---|---|
+| Value 1 | Value 2 | Value 3 |
+```
+
+**Rules:**
+- Header row always present
+- Alignment pipes (`|---|---|`) always present
+- Short cell content preferred — avoid wrapping prose in table cells
+- For wide tables, use collapsible callouts or `` blocks
+
+---
+
+## 6. Headings
+
+```markdown
+# H1 — Document title only (one per file)
+## H2 — Major sections
+### H3 — Subsections
+#### H4 — Use sparingly, for deeply nested reference content only
+```
+
+**Rules:**
+- H1 appears only once per document (matches frontmatter `title`)
+- Heading levels never skip (H2 → H4 without H3 is invalid)
+- Headings use sentence case: `## Agent capability matrix` not `## Agent Capability Matrix`
+
+---
+
+## 7. Links
+
+### Internal links (Obsidian-style)
+
+```markdown
+[[SystemArchitecture]] # Wikilink to another doc in the vault
+[[SystemArchitecture#Hooks]] # Wikilink with anchor
+```
+
+### Standard Markdown links
+
+```markdown
+[SystemArchitecture](./SystemArchitecture.md) # Relative path
+[ADR-018](./adr/ADR-018-roborev-code-review-integration.md)
+```
+
+> [!TIP]
+> Use **relative paths** for cross-references within `docs/`. Obsidian resolves both styles, but relative paths work on GitHub and in CI.
+
+---
+
+## 8. SKILL.md Structure (PAI v3.0 Schema)
+
+All skill files follow this canonical structure:
+
+````markdown
+---
+name: SkillName
+description: One sentence
+version: "1.0"
+updated: YYYY-MM-DD
+---
+
+# SkillName
+
+> [!NOTE]
+> One sentence summary of purpose and when this skill activates.
+
+## USE WHEN
+
+- Trigger phrase or situation 1
+- Trigger phrase or situation 2
+
+## MANDATORY
+
+Steps the AI must always perform when this skill activates.
+
+## OPTIONAL
+
+Enhancements the AI may perform based on context.
+
+## OUTPUT FORMAT
+
+Expected output structure.
+
+## EXAMPLES
+
+```text
+Example invocation or output.
+```
+````
+
+---
+
+## 9. ADR Structure
+
+All Architecture Decision Records follow this canonical structure:
+
+```markdown
+---
+title: "ADR-{NNN}: Title"
+type: adr
+status: Accepted
+date: YYYY-MM-DD
+updated: YYYY-MM-DD
+deciders: [Jeremy]
+wp: WP-N{X}
+---
+
+# ADR-{NNN}: Title
+
+## Status
+
+Accepted
+
+## Context
+
+What situation or problem prompted this decision.
+
+## Decision
+
+What was decided.
+
+## Consequences
+
+### Positive
+- ...
+
+### Negative / Trade-offs
+- ...
+
+## Implementation
+
+How the decision was implemented (file paths, key changes).
+
+## References
+
+- Related ADRs or external docs
+```
+
+---
+
+## 10. AI Output Formatting
+
+When the AI produces output that will be stored in Obsidian (notes, session summaries, PRDs):
+
+### Required Elements
+
+| Element | Pattern |
+|---|---|
+| Frontmatter | YAML block at top of every persisted document |
+| Headers | H1 for title, H2+ for sections |
+| Callouts | `> [!NOTE]` / `> [!WARNING]` / `> [!IMPORTANT]` |
+| Code blocks | Always fenced with language hint |
+| Diagrams | ASCII overview + collapsible Mermaid for complex flows |
+
+### Prohibited Patterns
+
+| Pattern | Problem | Use Instead |
+|---|---|---|
+| `> Simple blockquote` for callouts | Not rendered as callout in Obsidian | `> [!NOTE]` |
+| ` ``` ` without language | MD040 CI failure | ` ```text ` or ` ```bash ` |
+| `
` or raw HTML | Not portable | Blank line between paragraphs |
+| Skipping heading levels | Invalid structure | Use H2 → H3 → H4 in order |
+| Inline HTML tables | Not portable | Standard Markdown tables |
+
+---
+
+## Quick Reference
+
+```text
+Frontmatter: title, description, type, updated (required)
+Callouts: > [!NOTE/IMPORTANT/WARNING/TIP/DANGER]
+Collapsed: > [!NOTE]- (collapsed) / > [!NOTE]+ (expanded)
+Diagrams: ASCII overview + Mermaid block
+Code blocks: Always fenced + language hint (MD040)
+Headings: H1 once, no skipped levels, sentence case
+Links: Relative paths for cross-references
+SKILL.md: USE WHEN / MANDATORY / OPTIONAL / OUTPUT FORMAT
+ADR: Status / Context / Decision / Consequences / Implementation
+```
diff --git a/docs/architecture/SystemArchitecture.md b/docs/architecture/SystemArchitecture.md
index c381f035..ff015834 100644
--- a/docs/architecture/SystemArchitecture.md
+++ b/docs/architecture/SystemArchitecture.md
@@ -61,11 +61,13 @@ pai-opencode/
│ └── [40+ other skills]
├── docs/
│ ├── architecture/
-│ │ ├── adr/ ← Architecture Decision Records
-│ │ ├── SystemArchitecture.md ← THIS FILE
-│ │ ├── ToolReference.md ← All tools catalog
-│ │ ├── Configuration.md ← opencode.json + settings.json
-│ │ └── Troubleshooting.md ← Self-diagnostic checklist
+│ │ ├── adr/ ← Architecture Decision Records
+│ │ ├── SystemArchitecture.md ← THIS FILE
+│ │ ├── ToolReference.md ← All tools catalog
+│ │ ├── Configuration.md ← opencode.json + settings.json
+│ │ ├── Troubleshooting.md ← Self-diagnostic checklist
+│ │ ├── FormattingGuidelines.md ← Obsidian formatting patterns (WP-N8)
+│ │ └── AgentCapabilityMatrix.md ← Agent types, model tiers, tool access (WP-N8)
│ └── epic/ ← Project planning documents
│ ├── TODO-v3.0.md
│ ├── OPTIMIZED-PR-PLAN.md
@@ -184,6 +186,7 @@ flowchart TD
| ADR-015 | Compaction intelligence via `experimental.session.compacting` hook |
| ADR-017 | System self-awareness skill + reference docs (this WP) |
| ADR-018 | roborev code review integration + Biome CI pipeline |
+| — | WP-N8: Obsidian formatting guidelines + agent capability matrix |
Full ADR index: `docs/architecture/adr/README.md`
diff --git a/docs/epic/OPTIMIZED-PR-PLAN.md b/docs/epic/OPTIMIZED-PR-PLAN.md
index a62571a5..291bb94c 100644
--- a/docs/epic/OPTIMIZED-PR-PLAN.md
+++ b/docs/epic/OPTIMIZED-PR-PLAN.md
@@ -34,8 +34,8 @@ tags: [architecture, migration, v3.0, PR-strategy, native-transformation]
| **WP-N4** | LSP + Fork Documentation | #53 | ✅ **Merged** | AGENTS.md LSP + Fork sections, installer .env |
| **WP-N5** | Plan Update | #54 | ✅ **Merged** | Sync all planning docs to reflect N1-N4 complete |
| **WP-N6** | System Self-Awareness | #55 | ✅ **Merged** | OpenCodeSystem skill, 4 architecture reference docs, ADR-017 |
-| **WP-N7** | roborev + Biome CI | — | 🔄 **In Progress** | roborev plugin handler, CodeReview skill, GitHub Actions CI, ADR-018 |
-| **WP-N8** | Obsidian Formatting Guidelines | — | 📋 **Planned** | Formatting guidelines, agent capability matrix (split from WP-N7) |
+| **WP-N7** | roborev + Biome CI | #56 | ✅ **Merged** | roborev plugin handler, CodeReview skill, GitHub Actions CI, ADR-018 |
+| **WP-N8** | Obsidian Formatting Guidelines | — | 🔄 **In Progress** | Formatting guidelines, agent capability matrix (split from WP-N7) |
> [!NOTE]
> **2026-03-08 Live Audit:** WP-C scope significantly reduced after comparing repo against v4.0.3.
@@ -218,11 +218,11 @@ Current state (dev branch):
| Metric | 2026-03-08 | 2026-03-11 | **Current (2026-03-12)** |
|--------|------------|------------|--------------------------|
| Port WPs done | 8 ✅ | 9 ✅ (WP-E) | **9 ✅** |
-| Native WPs done | 0 | 4 ✅ (N1–N4) | **6 ✅ (N1–N6), N7 in progress** |
-| Open PRs | 2 (C, D) | 1 (#55) | **1 (WP-N7 — open, in progress)** |
-| Remaining native work | Not planned | WP-N6 in progress | **WP-N7 in progress, WP-N8 planned (Obsidian)** |
+| Native WPs done | 0 | 4 ✅ (N1–N4) | **7 ✅ (N1–N7), N8 in progress** |
+| Open PRs | 2 (C, D) | 1 (#55) | **1 (WP-N8 — open, in progress)** |
+| Remaining native work | Not planned | WP-N6 in progress | **WP-N8 in progress (Obsidian formatting)** |
-**Status:** Port complete. Native transformation: WP-N1 through WP-N6 merged. WP-N7 in progress (roborev + Biome CI). WP-N8 planned (Obsidian formatting).
+**Status:** Port complete. Native transformation: WP-N1 through WP-N7 merged (PR #50–#56). WP-N8 in progress (Obsidian formatting guidelines + agent capability matrix).
**Native transformation plan:** `docs/epic/EPIC-v3.0-OpenCode-Native.md`
**Full gap analysis:** `docs/epic/GAP-ANALYSIS-v3.0.md`
@@ -236,3 +236,4 @@ Current state (dev branch):
*Correction 3 (2026-03-11): WP-N1–N4 complete (PR #50–#53); WP-N5 plan sync in progress*
*Correction 4 (2026-03-12): WP-N5 merged (PR #54); WP-N6 in progress (PR #55 open); WP-N7 planned*
*Correction 5 (2026-03-12): WP-N6 merged (PR #55); WP-N7 in progress (roborev + Biome CI); WP-N8 planned (Obsidian — split from WP-N7)*
+*Correction 6 (2026-03-12): WP-N7 merged (PR #56); WP-N8 in progress (Obsidian formatting guidelines + agent capability matrix)*
diff --git a/docs/epic/TODO-v3.0.md b/docs/epic/TODO-v3.0.md
index 8860c3f9..9f743119 100644
--- a/docs/epic/TODO-v3.0.md
+++ b/docs/epic/TODO-v3.0.md
@@ -33,7 +33,8 @@ WP-N3 ████████████ 100% ✅ ← Algorithm Awareness com
WP-N4 ████████████ 100% ✅ ← LSP + Fork Documentation complete, PR #53
WP-N5 ████████████ 100% ✅ ← Plan Update complete, PR #54
WP-N6 ████████████ 100% ✅ ← System Self-Awareness, PR #55 merged
-WP-N7 ██████░░░░░░ 50% 🔄 ← roborev + Biome CI, PR open (in progress)
+WP-N7 ████████████ 100% ✅ ← roborev + Biome CI, PR #56 merged
+WP-N8 ████████░░░░ 80% 🔄 ← Obsidian formatting + agent matrix, PR open
```
> **The port is done. The native transformation starts with WP-N1.**
@@ -473,17 +474,19 @@ graph TD
---
-### WP-N8: Obsidian Formatting Guidelines — 📋 Planned
-**Branch:** TBD
-**Dependencies:** WP-N7
+### WP-N8: Obsidian Formatting Guidelines — 🔄 In Progress (PR open)
+**Branch:** `feature/wp-n8-obsidian-formatting`
+**Dependencies:** WP-N7 ✅
**Goal:** Obsidian formatting guidelines + agent capability matrix
-- [ ] Obsidian CLI integration guide (frontmatter, callouts, collapsible sections)
-- [ ] Formatting guidelines document for all PAI-OpenCode docs
-- [ ] Agent capability matrix (permissions, tools, MCP access per agent type)
+- [x] `docs/architecture/FormattingGuidelines.md` — frontmatter, callouts, Mermaid, code blocks, SKILL.md/ADR schemas
+- [x] `docs/architecture/AgentCapabilityMatrix.md` — all agent types, model tiers, tool/MCP access, decision rules
+- [x] `docs/architecture/SystemArchitecture.md` — updated directory layout + ADR table for WP-N8 docs
+- [x] `docs/epic/TODO-v3.0.md` — WP-N8 progress updated
+- [x] `docs/epic/OPTIMIZED-PR-PLAN.md` — WP-N8 status updated
---
*Created: 2026-03-06*
-*Updated: 2026-03-12 — WP-N1 through WP-N6 merged; WP-N7 in progress; WP-N8 planned (Obsidian split out from WP-N7)*
+*Updated: 2026-03-12 — WP-N1 through WP-N7 merged (PR #50–#56); WP-N8 in progress (Obsidian formatting + agent matrix)*
*Basis: GAP-ANALYSIS-v3.0.md + EPIC-v3.0-Synthesis-Architecture.md + EPIC-v3.0-OpenCode-Native.md*