From 12f283e7c9e52b341aed9fd12c61de464f01cc72 Mon Sep 17 00:00:00 2001 From: David Ibia Date: Sat, 10 Oct 2026 14:56:06 +0100 Subject: [PATCH] feat(omo): route impeccable critique to dedicated model categories Impeccable's critique runs two isolated assessments. design-critique-a runs the design-director review on Claude Opus 5.5 at xhigh, with Fable 5.1 behind it; Opus 5.5 has the top Design Arena website score of the models in this config. design-critique-b runs the detector and browser pass on GPT-6.1 Sol at high, with Sonnet 5.5 behind it so the second assessment still runs without a ChatGPT login. critique.md sends each assessment to its category. --- .config/omo/omo.jsonc | 27 +++++++++++++++++++ .../skills/impeccable/reference/critique.md | 2 ++ 2 files changed, 29 insertions(+) diff --git a/.config/omo/omo.jsonc b/.config/omo/omo.jsonc index 4c1c438..ef7a3af 100644 --- a/.config/omo/omo.jsonc +++ b/.config/omo/omo.jsonc @@ -110,6 +110,33 @@ "reasoning": "high", "prompt_append": "Before substantive UI work, load frontend-workflow. Follow the product's design context, keep one writer per file set, inspect actual desktop and mobile screenshots, exercise the primary interaction, and report verification evidence. Stop when acceptance criteria pass." }, + // impeccable critique. A = design-director review (taste, heuristics): Opus 5.5 has the top Design Arena + // website Elo of the models we run (1339 vs Sonnet 5.5 1322, Fable 5.1 1318; GPT-6 unranked, Oct 2026). + // B = detector + browser evidence (mechanical tool use): GPT-6.1 Sol, with a Claude fallback so B stays available. + "design-critique-a": { + "models": [ + { + "model": "anthropic-subscription/claude-opus-5-5", + "reasoning": "xhigh" + }, + { + "model": "anthropic-subscription/claude-fable-5-1", + "reasoning": "xhigh" + } + ] + }, + "design-critique-b": { + "models": [ + { + "model": "chatgpt-subscription/gpt-6.1-sol", + "reasoning": "high" + }, + { + "model": "anthropic-subscription/claude-sonnet-5-5", + "reasoning": "high" + } + ] + }, "writing": { "models": [ { diff --git a/.config/opencode/skills/impeccable/reference/critique.md b/.config/opencode/skills/impeccable/reference/critique.md index d3a9362..dedf037 100644 --- a/.config/opencode/skills/impeccable/reference/critique.md +++ b/.config/opencode/skills/impeccable/reference/critique.md @@ -32,6 +32,8 @@ Resolve one stable target, run two independent assessments, synthesize a design Delegate Assessment A and Assessment B to separate sub-agents. They must not see each other's output. Do not show findings to the user until synthesis. +OmO routing: when the task tool accepts a category, spawn Assessment A with `category: "design-critique-a"` and Assessment B with `category: "design-critique-b"`. Never pass `model` with a category. + Sub-agent gate (all harnesses): - Unless a harness-specific gate below overrides this, spawn A and B as two isolated, parallel sub-agents whenever a sub-agent/Task tool is exposed. This is the default and is mandatory; do not run them inline because it is faster. - "Unavailable" means exactly one thing: no sub-agent/Task tool is exposed in this session (or, on harnesses that ask, the user declined). It does not mean inconvenient.