{
  "suite_id": "novel_feedback_v3_suite",
  "uses_reranking": false,
  "experiments": [
    {
      "experiment_id": "v3s_01_01_baseline_clean__no_update",
      "scenario": "baseline_clean",
      "scenario_label": "Clean multi-turn feedback",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/baseline_clean/methods/no_update"
    },
    {
      "experiment_id": "v3s_01_02_baseline_clean__static_profile",
      "scenario": "baseline_clean",
      "scenario_label": "Clean multi-turn feedback",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/baseline_clean/methods/static_profile"
    },
    {
      "experiment_id": "v3s_01_03_baseline_clean__memory_only",
      "scenario": "baseline_clean",
      "scenario_label": "Clean multi-turn feedback",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/baseline_clean/methods/memory_only"
    },
    {
      "experiment_id": "v3s_01_04_baseline_clean__raw_feedback_rag",
      "scenario": "baseline_clean",
      "scenario_label": "Clean multi-turn feedback",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/baseline_clean/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_01_05_baseline_clean__state_conditioned_planning",
      "scenario": "baseline_clean",
      "scenario_label": "Clean multi-turn feedback",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/baseline_clean/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_01_06_baseline_clean__uncertainty_aware_planning",
      "scenario": "baseline_clean",
      "scenario_label": "Clean multi-turn feedback",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/baseline_clean/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_01_07_baseline_clean__conservative_state_update",
      "scenario": "baseline_clean",
      "scenario_label": "Clean multi-turn feedback",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/baseline_clean/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_01_08_baseline_clean__oracle_update",
      "scenario": "baseline_clean",
      "scenario_label": "Clean multi-turn feedback",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/baseline_clean/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_02_01_implicit_only__no_update",
      "scenario": "implicit_only",
      "scenario_label": "Implicit-only reading signals",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/implicit_only/methods/no_update"
    },
    {
      "experiment_id": "v3s_02_02_implicit_only__static_profile",
      "scenario": "implicit_only",
      "scenario_label": "Implicit-only reading signals",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/implicit_only/methods/static_profile"
    },
    {
      "experiment_id": "v3s_02_03_implicit_only__memory_only",
      "scenario": "implicit_only",
      "scenario_label": "Implicit-only reading signals",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/implicit_only/methods/memory_only"
    },
    {
      "experiment_id": "v3s_02_04_implicit_only__raw_feedback_rag",
      "scenario": "implicit_only",
      "scenario_label": "Implicit-only reading signals",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/implicit_only/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_02_05_implicit_only__state_conditioned_planning",
      "scenario": "implicit_only",
      "scenario_label": "Implicit-only reading signals",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/implicit_only/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_02_06_implicit_only__uncertainty_aware_planning",
      "scenario": "implicit_only",
      "scenario_label": "Implicit-only reading signals",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/implicit_only/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_02_07_implicit_only__conservative_state_update",
      "scenario": "implicit_only",
      "scenario_label": "Implicit-only reading signals",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/implicit_only/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_02_08_implicit_only__oracle_update",
      "scenario": "implicit_only",
      "scenario_label": "Implicit-only reading signals",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/implicit_only/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_03_01_explicit_only__no_update",
      "scenario": "explicit_only",
      "scenario_label": "Explicit-only comments and ratings",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/explicit_only/methods/no_update"
    },
    {
      "experiment_id": "v3s_03_02_explicit_only__static_profile",
      "scenario": "explicit_only",
      "scenario_label": "Explicit-only comments and ratings",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/explicit_only/methods/static_profile"
    },
    {
      "experiment_id": "v3s_03_03_explicit_only__memory_only",
      "scenario": "explicit_only",
      "scenario_label": "Explicit-only comments and ratings",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/explicit_only/methods/memory_only"
    },
    {
      "experiment_id": "v3s_03_04_explicit_only__raw_feedback_rag",
      "scenario": "explicit_only",
      "scenario_label": "Explicit-only comments and ratings",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/explicit_only/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_03_05_explicit_only__state_conditioned_planning",
      "scenario": "explicit_only",
      "scenario_label": "Explicit-only comments and ratings",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/explicit_only/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_03_06_explicit_only__uncertainty_aware_planning",
      "scenario": "explicit_only",
      "scenario_label": "Explicit-only comments and ratings",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/explicit_only/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_03_07_explicit_only__conservative_state_update",
      "scenario": "explicit_only",
      "scenario_label": "Explicit-only comments and ratings",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/explicit_only/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_03_08_explicit_only__oracle_update",
      "scenario": "explicit_only",
      "scenario_label": "Explicit-only comments and ratings",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/explicit_only/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_04_01_delayed_feedback_2_turn__no_update",
      "scenario": "delayed_feedback_2_turn",
      "scenario_label": "Delayed feedback by two turns",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/delayed_feedback_2_turn/methods/no_update"
    },
    {
      "experiment_id": "v3s_04_02_delayed_feedback_2_turn__static_profile",
      "scenario": "delayed_feedback_2_turn",
      "scenario_label": "Delayed feedback by two turns",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/delayed_feedback_2_turn/methods/static_profile"
    },
    {
      "experiment_id": "v3s_04_03_delayed_feedback_2_turn__memory_only",
      "scenario": "delayed_feedback_2_turn",
      "scenario_label": "Delayed feedback by two turns",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/delayed_feedback_2_turn/methods/memory_only"
    },
    {
      "experiment_id": "v3s_04_04_delayed_feedback_2_turn__raw_feedback_rag",
      "scenario": "delayed_feedback_2_turn",
      "scenario_label": "Delayed feedback by two turns",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/delayed_feedback_2_turn/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_04_05_delayed_feedback_2_turn__state_conditioned_planning",
      "scenario": "delayed_feedback_2_turn",
      "scenario_label": "Delayed feedback by two turns",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/delayed_feedback_2_turn/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_04_06_delayed_feedback_2_turn__uncertainty_aware_planning",
      "scenario": "delayed_feedback_2_turn",
      "scenario_label": "Delayed feedback by two turns",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/delayed_feedback_2_turn/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_04_07_delayed_feedback_2_turn__conservative_state_update",
      "scenario": "delayed_feedback_2_turn",
      "scenario_label": "Delayed feedback by two turns",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/delayed_feedback_2_turn/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_04_08_delayed_feedback_2_turn__oracle_update",
      "scenario": "delayed_feedback_2_turn",
      "scenario_label": "Delayed feedback by two turns",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/delayed_feedback_2_turn/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_05_01_noisy_feedback__no_update",
      "scenario": "noisy_feedback",
      "scenario_label": "Noisy and inconsistent feedback",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/noisy_feedback/methods/no_update"
    },
    {
      "experiment_id": "v3s_05_02_noisy_feedback__static_profile",
      "scenario": "noisy_feedback",
      "scenario_label": "Noisy and inconsistent feedback",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/noisy_feedback/methods/static_profile"
    },
    {
      "experiment_id": "v3s_05_03_noisy_feedback__memory_only",
      "scenario": "noisy_feedback",
      "scenario_label": "Noisy and inconsistent feedback",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/noisy_feedback/methods/memory_only"
    },
    {
      "experiment_id": "v3s_05_04_noisy_feedback__raw_feedback_rag",
      "scenario": "noisy_feedback",
      "scenario_label": "Noisy and inconsistent feedback",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/noisy_feedback/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_05_05_noisy_feedback__state_conditioned_planning",
      "scenario": "noisy_feedback",
      "scenario_label": "Noisy and inconsistent feedback",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/noisy_feedback/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_05_06_noisy_feedback__uncertainty_aware_planning",
      "scenario": "noisy_feedback",
      "scenario_label": "Noisy and inconsistent feedback",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/noisy_feedback/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_05_07_noisy_feedback__conservative_state_update",
      "scenario": "noisy_feedback",
      "scenario_label": "Noisy and inconsistent feedback",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/noisy_feedback/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_05_08_noisy_feedback__oracle_update",
      "scenario": "noisy_feedback",
      "scenario_label": "Noisy and inconsistent feedback",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/noisy_feedback/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_06_01_cold_start_users__no_update",
      "scenario": "cold_start_users",
      "scenario_label": "Cold-start reader priors",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cold_start_users/methods/no_update"
    },
    {
      "experiment_id": "v3s_06_02_cold_start_users__static_profile",
      "scenario": "cold_start_users",
      "scenario_label": "Cold-start reader priors",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cold_start_users/methods/static_profile"
    },
    {
      "experiment_id": "v3s_06_03_cold_start_users__memory_only",
      "scenario": "cold_start_users",
      "scenario_label": "Cold-start reader priors",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cold_start_users/methods/memory_only"
    },
    {
      "experiment_id": "v3s_06_04_cold_start_users__raw_feedback_rag",
      "scenario": "cold_start_users",
      "scenario_label": "Cold-start reader priors",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cold_start_users/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_06_05_cold_start_users__state_conditioned_planning",
      "scenario": "cold_start_users",
      "scenario_label": "Cold-start reader priors",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cold_start_users/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_06_06_cold_start_users__uncertainty_aware_planning",
      "scenario": "cold_start_users",
      "scenario_label": "Cold-start reader priors",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cold_start_users/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_06_07_cold_start_users__conservative_state_update",
      "scenario": "cold_start_users",
      "scenario_label": "Cold-start reader priors",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cold_start_users/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_06_08_cold_start_users__oracle_update",
      "scenario": "cold_start_users",
      "scenario_label": "Cold-start reader priors",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cold_start_users/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_07_01_preference_drift__no_update",
      "scenario": "preference_drift",
      "scenario_label": "Preference drift inside an arc",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/preference_drift/methods/no_update"
    },
    {
      "experiment_id": "v3s_07_02_preference_drift__static_profile",
      "scenario": "preference_drift",
      "scenario_label": "Preference drift inside an arc",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/preference_drift/methods/static_profile"
    },
    {
      "experiment_id": "v3s_07_03_preference_drift__memory_only",
      "scenario": "preference_drift",
      "scenario_label": "Preference drift inside an arc",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/preference_drift/methods/memory_only"
    },
    {
      "experiment_id": "v3s_07_04_preference_drift__raw_feedback_rag",
      "scenario": "preference_drift",
      "scenario_label": "Preference drift inside an arc",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/preference_drift/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_07_05_preference_drift__state_conditioned_planning",
      "scenario": "preference_drift",
      "scenario_label": "Preference drift inside an arc",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/preference_drift/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_07_06_preference_drift__uncertainty_aware_planning",
      "scenario": "preference_drift",
      "scenario_label": "Preference drift inside an arc",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/preference_drift/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_07_07_preference_drift__conservative_state_update",
      "scenario": "preference_drift",
      "scenario_label": "Preference drift inside an arc",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/preference_drift/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_07_08_preference_drift__oracle_update",
      "scenario": "preference_drift",
      "scenario_label": "Preference drift inside an arc",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/preference_drift/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_08_01_adversarial_contradiction__no_update",
      "scenario": "adversarial_contradiction",
      "scenario_label": "Adversarial contradictory request",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/adversarial_contradiction/methods/no_update"
    },
    {
      "experiment_id": "v3s_08_02_adversarial_contradiction__static_profile",
      "scenario": "adversarial_contradiction",
      "scenario_label": "Adversarial contradictory request",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/adversarial_contradiction/methods/static_profile"
    },
    {
      "experiment_id": "v3s_08_03_adversarial_contradiction__memory_only",
      "scenario": "adversarial_contradiction",
      "scenario_label": "Adversarial contradictory request",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/adversarial_contradiction/methods/memory_only"
    },
    {
      "experiment_id": "v3s_08_04_adversarial_contradiction__raw_feedback_rag",
      "scenario": "adversarial_contradiction",
      "scenario_label": "Adversarial contradictory request",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/adversarial_contradiction/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_08_05_adversarial_contradiction__state_conditioned_planning",
      "scenario": "adversarial_contradiction",
      "scenario_label": "Adversarial contradictory request",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/adversarial_contradiction/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_08_06_adversarial_contradiction__uncertainty_aware_planning",
      "scenario": "adversarial_contradiction",
      "scenario_label": "Adversarial contradictory request",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/adversarial_contradiction/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_08_07_adversarial_contradiction__conservative_state_update",
      "scenario": "adversarial_contradiction",
      "scenario_label": "Adversarial contradictory request",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/adversarial_contradiction/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_08_08_adversarial_contradiction__oracle_update",
      "scenario": "adversarial_contradiction",
      "scenario_label": "Adversarial contradictory request",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/adversarial_contradiction/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_09_01_long_horizon_fatigue__no_update",
      "scenario": "long_horizon_fatigue",
      "scenario_label": "Long-horizon fatigue accumulation",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/long_horizon_fatigue/methods/no_update"
    },
    {
      "experiment_id": "v3s_09_02_long_horizon_fatigue__static_profile",
      "scenario": "long_horizon_fatigue",
      "scenario_label": "Long-horizon fatigue accumulation",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/long_horizon_fatigue/methods/static_profile"
    },
    {
      "experiment_id": "v3s_09_03_long_horizon_fatigue__memory_only",
      "scenario": "long_horizon_fatigue",
      "scenario_label": "Long-horizon fatigue accumulation",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/long_horizon_fatigue/methods/memory_only"
    },
    {
      "experiment_id": "v3s_09_04_long_horizon_fatigue__raw_feedback_rag",
      "scenario": "long_horizon_fatigue",
      "scenario_label": "Long-horizon fatigue accumulation",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/long_horizon_fatigue/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_09_05_long_horizon_fatigue__state_conditioned_planning",
      "scenario": "long_horizon_fatigue",
      "scenario_label": "Long-horizon fatigue accumulation",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/long_horizon_fatigue/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_09_06_long_horizon_fatigue__uncertainty_aware_planning",
      "scenario": "long_horizon_fatigue",
      "scenario_label": "Long-horizon fatigue accumulation",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/long_horizon_fatigue/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_09_07_long_horizon_fatigue__conservative_state_update",
      "scenario": "long_horizon_fatigue",
      "scenario_label": "Long-horizon fatigue accumulation",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/long_horizon_fatigue/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_09_08_long_horizon_fatigue__oracle_update",
      "scenario": "long_horizon_fatigue",
      "scenario_label": "Long-horizon fatigue accumulation",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "public_text_augmented_feedback",
      "simulator_variant": "rf_dynamic_simulator_v1",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/long_horizon_fatigue/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_10_01_rollback_recovery__no_update",
      "scenario": "rollback_recovery",
      "scenario_label": "Rollback after correction",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/rollback_recovery/methods/no_update"
    },
    {
      "experiment_id": "v3s_10_02_rollback_recovery__static_profile",
      "scenario": "rollback_recovery",
      "scenario_label": "Rollback after correction",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/rollback_recovery/methods/static_profile"
    },
    {
      "experiment_id": "v3s_10_03_rollback_recovery__memory_only",
      "scenario": "rollback_recovery",
      "scenario_label": "Rollback after correction",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/rollback_recovery/methods/memory_only"
    },
    {
      "experiment_id": "v3s_10_04_rollback_recovery__raw_feedback_rag",
      "scenario": "rollback_recovery",
      "scenario_label": "Rollback after correction",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/rollback_recovery/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_10_05_rollback_recovery__state_conditioned_planning",
      "scenario": "rollback_recovery",
      "scenario_label": "Rollback after correction",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/rollback_recovery/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_10_06_rollback_recovery__uncertainty_aware_planning",
      "scenario": "rollback_recovery",
      "scenario_label": "Rollback after correction",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/rollback_recovery/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_10_07_rollback_recovery__conservative_state_update",
      "scenario": "rollback_recovery",
      "scenario_label": "Rollback after correction",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/rollback_recovery/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_10_08_rollback_recovery__oracle_update",
      "scenario": "rollback_recovery",
      "scenario_label": "Rollback after correction",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "qidian_metadata_dta_ready",
      "simulator_variant": "ordinal_transition_baseline",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/rollback_recovery/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_11_01_cross_user_contamination__no_update",
      "scenario": "cross_user_contamination",
      "scenario_label": "Cross-user contamination guard",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cross_user_contamination/methods/no_update"
    },
    {
      "experiment_id": "v3s_11_02_cross_user_contamination__static_profile",
      "scenario": "cross_user_contamination",
      "scenario_label": "Cross-user contamination guard",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cross_user_contamination/methods/static_profile"
    },
    {
      "experiment_id": "v3s_11_03_cross_user_contamination__memory_only",
      "scenario": "cross_user_contamination",
      "scenario_label": "Cross-user contamination guard",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cross_user_contamination/methods/memory_only"
    },
    {
      "experiment_id": "v3s_11_04_cross_user_contamination__raw_feedback_rag",
      "scenario": "cross_user_contamination",
      "scenario_label": "Cross-user contamination guard",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cross_user_contamination/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_11_05_cross_user_contamination__state_conditioned_planning",
      "scenario": "cross_user_contamination",
      "scenario_label": "Cross-user contamination guard",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cross_user_contamination/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_11_06_cross_user_contamination__uncertainty_aware_planning",
      "scenario": "cross_user_contamination",
      "scenario_label": "Cross-user contamination guard",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cross_user_contamination/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_11_07_cross_user_contamination__conservative_state_update",
      "scenario": "cross_user_contamination",
      "scenario_label": "Cross-user contamination guard",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cross_user_contamination/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_11_08_cross_user_contamination__oracle_update",
      "scenario": "cross_user_contamination",
      "scenario_label": "Cross-user contamination guard",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "implicit_action_augmented",
      "simulator_variant": "sequence_state_cpu",
      "simulator_compute": "cpu_numpy",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/cross_user_contamination/methods/oracle_update"
    },
    {
      "experiment_id": "v3s_12_01_counterfactual_swap__no_update",
      "scenario": "counterfactual_swap",
      "scenario_label": "Counterfactual user/content swaps",
      "method": "no_update",
      "method_label": "No update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/counterfactual_swap/methods/no_update"
    },
    {
      "experiment_id": "v3s_12_02_counterfactual_swap__static_profile",
      "scenario": "counterfactual_swap",
      "scenario_label": "Counterfactual user/content swaps",
      "method": "static_profile",
      "method_label": "Static profile prompt",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/counterfactual_swap/methods/static_profile"
    },
    {
      "experiment_id": "v3s_12_03_counterfactual_swap__memory_only",
      "scenario": "counterfactual_swap",
      "scenario_label": "Counterfactual user/content swaps",
      "method": "memory_only",
      "method_label": "Summary memory only",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/counterfactual_swap/methods/memory_only"
    },
    {
      "experiment_id": "v3s_12_04_counterfactual_swap__raw_feedback_rag",
      "scenario": "counterfactual_swap",
      "scenario_label": "Counterfactual user/content swaps",
      "method": "raw_feedback_rag",
      "method_label": "Raw feedback RAG",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/counterfactual_swap/methods/raw_feedback_rag"
    },
    {
      "experiment_id": "v3s_12_05_counterfactual_swap__state_conditioned_planning",
      "scenario": "counterfactual_swap",
      "scenario_label": "Counterfactual user/content swaps",
      "method": "state_conditioned_planning",
      "method_label": "State-conditioned planning",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/counterfactual_swap/methods/state_conditioned_planning"
    },
    {
      "experiment_id": "v3s_12_06_counterfactual_swap__uncertainty_aware_planning",
      "scenario": "counterfactual_swap",
      "scenario_label": "Counterfactual user/content swaps",
      "method": "uncertainty_aware_planning",
      "method_label": "Uncertainty-aware planning",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/counterfactual_swap/methods/uncertainty_aware_planning"
    },
    {
      "experiment_id": "v3s_12_07_counterfactual_swap__conservative_state_update",
      "scenario": "counterfactual_swap",
      "scenario_label": "Counterfactual user/content swaps",
      "method": "conservative_state_update",
      "method_label": "Conservative scoped update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/counterfactual_swap/methods/conservative_state_update"
    },
    {
      "experiment_id": "v3s_12_08_counterfactual_swap__oracle_update",
      "scenario": "counterfactual_swap",
      "scenario_label": "Counterfactual user/content swaps",
      "method": "oracle_update",
      "method_label": "Oracle update",
      "data_condition": "counterfactual_user_swap",
      "simulator_variant": "uncertainty_calibrated_cpu",
      "simulator_compute": "cpu_sklearn",
      "uses_reranking": false,
      "direct_generation_policy": "state-conditioned direct generation",
      "metric_pointer": "scenario_results.json#/scenarios/counterfactual_swap/methods/oracle_update"
    }
  ]
}
