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.
This commit is contained in:
David Ibia
2026-10-10 14:56:06 +01:00
parent cac5c1d036
commit 12f283e7c9
2 changed files with 29 additions and 0 deletions
+27
View File
@@ -110,6 +110,33 @@
"reasoning": "high", "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." "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": { "writing": {
"models": [ "models": [
{ {
@@ -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. 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): 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. - 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. - "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.