Multi-Agent Jorvis Development Architecture
Multi-Agent Jorvis Development Architecture
Version: 2.0 Last Updated: 2026-03-06 Status: Active coordination and onboarding model
Operational state authority:
docs/handoff/HANDOFF_TO_NEXT_AGENT.mddocs/handoff/CHECKPOINT.mddocs/agent_ops/TASK_BOARD.mddocs/agent_ops/GO_NO_GO.md- project-local AIM KG (
location="project",context="jorvis")
Use this document for role boundaries, coordination flow, and memory/onboarding architecture. Do not use it as a live runtime changelog.
For OpenClaw-specific control, role, and security boundaries, use:
docs/architecture/OPENCLAW_CONTROL_PLANE.mddocs/architecture/ROLE_AND_CAPABILITY_MATRIX.mddocs/security/OPENCLAW_SECURITY_MODEL.md
Current Role Model
| Role | Primary use | Default mode |
|---|---|---|
| Architect | Stage 0 specs, sequencing, ADRs | Read/write planning |
| Executor | Implementation, tests, deploy work | Execution |
| Gatekeeper | Review, GO/NO-GO, merge constraints | Review |
| Tester | E2E and regression verification | Read-only or limited test execution |
| Universal | Safe read-only bootstrap across roles | Read-only until explicitly assigned |
| Coordinator | Optional legacy orchestration role | Coordination only |
Canonical Coordination Surfaces
Shared Memory
- Canonical store:
.aim/memory-jorvis.jsonl - Required access mode:
location="project",context="jorvis" - Current truth belongs in
*_Currententities. - Dated entities are historical snapshots and must not be treated as current truth without revalidation.
Shared Documents
| Surface | Purpose |
|---|---|
docs/handoff/HANDOFF_TO_NEXT_AGENT.md | Human-readable current state |
docs/handoff/CHECKPOINT.md | Script-friendly snapshot |
docs/agent_ops/TASK_BOARD.md | Task SSOT |
docs/agent_ops/GO_NO_GO.md | Approval SSOT |
docs/agent_ops/prompts/ | Role onboarding prompts |
docs/handoff/templates/ | Role-specific handoff templates |
Onboarding Flow
graph TB
A[Agent starts] --> B[Verify project-local KG]
B --> C[Read HANDOFF_TO_NEXT_AGENT]
C --> D[Read TASK_BOARD and GO_NO_GO]
D --> E[Read role prompt]
E --> F{Assigned role?}
F -->|Architect| G[@Architect]
F -->|Executor| H[@Executor]
F -->|Gatekeeper| I[@Gatekeeper]
F -->|Tester| J[@Tester]
F -->|Unknown / mixed| K[@Universal]
K --> L[Explicit role assignment]
Mandatory Session Start
- Verify project-local memory with
aim_memory_list_stores(). - Read
HANDOFF_TO_NEXT_AGENT.md. - Read
TASK_BOARD.md. - Read
GO_NO_GO.md. - Read the matching role prompt.
- Only then decide whether the task is planning, implementation, review, or testing.
Worktree Guardrail
If an agent starts from .claude/worktrees/*:
- the memory server must still resolve the canonical project store at
<LOCAL_USER_HOME>/Projects/Jorvis/.aim/ - worktree
.aim/memory-jorvis.jsonland.aim/memory.jsonlshould bridge the canonical store - repo-root
MEMORY.mdis the canonical bootstrap note - the checked-out repo-root
MEMORY.mdshould be present in the worktree and treated as the canonical bootstrap note there
Do not silently fall back to global memory.
Execution Model
graph LR
U[User] --> V[@Universal or @Coordinator]
V --> A[@Architect]
V --> E[@Executor]
V --> G[@Gatekeeper]
V --> T[@Tester]
A --> S[Stage 0 spec / sequencing]
E --> C[Code, tests, deploy work]
G --> R[Review, GO/NO-GO]
T --> Q[E2E / regression evidence]
S --> M[Update KG + SSOT]
C --> M
R --> M
Q --> M
Role Boundaries
| Role | Must do | Must not do |
|---|---|---|
| Architect | Define bounded next step and acceptance criteria | Hide major scope in a small fix |
| Executor | Implement only approved focused scope | Self-merge or self-gate |
| Gatekeeper | Review facts, evidence, and CI status | Rewrite implementation during review |
| Tester | Produce evidence-first validation | Blend testing with undocumented fixes |
| Universal | Build accurate current-state picture first | Start coding before role assignment |
| Coordinator | Route and synchronize work | Quietly become the implementer |
Memory and Handoff Rules
Before closing a non-trivial session:
- Update project-local KG with verified facts or decisions.
- Update SSOT docs if current-state truth changed.
- Add OUTBOX evidence for completed work.
- Keep
*_Currententities compact and current-focused. - Keep historical lineage in dated entities instead of bloating current entities.
Current Architectural Direction
- Keep Open WebUI bridge logic thin where possible.
- Move canonical policy/control truth into Jorvis-side typed surfaces.
- Treat OpenClaw expansion as security-first work:
- contract normalization
- typed control/capability surfaces
- broader operator features
- multi-agent and channel expansion later
OpenClaw should be treated as an assistant/copilot layer, not as a gatekeeper or release authority.
OpenClaw as Assistant / Copilot Layer
OpenClaw is not one of the human governance roles. It is a product/runtime assistant layer with narrower authority.
Current intended role split:
- User Assistant
- help/reference
- Jorvis explainer
- personal/work memory assistance
- Admin Observer
- read-only monitoring context
- recommendations
- Admin Planner (partial current mode)
- plan-oriented guidance
- no guarded execution gateway yet
- Future modes
- approval-gated operator actions
OpenClaw must not be treated as:
- gatekeeper
- merge authority
- release authority
- implicit coordinator for human roles
Non-Goals
- This document does not replace runtime verification.
- This document does not grant merge or release authority.
- This document does not make old open PRs active by default.