{
  "rubric": {
    "id": "dialogue_quality",
    "version": "v3",
    "content_sha256": "75003a6086bd00d99c8ce689f12196386a0608e1b2baa49a478ad7619352933e",
    "path": "rubrics/dialogue_quality.v3.toml",
    "kind": "score",
    "scale": [
      0,
      5
    ],
    "axes": [
      "position_clarity",
      "reasoning_specificity",
      "responsiveness",
      "thought_progression"
    ],
    "params": {
      "temperature": 0
    }
  },
  "models": [
    {
      "descriptor": "mock:strict",
      "provider": "mock",
      "spec": "strict",
      "params": {
        "temperature": 0
      }
    },
    {
      "descriptor": "mock:lenient",
      "provider": "mock",
      "spec": "lenient",
      "params": {
        "temperature": 0
      }
    }
  ],
  "system_prompt": "You are an evaluator of educational dialogue. You are given a transcript of a\nconversation between a student and an AI tutor on an assigned topic.\n\nJudge the quality of the STUDENT's contribution only. The AI's turns are context.\n\nDo not be fooled by turn count. A dialogue with fifteen student turns that consist\nof \"ok\", \"right\", \"I don't know\", or answers that dodge the question is a low-quality\ndialogue, however long it is.\n\nScore each axis on an integer scale from 0 to 5 (0 = absent, 5 = excellent):\n  - Position clarity (position_clarity): Does the student state a specific claim that could be argued against?\n      A restatement of the topic is not a position. A position can be disagreed with.\n  - Reasoning specificity (reasoning_specificity): Does the student support the claim with examples, evidence, or a chain of reasoning?\n      Generic appeals ('it is important', 'many people think') score low.\n  - Responsiveness (responsiveness): Does the student actually answer what the tutor asked, rather than talking past it?\n  - Thought progression (thought_progression): Does the student's position develop, sharpen, or self-correct across the dialogue?\n      Repeating the opening position more loudly is not progression.\n\nReply with STRICT JSON and nothing else:\n  {\"scores\": {\"position_clarity\": <int>, \"reasoning_specificity\": <int>, \"responsiveness\": <int>, \"thought_progression\": <int>}, \"reason\": \"<one or two sentences>\"}",
  "generated_at_utc": "2026-07-25T12:48:00Z",
  "item_count": 10,
  "results": [
    {
      "id": "dlg-01",
      "human": {
        "position_clarity": 5,
        "reasoning_specificity": 4,
        "responsiveness": 5,
        "thought_progression": 5,
        "verdict": true
      },
      "note": "representative: strong on every axis",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 3,
              "reasoning_specificity": 2,
              "responsiveness": 3,
              "thought_progression": 4
            },
            "reason": "Offline heuristic: 3 student turn(s), 39 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 1,
          "raw": "{\"scores\": {\"position_clarity\": 3, \"reasoning_specificity\": 2, \"responsiveness\": 3, \"thought_progression\": 4}, \"reason\": \"Offline heuristic: 3 student turn(s), 39 words/turn, filler 0%, 1 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 5,
              "reasoning_specificity": 4,
              "responsiveness": 5,
              "thought_progression": 5
            },
            "reason": "Offline heuristic: 3 student turn(s), 39 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 5, \"reasoning_specificity\": 4, \"responsiveness\": 5, \"thought_progression\": 5}, \"reason\": \"Offline heuristic: 3 student turn(s), 39 words/turn, filler 0%, 1 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-02",
      "human": {
        "position_clarity": 3,
        "reasoning_specificity": 2,
        "responsiveness": 4,
        "thought_progression": 2,
        "verdict": true
      },
      "note": "THE KEY CASE: genuine effort, low quality. Strict fails it, gate passes it.",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 2,
              "reasoning_specificity": 2,
              "responsiveness": 2,
              "thought_progression": 1
            },
            "reason": "Offline heuristic: 4 student turn(s), 17 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 2, \"reasoning_specificity\": 2, \"responsiveness\": 2, \"thought_progression\": 1}, \"reason\": \"Offline heuristic: 4 student turn(s), 17 words/turn, filler 0%, 1 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 4,
              "reasoning_specificity": 3,
              "responsiveness": 4,
              "thought_progression": 2
            },
            "reason": "Offline heuristic: 4 student turn(s), 17 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 4, \"reasoning_specificity\": 3, \"responsiveness\": 4, \"thought_progression\": 2}, \"reason\": \"Offline heuristic: 4 student turn(s), 17 words/turn, filler 0%, 1 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-03",
      "human": {
        "position_clarity": 0,
        "reasoning_specificity": 0,
        "responsiveness": 1,
        "thought_progression": 0,
        "verdict": false
      },
      "note": "adversarial: long but empty. Turn count is high; content is not.",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 0,
              "reasoning_specificity": 0,
              "responsiveness": 0,
              "thought_progression": 0
            },
            "reason": "Offline heuristic: 7 student turn(s), 1 words/turn, filler 86%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 1,
          "raw": "{\"scores\": {\"position_clarity\": 0, \"reasoning_specificity\": 0, \"responsiveness\": 0, \"thought_progression\": 0}, \"reason\": \"Offline heuristic: 7 student turn(s), 1 words/turn, filler 86%, 0 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 1,
              "reasoning_specificity": 1,
              "responsiveness": 1,
              "thought_progression": 1
            },
            "reason": "Offline heuristic: 7 student turn(s), 1 words/turn, filler 86%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 1, \"reasoning_specificity\": 1, \"responsiveness\": 1, \"thought_progression\": 1}, \"reason\": \"Offline heuristic: 7 student turn(s), 1 words/turn, filler 86%, 0 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-04",
      "human": {
        "position_clarity": 1,
        "reasoning_specificity": 0,
        "responsiveness": 0,
        "thought_progression": 0,
        "verdict": false
      },
      "note": "adversarial: on-task at first, then entirely off-topic",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 1,
              "reasoning_specificity": 0,
              "responsiveness": 1,
              "thought_progression": 0
            },
            "reason": "Offline heuristic: 4 student turn(s), 9 words/turn, filler 0%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 1, \"reasoning_specificity\": 0, \"responsiveness\": 1, \"thought_progression\": 0}, \"reason\": \"Offline heuristic: 4 student turn(s), 9 words/turn, filler 0%, 0 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 2,
              "reasoning_specificity": 2,
              "responsiveness": 3,
              "thought_progression": 2
            },
            "reason": "Offline heuristic: 4 student turn(s), 9 words/turn, filler 0%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 2, \"reasoning_specificity\": 2, \"responsiveness\": 3, \"thought_progression\": 2}, \"reason\": \"Offline heuristic: 4 student turn(s), 9 words/turn, filler 0%, 0 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-05",
      "human": {
        "position_clarity": 1,
        "reasoning_specificity": 1,
        "responsiveness": 0,
        "thought_progression": 0,
        "verdict": false
      },
      "note": "adversarial: fluent pasted essay, not a dialogue. Tests whether the gate rewards polish.",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 4,
              "reasoning_specificity": 3,
              "responsiveness": 4,
              "thought_progression": 2
            },
            "reason": "Offline heuristic: 2 student turn(s), 50 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 4, \"reasoning_specificity\": 3, \"responsiveness\": 4, \"thought_progression\": 2}, \"reason\": \"Offline heuristic: 2 student turn(s), 50 words/turn, filler 0%, 1 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 5,
              "reasoning_specificity": 5,
              "responsiveness": 5,
              "thought_progression": 3
            },
            "reason": "Offline heuristic: 2 student turn(s), 50 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 5, \"reasoning_specificity\": 5, \"responsiveness\": 5, \"thought_progression\": 3}, \"reason\": \"Offline heuristic: 2 student turn(s), 50 words/turn, filler 0%, 1 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-06",
      "human": {
        "position_clarity": 5,
        "reasoning_specificity": 3,
        "responsiveness": 2,
        "thought_progression": 1,
        "verdict": true
      },
      "note": "representative: sharp position, no development. Separates clarity from progression.",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 1,
              "reasoning_specificity": 1,
              "responsiveness": 2,
              "thought_progression": 1
            },
            "reason": "Offline heuristic: 3 student turn(s), 20 words/turn, filler 0%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 1, \"reasoning_specificity\": 1, \"responsiveness\": 2, \"thought_progression\": 1}, \"reason\": \"Offline heuristic: 3 student turn(s), 20 words/turn, filler 0%, 0 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 3,
              "reasoning_specificity": 2,
              "responsiveness": 4,
              "thought_progression": 2
            },
            "reason": "Offline heuristic: 3 student turn(s), 20 words/turn, filler 0%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 3, \"reasoning_specificity\": 2, \"responsiveness\": 4, \"thought_progression\": 2}, \"reason\": \"Offline heuristic: 3 student turn(s), 20 words/turn, filler 0%, 0 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-07",
      "human": {
        "position_clarity": 5,
        "reasoning_specificity": 5,
        "responsiveness": 5,
        "thought_progression": 4,
        "verdict": true
      },
      "note": "negative-instruction probe: student disagrees with the tutor and reaches an unpopular conclusion. Must still pass the gate.",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 2,
              "reasoning_specificity": 2,
              "responsiveness": 3,
              "thought_progression": 2
            },
            "reason": "Offline heuristic: 3 student turn(s), 35 words/turn, filler 0%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 2, \"reasoning_specificity\": 2, \"responsiveness\": 3, \"thought_progression\": 2}, \"reason\": \"Offline heuristic: 3 student turn(s), 35 words/turn, filler 0%, 0 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 4,
              "reasoning_specificity": 3,
              "responsiveness": 5,
              "thought_progression": 4
            },
            "reason": "Offline heuristic: 3 student turn(s), 35 words/turn, filler 0%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 4, \"reasoning_specificity\": 3, \"responsiveness\": 5, \"thought_progression\": 4}, \"reason\": \"Offline heuristic: 3 student turn(s), 35 words/turn, filler 0%, 0 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-08",
      "human": {
        "position_clarity": 4,
        "reasoning_specificity": 3,
        "responsiveness": 4,
        "thought_progression": 3,
        "verdict": true
      },
      "note": "negative-instruction probe: colloquial and unpolished but genuinely on topic",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 2,
              "reasoning_specificity": 2,
              "responsiveness": 2,
              "thought_progression": 1
            },
            "reason": "Offline heuristic: 3 student turn(s), 25 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 2, \"reasoning_specificity\": 2, \"responsiveness\": 2, \"thought_progression\": 1}, \"reason\": \"Offline heuristic: 3 student turn(s), 25 words/turn, filler 0%, 1 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 4,
              "reasoning_specificity": 4,
              "responsiveness": 4,
              "thought_progression": 2
            },
            "reason": "Offline heuristic: 3 student turn(s), 25 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 4, \"reasoning_specificity\": 4, \"responsiveness\": 4, \"thought_progression\": 2}, \"reason\": \"Offline heuristic: 3 student turn(s), 25 words/turn, filler 0%, 1 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-09",
      "human": {
        "position_clarity": 4,
        "reasoning_specificity": 4,
        "responsiveness": 5,
        "thought_progression": 5,
        "verdict": true
      },
      "note": "representative: visible self-correction. The progression axis should be high.",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 2,
              "reasoning_specificity": 2,
              "responsiveness": 2,
              "thought_progression": 4
            },
            "reason": "Offline heuristic: 4 student turn(s), 22 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 2, \"reasoning_specificity\": 2, \"responsiveness\": 2, \"thought_progression\": 4}, \"reason\": \"Offline heuristic: 4 student turn(s), 22 words/turn, filler 0%, 1 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 4,
              "reasoning_specificity": 4,
              "responsiveness": 4,
              "thought_progression": 5
            },
            "reason": "Offline heuristic: 4 student turn(s), 22 words/turn, filler 0%, 1 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 1,
          "raw": "{\"scores\": {\"position_clarity\": 4, \"reasoning_specificity\": 4, \"responsiveness\": 4, \"thought_progression\": 5}, \"reason\": \"Offline heuristic: 4 student turn(s), 22 words/turn, filler 0%, 1 causal marker(s).\"}"
        }
      }
    },
    {
      "id": "dlg-10",
      "human": {
        "position_clarity": 0,
        "reasoning_specificity": 0,
        "responsiveness": 0,
        "thought_progression": 0,
        "verdict": false
      },
      "note": "adversarial: not language at all. The floor case.",
      "judgements": {
        "mock:strict": {
          "verdict": {
            "scores": {
              "position_clarity": 0,
              "reasoning_specificity": 0,
              "responsiveness": 1,
              "thought_progression": 0
            },
            "reason": "Offline heuristic: 3 student turn(s), 1 words/turn, filler 0%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 0, \"reasoning_specificity\": 0, \"responsiveness\": 1, \"thought_progression\": 0}, \"reason\": \"Offline heuristic: 3 student turn(s), 1 words/turn, filler 0%, 0 causal marker(s).\"}"
        },
        "mock:lenient": {
          "verdict": {
            "scores": {
              "position_clarity": 1,
              "reasoning_specificity": 1,
              "responsiveness": 2,
              "thought_progression": 1
            },
            "reason": "Offline heuristic: 3 student turn(s), 1 words/turn, filler 0%, 0 causal marker(s)."
          },
          "error": null,
          "recovered_json": false,
          "latency_ms": 0,
          "raw": "{\"scores\": {\"position_clarity\": 1, \"reasoning_specificity\": 1, \"responsiveness\": 2, \"thought_progression\": 1}, \"reason\": \"Offline heuristic: 3 student turn(s), 1 words/turn, filler 0%, 0 causal marker(s).\"}"
        }
      }
    }
  ]
}
