# Mosaic system-type profile — SCHEMA REFERENCE # --------------------------------------------------------------------------- # A profile is a DECLARATIVE mapping from a "system type" to a persona roster # plus its org topology. Profiles are DATA: drop a new .yaml here and the # loader/CLI pick it up with no code change (North Star NS-9 / AC-NS-6). # # Every persona referenced below (lead, floor[], roster[].class, roster[].reports_to) # MUST resolve to a real persona in the library. The loader validates this against # the role contracts in ../roles/*.md (see LIBRARY.md for the grouped index). # # Schema (this file documents every key; other profiles omit the comments): # # id: kebab-case system-type id — MUST equal the filename stem. # title: human-readable name. # description: one paragraph — what this system does. # lead: persona class that coordinates the roster (the orchestrating seat). # floor: persistent minimum roster that must stay staffed (list of classes). # roster: the full default roster. Each entry: # - class: persona class (MUST resolve to a role file). # reports_to: optional — the class this seat reports to # (encodes org topology). Omit for the lead. # MUST resolve to a class present in this roster. # multiplicity: optional int (default 1) — e.g. 2 coders. # notes: optional free text. # --------------------------------------------------------------------------- id: software-delivery title: Software Delivery description: >- The engineering fleet that turns ratified objectives into shipped, reviewed, merged code. The lead (orchestrator) runs the supervisor loop and dispatches ready work; it hands goal-decomposition to the planner, which plans phased FRs into a depends_on DAG, decomposition splits them into one-PR-each cards, coders execute to green CI, and review / security-review / site-tester / merge-gate guard the merge. This mirrors today's coding fleet. # NOTE: the lead seat is the dedicated "orchestrator" — the always-on coordinator # that runs the supervisor tick, dispatches ready work, and routes PRs to the # merge-gate while holding only lean coordination state. The planner is now a # distinct seat (heavy goal-decomposition context) that reports to the # orchestrator. The two-agent floor is orchestrator + enhancer. lead: orchestrator floor: - orchestrator - enhancer roster: - class: orchestrator - class: board reports_to: orchestrator - class: planner reports_to: orchestrator - class: decomposition reports_to: planner - class: code reports_to: decomposition multiplicity: 2 - class: review reports_to: orchestrator - class: security-review reports_to: review - class: site-tester reports_to: review - class: documentation reports_to: orchestrator - class: merge-gate reports_to: orchestrator - class: rebase reports_to: merge-gate - class: operator reports_to: orchestrator - class: session-review reports_to: orchestrator - class: enhancer reports_to: orchestrator notes: >- Two-agent floor (orchestrator + enhancer) is always staffed; every other seat is added on demand.