Files
stack/docs/fleet/proposals/mosaic-platform-prd/PRD-jarvis-main-agent.md
Hermes Agent d1f69bfd37
Some checks failed
ci/woodpecker/push/ci Pipeline failed
docs(fleet): DRAFT PRD proposal — Jarvis HMI main agent, Matrix-first transport, webUI fleet control, permission relay, backlog providers, Hermes decommission
Ratification draft (Jason, 2026-07-09) extending NORTH_STAR.yaml with NS-10..NS-13
and workstreams J/K/W/P/Q/X. Written against origin/main's fleet suite (F4/F6
anchors, H2 profiles, native backlog per ASM-1). Homelab is the trial
environment (D12); USC/web1 adopts post-trial. See proposals/mosaic-platform-prd/README.md
for the full decision record D1-D12.

Not yet merged into NORTH_STAR.yaml — landing and card decomposition are the
homelab orchestrator's mission.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 14:19:05 -05:00

4.8 KiB
Raw Blame History

PRD — HMI Main Agent ("Jarvis") · Workstream J

Status: DRAFT for ratification · Source of truth once landed: NORTH_STAR.yaml goals J1J5 Depends on upstream: H2 (system-type profiles), A3a (card lifecycle), B1 (supervisor tick), F4/K1 (Matrix connector)

Mission

Every Mosaic system gets exactly one always-on human-machine-interface agent — default alias Jarvis, unit mosaic-agent@main.service — that owns the human relationship: conversation, idea development, schedule, email, tasks, knowledge. It delegates all engineering/research/ops work to the orchestrator (Mos, mosaic-agent@orchestrator.service) through the Mosaic Backlog, and reports fleet status to the user without ever interrupting the orchestrator.

This solves the observed failure mode: a busy orchestrator that can't respond, accumulates conversational context rot, and derails over time. Post-split, the orchestrator's context is execution-only.

Requirements

Persona & runtime (J1)

ID Requirement
J-R1 Jarvis is provisioned from the personal-assistant persona baseline via system-type profiles (H2/H3); alias, model tier, host, and channel are profile fields, not code.
J-R2 Default model tier Opus (ratified D11); the orchestrator's tier is independent.
J-R3 Jarvis survives reboot under systemd (mosaic-agent@main), participates in the fleet heartbeat protocol, and is counted in the supervisor's health floor.
J-R4 Persona customization is update-surviving per H4 (override layer wins on merge).

PA toolchain (J2)

ID Requirement
J-R5 Jarvis executes personal-assistant mutations directly in the user's workspace via the product API: tasks, events/calendar, knowledge entries, ideas, tickets. No delegation for PA ops (ratified D4).
J-R6 External PA integrations (email, external calendars, helpdesk) are workspace-scoped integrations with credentials in the product credential vault; actions flagged requires_approval route through the permission relay (workstream P).
J-R7 Until tenant-1 migration (X2) completes, Jarvis may read/write the jarvis-brain flat files as a transitional adapter; the adapter is deleted at X2 cutover.

Delegation contract (J3)

ID Requirement
J-R8 The Jarvis→Mos handoff is only via Mosaic Backlog cards: goal, acceptance criteria, priority, depends_on, advisory budget. Never via chat messages to the orchestrator.
J-R9 Jarvis translates conversation outcomes into card sets; ambiguity is resolved with the user before card creation — the orchestrator receives only decision-complete work.
J-R10 Card authorship is attributed (author=main-agent, ratified-by=user where applicable) for audit.
J-R11 Authority line: Mos holds all execution and merge authority (NS-4). Jarvis relays the user's GO/NO-GO gates as card state, and never acquires fleet mutation, merge, or dispatch rights.

Passive observability (J4)

ID Requirement
J-R12 Jarvis answers "what's the fleet doing" from read-only sources: heartbeat files, mosaic fleet ps JSON, backlog card states, CI status. Zero messages to the orchestrator for status.
J-R13 Jarvis proactively surfaces to the user: blocked cards, failed CI on user-ratified missions, approval requests pending, budget advisories. (PDA-friendly phrasing per SOUL.md.)

Channel (J5)

ID Requirement
J-R14 Jarvis's conversation lives in a dedicated Matrix room on the self-hosted homeserver via OrchestratorConnector(matrix) (K1). Matrix-first: no Discord channel is created for Jarvis (ratified D1).
J-R15 Multi-platform user reach arrives via mautrix bridges (K2); Jarvis's code path is Matrix-only.

Acceptance criteria

  1. AC-NS-8: user converses with Jarvis under full orchestrator load; latency unaffected; orchestrator receives zero conversational traffic.
  2. AC-NS-9: a conversationally-agreed mission round-trips (cards → drained → completed → reported by Jarvis) with no chat handoff.
  3. Kill the orchestrator mid-conversation: Jarvis conversation is unaffected; Jarvis reports the outage from heartbeat state.
  4. !sys-equivalent admin verbs work in the Matrix room (status/logs/clear/restart of the main agent).

Non-goals

  • Jarvis executing code/infra changes (that is Mos + fleet).
  • Horizontal sharding of the main agent (rejected in the Matrix charter: split-brain).
  • Per-workspace fleets (post-MVP per ASM-6).

Open items (for Mos's planner)

  • Context hygiene: Jarvis's durable memory is the workspace (tasks/knowledge/ideas); define its resume protocol (KICKSTART-equivalent) so /clear is cheap. ASSUMPTION: mirror the MOS-KICKSTART two-file pattern until the product grows a native session-resume feature.
  • Reconcile the old apps/api matrix-bot-sdk workspace bridge with the F4 connector design (one Matrix stack, not two).