ARI Engine Constellation
(FAQ · quick reference)
How the Attunement engine fits together — one orchestrator, the standing rules it loads, the skills and agents it routes to, the shared memory underneath, and the durable runtime that carries the same work unattended.
One orchestrator holds the arc; specialists do the work. attune opens every session — it loads the coherence layer (the standing rules) and your personal brief before anything happens, then routes what you asked for to the skill or agent that fits. Everything reads from one shared memory, so every surface — Claude Code, this web portal, or a durable job running overnight — sees the same truth.
The constellation
The seven bodies in the system and how they connect.
| Body | Role | Connects |
|---|---|---|
| attune | Orchestrator — the session-start ritual. Loads the rules and your brief, then routes. Run it first, always. | holds the whole map |
| Coherence rules · 14 | The standing law — checkpoints, routing, fidelity, engineering, cosmic-memory, versioning, lodestar, worktrack-logging… loaded before any action. |
attune loads them |
| Skills · ~54 | The user entry points — attune, onboard-person, run-council, search-sources, debrief-meeting, reconcile-decisions… (13 in the alignment bundle; ~54 across all bundles the engine serves). |
attune routes to them |
| Agents · 11 | Orchestration-only seats, never user-facing — profile-interviewer, transcript-distiller, decision-reconciler, repo-scaffolder… |
skills delegate to them |
| Cosmic-memory + Records | The portable brain — memory_*, decisions, tasks, index, people. ETag-protected, cross-client, no PII (that routes to secured SharePoint zones). |
everything remembers via it |
| Voice | The spoken surface — text_to_speech, synthesize_as, speech_to_text, clone_voice. |
attune speaks via it |
| Durable runtime · Vesta's seat | The unattended orchestrator — scheduled and event-driven work driving the same skills, under the same human gate. Its sessions survive restarts. | acts only through the approval gate |
Routing tracks
What you say → where it goes.
- “attune” / starting a session → attune — loads the rules + your brief, then routes.
- “onboard a person / business / client” → the onboard-* skills (which pull in
profile-interviewerand the scaffolder agents). - “run the council” / “debrief this meeting” → run-council / debrief-meeting (→
transcript-distiller). - “find sources on…” → search-sources.
- “reconcile the decisions” → reconcile-decisions (→
decision-reconciler). - unattended / scheduled work → the durable runtime (Vesta) — same skills, on a timer or an event.
Recommended journey
The path most sessions take.
- Open with
attune. It loads the coherence layer and your brief — nothing acts before this. - Say what you want; attune routes you to the skill that fits.
- Skills pull in agents for the heavy lifting — interviews, distillation, scaffolding.
- Anything worth keeping lands in cosmic-memory / records, visible on every surface.
- Outward actions — send, post, book — pause at the checkpoint gate for your explicit yes.
- For recurring work, the durable runtime carries the same skills unattended — still gated.
Shared context
What every part of the constellation reads from.
- Cosmic-memory + records on the MCP — one home, read by every surface; ETag-protected so concurrent writes never silently clobber; no PII (PII routes to secured SharePoint zones).
- The coherence rules — the same standing law loaded whether you're in Claude Code, this portal, or a durable job. One home, no drift.
Growing the constellation
- A new skill — drop it in a bundle; attune discovers it and starts routing to it.
- A new rule — it joins the coherence layer that attune loads at the top of every session.
- A new autonomous job — a durable orchestration beside the runtime (see
attunement-mcp/docs/runtime-jobs.md).
Quick-reference FAQ
The questions that come up most.
How do I start a session?›
Run attune. It's the session-start ritual — it loads the alignment (the coherence rules) and your personal brief before anything else happens, so every action that follows is on the rails. If you skip it, nothing knows who you are or which rules apply.
How do I run a turn on the durable runtime?›
POST to /api/agents/attunement-runtime/run with a JSON body {"message": "…", "thread_id": "…"}. The thread_id goes in the body (the response returns it in the x-ms-thread-id header, but a request only reads it from the body).
Sessions survive worker restarts and even move between instances — the state lives in the durable task hub, not process memory.
How do I schedule a recurring job?›
A TimerTrigger starter → an orchestration → activities. Keep the function names in consts (referenced from both the attribute and the call site), and make sure at least one compile-time durable function exists in the project — that's what makes the host ship the DurableTask extension. Full recipe: attunement-mcp/docs/runtime-jobs.md.
What happens when the runtime wants to send something?›
It pauses. Outward tools (mail, calendar, Teams, notify) don't execute autonomously — the call becomes a durable approval request and the session waits, costing no compute. A human approves, and only then does it run. Prose can't talk its way past the gate, and Graph writes execute under the approver's delegated token — so there's always a real, accountable person behind an outward action.
Why can't the runtime read my mail at 3am?›
By design. Microsoft Graph here is delegated-only — every call carries a signed-in user's token. An unattended job at 3am has no signed-in user, so there's no token to carry, and no legitimate flow invents one. (Unattended reads, like meeting transcripts, need a separate read-only, policy-fenced automation identity — a decision in flight, not a workaround.)
Where does memory live?›
In cosmic-memory and the records store on the MCP (Cosmos / Blob) — one home, read by every surface, so Claude Code, this portal, and durable jobs all see the same thing. Writes are ETag-protected against silent clobbering. PII never goes here; it routes to secured SharePoint zones.