Files
stack/docs/fleet
fred 2719ec295c
ci/woodpecker/pr/ci Pipeline was successful
docs(fleet): tier the north star, declare the tier-0 operator surface
Add a capability tier orthogonal to phase. `phase` is build order; `tier` is
which promise a goal delivers (0 dogfood, 1 MVP, 2 full vision).

- AC-NS-0: a tier-0 exit test that can fail. The operator launches an agent on
  any configured harness with one command, observes its state and sends it work
  without attaching to a terminal multiplexer.
- `tier` on every goal and success criterion. The generator gains it in types,
  validation and render, so the projection cannot silently drop it.
- NS-10: an adoption is not complete until the mechanism it replaces is removed.
- Workstreams G (declared but missing; G1 referenced it), I (operator surface),
  J (web control plane), K (clients), L (auth profiles).
- Goals A5 and I1-I9 seeded at tier 0, dependency ordered.
- docs/fleet/north-star.md renamed FLEET-DOCTRINE.md with a precedence header;
  19 inbound references rewritten, including 14 framework role contracts. The
  old name sat one character from NORTH_STAR.md.
- docs/TASKS.md, docs/federation/TASKS.md and docs/fleet/TASKS.md carry
  superseded headers. docs/native-kanban-sot/TASKS.md is corrected instead: it
  advertised a blocker that was not real.
- Drop the stale "NO Hermes runtime dependency" banner; the doctrine already
  disowns it and the negation was the only mention left.

Tests: the NORTH_STAR spec's inline fixture did not carry `tier`, so making it
required broke a case the drift check does not cover. Fixture updated. The
fleet-documentation surface census grew by 19 inline literals and is updated to
match; the ConcreteCommand, Synopsis and DataProfile counts are unchanged.

Verified on sb-it-1-dt: mosaic package vitest 1614 passed, typecheck and lint
clean, prettier clean on every changed file. Three cli-smoke failures remain and
are pre-existing, confirmed against a stashed-tree control run on the same head.
2026-08-20 17:30:54 -05:00
..

Fleet Configuration Management

This book documents the local roster-v2 desired-state control plane delivered under issue #758. The normative requirements are the FCM section of the repository PRD, not the older fleet-suite or observability planning pages.

Authority boundary

<MOSAIC_HOME>/fleet/roster.yaml is the sole writable desired-state authority for local fleet membership, launch policy, and persisted lifecycle. Generated environment files, systemd enablement, tmux sessions, heartbeat files, and status output are derived or observed. Rebuild projections from the roster; never edit them as desired state.

This control plane is local tmux/systemd only. Remote/SSH entries and connectors are inventory, not reconciliation targets. Arbitrary commands, channels, secret references, gateway catalog convergence, and UI configuration storage are outside this workstream. mos-comms is temporary transport glue, not permanent fleet architecture.

Choose the right workflow

  1. Need to inspect intent? Read the roster and use mosaic fleet get; see desired versus observed state.
  2. Need to inspect reality? Use status or doctor; use verify for a strict non-zero drift/ownership gate. These commands do not repair anything.
  3. Need to change membership or persisted policy? Use generation-guarded plan, create, update, or delete; see safe CRUD.
  4. Need a one-time runtime action? Use start, stop, or restart. These do not change persisted desired state.
  5. Need convergence? Review apply --dry-run, resolve blockers, then use apply with the same current generation; see reconcile and recover.
  6. Need v1 migration evidence? Use preview only. Cutover, canary, and rollback remain held for FCM-M4-002.
  7. Need the gateway-backed agent catalog? That is the separate mosaic agent surface, not local fleet desired state.

Concepts

Operator how-to

Operations and recovery

Reference and migration

Acceptance evidence and holds

The canonical publishing source remains this repository. This card does not publish externally, run a migration, operate a live fleet, or close parent issue #758.