Goal
Close the hardcoded-model gap in antagonistic review and Cindi content review. Add a "Specialist Agents" settings tab so operators can tune these models per project.
Current state (from audit 2026-04-15)
Hardcoded model strings block operator override at:
apps/server/src/services/antagonistic-review-service.ts:60 — adapter init (sonnet)
apps/server/src/services/antagonistic-review-service.ts:269 — Ava review (opus)
apps/server/src/services/antagonistic-review-service.ts:384 — Jon review (sonnet)
apps/server/src/services/antagonistic-review-service.ts:710,815 — resolution/fallback (haiku)
apps/server/src/services/lead-engineer-gtm-review-processor.ts:46 — Cindi review (sonnet)
Work
- Extend
PhaseModelConfig in libs/types/src/agent-settings.ts with:
antagonisticReviewModels: { adapter, ava, jon, resolution } (all alias strings)
cindiReviewModel
- Add sensible defaults in
DEFAULT_PHASE_MODELS matching current behavior (no regression on default install)
- Replace each hardcoded site above with
getPhaseModelWithOverrides(settings, '<key>')
- Add a "Specialist Agents" tab/section to
apps/ui/src/components/views/settings-view/model-defaults/ exposing all 5 new controls. Follow the existing ModelDefaultsSection pattern (label + helper text + dropdown).
- Tests: add unit coverage asserting that
getPhaseModelWithOverrides returns the configured override for each new key.
Acceptance
- Default install behaves identically (defaults match pre-change literals)
- Setting
antagonisticReviewModels.ava = "haiku" in .automaker/settings.json makes the Ava review call use haiku
- UI shows all 5 new controls and persists changes to settings.json
- Existing antagonistic-review tests still pass
Out of scope
- Authority agents (PM/EM/GTM/Research) — tracked separately as Phase 2
- Drift analysis / fact-store models — Phase 3
Sizing (fleet triage 2026-06-06): LARGE — new review-mode enum + pipeline wiring + Specialist-Agents settings UI; genuinely multi-component.
Promoted from the protoMaker board — was a board-only blocked feature with no GitHub issue (so it was invisible to issue tracking + the auto-close webhook). Board feature id: feature-1776218810276-kl92b44ni.
Goal
Close the hardcoded-model gap in antagonistic review and Cindi content review. Add a "Specialist Agents" settings tab so operators can tune these models per project.
Current state (from audit 2026-04-15)
Hardcoded model strings block operator override at:
apps/server/src/services/antagonistic-review-service.ts:60— adapter init (sonnet)apps/server/src/services/antagonistic-review-service.ts:269— Ava review (opus)apps/server/src/services/antagonistic-review-service.ts:384— Jon review (sonnet)apps/server/src/services/antagonistic-review-service.ts:710,815— resolution/fallback (haiku)apps/server/src/services/lead-engineer-gtm-review-processor.ts:46— Cindi review (sonnet)Work
PhaseModelConfiginlibs/types/src/agent-settings.tswith:antagonisticReviewModels: { adapter, ava, jon, resolution }(all alias strings)cindiReviewModelDEFAULT_PHASE_MODELSmatching current behavior (no regression on default install)getPhaseModelWithOverrides(settings, '<key>')apps/ui/src/components/views/settings-view/model-defaults/exposing all 5 new controls. Follow the existing ModelDefaultsSection pattern (label + helper text + dropdown).getPhaseModelWithOverridesreturns the configured override for each new key.Acceptance
antagonisticReviewModels.ava = "haiku"in.automaker/settings.jsonmakes the Ava review call use haikuOut of scope
Sizing (fleet triage 2026-06-06): LARGE — new review-mode enum + pipeline wiring + Specialist-Agents settings UI; genuinely multi-component.
Promoted from the protoMaker board — was a board-only
blockedfeature with no GitHub issue (so it was invisible to issue tracking + the auto-close webhook). Board feature id:feature-1776218810276-kl92b44ni.