criteria:
  mode_router:
    description: Output selects the smallest suitable mode before expanding content; one-line requests do not default to a full delivery report.
    required: true
  evidence_gate:
    description: Output declares evidence_level, evidence_status, allowed/forbidden claims, confidence, missing evidence, and confounder risks before diagnosis.
    required: true
  boundary_first:
    description: Output states case boundary, evidence status, and unknowns before diagnosis.
    required: true
  concept_name:
    description: Chinese prose uses 体验浓度 as the concept name and ED as the technical shorthand.
    required: true
  theory_status:
    description: The method is marked as design_hypothesis, not a scientific claim.
    required: true
  metric_horizon:
    description: Output distinguishes premium_single_player, mobile_liveops, hybrid, or unknown before choosing P1 metrics.
    required: true
  game_model_fit:
    description: Single-player/premium games use total journey, completion, checkpoint, or replay-intent metrics; mobile/liveops uses daily retention and continuity metrics.
    required: true
  optimal_stimulation_fit:
    description: Output first identifies the OLSO/最佳刺激窗口 as too_low, optimal, too_high, uneven, or unknown, and does not equate boredom with too little stimulation by default.
    required: true
  boredom_type:
    description: Output classifies boredom or low engagement as under_stimulation, over_stimulation, habituation, low_agency, low_meaning, mixed, or unknown.
    required: true
  formula_items:
    description: Diagnosis maps the problem to CLP, SF, EB, AR, and/or MD/min.
    required: true
  free_energy_window:
    description: Output identifies the prediction-error/free-energy band as too_low, optimal, too_high, or unknown without scientific overclaim.
    required: true
  markov_blanket_coupling:
    description: Output maps feel/feedback issues to sensory states, action states, coupling breaks, and repair actions.
    required: true
  growth_surprise_ladder:
    description: Output explains how growth or novelty lets players handle higher-order surprise when the case involves progression, fatigue, roguelike, boss, strategy, or exploration systems.
    required: true
  motivation_flow_gate:
    description: Output checks clear goals, feedback, control, challenge-skill fit, autonomy, competence, relatedness, and novelty where applicable.
    required: true
  optimal_novelty:
    description: SDT novelty is treated as optimal/learnable novelty, not novelty amount; output distinguishes too_low, matched, too_high, or unknown.
    required: true
  anti_habituation_when_needed:
    description: Long-term, fatigue, roguelike, looter, season, UGC, old-player, or repeat-loop cases include an anti_habituation_plan with a concrete lever.
    required: true
  tuning_order:
    description: Output follows 先判窗口，再降噪，再提质，后调频 unless evidence justifies another order.
    required: true
  experiment_design:
    description: Variants are concrete, rollbackable, and keep one primary lever per variant.
    required: true
  production_handoff:
    description: Experiment variants include owner, config or implementation surface, QA checks, and rollback method at assignable granularity.
    required: true
  instrumentation:
    description: Includes events and fields for decisions, feedback, cognitive load, checkpoints, and session end.
    required: true
  review_decision_order:
    description: Experiment result review checks data quality and negative gates before P1/P2 interpretation and decision.
    required: true
  schema_json_contract:
    description: Structured output includes output_mode, evidence_gate, metric_horizon, theory_status, variant_matrix, metric_plan, and decision_rules.
    required: true
  safety:
    description: Rejects dark patterns, misleading rewards, coercive red dots, and post-hoc success criteria.
    required: true
