What Is It?
Core Design Philosophy
Natural Language → Intent Detection → Action DispatchIt never guesses freely. Every action it can take is mapped to a pre-defined intent + resource contract, making it safe, predictable, and auditable.

The Intent System
| Resource | Actions |
|---|---|
| document | read, write, create, delete |
| project | read, create, update, delete |
| subproject | read, create, update |
| team | read, add_member, remove_member |
| route | navigate |
| chapter | read, edit |

How It Works — Step by Step
Step 1: Input Reception
Step 2: Intent Detection
- Intent: document:write
- Resource type: document
- Target: Q3 Report → Chapter: Introduction
- Operation: edit
Step 3: Context Resolution
- Identify the document by name match
- Locate the specific chapter within it
- Fetch the current chapter content and metadata (doc ID, chapter ID, version)
Step 4: Action Execution
Step 5: Structured Response
Json
{
"intent": "document:write",
"resource": "chapter",
"resourceId": "ch_intro_q3report",
"action": "edit",
"payload": {
"original": "...",
"edited": "...",
"diff": [...]
},
"status": "success"
}

Architecture Deep Dive
Intent Detector
Context Resolver
Action Router
Dual Handler Architecture
- Backend handler — owns all data mutations and reads. Communicates with the database and returns structured payloads.
- Frontend handler — emits JSON navigation/UI commands that the frontend framework interprets. The agent never directly manipulates the DOM or application state.
Why This Architecture Is Powerful
- Separation of concerns: The agent reasons, the frontend renders, the backend stores. Clean contracts between all three layers.
- Bounded behavior: The finite intent registry means the agent can never do something unexpected or unauthorized. The possibility space is mathematically closed.
- Full auditability: Every action maps to a logged intent + resourceId pair — complete traceability for compliance and debugging.
- Extensible by design: Adding a new capability means adding one intent to the registry and one handler. No changes to the core pipeline.
- Framework-agnostic: Navigation commands are pure JSON instructions — the agent works with any frontend framework that can consume them.
- No free-text ambiguity: The frontend never has to parse the agent's response. It's always a typed contract.