# fleet-roster.screen Full fleet list — every active specialist in one scannable view. Implements [brief L §L2c](./L-specialists-fleet.brief.md) + the "[⊞] see all" affordance from chat-home's fleet status strip. Voice: working. ## Layout (full-screen drawer) ``` ┌─────────────────────────────────────────────────┐ │ ◄ Chat ⚙ filters │ 56pt ├─────────────────────────────────────────────────┤ │ 11 specialists · 1 degraded · 0 retired │ roster summary │ [ Group: status ▼ ] │ group toggle ├─────────────────────────────────────────────────┤ │ │ │ ─── Working now ─── │ │ ⌖ bookings-tryst ● 0.82 47 today │ icon · status dot · trust · 24h count │ ⌖ triage ● 0.91 214 today │ │ ⌖ content-onlyfans ● 0.85 3 today │ │ ⌖ ai-copilot ● — 12 today │ │ │ │ ─── Idle ─── │ │ ⌖ strategist ○ 0.78 0 today │ │ ⌖ content-tiktok ○ 0.62 0 today │ │ │ │ ─── Degraded ─── │ │ ⌖ content-x ⚠ 0.71 2 today │ │ "rate-limited by X — retrying" │ │ │ │ ─── Draft-only ─── │ │ ⌖ content-social ◐ 0.58 8 drafts │ │ ⌖ prospect-resolver◐ 0.66 0 today │ │ │ └─────────────────────────────────────────────────┘ ``` ## Components | Component | Notes | |---|---| | Top bar | Back + filters cog. | | Summary | One-line count + status. | | Group toggle | Group by: status / phase / voice-lean / trust-tier. | | Row | Surface icon (per F §F5) · status dot (●=auto / ○=idle / ⚠=degraded / ◐=draft-only / ⊘=retired) · trust value · 24h action count. | | Degraded inline-text | One line of explainer; tap row → specialist-drawer.screen.md. | ## States 1. **Default** — full list grouped by current status (Working / Idle / Degraded / Draft-only / Retired). 2. **One or more degraded** — Degraded section gets a header chip "needs your attention." 3. **All retired / archived** — fallback empty: "No active specialists. New ones come online with new features." 4. **Filtered (via filter sheet)** — only matching rows; chip on top showing filter. 5. **Grouped by trust-tier** — sections become "High ≥0.7 / Mid 0.4–0.7 / Low <0.4." 6. **Grouped by voice-lean** — sections become "Hearth / Working / Plain / Full range." 7. **Reduced motion / Dynamic Type XXL** — rows stack; status dot replaced by inline word. ## Interactions - **Tap row** → specialist-drawer.screen.md for that specialist. - **Long-press row** → quick menu: "Talk directly," "View trust panel," "Demote," "Retire." - **Tap group toggle** → cycle groupings. - **Tap filter cog** → filter sheet (status, trust threshold, phase). - **Pull-to-refresh** → re-poll fleet state. ## Edge cases - **Specialist appearing in 0 groups** (e.g. trust unmeasurable) — bucket "Unknown" appears at bottom. - **All specialists degraded simultaneously** (catastrophic per brief M §M2b) — banner at top: "Backend degraded; status may be stale." - **VoiceOver** — sections announced as headings; row reads "name · status · trust · count." ## Related - [Brief L §L2c](./L-specialists-fleet.brief.md) — parent. - [specialist-drawer.screen.md](./specialist-drawer.screen.md) — row target. - [trust-panel.screen.md](./trust-panel.screen.md) — long-press option target. - [chat-home.screen.md](./chat-home.screen.md) — fleet status strip is the compact sibling. - [Brief M §M2a](./M-error-degraded-modes.brief.md) — degraded inline text rules. ## Out of scope - Bulk operations on specialists (defer). - Per-specialist activity sparklines (in trust-panel detail instead).