Some checks failed
ci/woodpecker/push/ci Pipeline failed
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>
208 lines
7.9 KiB
YAML
208 lines
7.9 KiB
YAML
# 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 A–H 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.
|