Files
stack/docs/fleet/proposals/mosaic-platform-prd/north-star-additions.yaml
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

208 lines
7.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Proposed additions to docs/fleet/NORTH_STAR.yaml — DRAFT (Jason ratification pending, 2026-07-09)
#
# Merge these entries into the existing NORTH_STAR.yaml sections, then regenerate
# NORTH_STAR.md via renderNorthStarMarkdown (packages/mosaic/src/commands/fleet.ts).
# Ids chosen to avoid collision with existing workstreams AH and goals.
standing_objectives:
- id: NS-10
text: >-
Every Mosaic system runs exactly one always-on HMI main agent (default
alias "Jarvis", unit mosaic-agent@main) that owns all human conversation
and user-level personal-assistant work (ideas, schedule, email, tasks,
knowledge) and delegates engineering/research/ops missions to the
orchestrator as Mosaic Backlog cards; the main agent never executes fleet
work itself and never interrupts the orchestrator for status.
- id: NS-11
text: >-
Irreversible or externally-visible agent actions pass a human-in-the-loop
permission relay (approve/deny from chat or webUI) governed by
per-capability guard rails; prepare freely, execute with approval.
- id: NS-12
text: >-
The Mosaic Backlog remains the sole backlog of record; external providers
(Gitea, GitHub, local kanban, …) attach as bidirectional sync adapters,
never as the record.
- id: NS-13
text: >-
Hermes is fully decommissioned once Mosaic reaches verified parity on
transport (Matrix connector), task board (native backlog + webUI),
permission relay, and multi-platform reach (mautrix bridges).
success_criteria:
- id: AC-NS-8
text: >-
A user converses with the main agent in its Matrix room while the
orchestrator is under full load; main-agent response latency is unaffected
and the orchestrator receives zero conversational traffic.
- id: AC-NS-9
text: >-
A mission agreed in the main-agent conversation appears as a backlog card
set with acceptance criteria, is drained by the orchestrator without
chat-level handoff, and its completion is reported back to the user by the
main agent from board/heartbeat state alone.
- id: AC-NS-10
text: >-
An action listed as requires_approval executes only after an explicit
human approve from Matrix or webUI; deny and timeout paths leave the
system unchanged and audited.
- id: AC-NS-11
text: >-
With Hermes stopped, no fleet or main-agent capability regresses
(transport, board, approvals, multi-platform reach all served by Mosaic).
workstreams:
- id: J
title: HMI main agent ("Jarvis") — persona, PA toolchain, delegation contract
- id: K
title: Connectors & multi-platform reach — F4 Matrix implementation + mautrix bridges
- id: W
title: webUI fleet control — tmux pop-in, top-down view (realizes F6)
- id: P
title: Permission relay — capability guard rails + human approval queue
- id: Q
title: Backlog provider sync adapters — Gitea/GitHub/local kanban
- id: X
title: Hermes decommission & tenant-1 migration
goals:
# J — HMI main agent
- id: J1
title: Main-agent persona + profile — instantiate personal-assistant system type as mosaic-agent@main (alias Jarvis), model tier a profile field (Opus default)
phase: 1
priority: must-have
depends_on: [H2]
- id: J2
title: PA toolchain — email, calendar, tasks, knowledge, tickets executed directly against the product API in the user's workspace
phase: 1
priority: must-have
depends_on: [J1]
- id: J3
title: Delegation contract — main agent authors mission cards (goal, acceptance criteria, budget advisory) onto the backlog; orchestrator drains; no chat-level handoff
phase: 1
priority: must-have
depends_on: [J1, A3a]
- id: J4
title: Passive fleet observability — main agent answers status from heartbeats, fleet ps JSON, and board state; zero orchestrator interrupts
phase: 1
priority: must-have
depends_on: [J1, B1]
- id: J5
title: Main-agent Matrix room via OrchestratorConnector(matrix)
phase: 2
priority: must-have
depends_on: [J1, K1]
# K — connectors & reach (extends f4-matrix-connector.md)
- id: K1
title: Matrix connector implementation — CS-API client factory per f4 Phase 2, self-hosted homeserver
phase: 2
priority: must-have
depends_on: []
- id: K2
title: mautrix bridge deployment (telegram/signal/whatsapp/slack/discord) as GitOps-managed infra; agents speak only Matrix
phase: 3
priority: should-have
depends_on: [K1]
# W — webUI fleet control (realizes F6)
- id: W1
title: Gateway pty/tmux attach service — read-only watch and interactive butt-in verbs, workspace-scoped authz, audit log
phase: 2
priority: must-have
depends_on: []
- id: W2
title: xterm.js session view in apps/web wired to W1 (watch + butt-in)
phase: 2
priority: must-have
depends_on: [W1]
- id: W3
title: Top-down fleet dashboard — roster, heartbeats, cards in flight, advisory spend, PAUSE control
phase: 2
priority: must-have
depends_on: [B1]
# P — permission relay
- id: P1
title: Capability guard-rails engine — resource:action grants, permission levels, requires_approval list per integration
phase: 2
priority: must-have
depends_on: []
- id: P2
title: Approval queue + approve/deny from the Matrix room (timeout = deny; full audit)
phase: 2
priority: must-have
depends_on: [P1, K1]
- id: P3
title: Approval surface in webUI (pending queue, one-click approve/deny)
phase: 3
priority: should-have
depends_on: [P1, W3]
# Q — backlog provider sync adapters
- id: Q1
title: Provider adapter interface + Gitea adapter (bidirectional card↔issue sync; native backlog stays record)
phase: 2
priority: must-have
depends_on: [A2]
- id: Q2
title: GitHub adapter
phase: 3
priority: should-have
depends_on: [Q1]
- id: Q3
title: Local kanban surface — webUI board view over the native backlog (no external provider required)
phase: 2
priority: should-have
depends_on: [A2, W3]
# X — Hermes decommission & tenant-1 migration
- id: X1
title: Hermes parity checklist + cutover plan (transport, board, approvals, reach) with rollback
phase: 3
priority: must-have
depends_on: [K1, P2, Q1]
- id: X2
title: Tenant-1 migration — jarvis-brain flat files (projects, tasks, events, tickets, knowledge) into the Jason workspace; brain.py retires
phase: 3
priority: must-have
depends_on: [J2]
- id: X3
title: Hermes decommission — stop and remove Hermes services after AC-NS-11 verified
phase: 4
priority: must-have
depends_on: [X1, X2, K2]
assumptions:
- id: ASM-5
vetoable: true
text: >-
The main agent initially runs on the homelab fleet host alongside the
orchestrator under mosaic-agent@main.service; host placement is a config
field, not a code assumption.
- id: ASM-6
vetoable: true
text: >-
Product multi-tenancy at MVP means self-hosted installs with multiple
workspaces per install (Authentik OIDC); per-tenant isolated FLEETS
(agents per workspace) are post-MVP.
- id: ASM-7
vetoable: true
text: >-
mautrix bridges are deployed as infrastructure (GitOps), not as Mosaic
application code; Mosaic's only conversational protocol is Matrix.
- id: ASM-8
vetoable: true
text: >-
During migration (before X3), Hermes remains running untouched; no
Hermes-dependent capability is removed until its Mosaic replacement is
verified in production.
- id: ASM-9
vetoable: true
text: >-
The trial environment is the homelab fleet deployment (D12). Environments
running the primitive-era implementation (USC/web1: mos-claude.service,
Hermes, jarvis-brain boards) are untouched during the trial; workstream X
executes there as a post-trial adoption phase, environment by
environment.