Skip to content

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.