Files
manual_slop/conductor/archive/per_ticket_model_20260306/plan.md
2026-03-08 13:29:53 -04:00

1.7 KiB

Implementation Plan: Per-Ticket Model Override (per_ticket_model_20260306)

Reference: Spec | Architecture Guide

Phase 1: Model Override Field

Focus: Add field to Ticket dataclass

  • Task 1.1: Initialize MMA Environment

  • Task 1.2: Add model_override to Ticket (245653c)

    • WHERE: src/models.py Ticket dataclass
    • WHAT: Add optional model override field
    • HOW:
      @dataclass
      class Ticket:
       # ... existing fields ...
       model_override: Optional[str] = None
      
  • Task 1.3: Update serialization (245653c)

    • WHERE: src/models.py Ticket.to_dict() and from_dict()
    • WHAT: Include model_override
    • HOW: Add field to dict conversion

Phase 2: Model Dropdown UI

Focus: Add model selection to ticket display

  • Task 2.1: Get available models list (63d1b04)

  • Task 2.2: Add dropdown to ticket UI (63d1b04)

  • Task 3.1: Color-code override tickets (63d1b04)

Phase 4: Execution Integration

Focus: Use override in worker execution

  • Task 4.1: Check override in ConductorEngine.run() (e20f8a1)
    • WHERE: src/multi_agent_conductor.py run()
    • WHAT: Use ticket.model_override if set
    • HOW:
      if ticket.model_override:
       model_name = ticket.model_override
      else:
       # Use existing escalation logic
       models = ["gemini-2.5-flash-lite", "gemini-2.5-flash", "gemini-3.1-pro-preview"]
       model_idx = min(ticket.retry_count, len(models) - 1)
       model_name = models[model_idx]
      

Phase 5: Testing

  • Task 5.1: Write unit tests
  • Task 5.2: Conductor - Phase Verification