{
  "protocol": [
    "oracle_aided_rubric",
    "feedback_only_rubric",
    "held_out_users",
    "held_out_feedback_regimes",
    "held_out_judge",
    "human_audit"
  ],
  "main_metrics": {
    "FIS": "Feedback Incorporation Score; whether next output incorporates previous feedback.",
    "Scope Control": "Whether adaptation is applied only to the correct scene/style/preference scope.",
    "Overcommit Rate": "Frequency that local feedback becomes an incorrect global rule.",
    "Misattribution Rate": "Frequency that feedback is interpreted along the wrong dimension.",
    "Implicit Feedback Utilization": "Implicit-only dwell/tip/skip/highlight signals produce correct adaptation.",
    "Ask Rate": "Clarification frequency under uncertainty.",
    "User Burden": "Questions plus extra interaction length.",
    "Quality Preservation": "Story coherence, character consistency, and prose quality after adaptation.",
    "Utility@k Feedback": "Personalization utility using only k feedback events.",
    "Win Rate": "Pairwise win rate against baseline outputs."
  },
  "formulas": {
    "feedback_incorporation_score": "FIS = mean_i rubric_score_i(Feedback Incorporation | y_t, o_t, x_{t+1}, y_{t+1})",
    "scope_control": "Scope = mean_i rubric_score_i(correct_scope) - penalty(overscoped_changes)",
    "overcommit_rate": "Overcommit Rate = count(local_feedback_globalized_wrongly) / count(feedback_events)",
    "misattribution_rate": "Misattribution Rate = count(wrong_preference_dimension) / count(adaptation_decisions)",
    "utility_at_k": "Utility@k = E[J(y_{t+1}; user) | first k feedback events]"
  },
  "rubric_modes": {
    "Oracle-aided rubric": "Rubric generator can access hidden user intent; measures true preference alignment.",
    "Feedback-only rubric": "Rubric generator sees only observed feedback; measures deployable evaluation."
  }
}
