{
  "description": "Default sequential graph for a full multi-persona critique (design-critic). The MoE router in router.json selects a smaller subset of this chain by default; only run this full chain for an explicit full-screen review.",
  "default_expert_budget": 2,
  "deliberation_mode": "adversarial",
  "objection_token_cap": 600,
  "default_chain": [
    { "step": 1, "persona": "arjun",  "handoff_from": null,     "handoff_to": "meera",  "parallel_safe_with": [] },
    { "step": 2, "persona": "meera",  "handoff_from": "arjun",  "handoff_to": "priya",  "parallel_safe_with": ["priya"] },
    { "step": 3, "persona": "priya",  "handoff_from": "meera",  "handoff_to": "zara",   "parallel_safe_with": ["meera"] },
    { "step": 4, "persona": "zara",   "handoff_from": "priya",  "handoff_to": null,     "parallel_safe_with": [] }
  ],
  "deliberation_groups": {
    "critique": [["arjun"], ["meera", "priya"], ["zara"]],
    "ideation": [["meera"], ["noor", "anuj"], ["arjun"], ["zara", "priya"]],
    "lite": [["arjun"], ["meera"]]
  },
  "ideation_chain": [
    { "step": 1, "persona": "meera", "handoff_to": ["noor", "anuj"], "parallel_safe_with": [] },
    { "step": 2, "persona": "noor",  "handoff_from": "meera", "handoff_to": "arjun", "parallel_safe_with": ["anuj"] },
    { "step": 2, "persona": "anuj",  "handoff_from": "meera", "handoff_to": "arjun", "parallel_safe_with": ["noor"] },
    { "step": 3, "persona": "arjun", "handoff_from": ["noor", "anuj"], "handoff_to": "zara", "parallel_safe_with": [] },
    { "step": 4, "persona": "zara",  "handoff_from": "arjun", "handoff_to": "priya", "parallel_safe_with": [] },
    { "step": 5, "persona": "priya", "handoff_from": "zara",  "handoff_to": null, "parallel_safe_with": [] }
  ],
  "tiers": {
    "router": null,
    "extract": { "provider": "openai", "model": "gpt-4o-mini" },
    "structured": { "provider": "openai", "model": "gpt-4o-mini" },
    "critique": { "provider": "anthropic", "model": "claude-sonnet-4-20250514" },
    "arbitrate": { "provider": "anthropic", "model": "claude-sonnet-4-20250514" }
  },
  "max_output_tokens": {
    "structured": 900,
    "critique": 1800,
    "arbitrate": 1200
  },
  "effort_matrix": {
    "description": "Effort-graded model selection (v1.10). Each persona call is classified trivial|standard|hard and resolved against this matrix. Falls back to the legacy tiers map above when a persona manifest has no effort_overrides for the chosen effort.",
    "trivial":  { "provider": "host",   "model": "devi",                 "max_output_tokens": 600  },
    "standard": { "provider": "google",    "model": "gemini-2.5-flash",    "max_output_tokens": 1200 },
    "hard":     { "provider": "anthropic", "model": "claude-sonnet-5",     "max_output_tokens": 1800 }
  },
  "gate_override": {
    "description": "Gates are safety nets — never run on a downgraded model. Any step whose gateName is listed here is pinned to use_effort regardless of the classified effort.",
    "applies_to": ["ds_gate", "information_hierarchy_gate", "verify_gate"],
    "use_effort": "hard"
  },
  "gates": [
    { "name": "ds_gate", "runs": "before persona chain (ux-story-gate Phase 0.5); on failure, chain stops after arjun_color_system_only" },
    { "name": "information_hierarchy_gate", "runs": "after persona chain, before re-evaluation/BLOCK escalation" },
    { "name": "verify_gate", "runs": "after persona chain, before synthesis (ux-story-gate Phase 4.5); skipped (not_run) when assess_only with no URL" }
  ],
  "escalation": {
    "condition": "stalemate or BLOCK verdict from any persona",
    "route_to": "raj"
  },
  "re_evaluation": {
    "mode": "delta_only",
    "description": "On any follow-up after REVISE, re-run only the persona(s) assigned to the prior Top 3 actionable changes — never the full chain. See design-critic Re-evaluation Protocol."
  },
  "evolution": {
    "lessons_dir": "~/.analyzthis_design/lessons",
    "extraction_window_days": 7,
    "min_lessons_for_patch": 5,
    "min_outcomes_for_router_patch": 10,
    "dry_run_default": true
  },
  "chunk_models": {
    "description": "v2.0 chunked execution model pool. Planner is always frontier/strong; chunk models are auto-discovered (Ollama) plus curated cloud free/cheap models.",
    "planner": { "provider": "anthropic", "model": "claude-sonnet-4-20250514" },
    "max_chunks": 6,
    "default_budget": "auto",
    "default_mode": "sequential",
    "allow_cheap_paid": true
  }
}
