# anxy/rouvr architecture

> Architecture diagram of the GitHub repository anxy/rouvr, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/anxy/rouvr
- Repository: https://github.com/anxy/rouvr

## Overview

Rouvr is an operator-controlled autonomous-work product. Its lite workflow takes a chat request, turns it into a plan for approval, seals acceptance criteria, dispatches work, and records execution evidence and independent review in the ledger. The web workspace exposes chat, planning, task execution, projects, and knowledge; the README describes the stage relationships, while sampled source excerpts are limited, so the graph uses those documented relationships rather than inferring internal calls. The broader AIX and Temporal stack is outside the documented lite loop.

Main entry points: [`web/src/components/workspace/PipelineStrip.tsx`](https://github.com/anxy/rouvr/blob/rouvr-development/web/src/components/workspace/PipelineStrip.tsx) (Web workspace), [`ledger/app.py`](https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py) (Tasks and receipts), [`workers/sdk-worker/worker.mjs`](https://github.com/anxy/rouvr/blob/rouvr-development/workers/sdk-worker/worker.mjs) (Worker), [`web/src/app/api/projects/route.ts`](https://github.com/anxy/rouvr/blob/rouvr-development/web/src/app/api/projects/route.ts) (Projects)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Operator workspace"]
  node_workspace["Web workspace<br/>[PipelineStrip.tsx]"]
  node_projects["Projects<br/>[route.ts]"]
  node_tasks["Task views<br/>[route.ts]"]
  node_knowledge["Knowledge<br/>[route.ts]"]
end

subgraph group_planning["Plan and approval"]
  node_chat["Chat intake<br/>[app.py]"]
  node_plan["Plan thread<br/>[app.py]"]
  node_approval["Approve and seal<br/>[app.py]"]
end

subgraph group_ledger["Ledger and governance"]
  node_ledger[("Tasks and receipts<br/>[app.py]")]
end

subgraph group_execution["Execution and review"]
  node_dispatch["Dispatch and observe<br/>[app.py]"]
  node_worker["Worker<br/>[worker.mjs]"]
  node_review["Independent review<br/>[app.py]"]
end

node_owner(("Owner"))
node_model{{"Model provider"}}

node_owner -->|"submits work"| node_workspace
node_workspace -->|"sends chat"| node_chat
node_chat -->|"creates plan"| node_plan
node_plan -->|"offers approval"| node_approval
node_approval -->|"seals tasks"| node_ledger
node_ledger -->|"provides tasks"| node_dispatch
node_dispatch -->|"assigns work"| node_worker
node_worker -->|"records evidence"| node_ledger
node_ledger -->|"feeds review"| node_review
node_review -->|"records verdict"| node_ledger
node_workspace -->|"manages projects"| node_projects
node_workspace -->|"views tasks"| node_tasks
node_workspace -->|"manages knowledge"| node_knowledge
node_model -.->|"authors plans"| node_chat
node_model -.->|"seals suites"| node_approval

click node_workspace "https://github.com/anxy/rouvr/blob/rouvr-development/web/src/components/workspace/PipelineStrip.tsx"
click node_chat "https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py"
click node_plan "https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py"
click node_approval "https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py"
click node_ledger "https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py"
click node_dispatch "https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py"
click node_worker "https://github.com/anxy/rouvr/blob/rouvr-development/workers/sdk-worker/worker.mjs"
click node_review "https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py"
click node_projects "https://github.com/anxy/rouvr/blob/rouvr-development/web/src/app/api/projects/route.ts"
click node_tasks "https://github.com/anxy/rouvr/blob/rouvr-development/web/src/app/api/tasks/route.ts"
click node_knowledge "https://github.com/anxy/rouvr/blob/rouvr-development/web/src/app/api/knowledge/search/route.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_workspace,node_projects,node_tasks,node_knowledge toneBlue
class node_chat,node_plan,node_approval toneAmber
class node_ledger toneMint
class node_dispatch,node_worker,node_review toneRose
class node_owner,node_model toneIndigo
```

## Components

### Operator workspace

- [Web workspace](https://github.com/anxy/rouvr/blob/rouvr-development/web/src/components/workspace/PipelineStrip.tsx): `web/src/components/workspace/PipelineStrip.tsx`
- [Projects](https://github.com/anxy/rouvr/blob/rouvr-development/web/src/app/api/projects/route.ts): `web/src/app/api/projects/route.ts`
- [Task views](https://github.com/anxy/rouvr/blob/rouvr-development/web/src/app/api/tasks/route.ts): `web/src/app/api/tasks/route.ts`
- [Knowledge](https://github.com/anxy/rouvr/blob/rouvr-development/web/src/app/api/knowledge/search/route.ts): `web/src/app/api/knowledge/search/route.ts`

### Plan and approval

- [Chat intake](https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py): `ledger/app.py`
- [Plan thread](https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py): `ledger/app.py`
- [Approve and seal](https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py): `ledger/app.py`

### Ledger and governance

- [Tasks and receipts](https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py): `ledger/app.py`

### Execution and review

- [Dispatch and observe](https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py): `ledger/app.py`
- [Worker](https://github.com/anxy/rouvr/blob/rouvr-development/workers/sdk-worker/worker.mjs): `workers/sdk-worker/worker.mjs`
- [Independent review](https://github.com/anxy/rouvr/blob/rouvr-development/ledger/app.py): `ledger/app.py`

### Other components

- **Owner**
- **Model provider**

## Connections

- Owner → Web workspace: submits work (evidence: `README.md`)
- Web workspace → Chat intake: sends chat (evidence: `README.md`)
- Chat intake → Plan thread: creates plan (evidence: `README.md`)
- Plan thread → Approve and seal: offers approval (evidence: `README.md`)
- Approve and seal → Tasks and receipts: seals tasks (evidence: `README.md`)
- Tasks and receipts → Dispatch and observe: provides tasks (evidence: `README.md`)
- Dispatch and observe → Worker: assigns work (evidence: `README.md`)
- Worker → Tasks and receipts: records evidence (evidence: `README.md`)
- Tasks and receipts → Independent review: feeds review (evidence: `README.md`)
- Independent review → Tasks and receipts: records verdict (evidence: `README.md`)
- Web workspace → Projects: manages projects (evidence: `README.md`)
- Web workspace → Task views: views tasks (evidence: `README.md`)
- Web workspace → Knowledge: manages knowledge (evidence: `README.md`)
- Model provider → Chat intake: authors plans (evidence: `README.md`)
- Model provider → Approve and seal: seals suites (evidence: `README.md`)
