Session C brief — Capability + design/image routing & viewer (FLT-19)¶
Branch wt/WT-0026/FLT-19-capability-routing off master 0ebe335. Worktree isolation.
Goal¶
Route NON-CLI capabilities (design/image generation) and make their output viewable on ANY device.
Distinct from the run_agent CLI balancer (that's #18, usage-governor). These are MCP tools
(figma, stitch, claude-design), NOT the claude|codex|gemini|grok run_agent enum.
Rules (user-directed, verbatim intent)¶
- Default AUTO ~95% of the time — for both capability routing AND the normal model plan.
- Explicit override must exist: pick a specific model AND a specific tier on request.
- figma + stitch => auto OR direct model call, default auto.
- claude-design => MUST be claude (Claude's design output only exists inside Claude — nothing to route, no council needed).
- Tier ladder per model — encode CLAUDE.md's council-approved escalation ladder (Haiku mechanical/bounded, Sonnet standard, ceiling for architecture/security/ambiguous, strike-based escalation). TODAY NOTHING ENFORCES IT: ModelWeights.cs is cost-weighting only, AgyPolicy.cs hardcodes "sonnet". This is the auto-tier brain.
- Local model selection (ollama kind exists in HarnessRegistry) as a routing target.
Design/image VIEWER (MANDATORY — user emphasized "and the images")¶
The harness must GENERATE via these tools AND let the user VIEW the output regardless of device: - HTML/SVG design => open in a new browser window/tab (the cockpit already renders in a WebView2/browser — a new-window open works cross-device: phone, pixel-fold, desktop, AND the VS/VSCode/Antigravity embedded cockpits). - Binary/image asset => download to the device. - Applies to figma export, claude-design HTML, stitch output, and image generation. - Local image/video generation = wire when available (user: "could be for later"), same view/download contract. - So the command UI (session B) needs a "generate design/image" action that: routes (auto default, explicit model/tier override), returns a viewable ARTIFACT + a VIEW PATH, surfaces it in the cockpit. Coordinate the artifact/view-path contract with session B.
Also surface¶
Per-model quota ESTIMATES in the cockpit (QuotaReader exists but is stubbed pending FLT-15).
Guardrails¶
C#-first. Council the routing design (auto-vs-explicit precedence, tier-ladder encoding).
/council-code-review before commit+push. Verify by artifact. Do NOT auto-loosen tiers on
unverified signals. Coordinate the artifact contract with session B (fmc-wt-ui) so the viewer and
the generator agree.