# NexusAgent - Corrected Architecture
**Date:** 2025-10-29
**Critical Correction:** Agents MUST stay in tool-specific folders
---
## The Constraint
**AI tools expect agents/commands/tools in THEIR specific folders:**
- OpenCode expects: `.opencode/agent/`, `.opencode/command/`
- Cursor expects: `.cursor/prompts/`, `.cursor/rules/`
- Claude expects: MCP servers in specific locations
**We CANNOT move agents to `.nexusagent/`**
---
## Corrected Structure
```
project/
├── .nexusagent/ # ONLY context & governance (shared)
│ ├── context/ # Domain knowledge (SHAREABLE)
│ │ ├── core/
│ │ ├── domain/
│ │ ├── processes/
│ │ └── standards/
│ │
│ └── governance/ # Data governance (SHAREABLE)
│ ├── metadata-index.json
│ ├── workflow-state.json
│ └── tmp/requests/
│
└── .opencode/ # OpenCode-specific (PRIMARY)
├── agent/ # MUST be here for OpenCode
│ ├── main-orchestrator.md
│ ├── context-provider.md
│ └── subagents/
│
└── command/ # MUST be here for OpenCode
├── workflow.md
└── plan-task.md
```
---
## How It Works
### 1. Shared Context & Governance
`.nexusagent/` contains ONLY:
- Context files (markdown) - any tool can read
- Governance data (JSON) - any tool can read
- No agents, no commands, no tool-specific stuff
### 2. Tool-Specific Integration
Each tool has its own folder with agents/commands that REFERENCE the shared context:
**OpenCode Agent Example:**
```xml
---
description: "Main orchestrator"
mode: primary
---
# Main Orchestrator
**Load shared context from:**
@../.nexusagent/context/core/essential-patterns.md
@../.nexusagent/context/domain/business-rules.md
**Load governance metadata from:**
Read: ../.nexusagent/governance/metadata-index.json
[Rest of agent logic here]
```
### 3. Installation Creates Both
```bash
~/nexus/scripts/install.sh --profile governance
# Creates:
# 1. .nexusagent/ (shared context + governance)
# 2. .opencode/ (OpenCode agents + commands)
# Agents reference: @../.nexusagent/context/
```
---
## Directory Structure (Corrected)
```
project/
├── .nexusagent/ # Universal shared resources
│ ├── nexus.json # Configuration
│ │
│ ├── context/ # SHAREABLE context
│ │ ├── core/
│ │ │ └── essential-patterns.md
│ │ ├── domain/
│ │ │ ├── business-rules.md
│ │ │ └── data-models.md
│ │ ├── processes/
│ │ │ └── standard-workflow.md
│ │ └── standards/
│ │ └── quality-criteria.md
│ │
│ └── governance/ # SHAREABLE governance
│ ├── metadata-index.json
│ ├── workflow-state.json
│ ├── tmp/
│ │ └── requests/
│ └── logs/
│
└── .opencode/ # OpenCode integration
├── agent/
│ ├── main-orchestrator.md # References @../.nexusagent/context/
│ ├── context-provider.md # References @../.nexusagent/context/
│ └── subagents/
│ ├── quality-validator.md # References @../.nexusagent/governance/
│ └── lifecycle-manager.md
│
└── command/
├── workflow.md # References @../.nexusagent/context/
└── validate.md
```
---
## What Goes Where
### `.nexusagent/` (Shared)
✅ Context files (markdown)
✅ Governance data (JSON)
✅ Metadata index
✅ Request files
✅ Workflow state
✅ Configuration
❌ Agents (they stay in tool folders)
❌ Commands (they stay in tool folders)
❌ Tool-specific anything
### `.opencode/` (Tool-Specific)
✅ Agents (OpenCode format)
✅ Commands (OpenCode format)
✅ References to @../.nexusagent/context/
✅ References to ../.nexusagent/governance/
### `.cursor/` (Optional, User-Created)
✅ Prompts (Cursor format)
✅ Rules (Cursor format)
✅ Can reference ../.nexusagent/context/
✅ Can reference ../.nexusagent/governance/
---
## Benefits
1. **Respects Tool Conventions**
- Each tool gets agents/commands in expected locations
- Tools work normally
2. **Shares What Can Be Shared**
- Context (markdown files) - universal
- Governance data (JSON) - universal
- No duplication
3. **Clean Separation**
- Shared resources in .nexusagent/
- Tool-specific in tool folders
- Clear boundaries
---
## Installation Process
```bash
# Install NexusAgent
~/nexus/scripts/install.sh --profile governance
# What it creates:
# 1. .nexusagent/context/ (shared context)
# 2. .nexusagent/governance/ (shared governance)
# 3. .opencode/agent/ (OpenCode agents)
# 4. .opencode/command/ (OpenCode commands)
# OpenCode agents reference:
# @../.nexusagent/context/
# ../.nexusagent/governance/
```
---
## Agent Template (Corrected)
```xml
---
description: "Main orchestrator with shared context"
mode: primary
temperature: 0.2
---
# Main Orchestrator
NexusAgent orchestration system with shared context from .nexusagent/
**Context files:**
@../.nexusagent/context/core/essential-patterns.md
@../.nexusagent/context/domain/business-rules.md
**Governance data:**
Can read: ../.nexusagent/governance/metadata-index.json
Primary orchestrator that uses shared context and governance
Orchestrate tasks using shared context from .nexusagent/
[Rest of agent logic]
```
---
## This Means We Build
### In Profile (e.g., `~/nexus/profiles/governance/`)
```
governance/
├── nexusagent/ # Goes to .nexusagent/
│ ├── context/
│ └── governance/
│
└── opencode/ # Goes to .opencode/
├── agent/
└── command/
```
### Installation Copies To
```
Profile: governance/nexusagent/ → Project: .nexusagent/
Profile: governance/opencode/ → Project: .opencode/
```
---
## Decision: Approved
This architecture:
✅ Respects tool conventions (agents stay in tool folders)
✅ Shares what can be shared (context + governance)
✅ Works with OpenCode (primary)
✅ Allows other tools to read shared resources (optional)
✅ No maintenance burden for multiple tools
**Ready to build with this corrected structure.**