Add four config-type preset rosters (general, coding, research, hybrid) with exactly one orchestrator each using the claude runtime; worker agents use pi with model_hint openai-codex/gpt-5.5:high. Extend `mosaic fleet init` with a readline-based interactive wizard (AI-free) that prompts for preset selection when no --profile is given and stdin is a TTY; falls back to "general" with a note when non-interactive. Export parseInitProfile, resolvePresetFilename, countOrchestrators, FLEET_PROFILES, and FleetProfile for testability. Add 24 new tests covering preset shape, sanitization, wizard TTY/non-TTY paths, and R8 idempotency. All gates green: test (428/428), typecheck, lint, prettier, and the sanitization gate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RMoEx7hfdFGjUiCHuN1RRi
Mosaic Fleet Rosters
The local fleet canary uses a product-owned roster schema with site-owned roster files. Product examples live here; active local rosters should live outside the package, normally at:
~/.config/mosaic/fleet/roster.yaml
The default tmux socket is mosaic-factory so fleet commands do not touch the
default tmux server.
Examples
examples/minimal.yamlstarts one local canary slot.examples/local-canary.yamlstarts a small generic dogfood fleet.
Initialize a roster:
mosaic fleet init --profile minimal --write
mosaic fleet install-systemd
mosaic fleet start
mosaic fleet verify