[
  {
    "record_id": "planner_0000",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_000",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 33.99,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.43
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 43.17
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.99,
          "to_sec": 37.91,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 33.99,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0000_02",
      "candidates": [
        {
          "candidate_id": "cand_0000_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0000_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0000_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0000_02",
      "dpo_negative": "cand_0000_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0001",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_001",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 41.93,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 15.74
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.33
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.23,
          "to_sec": 53.3,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 41.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0001_02",
      "candidates": [
        {
          "candidate_id": "cand_0001_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0001_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0001_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0001_02",
      "dpo_negative": "cand_0001_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0002",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_002",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 36.5,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.36
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 50.52
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.89,
          "to_sec": 38.65,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 36.5,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0002_03",
      "candidates": [
        {
          "candidate_id": "cand_0002_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0002_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0002_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0002_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0002_03",
      "dpo_negative": "cand_0002_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0003",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_003",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 11.34,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 49.38
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.05
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.6,
          "to_sec": 45.93,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 11.34,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0003_07",
      "candidates": [
        {
          "candidate_id": "cand_0003_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0003_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0003_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0003_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0003_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0003_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0003_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0003_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0003_07",
      "dpo_negative": "cand_0003_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0004",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_004",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 39.5,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 30.03
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 44.45
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.3,
          "to_sec": 53.19,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 39.5,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0004_07",
      "candidates": [
        {
          "candidate_id": "cand_0004_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0004_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0004_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0004_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0004_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0004_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0004_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0004_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0004_07",
      "dpo_negative": "cand_0004_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0005",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_005",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 10.3,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 19.36
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 61.45
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.92,
          "to_sec": 48.9,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 10.3,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0005_07",
      "candidates": [
        {
          "candidate_id": "cand_0005_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0005_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0005_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0005_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0005_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0005_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0005_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0005_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0005_07",
      "dpo_negative": "cand_0005_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0006",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_006",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 12.83,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 43.21
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 52.18
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.06,
          "to_sec": 43.86,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 12.83,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0006_02",
      "candidates": [
        {
          "candidate_id": "cand_0006_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0006_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0006_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0006_02",
      "dpo_negative": "cand_0006_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0007",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_007",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 23.13,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 35.3
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 61.5
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.3,
          "to_sec": 43.52,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 23.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0007_02",
      "candidates": [
        {
          "candidate_id": "cand_0007_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0007_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0007_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0007_02",
      "dpo_negative": "cand_0007_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0008",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_008",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 30.81,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 39.56
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 57.85
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.5,
          "to_sec": 37.79,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 30.81,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0008_03",
      "candidates": [
        {
          "candidate_id": "cand_0008_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0008_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0008_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0008_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0008_03",
      "dpo_negative": "cand_0008_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0009",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_009",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 14.24,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 44.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 26.36
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.27,
          "to_sec": 42.98,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 14.24,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0009_07",
      "candidates": [
        {
          "candidate_id": "cand_0009_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0009_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0009_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0009_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0009_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0009_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0009_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0009_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0009_07",
      "dpo_negative": "cand_0009_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0010",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_010",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 35.44,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 46.22
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 48.7
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.6,
          "to_sec": 39.27,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 35.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0010_07",
      "candidates": [
        {
          "candidate_id": "cand_0010_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0010_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0010_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0010_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0010_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0010_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0010_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0010_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0010_07",
      "dpo_negative": "cand_0010_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0011",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_011",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 39.47,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 25.46
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 57.43
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.72,
          "to_sec": 43.55,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 39.47,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0011_07",
      "candidates": [
        {
          "candidate_id": "cand_0011_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0011_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0011_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0011_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0011_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0011_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0011_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0011_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0011_07",
      "dpo_negative": "cand_0011_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0012",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_012",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 9.06,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 38.34
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.3
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.04,
          "to_sec": 39.17,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 9.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0012_02",
      "candidates": [
        {
          "candidate_id": "cand_0012_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0012_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0012_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0012_02",
      "dpo_negative": "cand_0012_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0013",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_013",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 8.13,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 33.19
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 60.16
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.02,
          "to_sec": 53.91,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 8.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0013_02",
      "candidates": [
        {
          "candidate_id": "cand_0013_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0013_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0013_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0013_02",
      "dpo_negative": "cand_0013_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0014",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_014",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 41.21,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 19.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.41
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.04,
          "to_sec": 48.46,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 41.21,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0014_03",
      "candidates": [
        {
          "candidate_id": "cand_0014_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0014_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0014_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0014_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0014_03",
      "dpo_negative": "cand_0014_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0015",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_015",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 21.28,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 17.0
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 23.36
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 32.44,
          "to_sec": 50.65,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 21.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0015_07",
      "candidates": [
        {
          "candidate_id": "cand_0015_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0015_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0015_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0015_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0015_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0015_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0015_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0015_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0015_07",
      "dpo_negative": "cand_0015_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0016",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_016",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 32.98,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 37.71
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.46
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.66,
          "to_sec": 43.74,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 32.98,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0016_07",
      "candidates": [
        {
          "candidate_id": "cand_0016_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0016_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0016_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0016_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0016_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0016_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0016_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0016_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0016_07",
      "dpo_negative": "cand_0016_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0017",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_017",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 18.77,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 20.64
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 68.11
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.08,
          "to_sec": 37.46,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.77,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0017_07",
      "candidates": [
        {
          "candidate_id": "cand_0017_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0017_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0017_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0017_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0017_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0017_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0017_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0017_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0017_07",
      "dpo_negative": "cand_0017_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0018",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_018",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 28.65,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 22.68
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 67.26
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.57,
          "to_sec": 52.16,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 28.65,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0018_02",
      "candidates": [
        {
          "candidate_id": "cand_0018_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0018_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0018_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0018_02",
      "dpo_negative": "cand_0018_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0019",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_019",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 21.05,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 37.47
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 50.33
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.76,
          "to_sec": 48.31,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 21.05,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0019_02",
      "candidates": [
        {
          "candidate_id": "cand_0019_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0019_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0019_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0019_02",
      "dpo_negative": "cand_0019_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0020",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_020",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 36.95,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.48
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 55.16
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.32,
          "to_sec": 40.0,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 36.95,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0020_03",
      "candidates": [
        {
          "candidate_id": "cand_0020_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0020_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0020_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0020_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0020_03",
      "dpo_negative": "cand_0020_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0021",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_021",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 13.52,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 53.36
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 22.81
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.13,
          "to_sec": 41.27,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 13.52,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0021_07",
      "candidates": [
        {
          "candidate_id": "cand_0021_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0021_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0021_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0021_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0021_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0021_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0021_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0021_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0021_07",
      "dpo_negative": "cand_0021_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0022",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_022",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 36.73,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 37.49
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 39.3
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.12,
          "to_sec": 49.07,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 36.73,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0022_07",
      "candidates": [
        {
          "candidate_id": "cand_0022_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0022_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0022_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0022_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0022_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0022_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0022_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0022_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0022_07",
      "dpo_negative": "cand_0022_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0023",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_023",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 6.67,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.15
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 63.63
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.38,
          "to_sec": 45.03,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 6.67,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0023_07",
      "candidates": [
        {
          "candidate_id": "cand_0023_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0023_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0023_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0023_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0023_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0023_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0023_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0023_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0023_07",
      "dpo_negative": "cand_0023_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0024",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_024",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 42.29,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 16.53
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 66.01
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.68,
          "to_sec": 47.23,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 42.29,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0024_02",
      "candidates": [
        {
          "candidate_id": "cand_0024_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0024_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0024_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0024_02",
      "dpo_negative": "cand_0024_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0025",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_025",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 25.45,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 43.49
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 31.67
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 31.65,
          "to_sec": 49.79,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 25.45,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0025_02",
      "candidates": [
        {
          "candidate_id": "cand_0025_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0025_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0025_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0025_02",
      "dpo_negative": "cand_0025_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0026",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_026",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 9.09,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.01
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 48.73
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.71,
          "to_sec": 36.2,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 9.09,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0026_03",
      "candidates": [
        {
          "candidate_id": "cand_0026_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0026_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0026_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0026_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0026_03",
      "dpo_negative": "cand_0026_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0027",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_027",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 29.06,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 28.97
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.08,
          "to_sec": 51.45,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0027_07",
      "candidates": [
        {
          "candidate_id": "cand_0027_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0027_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0027_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0027_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0027_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0027_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0027_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0027_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0027_07",
      "dpo_negative": "cand_0027_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0028",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_028",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 31.86,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 28.96
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.86
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 34.36,
          "to_sec": 47.29,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 31.86,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0028_07",
      "candidates": [
        {
          "candidate_id": "cand_0028_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0028_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0028_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0028_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0028_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0028_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0028_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0028_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0028_07",
      "dpo_negative": "cand_0028_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0029",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_029",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 20.2,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 35.51
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 57.16
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.78,
          "to_sec": 49.9,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.2,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0029_07",
      "candidates": [
        {
          "candidate_id": "cand_0029_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0029_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0029_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0029_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0029_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0029_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0029_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0029_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0029_07",
      "dpo_negative": "cand_0029_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0030",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_030",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 36.22,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 36.26
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 59.27
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.92,
          "to_sec": 50.71,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 36.22,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0030_02",
      "candidates": [
        {
          "candidate_id": "cand_0030_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0030_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0030_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0030_02",
      "dpo_negative": "cand_0030_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0031",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_031",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 44.03,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 50.02
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 60.22
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.01,
          "to_sec": 44.31,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 44.03,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0031_02",
      "candidates": [
        {
          "candidate_id": "cand_0031_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0031_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0031_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0031_02",
      "dpo_negative": "cand_0031_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0032",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_032",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 15.43,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 20.4
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 58.93
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.91,
          "to_sec": 36.91,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 15.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0032_03",
      "candidates": [
        {
          "candidate_id": "cand_0032_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0032_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0032_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0032_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0032_03",
      "dpo_negative": "cand_0032_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0033",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_033",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 22.45,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 59.72
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 50.98
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.95,
          "to_sec": 38.15,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 22.45,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0033_07",
      "candidates": [
        {
          "candidate_id": "cand_0033_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0033_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0033_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0033_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0033_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0033_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0033_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0033_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0033_07",
      "dpo_negative": "cand_0033_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0034",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_034",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 15.49,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 47.69
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 59.5
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.26,
          "to_sec": 48.96,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 15.49,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0034_07",
      "candidates": [
        {
          "candidate_id": "cand_0034_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0034_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0034_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0034_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0034_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0034_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0034_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0034_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0034_07",
      "dpo_negative": "cand_0034_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0035",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_035",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 42.72,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 53.42
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 24.09
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.12,
          "to_sec": 40.97,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 42.72,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0035_07",
      "candidates": [
        {
          "candidate_id": "cand_0035_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0035_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0035_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0035_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0035_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0035_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0035_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0035_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0035_07",
      "dpo_negative": "cand_0035_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0036",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_036",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 34.94,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 45.5
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.63
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.85,
          "to_sec": 46.63,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.94,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0036_02",
      "candidates": [
        {
          "candidate_id": "cand_0036_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0036_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0036_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0036_02",
      "dpo_negative": "cand_0036_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0037",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_037",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 19.05,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.98
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 60.21
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.4,
          "to_sec": 46.44,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 19.05,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0037_02",
      "candidates": [
        {
          "candidate_id": "cand_0037_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0037_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0037_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0037_02",
      "dpo_negative": "cand_0037_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0038",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_038",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 10.0,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 19.38
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 50.13
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.76,
          "to_sec": 43.65,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 10.0,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0038_03",
      "candidates": [
        {
          "candidate_id": "cand_0038_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0038_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0038_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0038_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0038_03",
      "dpo_negative": "cand_0038_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0039",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_039",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 23.13,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 47.34
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 66.61
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.95,
          "to_sec": 36.22,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0039_07",
      "candidates": [
        {
          "candidate_id": "cand_0039_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0039_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0039_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0039_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0039_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0039_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0039_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0039_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0039_07",
      "dpo_negative": "cand_0039_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0040",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_040",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 11.62,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 12.14
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 33.04
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 32.15,
          "to_sec": 47.37,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 11.62,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0040_07",
      "candidates": [
        {
          "candidate_id": "cand_0040_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0040_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0040_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0040_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0040_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0040_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0040_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0040_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0040_07",
      "dpo_negative": "cand_0040_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0041",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_041",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 39.0,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 29.98
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 55.23
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.25,
          "to_sec": 38.34,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 39.0,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0041_07",
      "candidates": [
        {
          "candidate_id": "cand_0041_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0041_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0041_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0041_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0041_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0041_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0041_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0041_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0041_07",
      "dpo_negative": "cand_0041_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0042",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_042",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 36.48,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 42.72
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 46.64
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.89,
          "to_sec": 36.38,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 36.48,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0042_02",
      "candidates": [
        {
          "candidate_id": "cand_0042_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0042_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0042_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0042_02",
      "dpo_negative": "cand_0042_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0043",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_043",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 27.67,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.45
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.09
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.55,
          "to_sec": 46.57,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 27.67,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0043_02",
      "candidates": [
        {
          "candidate_id": "cand_0043_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0043_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0043_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0043_02",
      "dpo_negative": "cand_0043_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0044",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_044",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 14.48,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 38.82
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 30.81
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.61,
          "to_sec": 40.5,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 14.48,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0044_03",
      "candidates": [
        {
          "candidate_id": "cand_0044_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0044_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0044_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0044_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0044_03",
      "dpo_negative": "cand_0044_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0045",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_045",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 38.42,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 61.2
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.58
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.06,
          "to_sec": 44.28,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 38.42,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0045_07",
      "candidates": [
        {
          "candidate_id": "cand_0045_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0045_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0045_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0045_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0045_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0045_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0045_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0045_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0045_07",
      "dpo_negative": "cand_0045_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0046",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_046",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 19.89,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 43.99
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 28.5
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.83,
          "to_sec": 52.53,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 19.89,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0046_07",
      "candidates": [
        {
          "candidate_id": "cand_0046_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0046_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0046_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0046_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0046_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0046_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0046_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0046_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0046_07",
      "dpo_negative": "cand_0046_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0047",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_047",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 29.55,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 53.2
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 65.05
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.99,
          "to_sec": 48.43,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 29.55,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0047_07",
      "candidates": [
        {
          "candidate_id": "cand_0047_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0047_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0047_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0047_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0047_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0047_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0047_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0047_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0047_07",
      "dpo_negative": "cand_0047_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0048",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_048",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 36.4,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 32.23
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.97
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.61,
          "to_sec": 38.58,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 36.4,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0048_02",
      "candidates": [
        {
          "candidate_id": "cand_0048_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0048_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0048_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0048_02",
      "dpo_negative": "cand_0048_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0049",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_049",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 5.53,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 23.17
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 46.22
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.92,
          "to_sec": 49.69,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 5.53,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0049_02",
      "candidates": [
        {
          "candidate_id": "cand_0049_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0049_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0049_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0049_02",
      "dpo_negative": "cand_0049_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0050",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_050",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 43.22,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 27.51
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 28.25
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.87,
          "to_sec": 40.12,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 43.22,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0050_03",
      "candidates": [
        {
          "candidate_id": "cand_0050_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0050_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0050_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0050_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0050_03",
      "dpo_negative": "cand_0050_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0051",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_051",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 29.0,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 30.86
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 43.36
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.61,
          "to_sec": 52.0,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.0,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0051_07",
      "candidates": [
        {
          "candidate_id": "cand_0051_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0051_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0051_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0051_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0051_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0051_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0051_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0051_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0051_07",
      "dpo_negative": "cand_0051_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0052",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_052",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 14.79,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 22.14
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 64.19
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.44,
          "to_sec": 36.16,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 14.79,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0052_07",
      "candidates": [
        {
          "candidate_id": "cand_0052_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0052_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0052_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0052_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0052_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0052_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0052_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0052_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0052_07",
      "dpo_negative": "cand_0052_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0053",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_053",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 16.65,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.44
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.46
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.53,
          "to_sec": 40.06,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 16.65,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0053_07",
      "candidates": [
        {
          "candidate_id": "cand_0053_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0053_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0053_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0053_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0053_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0053_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0053_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0053_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0053_07",
      "dpo_negative": "cand_0053_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0054",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_054",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 6.54,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 40.1
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 55.74
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.93,
          "to_sec": 43.51,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 6.54,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0054_02",
      "candidates": [
        {
          "candidate_id": "cand_0054_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0054_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0054_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0054_02",
      "dpo_negative": "cand_0054_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0055",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_055",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 34.16,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 32.97
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 43.93
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.82,
          "to_sec": 39.53,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 34.16,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0055_02",
      "candidates": [
        {
          "candidate_id": "cand_0055_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0055_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0055_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0055_02",
      "dpo_negative": "cand_0055_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0056",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_056",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 18.63,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 49.73
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.17
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.56,
          "to_sec": 42.22,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 18.63,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0056_03",
      "candidates": [
        {
          "candidate_id": "cand_0056_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0056_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0056_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0056_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0056_03",
      "dpo_negative": "cand_0056_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0057",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_057",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 14.22,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 30.38
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 68.46
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.4,
          "to_sec": 43.92,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 14.22,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0057_07",
      "candidates": [
        {
          "candidate_id": "cand_0057_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0057_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0057_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0057_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0057_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0057_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0057_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0057_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0057_07",
      "dpo_negative": "cand_0057_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0058",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_058",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 34.03,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 41.23
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 28.67
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.34,
          "to_sec": 40.45,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.03,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0058_07",
      "candidates": [
        {
          "candidate_id": "cand_0058_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0058_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0058_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0058_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0058_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0058_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0058_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0058_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0058_07",
      "dpo_negative": "cand_0058_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0059",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_059",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 20.78,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 24.8
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 60.41
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.47,
          "to_sec": 43.14,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.78,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0059_07",
      "candidates": [
        {
          "candidate_id": "cand_0059_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0059_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0059_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0059_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0059_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0059_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0059_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0059_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0059_07",
      "dpo_negative": "cand_0059_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0060",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_060",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 29.85,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 12.25
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.54
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 32.97,
          "to_sec": 48.52,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 29.85,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0060_02",
      "candidates": [
        {
          "candidate_id": "cand_0060_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0060_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0060_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0060_02",
      "dpo_negative": "cand_0060_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0061",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_061",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 17.73,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 55.21
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 28.63
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.51,
          "to_sec": 53.73,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 17.73,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0061_02",
      "candidates": [
        {
          "candidate_id": "cand_0061_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0061_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0061_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0061_02",
      "dpo_negative": "cand_0061_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0062",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_062",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 26.13,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.89
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 28.19
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.03,
          "to_sec": 44.42,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 26.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0062_03",
      "candidates": [
        {
          "candidate_id": "cand_0062_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0062_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0062_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0062_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0062_03",
      "dpo_negative": "cand_0062_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0063",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_063",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 42.25,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 48.99
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 64.89
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.78,
          "to_sec": 38.49,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 42.25,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0063_07",
      "candidates": [
        {
          "candidate_id": "cand_0063_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0063_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0063_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0063_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0063_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0063_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0063_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0063_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0063_07",
      "dpo_negative": "cand_0063_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0064",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_064",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 43.66,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 39.93
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 27.37
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.22,
          "to_sec": 48.9,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 43.66,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0064_07",
      "candidates": [
        {
          "candidate_id": "cand_0064_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0064_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0064_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0064_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0064_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0064_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0064_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0064_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0064_07",
      "dpo_negative": "cand_0064_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0065",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_065",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 13.56,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 13.71
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 67.01
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.21,
          "to_sec": 44.21,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 13.56,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0065_07",
      "candidates": [
        {
          "candidate_id": "cand_0065_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0065_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0065_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0065_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0065_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0065_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0065_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0065_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0065_07",
      "dpo_negative": "cand_0065_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0066",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_066",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 16.01,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 52.04
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 19.55
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.79,
          "to_sec": 50.71,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 16.01,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0066_02",
      "candidates": [
        {
          "candidate_id": "cand_0066_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0066_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0066_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0066_02",
      "dpo_negative": "cand_0066_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0067",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_067",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 43.04,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 17.09
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 55.06
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.07,
          "to_sec": 38.61,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 43.04,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0067_02",
      "candidates": [
        {
          "candidate_id": "cand_0067_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0067_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0067_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0067_02",
      "dpo_negative": "cand_0067_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0068",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_068",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 13.98,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 54.46
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 65.95
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.38,
          "to_sec": 48.55,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 13.98,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0068_03",
      "candidates": [
        {
          "candidate_id": "cand_0068_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0068_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0068_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0068_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0068_03",
      "dpo_negative": "cand_0068_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0069",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_069",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 9.62,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 15.62
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.87,
          "to_sec": 51.61,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 9.62,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0069_07",
      "candidates": [
        {
          "candidate_id": "cand_0069_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0069_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0069_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0069_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0069_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0069_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0069_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0069_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0069_07",
      "dpo_negative": "cand_0069_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0070",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_070",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 15.03,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 40.86
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 21.68
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 31.22,
          "to_sec": 36.29,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 15.03,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0070_07",
      "candidates": [
        {
          "candidate_id": "cand_0070_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0070_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0070_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0070_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0070_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0070_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0070_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0070_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0070_07",
      "dpo_negative": "cand_0070_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0071",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_071",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 8.65,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 47.7
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 57.56
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.25,
          "to_sec": 47.23,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 8.65,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0071_07",
      "candidates": [
        {
          "candidate_id": "cand_0071_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0071_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0071_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0071_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0071_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0071_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0071_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0071_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0071_07",
      "dpo_negative": "cand_0071_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0072",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_072",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 22.2,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 40.49
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.74
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.25,
          "to_sec": 43.08,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 22.2,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0072_02",
      "candidates": [
        {
          "candidate_id": "cand_0072_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0072_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0072_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0072_02",
      "dpo_negative": "cand_0072_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0073",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_073",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 13.0,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 59.63
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 30.16
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 32.36,
          "to_sec": 37.02,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 13.0,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0073_02",
      "candidates": [
        {
          "candidate_id": "cand_0073_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0073_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0073_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0073_02",
      "dpo_negative": "cand_0073_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0074",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_074",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 33.07,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 21.49
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.47
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.41,
          "to_sec": 42.75,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 33.07,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0074_03",
      "candidates": [
        {
          "candidate_id": "cand_0074_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0074_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0074_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0074_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0074_03",
      "dpo_negative": "cand_0074_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0075",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_075",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 39.03,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 18.95
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 62.39
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.83,
          "to_sec": 47.74,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 39.03,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0075_07",
      "candidates": [
        {
          "candidate_id": "cand_0075_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0075_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0075_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0075_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0075_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0075_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0075_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0075_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0075_07",
      "dpo_negative": "cand_0075_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0076",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_076",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 16.08,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 61.58
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 28.26
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.51,
          "to_sec": 38.97,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 16.08,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0076_07",
      "candidates": [
        {
          "candidate_id": "cand_0076_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0076_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0076_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0076_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0076_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0076_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0076_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0076_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0076_07",
      "dpo_negative": "cand_0076_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0077",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_077",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 19.23,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 29.07
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 35.62
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.3,
          "to_sec": 37.34,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 19.23,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0077_07",
      "candidates": [
        {
          "candidate_id": "cand_0077_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0077_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0077_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0077_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0077_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0077_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0077_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0077_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0077_07",
      "dpo_negative": "cand_0077_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0078",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_078",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 20.93,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 61.95
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 29.13
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.4,
          "to_sec": 47.98,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 20.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0078_02",
      "candidates": [
        {
          "candidate_id": "cand_0078_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0078_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0078_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0078_02",
      "dpo_negative": "cand_0078_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0079",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_079",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 5.45,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.14
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.39
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.77,
          "to_sec": 37.06,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 5.45,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0079_02",
      "candidates": [
        {
          "candidate_id": "cand_0079_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0079_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0079_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0079_02",
      "dpo_negative": "cand_0079_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0080",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_000",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 21.43,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 36.52
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 62.82
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.29,
          "to_sec": 51.32,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 21.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0080_03",
      "candidates": [
        {
          "candidate_id": "cand_0080_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0080_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0080_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0080_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0080_03",
      "dpo_negative": "cand_0080_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0081",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_001",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 28.12,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 42.37
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 67.6
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.44,
          "to_sec": 40.77,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 28.12,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0081_07",
      "candidates": [
        {
          "candidate_id": "cand_0081_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0081_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0081_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0081_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0081_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0081_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0081_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0081_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0081_07",
      "dpo_negative": "cand_0081_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0082",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_002",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 21.4,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 53.88
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 63.03
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.45,
          "to_sec": 50.19,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 21.4,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0082_07",
      "candidates": [
        {
          "candidate_id": "cand_0082_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0082_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0082_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0082_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0082_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0082_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0082_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0082_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0082_07",
      "dpo_negative": "cand_0082_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0083",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_003",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 39.39,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.8
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.88
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.36,
          "to_sec": 51.2,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 39.39,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0083_07",
      "candidates": [
        {
          "candidate_id": "cand_0083_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0083_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0083_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0083_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0083_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0083_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0083_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0083_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0083_07",
      "dpo_negative": "cand_0083_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0084",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_004",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 14.53,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 48.09
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 18.49
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.93,
          "to_sec": 39.38,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 14.53,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0084_02",
      "candidates": [
        {
          "candidate_id": "cand_0084_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0084_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0084_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0084_02",
      "dpo_negative": "cand_0084_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0085",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_005",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 15.86,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 34.51
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 28.5
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.03,
          "to_sec": 45.67,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 15.86,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0085_02",
      "candidates": [
        {
          "candidate_id": "cand_0085_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0085_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0085_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0085_02",
      "dpo_negative": "cand_0085_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0086",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_006",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 27.63,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.45
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 21.94
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.56,
          "to_sec": 52.89,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 27.63,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0086_03",
      "candidates": [
        {
          "candidate_id": "cand_0086_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0086_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0086_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0086_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0086_03",
      "dpo_negative": "cand_0086_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0087",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_007",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 19.3,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.84
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.19
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 34.97,
          "to_sec": 53.57,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 19.3,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0087_07",
      "candidates": [
        {
          "candidate_id": "cand_0087_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0087_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0087_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0087_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0087_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0087_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0087_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0087_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0087_07",
      "dpo_negative": "cand_0087_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0088",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_008",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 17.61,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 45.4
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 39.86
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.16,
          "to_sec": 41.27,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 17.61,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0088_07",
      "candidates": [
        {
          "candidate_id": "cand_0088_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0088_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0088_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0088_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0088_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0088_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0088_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0088_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0088_07",
      "dpo_negative": "cand_0088_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0089",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_009",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 22.83,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.95
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 21.38
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.4,
          "to_sec": 38.99,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 22.83,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0089_07",
      "candidates": [
        {
          "candidate_id": "cand_0089_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0089_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0089_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0089_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0089_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0089_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0089_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0089_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0089_07",
      "dpo_negative": "cand_0089_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0090",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_010",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 26.25,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 42.49
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 63.06
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.86,
          "to_sec": 47.72,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 26.25,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0090_02",
      "candidates": [
        {
          "candidate_id": "cand_0090_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0090_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0090_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0090_02",
      "dpo_negative": "cand_0090_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0091",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_011",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 7.63,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.69
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 52.94
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.24,
          "to_sec": 40.59,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 7.63,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0091_02",
      "candidates": [
        {
          "candidate_id": "cand_0091_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0091_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0091_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0091_02",
      "dpo_negative": "cand_0091_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0092",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_012",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 24.98,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 31.62
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.04
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.36,
          "to_sec": 36.74,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 24.98,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0092_03",
      "candidates": [
        {
          "candidate_id": "cand_0092_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0092_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0092_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0092_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0092_03",
      "dpo_negative": "cand_0092_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0093",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_013",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 38.9,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 45.88
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.59
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.32,
          "to_sec": 38.86,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 38.9,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0093_07",
      "candidates": [
        {
          "candidate_id": "cand_0093_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0093_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0093_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0093_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0093_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0093_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0093_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0093_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0093_07",
      "dpo_negative": "cand_0093_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0094",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_014",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 28.6,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 19.86
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.52
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.52,
          "to_sec": 40.61,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 28.6,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0094_07",
      "candidates": [
        {
          "candidate_id": "cand_0094_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0094_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0094_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0094_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0094_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0094_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0094_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0094_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0094_07",
      "dpo_negative": "cand_0094_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0095",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_015",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 10.47,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.49
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.96
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.25,
          "to_sec": 49.92,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 10.47,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0095_07",
      "candidates": [
        {
          "candidate_id": "cand_0095_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0095_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0095_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0095_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0095_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0095_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0095_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0095_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0095_07",
      "dpo_negative": "cand_0095_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0096",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_016",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 41.46,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.68
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 18.42
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.2,
          "to_sec": 41.17,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 41.46,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0096_02",
      "candidates": [
        {
          "candidate_id": "cand_0096_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0096_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0096_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0096_02",
      "dpo_negative": "cand_0096_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0097",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_017",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 17.21,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 22.67
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 24.52
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.22,
          "to_sec": 46.02,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 17.21,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0097_02",
      "candidates": [
        {
          "candidate_id": "cand_0097_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0097_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0097_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0097_02",
      "dpo_negative": "cand_0097_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0098",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_018",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 6.52,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 40.65
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 58.11
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.25,
          "to_sec": 51.0,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 6.52,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0098_03",
      "candidates": [
        {
          "candidate_id": "cand_0098_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0098_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0098_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0098_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0098_03",
      "dpo_negative": "cand_0098_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0099",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_019",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 14.6,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 16.42
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 28.94
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.46,
          "to_sec": 42.04,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 14.6,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0099_07",
      "candidates": [
        {
          "candidate_id": "cand_0099_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0099_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0099_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0099_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0099_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0099_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0099_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0099_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0099_07",
      "dpo_negative": "cand_0099_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0100",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_020",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 12.06,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 46.83
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 53.86
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 34.27,
          "to_sec": 38.82,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 12.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0100_07",
      "candidates": [
        {
          "candidate_id": "cand_0100_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0100_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0100_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0100_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0100_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0100_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0100_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0100_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0100_07",
      "dpo_negative": "cand_0100_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0101",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_021",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 34.72,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.31
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.83,
          "to_sec": 41.41,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.72,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0101_07",
      "candidates": [
        {
          "candidate_id": "cand_0101_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0101_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0101_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0101_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0101_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0101_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0101_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0101_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0101_07",
      "dpo_negative": "cand_0101_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0102",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_022",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 12.32,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 42.64
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 27.19
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.26,
          "to_sec": 39.9,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 12.32,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0102_02",
      "candidates": [
        {
          "candidate_id": "cand_0102_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0102_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0102_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0102_02",
      "dpo_negative": "cand_0102_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0103",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_023",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 35.26,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 56.05
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 66.32
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.3,
          "to_sec": 45.62,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 35.26,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0103_02",
      "candidates": [
        {
          "candidate_id": "cand_0103_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0103_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0103_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0103_02",
      "dpo_negative": "cand_0103_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0104",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_024",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 21.93,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 18.34
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 25.4
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.78,
          "to_sec": 38.83,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 21.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0104_03",
      "candidates": [
        {
          "candidate_id": "cand_0104_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0104_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0104_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0104_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0104_03",
      "dpo_negative": "cand_0104_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0105",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_025",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 12.7,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 59.59
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 62.3
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.21,
          "to_sec": 51.49,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 12.7,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0105_07",
      "candidates": [
        {
          "candidate_id": "cand_0105_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0105_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0105_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0105_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0105_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0105_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0105_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0105_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0105_07",
      "dpo_negative": "cand_0105_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0106",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_026",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 5.15,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 23.92
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 66.67
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.28,
          "to_sec": 37.03,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 5.15,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0106_07",
      "candidates": [
        {
          "candidate_id": "cand_0106_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0106_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0106_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0106_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0106_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0106_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0106_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0106_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0106_07",
      "dpo_negative": "cand_0106_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0107",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_027",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 16.55,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 49.56
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.92
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.31,
          "to_sec": 50.55,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 16.55,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0107_07",
      "candidates": [
        {
          "candidate_id": "cand_0107_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0107_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0107_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0107_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0107_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0107_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0107_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0107_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0107_07",
      "dpo_negative": "cand_0107_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0108",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_028",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 39.47,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 39.26
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 24.56
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.1,
          "to_sec": 42.13,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 39.47,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0108_02",
      "candidates": [
        {
          "candidate_id": "cand_0108_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0108_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0108_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0108_02",
      "dpo_negative": "cand_0108_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0109",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_029",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 27.62,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 33.3
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 55.79
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.53,
          "to_sec": 42.96,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 27.62,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0109_02",
      "candidates": [
        {
          "candidate_id": "cand_0109_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0109_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0109_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0109_02",
      "dpo_negative": "cand_0109_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0110",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_030",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 25.91,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.13
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 22.31
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.36,
          "to_sec": 37.57,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 25.91,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0110_03",
      "candidates": [
        {
          "candidate_id": "cand_0110_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0110_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0110_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0110_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0110_03",
      "dpo_negative": "cand_0110_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0111",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_031",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 34.72,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 14.85
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 42.68
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.19,
          "to_sec": 53.26,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.72,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0111_07",
      "candidates": [
        {
          "candidate_id": "cand_0111_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0111_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0111_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0111_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0111_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0111_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0111_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0111_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0111_07",
      "dpo_negative": "cand_0111_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0112",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_032",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 5.94,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.17
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.84,
          "to_sec": 45.61,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 5.94,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0112_07",
      "candidates": [
        {
          "candidate_id": "cand_0112_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0112_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0112_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0112_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0112_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0112_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0112_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0112_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0112_07",
      "dpo_negative": "cand_0112_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0113",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_033",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 8.17,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.99
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 32.92
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.24,
          "to_sec": 45.12,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 8.17,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0113_07",
      "candidates": [
        {
          "candidate_id": "cand_0113_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0113_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0113_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0113_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0113_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0113_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0113_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0113_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0113_07",
      "dpo_negative": "cand_0113_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0114",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_034",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 41.43,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 49.44
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 58.89
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.8,
          "to_sec": 51.91,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 41.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0114_02",
      "candidates": [
        {
          "candidate_id": "cand_0114_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0114_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0114_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0114_02",
      "dpo_negative": "cand_0114_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0115",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_035",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 34.08,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 53.76
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 58.74
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 33.03,
          "to_sec": 49.13,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 34.08,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0115_02",
      "candidates": [
        {
          "candidate_id": "cand_0115_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0115_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0115_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0115_02",
      "dpo_negative": "cand_0115_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0116",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_036",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 28.58,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 55.21
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 28.43
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.81,
          "to_sec": 48.39,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 28.58,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0116_03",
      "candidates": [
        {
          "candidate_id": "cand_0116_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0116_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0116_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0116_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0116_03",
      "dpo_negative": "cand_0116_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0117",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_037",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 19.63,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 46.42
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.48
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.47,
          "to_sec": 37.95,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 19.63,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0117_07",
      "candidates": [
        {
          "candidate_id": "cand_0117_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0117_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0117_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0117_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0117_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0117_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0117_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0117_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0117_07",
      "dpo_negative": "cand_0117_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0118",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_038",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 19.65,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 34.87
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 61.35
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.8,
          "to_sec": 37.28,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 19.65,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0118_07",
      "candidates": [
        {
          "candidate_id": "cand_0118_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0118_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0118_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0118_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0118_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0118_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0118_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0118_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0118_07",
      "dpo_negative": "cand_0118_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0119",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_039",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 36.16,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 21.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 39.42
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.64,
          "to_sec": 40.57,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 36.16,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0119_07",
      "candidates": [
        {
          "candidate_id": "cand_0119_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0119_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0119_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0119_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0119_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0119_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0119_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0119_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0119_07",
      "dpo_negative": "cand_0119_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0120",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_040",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 44.57,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 12.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.45
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.67,
          "to_sec": 40.71,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 44.57,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0120_02",
      "candidates": [
        {
          "candidate_id": "cand_0120_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0120_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0120_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0120_02",
      "dpo_negative": "cand_0120_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0121",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_041",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 25.06,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 36.37
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 23.59
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.24,
          "to_sec": 44.53,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 25.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0121_02",
      "candidates": [
        {
          "candidate_id": "cand_0121_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0121_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0121_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0121_02",
      "dpo_negative": "cand_0121_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0122",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_042",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 38.84,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 13.44
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.66
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.52,
          "to_sec": 39.42,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 38.84,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0122_03",
      "candidates": [
        {
          "candidate_id": "cand_0122_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0122_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0122_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0122_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0122_03",
      "dpo_negative": "cand_0122_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0123",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_043",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 44.19,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 19.02
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 34.25
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.04,
          "to_sec": 46.89,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.19,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0123_07",
      "candidates": [
        {
          "candidate_id": "cand_0123_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0123_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0123_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0123_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0123_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0123_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0123_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0123_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0123_07",
      "dpo_negative": "cand_0123_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0124",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_044",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 31.27,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 31.3
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.04
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.54,
          "to_sec": 47.98,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 31.27,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0124_07",
      "candidates": [
        {
          "candidate_id": "cand_0124_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0124_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0124_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0124_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0124_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0124_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0124_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0124_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0124_07",
      "dpo_negative": "cand_0124_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0125",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_045",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 6.67,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 20.17
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.23
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.36,
          "to_sec": 45.6,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 6.67,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0125_07",
      "candidates": [
        {
          "candidate_id": "cand_0125_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0125_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0125_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0125_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0125_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0125_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0125_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0125_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0125_07",
      "dpo_negative": "cand_0125_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0126",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_046",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 44.63,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 23.17
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 64.62
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.56,
          "to_sec": 52.96,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.63,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0126_02",
      "candidates": [
        {
          "candidate_id": "cand_0126_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0126_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0126_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0126_02",
      "dpo_negative": "cand_0126_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0127",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_047",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 26.22,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 13.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 50.27
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.2,
          "to_sec": 36.09,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 26.22,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0127_02",
      "candidates": [
        {
          "candidate_id": "cand_0127_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0127_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0127_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0127_02",
      "dpo_negative": "cand_0127_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0128",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_048",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 26.06,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 25.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.39
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.01,
          "to_sec": 43.92,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 26.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0128_03",
      "candidates": [
        {
          "candidate_id": "cand_0128_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0128_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0128_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0128_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0128_03",
      "dpo_negative": "cand_0128_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0129",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_049",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 31.37,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 20.92
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.44
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.98,
          "to_sec": 52.26,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 31.37,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0129_07",
      "candidates": [
        {
          "candidate_id": "cand_0129_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0129_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0129_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0129_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0129_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0129_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0129_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0129_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0129_07",
      "dpo_negative": "cand_0129_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0130",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_050",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 19.0,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.67
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.99
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.54,
          "to_sec": 37.63,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 19.0,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0130_07",
      "candidates": [
        {
          "candidate_id": "cand_0130_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0130_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0130_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0130_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0130_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0130_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0130_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0130_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0130_07",
      "dpo_negative": "cand_0130_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0131",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_051",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 42.97,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 16.54
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 65.55
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.28,
          "to_sec": 47.01,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 42.97,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0131_07",
      "candidates": [
        {
          "candidate_id": "cand_0131_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0131_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0131_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0131_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0131_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0131_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0131_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0131_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0131_07",
      "dpo_negative": "cand_0131_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0132",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_052",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 8.1,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 14.98
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 59.81
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.57,
          "to_sec": 38.21,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 8.1,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0132_02",
      "candidates": [
        {
          "candidate_id": "cand_0132_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0132_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0132_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0132_02",
      "dpo_negative": "cand_0132_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0133",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_053",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 29.44,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 18.09
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.98
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.51,
          "to_sec": 38.32,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0133_02",
      "candidates": [
        {
          "candidate_id": "cand_0133_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0133_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0133_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0133_02",
      "dpo_negative": "cand_0133_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0134",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_054",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 34.84,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 24.07
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 66.52
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.58,
          "to_sec": 51.07,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 34.84,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0134_03",
      "candidates": [
        {
          "candidate_id": "cand_0134_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0134_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0134_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0134_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0134_03",
      "dpo_negative": "cand_0134_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0135",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_055",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 31.89,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 50.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 66.96
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.47,
          "to_sec": 46.24,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 31.89,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0135_07",
      "candidates": [
        {
          "candidate_id": "cand_0135_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0135_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0135_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0135_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0135_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0135_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0135_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0135_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0135_07",
      "dpo_negative": "cand_0135_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0136",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_056",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 37.83,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 53.37
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 26.88
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.57,
          "to_sec": 48.49,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 37.83,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0136_07",
      "candidates": [
        {
          "candidate_id": "cand_0136_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0136_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0136_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0136_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0136_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0136_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0136_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0136_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0136_07",
      "dpo_negative": "cand_0136_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0137",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_057",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 44.54,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 14.63
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.32
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.99,
          "to_sec": 51.41,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.54,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0137_07",
      "candidates": [
        {
          "candidate_id": "cand_0137_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0137_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0137_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0137_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0137_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0137_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0137_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0137_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0137_07",
      "dpo_negative": "cand_0137_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0138",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_058",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 23.85,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 38.25
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.87
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.28,
          "to_sec": 49.3,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.85,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0138_02",
      "candidates": [
        {
          "candidate_id": "cand_0138_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0138_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0138_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0138_02",
      "dpo_negative": "cand_0138_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0139",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_059",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 43.12,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 59.1
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 39.5
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.46,
          "to_sec": 48.1,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 43.12,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0139_02",
      "candidates": [
        {
          "candidate_id": "cand_0139_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0139_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0139_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0139_02",
      "dpo_negative": "cand_0139_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0140",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_060",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 26.34,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 13.58
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 55.12
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.56,
          "to_sec": 52.25,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 26.34,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0140_03",
      "candidates": [
        {
          "candidate_id": "cand_0140_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0140_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0140_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0140_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0140_03",
      "dpo_negative": "cand_0140_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0141",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_061",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 15.84,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 20.99
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 26.2
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.67,
          "to_sec": 36.25,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 15.84,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0141_07",
      "candidates": [
        {
          "candidate_id": "cand_0141_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0141_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0141_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0141_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0141_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0141_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0141_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0141_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0141_07",
      "dpo_negative": "cand_0141_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0142",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_062",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 43.42,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 27.54
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 28.94
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.79,
          "to_sec": 42.4,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 43.42,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0142_07",
      "candidates": [
        {
          "candidate_id": "cand_0142_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0142_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0142_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0142_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0142_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0142_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0142_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0142_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0142_07",
      "dpo_negative": "cand_0142_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0143",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_063",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 8.91,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 60.93
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 33.15
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.11,
          "to_sec": 38.12,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 8.91,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0143_07",
      "candidates": [
        {
          "candidate_id": "cand_0143_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0143_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0143_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0143_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0143_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0143_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0143_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0143_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0143_07",
      "dpo_negative": "cand_0143_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0144",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_064",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 39.11,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 17.22
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 29.35
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.78,
          "to_sec": 47.19,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 39.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0144_02",
      "candidates": [
        {
          "candidate_id": "cand_0144_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0144_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0144_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0144_02",
      "dpo_negative": "cand_0144_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0145",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_065",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 8.4,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.23
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.52
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.23,
          "to_sec": 36.7,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 8.4,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0145_02",
      "candidates": [
        {
          "candidate_id": "cand_0145_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0145_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0145_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0145_02",
      "dpo_negative": "cand_0145_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0146",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_066",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 39.43,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.09
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 22.54
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.89,
          "to_sec": 51.58,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 39.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0146_03",
      "candidates": [
        {
          "candidate_id": "cand_0146_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0146_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0146_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0146_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0146_03",
      "dpo_negative": "cand_0146_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0147",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_067",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 20.42,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.5
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.66
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.01,
          "to_sec": 49.29,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.42,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0147_07",
      "candidates": [
        {
          "candidate_id": "cand_0147_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0147_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0147_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0147_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0147_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0147_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0147_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0147_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0147_07",
      "dpo_negative": "cand_0147_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0148",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_068",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 18.49,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 54.74
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.66
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.59,
          "to_sec": 52.09,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.49,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0148_07",
      "candidates": [
        {
          "candidate_id": "cand_0148_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0148_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0148_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0148_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0148_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0148_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0148_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0148_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0148_07",
      "dpo_negative": "cand_0148_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0149",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_069",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 22.13,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 14.89
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.52
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.56,
          "to_sec": 38.38,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 22.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0149_07",
      "candidates": [
        {
          "candidate_id": "cand_0149_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0149_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0149_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0149_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0149_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0149_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0149_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0149_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0149_07",
      "dpo_negative": "cand_0149_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0150",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_070",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 39.06,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 26.07
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.04
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.65,
          "to_sec": 49.7,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 39.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0150_02",
      "candidates": [
        {
          "candidate_id": "cand_0150_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0150_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0150_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0150_02",
      "dpo_negative": "cand_0150_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0151",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_071",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 12.92,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.88
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 35.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.92,
          "to_sec": 39.72,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 12.92,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0151_02",
      "candidates": [
        {
          "candidate_id": "cand_0151_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0151_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0151_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0151_02",
      "dpo_negative": "cand_0151_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0152",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_072",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 18.85,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.88
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 62.21
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.26,
          "to_sec": 52.2,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.85,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0152_03",
      "candidates": [
        {
          "candidate_id": "cand_0152_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0152_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0152_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0152_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0152_03",
      "dpo_negative": "cand_0152_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0153",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_073",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 12.37,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 60.04
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.36
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.94,
          "to_sec": 44.7,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 12.37,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0153_07",
      "candidates": [
        {
          "candidate_id": "cand_0153_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0153_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0153_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0153_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0153_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0153_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0153_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0153_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0153_07",
      "dpo_negative": "cand_0153_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0154",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_074",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 33.54,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.67
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 50.6
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.99,
          "to_sec": 51.75,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 33.54,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0154_07",
      "candidates": [
        {
          "candidate_id": "cand_0154_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0154_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0154_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0154_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0154_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0154_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0154_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0154_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0154_07",
      "dpo_negative": "cand_0154_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0155",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_075",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 10.62,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 13.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.11
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.83,
          "to_sec": 41.93,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 10.62,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0155_07",
      "candidates": [
        {
          "candidate_id": "cand_0155_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0155_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0155_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0155_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0155_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0155_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0155_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0155_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0155_07",
      "dpo_negative": "cand_0155_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0156",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_076",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 23.53,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 56.11
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 25.18
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.55,
          "to_sec": 49.86,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.53,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0156_02",
      "candidates": [
        {
          "candidate_id": "cand_0156_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0156_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0156_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0156_02",
      "dpo_negative": "cand_0156_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0157",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_077",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 30.96,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 30.37
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 61.08
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.02,
          "to_sec": 44.13,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 30.96,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0157_02",
      "candidates": [
        {
          "candidate_id": "cand_0157_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0157_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0157_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0157_02",
      "dpo_negative": "cand_0157_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0158",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_078",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 38.18,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 25.32
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 69.92
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.23,
          "to_sec": 40.02,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 38.18,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0158_03",
      "candidates": [
        {
          "candidate_id": "cand_0158_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0158_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0158_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0158_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0158_03",
      "dpo_negative": "cand_0158_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0159",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_079",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 32.44,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 16.11
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.43
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.83,
          "to_sec": 49.08,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 32.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0159_07",
      "candidates": [
        {
          "candidate_id": "cand_0159_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0159_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0159_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0159_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0159_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0159_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0159_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0159_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0159_07",
      "dpo_negative": "cand_0159_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0160",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_000",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 13.76,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 25.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 65.06
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.03,
          "to_sec": 39.0,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 13.76,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0160_07",
      "candidates": [
        {
          "candidate_id": "cand_0160_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0160_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0160_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0160_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0160_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0160_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0160_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0160_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0160_07",
      "dpo_negative": "cand_0160_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0161",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_001",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 42.69,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 20.34
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 69.81
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.83,
          "to_sec": 44.09,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 42.69,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0161_07",
      "candidates": [
        {
          "candidate_id": "cand_0161_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0161_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0161_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0161_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0161_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0161_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0161_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0161_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0161_07",
      "dpo_negative": "cand_0161_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0162",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_002",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 38.18,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 25.24
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 65.56
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.77,
          "to_sec": 53.16,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 38.18,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0162_02",
      "candidates": [
        {
          "candidate_id": "cand_0162_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0162_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0162_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0162_02",
      "dpo_negative": "cand_0162_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0163",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_003",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 37.55,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 60.4
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.86
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.09,
          "to_sec": 45.92,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 37.55,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0163_02",
      "candidates": [
        {
          "candidate_id": "cand_0163_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0163_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0163_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0163_02",
      "dpo_negative": "cand_0163_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0164",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_004",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 13.64,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 43.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 48.45
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.01,
          "to_sec": 36.82,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 13.64,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0164_03",
      "candidates": [
        {
          "candidate_id": "cand_0164_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0164_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0164_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0164_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0164_03",
      "dpo_negative": "cand_0164_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0165",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_005",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 17.13,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 45.93
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 35.08
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.73,
          "to_sec": 41.86,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 17.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0165_07",
      "candidates": [
        {
          "candidate_id": "cand_0165_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0165_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0165_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0165_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0165_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0165_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0165_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0165_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0165_07",
      "dpo_negative": "cand_0165_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0166",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_006",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 38.32,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 40.83
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 55.51
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.09,
          "to_sec": 37.45,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 38.32,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0166_07",
      "candidates": [
        {
          "candidate_id": "cand_0166_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0166_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0166_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0166_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0166_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0166_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0166_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0166_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0166_07",
      "dpo_negative": "cand_0166_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0167",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_007",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 35.6,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 28.03
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.92
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.33,
          "to_sec": 45.4,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 35.6,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0167_07",
      "candidates": [
        {
          "candidate_id": "cand_0167_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0167_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0167_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0167_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0167_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0167_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0167_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0167_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0167_07",
      "dpo_negative": "cand_0167_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0168",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_008",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 21.11,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 45.25
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.61
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.52,
          "to_sec": 47.06,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 21.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0168_02",
      "candidates": [
        {
          "candidate_id": "cand_0168_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0168_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0168_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0168_02",
      "dpo_negative": "cand_0168_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0169",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_009",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 18.53,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 60.12
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.87
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.83,
          "to_sec": 38.0,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.53,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0169_02",
      "candidates": [
        {
          "candidate_id": "cand_0169_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0169_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0169_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0169_02",
      "dpo_negative": "cand_0169_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0170",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_010",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 15.91,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 51.82
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.79
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 32.01,
          "to_sec": 51.96,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 15.91,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0170_03",
      "candidates": [
        {
          "candidate_id": "cand_0170_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0170_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0170_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0170_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0170_03",
      "dpo_negative": "cand_0170_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0171",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_011",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 44.32,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 60.62
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 43.23
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.09,
          "to_sec": 41.24,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.32,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0171_07",
      "candidates": [
        {
          "candidate_id": "cand_0171_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0171_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0171_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0171_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0171_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0171_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0171_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0171_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0171_07",
      "dpo_negative": "cand_0171_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0172",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_012",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 33.63,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 17.81
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 61.41
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.37,
          "to_sec": 47.36,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 33.63,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0172_07",
      "candidates": [
        {
          "candidate_id": "cand_0172_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0172_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0172_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0172_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0172_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0172_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0172_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0172_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0172_07",
      "dpo_negative": "cand_0172_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0173",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_013",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 5.56,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 46.22
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 18.85
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.41,
          "to_sec": 37.99,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 5.56,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0173_07",
      "candidates": [
        {
          "candidate_id": "cand_0173_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0173_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0173_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0173_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0173_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0173_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0173_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0173_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0173_07",
      "dpo_negative": "cand_0173_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0174",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_014",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 5.87,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 27.66
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 68.89
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.6,
          "to_sec": 43.39,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 5.87,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0174_02",
      "candidates": [
        {
          "candidate_id": "cand_0174_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0174_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0174_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0174_02",
      "dpo_negative": "cand_0174_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0175",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_015",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 13.78,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 18.39
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 60.04
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.69,
          "to_sec": 41.33,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 13.78,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0175_02",
      "candidates": [
        {
          "candidate_id": "cand_0175_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0175_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0175_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0175_02",
      "dpo_negative": "cand_0175_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0176",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_016",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 12.48,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 39.03
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 26.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.79,
          "to_sec": 39.01,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 12.48,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0176_03",
      "candidates": [
        {
          "candidate_id": "cand_0176_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0176_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0176_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0176_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0176_03",
      "dpo_negative": "cand_0176_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0177",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_017",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 16.33,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 37.56
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 50.48
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.21,
          "to_sec": 44.31,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 16.33,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0177_07",
      "candidates": [
        {
          "candidate_id": "cand_0177_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0177_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0177_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0177_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0177_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0177_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0177_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0177_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0177_07",
      "dpo_negative": "cand_0177_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0178",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_018",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 21.43,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 42.62
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.23
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.29,
          "to_sec": 45.87,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 21.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0178_07",
      "candidates": [
        {
          "candidate_id": "cand_0178_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0178_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0178_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0178_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0178_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0178_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0178_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0178_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0178_07",
      "dpo_negative": "cand_0178_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0179",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_019",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 32.5,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.64
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 53.66
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.48,
          "to_sec": 48.99,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 32.5,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0179_07",
      "candidates": [
        {
          "candidate_id": "cand_0179_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0179_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0179_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0179_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0179_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0179_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0179_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0179_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0179_07",
      "dpo_negative": "cand_0179_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0180",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_020",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 41.27,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 43.72
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.57
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.63,
          "to_sec": 37.62,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 41.27,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0180_02",
      "candidates": [
        {
          "candidate_id": "cand_0180_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0180_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0180_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0180_02",
      "dpo_negative": "cand_0180_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0181",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_021",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 39.28,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 59.46
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.13
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.0,
          "to_sec": 40.79,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 39.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0181_02",
      "candidates": [
        {
          "candidate_id": "cand_0181_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0181_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0181_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0181_02",
      "dpo_negative": "cand_0181_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0182",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_022",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 30.3,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 20.45
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 57.01
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.41,
          "to_sec": 40.28,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 30.3,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0182_03",
      "candidates": [
        {
          "candidate_id": "cand_0182_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0182_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0182_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0182_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0182_03",
      "dpo_negative": "cand_0182_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0183",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_023",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 42.93,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 22.45
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 25.38
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.9,
          "to_sec": 40.15,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 42.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0183_07",
      "candidates": [
        {
          "candidate_id": "cand_0183_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0183_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0183_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0183_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0183_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0183_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0183_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0183_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0183_07",
      "dpo_negative": "cand_0183_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0184",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_024",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 26.46,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 37.38
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 69.15
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.94,
          "to_sec": 36.36,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 26.46,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0184_07",
      "candidates": [
        {
          "candidate_id": "cand_0184_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0184_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0184_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0184_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0184_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0184_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0184_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0184_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0184_07",
      "dpo_negative": "cand_0184_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0185",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_025",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 39.12,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 27.46
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.05
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.94,
          "to_sec": 51.43,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 39.12,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0185_07",
      "candidates": [
        {
          "candidate_id": "cand_0185_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0185_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0185_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0185_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0185_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0185_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0185_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0185_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0185_07",
      "dpo_negative": "cand_0185_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0186",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_026",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 43.44,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 12.05
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.81
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 32.56,
          "to_sec": 51.6,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 43.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0186_02",
      "candidates": [
        {
          "candidate_id": "cand_0186_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0186_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0186_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0186_02",
      "dpo_negative": "cand_0186_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0187",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_027",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 5.8,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 31.56
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 25.83
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.17,
          "to_sec": 53.5,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 5.8,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0187_02",
      "candidates": [
        {
          "candidate_id": "cand_0187_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0187_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0187_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0187_02",
      "dpo_negative": "cand_0187_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0188",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_028",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 34.17,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 23.99
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.85
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.71,
          "to_sec": 42.84,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.17,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0188_03",
      "candidates": [
        {
          "candidate_id": "cand_0188_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0188_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0188_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0188_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0188_03",
      "dpo_negative": "cand_0188_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0189",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_029",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 44.14,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 20.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 42.23
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.33,
          "to_sec": 49.62,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.14,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0189_07",
      "candidates": [
        {
          "candidate_id": "cand_0189_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0189_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0189_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0189_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0189_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0189_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0189_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0189_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0189_07",
      "dpo_negative": "cand_0189_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0190",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_030",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 7.78,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.49
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 21.79
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.68,
          "to_sec": 43.29,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 7.78,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0190_07",
      "candidates": [
        {
          "candidate_id": "cand_0190_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0190_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0190_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0190_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0190_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0190_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0190_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0190_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0190_07",
      "dpo_negative": "cand_0190_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0191",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_031",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 42.84,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 21.51
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 46.55
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.98,
          "to_sec": 53.24,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 42.84,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0191_07",
      "candidates": [
        {
          "candidate_id": "cand_0191_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0191_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0191_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0191_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0191_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0191_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0191_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0191_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0191_07",
      "dpo_negative": "cand_0191_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0192",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_032",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 31.07,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 48.84
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 27.13
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.66,
          "to_sec": 46.13,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 31.07,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0192_02",
      "candidates": [
        {
          "candidate_id": "cand_0192_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0192_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0192_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0192_02",
      "dpo_negative": "cand_0192_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0193",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_033",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 10.72,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 29.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 68.21
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.12,
          "to_sec": 37.44,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 10.72,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0193_02",
      "candidates": [
        {
          "candidate_id": "cand_0193_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0193_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0193_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0193_02",
      "dpo_negative": "cand_0193_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0194",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_034",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 12.1,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.41
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.24
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 31.59,
          "to_sec": 39.65,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 12.1,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0194_03",
      "candidates": [
        {
          "candidate_id": "cand_0194_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0194_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0194_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0194_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0194_03",
      "dpo_negative": "cand_0194_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0195",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_035",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 43.31,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 53.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.68
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 31.11,
          "to_sec": 39.54,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 43.31,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0195_07",
      "candidates": [
        {
          "candidate_id": "cand_0195_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0195_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0195_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0195_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0195_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0195_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0195_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0195_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0195_07",
      "dpo_negative": "cand_0195_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0196",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_036",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 11.94,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 46.69
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.67
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.18,
          "to_sec": 46.0,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 11.94,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0196_07",
      "candidates": [
        {
          "candidate_id": "cand_0196_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0196_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0196_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0196_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0196_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0196_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0196_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0196_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0196_07",
      "dpo_negative": "cand_0196_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0197",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_037",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 41.11,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 44.56
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.81
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.15,
          "to_sec": 51.3,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 41.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0197_07",
      "candidates": [
        {
          "candidate_id": "cand_0197_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0197_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0197_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0197_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0197_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0197_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0197_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0197_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0197_07",
      "dpo_negative": "cand_0197_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0198",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_038",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 26.58,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.66
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 35.57
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.99,
          "to_sec": 47.25,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 26.58,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0198_02",
      "candidates": [
        {
          "candidate_id": "cand_0198_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0198_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0198_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0198_02",
      "dpo_negative": "cand_0198_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0199",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_039",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 31.77,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 40.73
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 57.11
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.93,
          "to_sec": 36.97,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 31.77,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0199_02",
      "candidates": [
        {
          "candidate_id": "cand_0199_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0199_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0199_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0199_02",
      "dpo_negative": "cand_0199_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0200",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_040",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 33.43,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 37.06
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 29.08
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.87,
          "to_sec": 48.15,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 33.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0200_03",
      "candidates": [
        {
          "candidate_id": "cand_0200_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0200_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0200_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0200_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0200_03",
      "dpo_negative": "cand_0200_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0201",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_041",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 34.34,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 32.71
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.62,
          "to_sec": 50.85,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.34,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0201_07",
      "candidates": [
        {
          "candidate_id": "cand_0201_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0201_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0201_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0201_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0201_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0201_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0201_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0201_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0201_07",
      "dpo_negative": "cand_0201_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0202",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_042",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 26.36,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 22.77
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 57.97
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.04,
          "to_sec": 43.9,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 26.36,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0202_07",
      "candidates": [
        {
          "candidate_id": "cand_0202_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0202_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0202_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0202_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0202_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0202_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0202_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0202_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0202_07",
      "dpo_negative": "cand_0202_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0203",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_043",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 7.4,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 27.06
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 64.21
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.42,
          "to_sec": 44.78,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 7.4,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0203_07",
      "candidates": [
        {
          "candidate_id": "cand_0203_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0203_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0203_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0203_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0203_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0203_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0203_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0203_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0203_07",
      "dpo_negative": "cand_0203_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0204",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_044",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 17.5,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 61.02
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 64.36
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.16,
          "to_sec": 50.86,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 17.5,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0204_02",
      "candidates": [
        {
          "candidate_id": "cand_0204_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0204_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0204_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0204_02",
      "dpo_negative": "cand_0204_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0205",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_045",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 36.58,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 31.39
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 35.49
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.66,
          "to_sec": 42.88,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 36.58,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0205_02",
      "candidates": [
        {
          "candidate_id": "cand_0205_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0205_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0205_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0205_02",
      "dpo_negative": "cand_0205_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0206",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_046",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 19.8,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 52.41
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 24.62
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.99,
          "to_sec": 46.15,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 19.8,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0206_03",
      "candidates": [
        {
          "candidate_id": "cand_0206_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0206_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0206_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0206_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0206_03",
      "dpo_negative": "cand_0206_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0207",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_047",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 30.92,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 51.08
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 63.0
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.92,
          "to_sec": 53.52,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 30.92,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0207_07",
      "candidates": [
        {
          "candidate_id": "cand_0207_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0207_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0207_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0207_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0207_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0207_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0207_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0207_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0207_07",
      "dpo_negative": "cand_0207_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0208",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_048",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 12.13,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 61.81
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 65.01
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.47,
          "to_sec": 40.43,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 12.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0208_07",
      "candidates": [
        {
          "candidate_id": "cand_0208_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0208_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0208_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0208_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0208_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0208_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0208_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0208_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0208_07",
      "dpo_negative": "cand_0208_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0209",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_049",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 30.93,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 43.38
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 68.07
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.58,
          "to_sec": 52.01,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 30.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0209_07",
      "candidates": [
        {
          "candidate_id": "cand_0209_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0209_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0209_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0209_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0209_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0209_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0209_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0209_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0209_07",
      "dpo_negative": "cand_0209_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0210",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_050",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 8.14,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 34.83
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.14
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.79,
          "to_sec": 41.13,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 8.14,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0210_02",
      "candidates": [
        {
          "candidate_id": "cand_0210_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0210_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0210_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0210_02",
      "dpo_negative": "cand_0210_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0211",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_051",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 5.11,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 17.73
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.63
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.02,
          "to_sec": 46.12,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 5.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0211_02",
      "candidates": [
        {
          "candidate_id": "cand_0211_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0211_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0211_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0211_02",
      "dpo_negative": "cand_0211_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0212",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_052",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 17.39,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.57
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.33,
          "to_sec": 36.74,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 17.39,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0212_03",
      "candidates": [
        {
          "candidate_id": "cand_0212_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0212_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0212_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0212_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0212_03",
      "dpo_negative": "cand_0212_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0213",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_053",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 20.0,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 38.79
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 65.42
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.43,
          "to_sec": 51.28,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.0,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0213_07",
      "candidates": [
        {
          "candidate_id": "cand_0213_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0213_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0213_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0213_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0213_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0213_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0213_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0213_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0213_07",
      "dpo_negative": "cand_0213_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0214",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_054",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 19.96,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 35.57
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 34.88
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.15,
          "to_sec": 53.66,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 19.96,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0214_07",
      "candidates": [
        {
          "candidate_id": "cand_0214_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0214_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0214_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0214_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0214_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0214_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0214_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0214_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0214_07",
      "dpo_negative": "cand_0214_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0215",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_055",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 20.35,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 21.75
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 68.93
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.04,
          "to_sec": 45.89,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 20.35,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0215_07",
      "candidates": [
        {
          "candidate_id": "cand_0215_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0215_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0215_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0215_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0215_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0215_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0215_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0215_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0215_07",
      "dpo_negative": "cand_0215_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0216",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_056",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 27.34,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 51.22
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 26.38
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.65,
          "to_sec": 43.86,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 27.34,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0216_02",
      "candidates": [
        {
          "candidate_id": "cand_0216_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0216_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0216_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0216_02",
      "dpo_negative": "cand_0216_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0217",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_057",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 28.86,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 47.76
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 53.62
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.99,
          "to_sec": 37.93,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 28.86,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0217_02",
      "candidates": [
        {
          "candidate_id": "cand_0217_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0217_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0217_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0217_02",
      "dpo_negative": "cand_0217_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0218",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_058",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 32.37,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 30.03
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 67.28
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.61,
          "to_sec": 47.36,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 32.37,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0218_03",
      "candidates": [
        {
          "candidate_id": "cand_0218_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0218_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0218_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0218_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0218_03",
      "dpo_negative": "cand_0218_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0219",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_059",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 30.93,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.88
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.91
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.64,
          "to_sec": 52.15,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 30.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0219_07",
      "candidates": [
        {
          "candidate_id": "cand_0219_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0219_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0219_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0219_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0219_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0219_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0219_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0219_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0219_07",
      "dpo_negative": "cand_0219_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0220",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_060",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 7.85,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 13.26
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 55.25
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.95,
          "to_sec": 38.58,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 7.85,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0220_07",
      "candidates": [
        {
          "candidate_id": "cand_0220_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0220_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0220_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0220_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0220_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0220_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0220_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0220_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0220_07",
      "dpo_negative": "cand_0220_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0221",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_061",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 16.01,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 21.29
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.17
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.89,
          "to_sec": 46.67,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 16.01,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0221_07",
      "candidates": [
        {
          "candidate_id": "cand_0221_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0221_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0221_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0221_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0221_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0221_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0221_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0221_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0221_07",
      "dpo_negative": "cand_0221_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0222",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_062",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 8.42,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 27.01
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 27.05
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.45,
          "to_sec": 50.36,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 8.42,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0222_02",
      "candidates": [
        {
          "candidate_id": "cand_0222_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0222_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0222_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0222_02",
      "dpo_negative": "cand_0222_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0223",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_063",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 35.0,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 13.57
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 50.67
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.68,
          "to_sec": 45.73,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 35.0,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0223_02",
      "candidates": [
        {
          "candidate_id": "cand_0223_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0223_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0223_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0223_02",
      "dpo_negative": "cand_0223_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0224",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_064",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 33.69,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 31.52
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 25.03
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.19,
          "to_sec": 48.52,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 33.69,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0224_03",
      "candidates": [
        {
          "candidate_id": "cand_0224_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0224_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0224_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0224_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0224_03",
      "dpo_negative": "cand_0224_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0225",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_065",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 32.11,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 47.67
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 48.15
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.69,
          "to_sec": 45.12,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 32.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0225_07",
      "candidates": [
        {
          "candidate_id": "cand_0225_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0225_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0225_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0225_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0225_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0225_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0225_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0225_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0225_07",
      "dpo_negative": "cand_0225_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0226",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_066",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 15.86,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 41.78
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 48.66
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.53,
          "to_sec": 53.94,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 15.86,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0226_07",
      "candidates": [
        {
          "candidate_id": "cand_0226_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0226_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0226_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0226_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0226_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0226_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0226_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0226_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0226_07",
      "dpo_negative": "cand_0226_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0227",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_067",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 8.78,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 52.88
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.36
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.48,
          "to_sec": 52.74,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 8.78,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0227_07",
      "candidates": [
        {
          "candidate_id": "cand_0227_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0227_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0227_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0227_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0227_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0227_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0227_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0227_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0227_07",
      "dpo_negative": "cand_0227_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0228",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_068",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 14.52,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 58.92
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 45.49
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.52,
          "to_sec": 52.62,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 14.52,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0228_02",
      "candidates": [
        {
          "candidate_id": "cand_0228_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0228_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0228_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0228_02",
      "dpo_negative": "cand_0228_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0229",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_069",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 30.38,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 37.34
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 52.2
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.86,
          "to_sec": 40.35,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 30.38,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0229_02",
      "candidates": [
        {
          "candidate_id": "cand_0229_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0229_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0229_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0229_02",
      "dpo_negative": "cand_0229_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0230",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_070",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 31.56,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 40.14
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 32.2
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 31.27,
          "to_sec": 45.71,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 31.56,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0230_03",
      "candidates": [
        {
          "candidate_id": "cand_0230_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0230_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0230_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0230_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0230_03",
      "dpo_negative": "cand_0230_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0231",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_071",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 6.93,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 36.08
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 28.06
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.98,
          "to_sec": 41.78,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 6.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0231_07",
      "candidates": [
        {
          "candidate_id": "cand_0231_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0231_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0231_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0231_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0231_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0231_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0231_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0231_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0231_07",
      "dpo_negative": "cand_0231_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0232",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_072",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 38.64,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 47.96
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.66
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.83,
          "to_sec": 38.97,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 38.64,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0232_07",
      "candidates": [
        {
          "candidate_id": "cand_0232_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0232_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0232_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0232_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0232_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0232_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0232_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0232_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0232_07",
      "dpo_negative": "cand_0232_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0233",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_073",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 17.38,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.83
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.39
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.06,
          "to_sec": 36.88,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 17.38,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0233_07",
      "candidates": [
        {
          "candidate_id": "cand_0233_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0233_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0233_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0233_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0233_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0233_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0233_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0233_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0233_07",
      "dpo_negative": "cand_0233_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0234",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_074",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 11.23,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 15.07
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 62.33
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.78,
          "to_sec": 44.96,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 11.23,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0234_02",
      "candidates": [
        {
          "candidate_id": "cand_0234_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0234_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0234_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0234_02",
      "dpo_negative": "cand_0234_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0235",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_075",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 26.02,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 46.2
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 59.36
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 34.68,
          "to_sec": 47.36,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 26.02,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0235_02",
      "candidates": [
        {
          "candidate_id": "cand_0235_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0235_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0235_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0235_02",
      "dpo_negative": "cand_0235_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0236",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_076",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 11.51,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 53.02
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 39.98
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.35,
          "to_sec": 47.08,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 11.51,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0236_03",
      "candidates": [
        {
          "candidate_id": "cand_0236_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0236_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0236_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0236_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0236_03",
      "dpo_negative": "cand_0236_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0237",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_077",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 20.4,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 37.71
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 65.55
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.27,
          "to_sec": 36.77,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.4,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0237_07",
      "candidates": [
        {
          "candidate_id": "cand_0237_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0237_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0237_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0237_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0237_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0237_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0237_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0237_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0237_07",
      "dpo_negative": "cand_0237_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0238",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_078",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 15.24,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 43.01
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.77
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.35,
          "to_sec": 38.57,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 15.24,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0238_07",
      "candidates": [
        {
          "candidate_id": "cand_0238_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0238_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0238_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0238_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0238_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0238_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0238_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0238_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0238_07",
      "dpo_negative": "cand_0238_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0239",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_079",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 22.71,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.95
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.12
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.22,
          "to_sec": 44.94,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 22.71,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0239_07",
      "candidates": [
        {
          "candidate_id": "cand_0239_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0239_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0239_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0239_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0239_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0239_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0239_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0239_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0239_07",
      "dpo_negative": "cand_0239_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0240",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_000",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 11.16,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 30.8
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 39.47
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.03,
          "to_sec": 46.14,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 11.16,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0240_02",
      "candidates": [
        {
          "candidate_id": "cand_0240_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0240_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0240_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0240_02",
      "dpo_negative": "cand_0240_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0241",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_001",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 10.63,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 59.87
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 66.5
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.54,
          "to_sec": 36.07,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 10.63,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0241_02",
      "candidates": [
        {
          "candidate_id": "cand_0241_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0241_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0241_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0241_02",
      "dpo_negative": "cand_0241_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0242",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_002",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 7.15,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 21.21
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 50.96
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.62,
          "to_sec": 51.52,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 7.15,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0242_03",
      "candidates": [
        {
          "candidate_id": "cand_0242_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0242_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0242_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0242_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0242_03",
      "dpo_negative": "cand_0242_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0243",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_003",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 15.74,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 16.73
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 30.56
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.33,
          "to_sec": 37.79,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 15.74,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0243_07",
      "candidates": [
        {
          "candidate_id": "cand_0243_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0243_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0243_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0243_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0243_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0243_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0243_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0243_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0243_07",
      "dpo_negative": "cand_0243_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0244",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_004",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 39.58,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 17.53
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 25.48
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.43,
          "to_sec": 53.23,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 39.58,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0244_07",
      "candidates": [
        {
          "candidate_id": "cand_0244_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0244_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0244_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0244_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0244_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0244_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0244_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0244_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0244_07",
      "dpo_negative": "cand_0244_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0245",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_005",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 29.44,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.22
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.15
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.19,
          "to_sec": 37.48,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 29.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0245_07",
      "candidates": [
        {
          "candidate_id": "cand_0245_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0245_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0245_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0245_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0245_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0245_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0245_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0245_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0245_07",
      "dpo_negative": "cand_0245_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0246",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_006",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 21.75,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 16.0
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 29.37
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.57,
          "to_sec": 44.34,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 21.75,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0246_02",
      "candidates": [
        {
          "candidate_id": "cand_0246_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0246_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0246_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0246_02",
      "dpo_negative": "cand_0246_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0247",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_007",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 18.45,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 52.91
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 24.34
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.98,
          "to_sec": 44.35,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.45,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0247_02",
      "candidates": [
        {
          "candidate_id": "cand_0247_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0247_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0247_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0247_02",
      "dpo_negative": "cand_0247_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0248",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_008",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 29.57,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 37.61
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 63.4
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.96,
          "to_sec": 40.23,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.57,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0248_03",
      "candidates": [
        {
          "candidate_id": "cand_0248_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0248_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0248_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0248_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0248_03",
      "dpo_negative": "cand_0248_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0249",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_009",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 28.99,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 27.95
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.0
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.02,
          "to_sec": 45.3,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 28.99,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0249_07",
      "candidates": [
        {
          "candidate_id": "cand_0249_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0249_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0249_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0249_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0249_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0249_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0249_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0249_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0249_07",
      "dpo_negative": "cand_0249_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0250",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_010",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 31.82,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 54.05
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 32.15
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.3,
          "to_sec": 48.67,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 31.82,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0250_07",
      "candidates": [
        {
          "candidate_id": "cand_0250_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0250_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0250_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0250_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0250_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0250_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0250_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0250_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0250_07",
      "dpo_negative": "cand_0250_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0251",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_011",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 29.82,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 56.41
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 34.84
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.25,
          "to_sec": 45.86,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 29.82,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0251_07",
      "candidates": [
        {
          "candidate_id": "cand_0251_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0251_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0251_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0251_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0251_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0251_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0251_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0251_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0251_07",
      "dpo_negative": "cand_0251_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0252",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_012",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 23.61,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 54.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.52
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.68,
          "to_sec": 41.44,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.61,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0252_02",
      "candidates": [
        {
          "candidate_id": "cand_0252_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0252_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0252_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0252_02",
      "dpo_negative": "cand_0252_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0253",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_013",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 22.64,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 51.68
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 50.94
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.66,
          "to_sec": 37.57,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 22.64,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0253_02",
      "candidates": [
        {
          "candidate_id": "cand_0253_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0253_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0253_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0253_02",
      "dpo_negative": "cand_0253_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0254",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_014",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 22.87,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 17.88
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 30.56
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.94,
          "to_sec": 40.51,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 22.87,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0254_03",
      "candidates": [
        {
          "candidate_id": "cand_0254_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0254_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0254_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0254_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0254_03",
      "dpo_negative": "cand_0254_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0255",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_015",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 18.9,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 54.25
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.16
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.55,
          "to_sec": 47.2,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 18.9,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0255_07",
      "candidates": [
        {
          "candidate_id": "cand_0255_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0255_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0255_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0255_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0255_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0255_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0255_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0255_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0255_07",
      "dpo_negative": "cand_0255_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0256",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_016",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 13.71,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 29.18
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 52.63
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.39,
          "to_sec": 36.72,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 13.71,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0256_07",
      "candidates": [
        {
          "candidate_id": "cand_0256_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0256_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0256_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0256_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0256_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0256_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0256_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0256_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0256_07",
      "dpo_negative": "cand_0256_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0257",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_017",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 25.48,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.12
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 63.42
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.26,
          "to_sec": 44.14,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 25.48,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0257_07",
      "candidates": [
        {
          "candidate_id": "cand_0257_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0257_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0257_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0257_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0257_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0257_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0257_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0257_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0257_07",
      "dpo_negative": "cand_0257_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0258",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_018",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 19.66,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 17.69
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.53
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.92,
          "to_sec": 50.03,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 19.66,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0258_02",
      "candidates": [
        {
          "candidate_id": "cand_0258_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0258_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0258_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0258_02",
      "dpo_negative": "cand_0258_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0259",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_019",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 32.11,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 30.77
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 33.69
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.64,
          "to_sec": 38.95,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 32.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0259_02",
      "candidates": [
        {
          "candidate_id": "cand_0259_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0259_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0259_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0259_02",
      "dpo_negative": "cand_0259_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0260",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_020",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 12.87,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 19.48
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.94
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 31.29,
          "to_sec": 53.48,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 12.87,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0260_03",
      "candidates": [
        {
          "candidate_id": "cand_0260_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0260_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0260_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0260_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0260_03",
      "dpo_negative": "cand_0260_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0261",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_021",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 17.99,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 46.28
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 43.77
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.4,
          "to_sec": 47.61,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 17.99,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0261_07",
      "candidates": [
        {
          "candidate_id": "cand_0261_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0261_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0261_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0261_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0261_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0261_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0261_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0261_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0261_07",
      "dpo_negative": "cand_0261_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0262",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_022",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 7.32,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 30.38
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 34.69
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.15,
          "to_sec": 46.14,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 7.32,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0262_07",
      "candidates": [
        {
          "candidate_id": "cand_0262_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0262_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0262_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0262_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0262_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0262_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0262_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0262_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0262_07",
      "dpo_negative": "cand_0262_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0263",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_023",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 44.28,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 32.76
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.11
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.11,
          "to_sec": 53.86,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0263_07",
      "candidates": [
        {
          "candidate_id": "cand_0263_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0263_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0263_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0263_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0263_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0263_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0263_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0263_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0263_07",
      "dpo_negative": "cand_0263_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0264",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_024",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 35.44,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 25.81
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 27.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.97,
          "to_sec": 42.11,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 35.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0264_02",
      "candidates": [
        {
          "candidate_id": "cand_0264_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0264_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0264_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0264_02",
      "dpo_negative": "cand_0264_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0265",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_025",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 26.39,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 45.15
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 48.0
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.39,
          "to_sec": 37.54,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 26.39,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0265_02",
      "candidates": [
        {
          "candidate_id": "cand_0265_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0265_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0265_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0265_02",
      "dpo_negative": "cand_0265_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0266",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_026",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 11.55,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 34.54
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 27.81
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.75,
          "to_sec": 48.14,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 11.55,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0266_03",
      "candidates": [
        {
          "candidate_id": "cand_0266_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0266_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0266_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0266_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0266_03",
      "dpo_negative": "cand_0266_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0267",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_027",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 42.91,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.54
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 60.18
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.84,
          "to_sec": 48.14,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 42.91,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0267_07",
      "candidates": [
        {
          "candidate_id": "cand_0267_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0267_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0267_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0267_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0267_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0267_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0267_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0267_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0267_07",
      "dpo_negative": "cand_0267_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0268",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_028",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 39.77,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 44.45
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 48.03
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.69,
          "to_sec": 44.56,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 39.77,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0268_07",
      "candidates": [
        {
          "candidate_id": "cand_0268_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0268_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0268_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0268_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0268_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0268_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0268_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0268_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0268_07",
      "dpo_negative": "cand_0268_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0269",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_029",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 26.89,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 36.53
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.1
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 33.68,
          "to_sec": 50.55,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 26.89,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0269_07",
      "candidates": [
        {
          "candidate_id": "cand_0269_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0269_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0269_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0269_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0269_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0269_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0269_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0269_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0269_07",
      "dpo_negative": "cand_0269_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0270",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_030",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 36.48,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 16.26
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 45.37
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.19,
          "to_sec": 53.91,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 36.48,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0270_02",
      "candidates": [
        {
          "candidate_id": "cand_0270_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0270_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0270_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0270_02",
      "dpo_negative": "cand_0270_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0271",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_031",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 31.12,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 23.95
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 20.8
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.84,
          "to_sec": 51.52,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 31.12,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0271_02",
      "candidates": [
        {
          "candidate_id": "cand_0271_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0271_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0271_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0271_02",
      "dpo_negative": "cand_0271_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0272",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_032",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 34.4,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 23.89
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 19.12
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.0,
          "to_sec": 51.03,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 34.4,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0272_03",
      "candidates": [
        {
          "candidate_id": "cand_0272_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0272_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0272_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0272_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0272_03",
      "dpo_negative": "cand_0272_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0273",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_033",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 15.89,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 12.85
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 58.73
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.52,
          "to_sec": 40.06,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 15.89,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0273_07",
      "candidates": [
        {
          "candidate_id": "cand_0273_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0273_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0273_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0273_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0273_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0273_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0273_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0273_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0273_07",
      "dpo_negative": "cand_0273_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0274",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_034",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 9.88,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 55.77
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 62.13
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.21,
          "to_sec": 38.63,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 9.88,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0274_07",
      "candidates": [
        {
          "candidate_id": "cand_0274_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0274_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0274_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0274_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0274_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0274_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0274_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0274_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0274_07",
      "dpo_negative": "cand_0274_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0275",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_035",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 7.56,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 37.12
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 69.44
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.24,
          "to_sec": 38.17,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 7.56,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0275_07",
      "candidates": [
        {
          "candidate_id": "cand_0275_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0275_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0275_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0275_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0275_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0275_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0275_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0275_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0275_07",
      "dpo_negative": "cand_0275_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0276",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_036",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 32.04,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 32.43
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.79
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.81,
          "to_sec": 44.69,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 32.04,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0276_02",
      "candidates": [
        {
          "candidate_id": "cand_0276_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0276_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0276_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0276_02",
      "dpo_negative": "cand_0276_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0277",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_037",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 31.07,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 19.11
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 43.12
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.62,
          "to_sec": 51.91,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 31.07,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0277_02",
      "candidates": [
        {
          "candidate_id": "cand_0277_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0277_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0277_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0277_02",
      "dpo_negative": "cand_0277_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0278",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_038",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 24.73,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 41.44
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.13,
          "to_sec": 45.8,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 24.73,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0278_03",
      "candidates": [
        {
          "candidate_id": "cand_0278_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0278_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0278_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0278_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0278_03",
      "dpo_negative": "cand_0278_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0279",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_039",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 19.57,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 14.93
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.64
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.03,
          "to_sec": 52.6,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 19.57,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0279_07",
      "candidates": [
        {
          "candidate_id": "cand_0279_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0279_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0279_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0279_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0279_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0279_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0279_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0279_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0279_07",
      "dpo_negative": "cand_0279_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0280",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_040",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 15.17,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 54.93
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 69.89
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.21,
          "to_sec": 49.08,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 15.17,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0280_07",
      "candidates": [
        {
          "candidate_id": "cand_0280_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0280_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0280_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0280_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0280_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0280_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0280_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0280_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0280_07",
      "dpo_negative": "cand_0280_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0281",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_041",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 9.45,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 24.8
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 32.97
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.28,
          "to_sec": 51.6,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 9.45,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0281_07",
      "candidates": [
        {
          "candidate_id": "cand_0281_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0281_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0281_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0281_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0281_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0281_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0281_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0281_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0281_07",
      "dpo_negative": "cand_0281_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0282",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_042",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 22.83,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 26.57
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.05
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.75,
          "to_sec": 37.95,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 22.83,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0282_02",
      "candidates": [
        {
          "candidate_id": "cand_0282_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0282_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0282_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0282_02",
      "dpo_negative": "cand_0282_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0283",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_043",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 14.05,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 54.03
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 69.73
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.09,
          "to_sec": 45.23,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 14.05,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0283_02",
      "candidates": [
        {
          "candidate_id": "cand_0283_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0283_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0283_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0283_02",
      "dpo_negative": "cand_0283_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0284",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_044",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 35.58,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 19.18
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.69
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.25,
          "to_sec": 43.74,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 35.58,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0284_03",
      "candidates": [
        {
          "candidate_id": "cand_0284_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0284_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0284_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0284_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0284_03",
      "dpo_negative": "cand_0284_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0285",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_045",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 12.6,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 24.25
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 45.14
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.44,
          "to_sec": 39.55,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 12.6,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0285_07",
      "candidates": [
        {
          "candidate_id": "cand_0285_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0285_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0285_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0285_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0285_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0285_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0285_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0285_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0285_07",
      "dpo_negative": "cand_0285_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0286",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_046",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 27.47,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 42.35
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 48.14
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.65,
          "to_sec": 47.7,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 27.47,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0286_07",
      "candidates": [
        {
          "candidate_id": "cand_0286_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0286_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0286_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0286_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0286_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0286_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0286_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0286_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0286_07",
      "dpo_negative": "cand_0286_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0287",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_047",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 30.09,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 34.3
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.96
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.05,
          "to_sec": 47.37,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 30.09,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0287_07",
      "candidates": [
        {
          "candidate_id": "cand_0287_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0287_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0287_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0287_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0287_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0287_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0287_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0287_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0287_07",
      "dpo_negative": "cand_0287_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0288",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_048",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 20.83,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.0
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 66.84
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.62,
          "to_sec": 36.31,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 20.83,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0288_02",
      "candidates": [
        {
          "candidate_id": "cand_0288_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0288_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0288_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0288_02",
      "dpo_negative": "cand_0288_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0289",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_049",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 21.16,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 61.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 50.78
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.08,
          "to_sec": 50.41,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 21.16,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0289_02",
      "candidates": [
        {
          "candidate_id": "cand_0289_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0289_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0289_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0289_02",
      "dpo_negative": "cand_0289_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0290",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_050",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 14.74,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 58.35
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 18.45
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.13,
          "to_sec": 46.02,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 14.74,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0290_03",
      "candidates": [
        {
          "candidate_id": "cand_0290_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0290_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0290_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0290_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0290_03",
      "dpo_negative": "cand_0290_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0291",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_051",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 17.01,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 34.55
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 34.16
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.07,
          "to_sec": 51.14,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 17.01,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0291_07",
      "candidates": [
        {
          "candidate_id": "cand_0291_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0291_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0291_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0291_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0291_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0291_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0291_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0291_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0291_07",
      "dpo_negative": "cand_0291_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0292",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_052",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 5.13,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.07
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 69.96
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.9,
          "to_sec": 44.98,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 5.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0292_07",
      "candidates": [
        {
          "candidate_id": "cand_0292_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0292_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0292_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0292_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0292_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0292_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0292_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0292_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0292_07",
      "dpo_negative": "cand_0292_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0293",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_053",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 35.25,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 24.66
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.32
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 32.28,
          "to_sec": 40.79,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 35.25,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0293_07",
      "candidates": [
        {
          "candidate_id": "cand_0293_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0293_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0293_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0293_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0293_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0293_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0293_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0293_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0293_07",
      "dpo_negative": "cand_0293_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0294",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_054",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 27.13,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 17.2
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 34.18
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.1,
          "to_sec": 50.36,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 27.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0294_02",
      "candidates": [
        {
          "candidate_id": "cand_0294_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0294_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0294_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0294_02",
      "dpo_negative": "cand_0294_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0295",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_055",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 24.72,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 36.14
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 35.84
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.46,
          "to_sec": 51.59,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 24.72,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0295_02",
      "candidates": [
        {
          "candidate_id": "cand_0295_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0295_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0295_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0295_02",
      "dpo_negative": "cand_0295_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0296",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_056",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 39.68,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.24
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 42.3
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.94,
          "to_sec": 51.35,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 39.68,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0296_03",
      "candidates": [
        {
          "candidate_id": "cand_0296_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0296_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0296_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0296_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0296_03",
      "dpo_negative": "cand_0296_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0297",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_057",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 44.09,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 30.03
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 20.38
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.18,
          "to_sec": 45.59,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 44.09,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0297_07",
      "candidates": [
        {
          "candidate_id": "cand_0297_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0297_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0297_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0297_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0297_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0297_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0297_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0297_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0297_07",
      "dpo_negative": "cand_0297_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0298",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_058",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 44.54,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 31.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 35.32
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.61,
          "to_sec": 49.43,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.54,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0298_07",
      "candidates": [
        {
          "candidate_id": "cand_0298_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0298_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0298_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0298_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0298_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0298_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0298_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0298_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0298_07",
      "dpo_negative": "cand_0298_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0299",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_059",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 29.05,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 40.94
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 26.66
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.0,
          "to_sec": 43.18,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 29.05,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0299_07",
      "candidates": [
        {
          "candidate_id": "cand_0299_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0299_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0299_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0299_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0299_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0299_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0299_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0299_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0299_07",
      "dpo_negative": "cand_0299_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0300",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_060",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 31.45,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 53.42
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.7
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.42,
          "to_sec": 50.43,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 31.45,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0300_02",
      "candidates": [
        {
          "candidate_id": "cand_0300_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0300_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0300_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0300_02",
      "dpo_negative": "cand_0300_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0301",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_061",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 19.25,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 49.22
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 21.73
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.18,
          "to_sec": 46.17,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 19.25,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0301_02",
      "candidates": [
        {
          "candidate_id": "cand_0301_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0301_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0301_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0301_02",
      "dpo_negative": "cand_0301_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0302",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_062",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 34.68,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 29.71
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.24
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.55,
          "to_sec": 48.51,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.68,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0302_03",
      "candidates": [
        {
          "candidate_id": "cand_0302_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0302_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0302_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0302_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0302_03",
      "dpo_negative": "cand_0302_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0303",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_063",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 12.72,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 36.5
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 50.22
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.36,
          "to_sec": 37.69,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 12.72,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0303_07",
      "candidates": [
        {
          "candidate_id": "cand_0303_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0303_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0303_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0303_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0303_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0303_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0303_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0303_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0303_07",
      "dpo_negative": "cand_0303_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0304",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_064",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 34.07,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 52.24
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 46.04
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.25,
          "to_sec": 37.56,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.07,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0304_07",
      "candidates": [
        {
          "candidate_id": "cand_0304_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0304_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0304_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0304_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0304_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0304_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0304_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0304_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0304_07",
      "dpo_negative": "cand_0304_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0305",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_065",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 40.38,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 30.22
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 61.21
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.22,
          "to_sec": 43.53,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 40.38,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0305_07",
      "candidates": [
        {
          "candidate_id": "cand_0305_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0305_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0305_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0305_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0305_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0305_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0305_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0305_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0305_07",
      "dpo_negative": "cand_0305_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0306",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_066",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 26.68,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 60.71
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 35.04
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.77,
          "to_sec": 41.0,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 26.68,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0306_02",
      "candidates": [
        {
          "candidate_id": "cand_0306_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0306_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0306_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0306_02",
      "dpo_negative": "cand_0306_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0307",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_067",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 43.28,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 14.59
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.44
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.51,
          "to_sec": 41.96,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 43.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0307_02",
      "candidates": [
        {
          "candidate_id": "cand_0307_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0307_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0307_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0307_02",
      "dpo_negative": "cand_0307_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0308",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_068",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 16.75,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 18.49
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 50.55
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.01,
          "to_sec": 53.87,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 16.75,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0308_03",
      "candidates": [
        {
          "candidate_id": "cand_0308_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0308_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0308_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0308_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0308_03",
      "dpo_negative": "cand_0308_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0309",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_069",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 26.71,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 13.79
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 65.73
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.39,
          "to_sec": 43.61,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 26.71,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0309_07",
      "candidates": [
        {
          "candidate_id": "cand_0309_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0309_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0309_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0309_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0309_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0309_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0309_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0309_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0309_07",
      "dpo_negative": "cand_0309_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0310",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_070",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 41.22,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 61.91
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 22.69
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.73,
          "to_sec": 49.44,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 41.22,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0310_07",
      "candidates": [
        {
          "candidate_id": "cand_0310_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0310_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0310_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0310_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0310_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0310_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0310_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0310_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0310_07",
      "dpo_negative": "cand_0310_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0311",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_071",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 33.75,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 54.01
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 38.47
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.19,
          "to_sec": 36.56,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 33.75,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0311_07",
      "candidates": [
        {
          "candidate_id": "cand_0311_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0311_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0311_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0311_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0311_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0311_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0311_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0311_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0311_07",
      "dpo_negative": "cand_0311_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0312",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_072",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 19.79,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 56.84
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 65.45
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.79,
          "to_sec": 36.02,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 19.79,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0312_02",
      "candidates": [
        {
          "candidate_id": "cand_0312_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0312_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0312_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0312_02",
      "dpo_negative": "cand_0312_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0313",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_073",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 9.06,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 20.98
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 45.75
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.36,
          "to_sec": 48.19,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 9.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0313_02",
      "candidates": [
        {
          "candidate_id": "cand_0313_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0313_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0313_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0313_02",
      "dpo_negative": "cand_0313_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0314",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_074",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 24.75,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 13.77
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 31.22
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.95,
          "to_sec": 36.62,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 24.75,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0314_03",
      "candidates": [
        {
          "candidate_id": "cand_0314_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0314_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0314_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0314_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0314_03",
      "dpo_negative": "cand_0314_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0315",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_075",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 38.96,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 52.19
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 65.54
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.6,
          "to_sec": 50.02,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 38.96,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0315_07",
      "candidates": [
        {
          "candidate_id": "cand_0315_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0315_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0315_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0315_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0315_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0315_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0315_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0315_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0315_07",
      "dpo_negative": "cand_0315_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0316",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_076",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 29.82,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 31.88
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 30.42
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.65,
          "to_sec": 44.27,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.82,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0316_07",
      "candidates": [
        {
          "candidate_id": "cand_0316_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0316_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0316_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0316_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0316_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0316_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0316_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0316_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0316_07",
      "dpo_negative": "cand_0316_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0317",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_077",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 37.77,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.84
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.8
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.39,
          "to_sec": 49.13,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 37.77,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0317_07",
      "candidates": [
        {
          "candidate_id": "cand_0317_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0317_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0317_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0317_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0317_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0317_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0317_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0317_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0317_07",
      "dpo_negative": "cand_0317_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0318",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_078",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 24.51,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 59.59
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.95
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.53,
          "to_sec": 38.36,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 24.51,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0318_02",
      "candidates": [
        {
          "candidate_id": "cand_0318_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0318_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0318_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0318_02",
      "dpo_negative": "cand_0318_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0319",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_079",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 17.21,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.89
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 45.54
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.41,
          "to_sec": 53.29,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 17.21,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0319_02",
      "candidates": [
        {
          "candidate_id": "cand_0319_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0319_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0319_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0319_02",
      "dpo_negative": "cand_0319_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0320",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_000",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 9.85,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 22.36
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.6
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.43,
          "to_sec": 48.64,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 9.85,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0320_03",
      "candidates": [
        {
          "candidate_id": "cand_0320_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0320_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0320_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0320_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0320_03",
      "dpo_negative": "cand_0320_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0321",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_001",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 33.94,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 15.37
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.91
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.74,
          "to_sec": 53.04,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 33.94,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0321_07",
      "candidates": [
        {
          "candidate_id": "cand_0321_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0321_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0321_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0321_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0321_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0321_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0321_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0321_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0321_07",
      "dpo_negative": "cand_0321_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0322",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_002",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 17.28,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 61.04
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 38.07
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.32,
          "to_sec": 43.28,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 17.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0322_07",
      "candidates": [
        {
          "candidate_id": "cand_0322_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0322_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0322_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0322_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0322_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0322_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0322_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0322_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0322_07",
      "dpo_negative": "cand_0322_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0323",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_003",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 9.13,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 55.31
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 61.36
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.07,
          "to_sec": 46.04,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 9.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0323_07",
      "candidates": [
        {
          "candidate_id": "cand_0323_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0323_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0323_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0323_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0323_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0323_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0323_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0323_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0323_07",
      "dpo_negative": "cand_0323_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0324",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_004",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 35.27,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 20.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.84
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.57,
          "to_sec": 42.45,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 35.27,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0324_02",
      "candidates": [
        {
          "candidate_id": "cand_0324_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0324_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0324_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0324_02",
      "dpo_negative": "cand_0324_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0325",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_005",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 40.44,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.94
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 26.51
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.64,
          "to_sec": 38.15,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 40.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0325_02",
      "candidates": [
        {
          "candidate_id": "cand_0325_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0325_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0325_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0325_02",
      "dpo_negative": "cand_0325_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0326",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_006",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 38.97,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 30.65
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 66.03
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.7,
          "to_sec": 46.02,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 38.97,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0326_03",
      "candidates": [
        {
          "candidate_id": "cand_0326_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0326_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0326_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0326_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0326_03",
      "dpo_negative": "cand_0326_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0327",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_007",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 33.59,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 36.87
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.45
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.38,
          "to_sec": 49.16,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 33.59,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0327_07",
      "candidates": [
        {
          "candidate_id": "cand_0327_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0327_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0327_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0327_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0327_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0327_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0327_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0327_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0327_07",
      "dpo_negative": "cand_0327_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0328",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_008",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 32.86,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 47.45
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 51.07
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.43,
          "to_sec": 36.5,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 32.86,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0328_07",
      "candidates": [
        {
          "candidate_id": "cand_0328_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0328_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0328_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0328_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0328_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0328_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0328_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0328_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0328_07",
      "dpo_negative": "cand_0328_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0329",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_009",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 5.16,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 56.89
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.78
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.26,
          "to_sec": 46.9,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 5.16,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0329_07",
      "candidates": [
        {
          "candidate_id": "cand_0329_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0329_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0329_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0329_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0329_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0329_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0329_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0329_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0329_07",
      "dpo_negative": "cand_0329_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0330",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_010",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 18.07,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 44.03
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 41.81
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.79,
          "to_sec": 43.05,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 18.07,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0330_02",
      "candidates": [
        {
          "candidate_id": "cand_0330_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0330_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0330_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0330_02",
      "dpo_negative": "cand_0330_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0331",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_011",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 24.27,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 47.9
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.92
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.61,
          "to_sec": 40.69,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 24.27,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0331_02",
      "candidates": [
        {
          "candidate_id": "cand_0331_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0331_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0331_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0331_02",
      "dpo_negative": "cand_0331_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0332",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_012",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 26.45,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 32.9
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 48.41
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.45,
          "to_sec": 42.65,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 26.45,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0332_03",
      "candidates": [
        {
          "candidate_id": "cand_0332_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0332_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0332_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0332_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0332_03",
      "dpo_negative": "cand_0332_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0333",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_013",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 30.03,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 39.94
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.49
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.88,
          "to_sec": 52.88,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 30.03,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0333_07",
      "candidates": [
        {
          "candidate_id": "cand_0333_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0333_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0333_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0333_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0333_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0333_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0333_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0333_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0333_07",
      "dpo_negative": "cand_0333_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0334",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_014",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 11.41,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 22.95
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 52.34
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.48,
          "to_sec": 36.64,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 11.41,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0334_07",
      "candidates": [
        {
          "candidate_id": "cand_0334_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0334_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0334_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0334_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0334_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0334_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0334_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0334_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0334_07",
      "dpo_negative": "cand_0334_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0335",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_015",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 38.73,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 50.44
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 30.36
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.7,
          "to_sec": 46.34,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 38.73,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0335_07",
      "candidates": [
        {
          "candidate_id": "cand_0335_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0335_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0335_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0335_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0335_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0335_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0335_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0335_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0335_07",
      "dpo_negative": "cand_0335_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0336",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_016",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 37.14,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 14.24
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 33.48
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.22,
          "to_sec": 42.28,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 37.14,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0336_02",
      "candidates": [
        {
          "candidate_id": "cand_0336_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0336_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0336_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0336_02",
      "dpo_negative": "cand_0336_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0337",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_017",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 35.57,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 33.61
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 63.08
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.61,
          "to_sec": 53.43,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 35.57,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0337_02",
      "candidates": [
        {
          "candidate_id": "cand_0337_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0337_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0337_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0337_02",
      "dpo_negative": "cand_0337_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0338",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_018",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 18.22,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 52.27
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 18.42
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.82,
          "to_sec": 46.49,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.22,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0338_03",
      "candidates": [
        {
          "candidate_id": "cand_0338_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0338_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0338_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0338_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0338_03",
      "dpo_negative": "cand_0338_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0339",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_019",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 19.77,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 57.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 57.95
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.71,
          "to_sec": 45.24,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 19.77,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0339_07",
      "candidates": [
        {
          "candidate_id": "cand_0339_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0339_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0339_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0339_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0339_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0339_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0339_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0339_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0339_07",
      "dpo_negative": "cand_0339_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0340",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_020",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 40.86,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 58.89
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 30.48
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.12,
          "to_sec": 44.08,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 40.86,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0340_07",
      "candidates": [
        {
          "candidate_id": "cand_0340_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0340_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0340_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0340_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0340_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0340_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0340_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0340_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0340_07",
      "dpo_negative": "cand_0340_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0341",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_021",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 12.39,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 31.89
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 63.0
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.88,
          "to_sec": 40.89,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 12.39,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0341_07",
      "candidates": [
        {
          "candidate_id": "cand_0341_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0341_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0341_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0341_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0341_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0341_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0341_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0341_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0341_07",
      "dpo_negative": "cand_0341_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0342",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_022",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 35.01,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 35.12
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.76
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.47,
          "to_sec": 46.2,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 35.01,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0342_02",
      "candidates": [
        {
          "candidate_id": "cand_0342_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0342_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0342_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0342_02",
      "dpo_negative": "cand_0342_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0343",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_023",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 44.71,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 42.97
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 61.27
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.72,
          "to_sec": 42.56,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.71,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0343_02",
      "candidates": [
        {
          "candidate_id": "cand_0343_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0343_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0343_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0343_02",
      "dpo_negative": "cand_0343_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0344",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_024",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 18.05,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 47.03
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 68.86
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 34.52,
          "to_sec": 53.42,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 18.05,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0344_03",
      "candidates": [
        {
          "candidate_id": "cand_0344_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0344_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0344_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0344_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0344_03",
      "dpo_negative": "cand_0344_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0345",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_025",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 11.61,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 39.79
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 64.21
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.45,
          "to_sec": 42.08,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 11.61,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0345_07",
      "candidates": [
        {
          "candidate_id": "cand_0345_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0345_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0345_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0345_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0345_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0345_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0345_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0345_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0345_07",
      "dpo_negative": "cand_0345_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0346",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_026",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 23.86,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 24.34
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 28.66
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.28,
          "to_sec": 38.11,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.86,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0346_07",
      "candidates": [
        {
          "candidate_id": "cand_0346_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0346_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0346_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0346_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0346_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0346_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0346_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0346_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0346_07",
      "dpo_negative": "cand_0346_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0347",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_027",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 34.11,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 47.76
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 28.07
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.57,
          "to_sec": 40.89,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 34.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0347_07",
      "candidates": [
        {
          "candidate_id": "cand_0347_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0347_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0347_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0347_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0347_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0347_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0347_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0347_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0347_07",
      "dpo_negative": "cand_0347_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0348",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_028",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 44.75,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 39.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.87
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.09,
          "to_sec": 48.17,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.75,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0348_02",
      "candidates": [
        {
          "candidate_id": "cand_0348_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0348_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0348_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0348_02",
      "dpo_negative": "cand_0348_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0349",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_029",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 24.05,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 59.39
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 61.53
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.67,
          "to_sec": 40.85,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 24.05,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0349_02",
      "candidates": [
        {
          "candidate_id": "cand_0349_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0349_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0349_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0349_02",
      "dpo_negative": "cand_0349_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0350",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_030",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 11.15,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.54
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 60.92
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.42,
          "to_sec": 46.72,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 11.15,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0350_03",
      "candidates": [
        {
          "candidate_id": "cand_0350_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0350_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0350_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0350_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0350_03",
      "dpo_negative": "cand_0350_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0351",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_031",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 27.24,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 53.6
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 55.96
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.09,
          "to_sec": 37.31,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 27.24,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0351_07",
      "candidates": [
        {
          "candidate_id": "cand_0351_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0351_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0351_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0351_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0351_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0351_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0351_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0351_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0351_07",
      "dpo_negative": "cand_0351_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0352",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_032",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 17.44,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.66
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 40.57
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.91,
          "to_sec": 48.14,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 17.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0352_07",
      "candidates": [
        {
          "candidate_id": "cand_0352_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0352_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0352_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0352_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0352_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0352_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0352_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0352_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0352_07",
      "dpo_negative": "cand_0352_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0353",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_033",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 23.14,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.03
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.19
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.36,
          "to_sec": 52.91,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.14,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0353_07",
      "candidates": [
        {
          "candidate_id": "cand_0353_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0353_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0353_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0353_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0353_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0353_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0353_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0353_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0353_07",
      "dpo_negative": "cand_0353_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0354",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_034",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 6.14,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 42.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 24.41
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.85,
          "to_sec": 42.46,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 6.14,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0354_02",
      "candidates": [
        {
          "candidate_id": "cand_0354_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0354_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0354_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0354_02",
      "dpo_negative": "cand_0354_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0355",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_035",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 17.6,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 23.12
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 49.65
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.62,
          "to_sec": 43.29,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 17.6,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0355_02",
      "candidates": [
        {
          "candidate_id": "cand_0355_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0355_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0355_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0355_02",
      "dpo_negative": "cand_0355_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0356",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_036",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 18.17,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 54.06
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.65
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.71,
          "to_sec": 36.87,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 18.17,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0356_03",
      "candidates": [
        {
          "candidate_id": "cand_0356_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0356_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0356_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0356_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0356_03",
      "dpo_negative": "cand_0356_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0357",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_037",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 33.0,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 45.17
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 22.65
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.35,
          "to_sec": 44.92,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 33.0,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0357_07",
      "candidates": [
        {
          "candidate_id": "cand_0357_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0357_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0357_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0357_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0357_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0357_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0357_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0357_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0357_07",
      "dpo_negative": "cand_0357_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0358",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_038",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 16.52,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 30.94
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 55.99
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.37,
          "to_sec": 43.17,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 16.52,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0358_07",
      "candidates": [
        {
          "candidate_id": "cand_0358_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0358_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0358_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0358_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0358_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0358_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0358_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0358_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0358_07",
      "dpo_negative": "cand_0358_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0359",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_039",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 29.21,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 39.98
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.23
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.25,
          "to_sec": 37.3,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.21,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0359_07",
      "candidates": [
        {
          "candidate_id": "cand_0359_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0359_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0359_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0359_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0359_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0359_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0359_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0359_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0359_07",
      "dpo_negative": "cand_0359_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0360",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_040",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 11.57,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 49.54
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.27
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.6,
          "to_sec": 42.44,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 11.57,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0360_02",
      "candidates": [
        {
          "candidate_id": "cand_0360_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0360_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0360_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0360_02",
      "dpo_negative": "cand_0360_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0361",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_041",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 23.16,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 42.2
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 30.69
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.51,
          "to_sec": 37.53,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 23.16,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0361_02",
      "candidates": [
        {
          "candidate_id": "cand_0361_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0361_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0361_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0361_02",
      "dpo_negative": "cand_0361_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0362",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_042",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 9.52,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 20.31
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.15
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.26,
          "to_sec": 42.27,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 9.52,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0362_03",
      "candidates": [
        {
          "candidate_id": "cand_0362_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0362_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0362_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0362_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0362_03",
      "dpo_negative": "cand_0362_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0363",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_043",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 13.48,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 55.29
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 31.69
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.86,
          "to_sec": 51.34,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 13.48,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0363_07",
      "candidates": [
        {
          "candidate_id": "cand_0363_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0363_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0363_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0363_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0363_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0363_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0363_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0363_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0363_07",
      "dpo_negative": "cand_0363_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0364",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_044",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 7.79,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 53.86
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 43.7
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.48,
          "to_sec": 41.66,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 7.79,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0364_07",
      "candidates": [
        {
          "candidate_id": "cand_0364_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0364_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0364_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0364_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0364_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0364_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0364_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0364_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0364_07",
      "dpo_negative": "cand_0364_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0365",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_045",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 12.17,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 46.94
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 35.58
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.19,
          "to_sec": 44.52,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 12.17,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0365_07",
      "candidates": [
        {
          "candidate_id": "cand_0365_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0365_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0365_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0365_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0365_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0365_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0365_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0365_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0365_07",
      "dpo_negative": "cand_0365_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0366",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_046",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 25.85,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 18.89
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 32.06
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.57,
          "to_sec": 36.92,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 25.85,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0366_02",
      "candidates": [
        {
          "candidate_id": "cand_0366_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0366_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0366_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0366_02",
      "dpo_negative": "cand_0366_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0367",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_047",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 30.41,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 30.81
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.59
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.62,
          "to_sec": 37.2,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 30.41,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0367_02",
      "candidates": [
        {
          "candidate_id": "cand_0367_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0367_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0367_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0367_02",
      "dpo_negative": "cand_0367_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0368",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_048",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 35.93,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 46.03
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 20.13
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.05,
          "to_sec": 43.41,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 35.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0368_03",
      "candidates": [
        {
          "candidate_id": "cand_0368_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0368_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0368_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0368_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0368_03",
      "dpo_negative": "cand_0368_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0369",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_049",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 30.19,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 56.62
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 64.5
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.56,
          "to_sec": 51.88,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 30.19,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0369_07",
      "candidates": [
        {
          "candidate_id": "cand_0369_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0369_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0369_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0369_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0369_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0369_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0369_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0369_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0369_07",
      "dpo_negative": "cand_0369_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0370",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_050",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 14.29,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 59.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.02
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.43,
          "to_sec": 43.48,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 14.29,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0370_07",
      "candidates": [
        {
          "candidate_id": "cand_0370_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0370_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0370_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0370_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0370_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0370_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0370_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0370_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0370_07",
      "dpo_negative": "cand_0370_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0371",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_051",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 29.44,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 49.35
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 64.99
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.17,
          "to_sec": 48.29,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0371_07",
      "candidates": [
        {
          "candidate_id": "cand_0371_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0371_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0371_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0371_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0371_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0371_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0371_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0371_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0371_07",
      "dpo_negative": "cand_0371_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0372",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_052",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 37.36,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 25.29
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 22.68
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.98,
          "to_sec": 51.38,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 37.36,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0372_02",
      "candidates": [
        {
          "candidate_id": "cand_0372_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0372_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0372_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0372_02",
      "dpo_negative": "cand_0372_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0373",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_053",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 38.62,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 24.57
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 61.92
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.6,
          "to_sec": 47.74,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 38.62,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0373_02",
      "candidates": [
        {
          "candidate_id": "cand_0373_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0373_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0373_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0373_02",
      "dpo_negative": "cand_0373_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0374",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_054",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 9.84,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 44.11
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 61.59
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.89,
          "to_sec": 36.6,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 9.84,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0374_03",
      "candidates": [
        {
          "candidate_id": "cand_0374_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0374_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0374_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0374_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0374_03",
      "dpo_negative": "cand_0374_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0375",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_055",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 29.9,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 33.85
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 33.61
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.02,
          "to_sec": 50.43,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 29.9,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0375_07",
      "candidates": [
        {
          "candidate_id": "cand_0375_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0375_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0375_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0375_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0375_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0375_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0375_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0375_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0375_07",
      "dpo_negative": "cand_0375_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0376",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_056",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 20.85,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 47.5
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.12
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.74,
          "to_sec": 38.07,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.85,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0376_07",
      "candidates": [
        {
          "candidate_id": "cand_0376_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0376_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0376_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0376_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0376_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0376_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0376_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0376_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0376_07",
      "dpo_negative": "cand_0376_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0377",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_057",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 23.42,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 18.13
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 60.86
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.89,
          "to_sec": 48.08,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 23.42,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0377_07",
      "candidates": [
        {
          "candidate_id": "cand_0377_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0377_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0377_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0377_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0377_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0377_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0377_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0377_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0377_07",
      "dpo_negative": "cand_0377_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0378",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_058",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 16.97,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 16.11
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 69.23
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.13,
          "to_sec": 53.55,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 16.97,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0378_02",
      "candidates": [
        {
          "candidate_id": "cand_0378_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0378_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0378_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0378_02",
      "dpo_negative": "cand_0378_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0379",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_059",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 44.25,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 30.01
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 59.92
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.3,
          "to_sec": 43.03,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 44.25,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0379_02",
      "candidates": [
        {
          "candidate_id": "cand_0379_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0379_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0379_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0379_02",
      "dpo_negative": "cand_0379_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0380",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_060",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 18.99,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 20.55
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.27
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 31.08,
          "to_sec": 40.24,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 18.99,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0380_03",
      "candidates": [
        {
          "candidate_id": "cand_0380_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0380_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0380_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0380_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0380_03",
      "dpo_negative": "cand_0380_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0381",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_061",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 6.75,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 46.22
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 41.74
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.13,
          "to_sec": 46.03,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 6.75,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0381_07",
      "candidates": [
        {
          "candidate_id": "cand_0381_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0381_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0381_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0381_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0381_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0381_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0381_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0381_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0381_07",
      "dpo_negative": "cand_0381_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0382",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_062",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 27.12,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 61.32
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 33.39
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.62,
          "to_sec": 44.29,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 27.12,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0382_07",
      "candidates": [
        {
          "candidate_id": "cand_0382_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0382_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0382_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0382_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0382_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0382_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0382_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0382_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0382_07",
      "dpo_negative": "cand_0382_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0383",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_063",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 15.87,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 55.4
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.27
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.11,
          "to_sec": 39.62,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 15.87,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0383_07",
      "candidates": [
        {
          "candidate_id": "cand_0383_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0383_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0383_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0383_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0383_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0383_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0383_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0383_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0383_07",
      "dpo_negative": "cand_0383_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0384",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_064",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 42.22,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 17.0
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.83
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.22,
          "to_sec": 43.52,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 42.22,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0384_02",
      "candidates": [
        {
          "candidate_id": "cand_0384_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0384_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0384_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0384_02",
      "dpo_negative": "cand_0384_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0385",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_065",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 28.83,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 34.97
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 44.82
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.07,
          "to_sec": 40.06,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 28.83,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0385_02",
      "candidates": [
        {
          "candidate_id": "cand_0385_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0385_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0385_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0385_02",
      "dpo_negative": "cand_0385_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0386",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_066",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 39.8,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 29.85
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 63.84
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.82,
          "to_sec": 52.5,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 39.8,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0386_03",
      "candidates": [
        {
          "candidate_id": "cand_0386_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0386_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0386_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0386_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0386_03",
      "dpo_negative": "cand_0386_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0387",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_067",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 11.67,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 30.82
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.87
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.74,
          "to_sec": 42.56,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 11.67,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0387_07",
      "candidates": [
        {
          "candidate_id": "cand_0387_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0387_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0387_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0387_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0387_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0387_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0387_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0387_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0387_07",
      "dpo_negative": "cand_0387_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0388",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_068",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 12.12,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.44
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 32.18
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.55,
          "to_sec": 41.04,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 12.12,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0388_07",
      "candidates": [
        {
          "candidate_id": "cand_0388_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0388_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0388_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0388_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0388_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0388_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0388_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0388_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0388_07",
      "dpo_negative": "cand_0388_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0389",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_069",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 42.38,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.69
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 28.91
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.52,
          "to_sec": 45.59,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 42.38,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0389_07",
      "candidates": [
        {
          "candidate_id": "cand_0389_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0389_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0389_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0389_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0389_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0389_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0389_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0389_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0389_07",
      "dpo_negative": "cand_0389_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0390",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_070",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 32.99,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 61.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 27.17
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.81,
          "to_sec": 47.71,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 32.99,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0390_02",
      "candidates": [
        {
          "candidate_id": "cand_0390_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0390_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0390_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0390_02",
      "dpo_negative": "cand_0390_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0391",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_071",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 23.71,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 25.08
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 60.03
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.74,
          "to_sec": 49.83,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.71,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0391_02",
      "candidates": [
        {
          "candidate_id": "cand_0391_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0391_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0391_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0391_02",
      "dpo_negative": "cand_0391_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0392",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_072",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 27.58,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.63
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 20.48
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.79,
          "to_sec": 42.18,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 27.58,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0392_03",
      "candidates": [
        {
          "candidate_id": "cand_0392_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0392_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0392_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0392_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0392_03",
      "dpo_negative": "cand_0392_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0393",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_073",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 22.75,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 52.26
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.51
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.83,
          "to_sec": 45.6,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 22.75,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0393_07",
      "candidates": [
        {
          "candidate_id": "cand_0393_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0393_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0393_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0393_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0393_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0393_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0393_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0393_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0393_07",
      "dpo_negative": "cand_0393_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0394",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_074",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 14.11,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 12.39
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.64
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.23,
          "to_sec": 38.49,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 14.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0394_07",
      "candidates": [
        {
          "candidate_id": "cand_0394_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0394_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0394_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0394_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0394_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0394_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0394_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0394_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0394_07",
      "dpo_negative": "cand_0394_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0395",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_075",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 32.92,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 57.94
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 42.16
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.86,
          "to_sec": 49.33,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 32.92,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0395_07",
      "candidates": [
        {
          "candidate_id": "cand_0395_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0395_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0395_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0395_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0395_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0395_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0395_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0395_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0395_07",
      "dpo_negative": "cand_0395_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0396",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_076",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 39.58,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 46.48
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 61.21
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.68,
          "to_sec": 40.31,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 39.58,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0396_02",
      "candidates": [
        {
          "candidate_id": "cand_0396_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0396_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0396_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0396_02",
      "dpo_negative": "cand_0396_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0397",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_077",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 34.9,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.65
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 47.7
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.4,
          "to_sec": 40.83,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 34.9,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0397_02",
      "candidates": [
        {
          "candidate_id": "cand_0397_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0397_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0397_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0397_02",
      "dpo_negative": "cand_0397_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0398",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_078",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 22.99,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 40.86
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 23.77
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.39,
          "to_sec": 45.88,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 22.99,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0398_03",
      "candidates": [
        {
          "candidate_id": "cand_0398_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0398_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0398_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0398_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0398_03",
      "dpo_negative": "cand_0398_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0399",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_079",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 24.28,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 46.38
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.15
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.46,
          "to_sec": 37.03,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 24.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0399_07",
      "candidates": [
        {
          "candidate_id": "cand_0399_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0399_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0399_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0399_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0399_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0399_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0399_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0399_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0399_07",
      "dpo_negative": "cand_0399_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0400",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_000",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 16.24,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 59.39
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 68.69
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.09,
          "to_sec": 39.4,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 16.24,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0400_07",
      "candidates": [
        {
          "candidate_id": "cand_0400_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0400_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0400_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0400_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0400_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0400_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0400_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0400_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0400_07",
      "dpo_negative": "cand_0400_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0401",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_001",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 13.04,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 25.34
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.19
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.87,
          "to_sec": 48.95,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 13.04,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0401_07",
      "candidates": [
        {
          "candidate_id": "cand_0401_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0401_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0401_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0401_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0401_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0401_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0401_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0401_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0401_07",
      "dpo_negative": "cand_0401_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0402",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_002",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 37.56,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 23.37
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 45.45
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.2,
          "to_sec": 49.96,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 37.56,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0402_02",
      "candidates": [
        {
          "candidate_id": "cand_0402_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0402_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0402_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0402_02",
      "dpo_negative": "cand_0402_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0403",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_003",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 7.28,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 17.89
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 23.37
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.64,
          "to_sec": 38.4,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 7.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0403_02",
      "candidates": [
        {
          "candidate_id": "cand_0403_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0403_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0403_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0403_02",
      "dpo_negative": "cand_0403_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0404",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_004",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 20.78,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 54.39
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 57.28
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.74,
          "to_sec": 40.3,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 20.78,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0404_03",
      "candidates": [
        {
          "candidate_id": "cand_0404_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0404_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0404_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0404_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0404_03",
      "dpo_negative": "cand_0404_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0405",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_005",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 43.69,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 41.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.86
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 33.9,
          "to_sec": 46.09,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 43.69,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0405_07",
      "candidates": [
        {
          "candidate_id": "cand_0405_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0405_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0405_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0405_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0405_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0405_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0405_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0405_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0405_07",
      "dpo_negative": "cand_0405_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0406",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_006",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 42.53,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.21
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 32.66
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.0,
          "to_sec": 46.94,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 42.53,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0406_07",
      "candidates": [
        {
          "candidate_id": "cand_0406_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0406_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0406_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0406_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0406_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0406_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0406_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0406_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0406_07",
      "dpo_negative": "cand_0406_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0407",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_007",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 40.56,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 26.71
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 57.82
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.85,
          "to_sec": 51.04,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 40.56,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0407_07",
      "candidates": [
        {
          "candidate_id": "cand_0407_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0407_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0407_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0407_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0407_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0407_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0407_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0407_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0407_07",
      "dpo_negative": "cand_0407_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0408",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_008",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 36.55,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 21.47
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 36.01
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.22,
          "to_sec": 49.93,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 36.55,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0408_02",
      "candidates": [
        {
          "candidate_id": "cand_0408_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0408_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0408_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0408_02",
      "dpo_negative": "cand_0408_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0409",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_009",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 35.32,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 51.31
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 26.34
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.52,
          "to_sec": 50.19,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 35.32,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0409_02",
      "candidates": [
        {
          "candidate_id": "cand_0409_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0409_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0409_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0409_02",
      "dpo_negative": "cand_0409_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0410",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_010",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 7.61,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 31.46
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 34.55
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.84,
          "to_sec": 51.63,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 7.61,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0410_03",
      "candidates": [
        {
          "candidate_id": "cand_0410_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0410_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0410_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0410_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0410_03",
      "dpo_negative": "cand_0410_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0411",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_011",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 44.83,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 38.48
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.35
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.83,
          "to_sec": 52.09,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.83,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0411_07",
      "candidates": [
        {
          "candidate_id": "cand_0411_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0411_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0411_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0411_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0411_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0411_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0411_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0411_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0411_07",
      "dpo_negative": "cand_0411_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0412",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_012",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 21.97,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 14.33
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 39.83
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.42,
          "to_sec": 44.41,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 21.97,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0412_07",
      "candidates": [
        {
          "candidate_id": "cand_0412_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0412_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0412_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0412_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0412_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0412_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0412_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0412_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0412_07",
      "dpo_negative": "cand_0412_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0413",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_013",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 10.81,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 40.15
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.61
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.0,
          "to_sec": 40.31,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 10.81,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0413_07",
      "candidates": [
        {
          "candidate_id": "cand_0413_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0413_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0413_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0413_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0413_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0413_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0413_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0413_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0413_07",
      "dpo_negative": "cand_0413_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0414",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_014",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 22.61,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 18.75
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.9
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.51,
          "to_sec": 39.87,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 22.61,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0414_02",
      "candidates": [
        {
          "candidate_id": "cand_0414_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0414_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0414_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0414_02",
      "dpo_negative": "cand_0414_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0415",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_015",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 11.46,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 47.77
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.27
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.07,
          "to_sec": 53.44,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 11.46,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0415_02",
      "candidates": [
        {
          "candidate_id": "cand_0415_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0415_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0415_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0415_02",
      "dpo_negative": "cand_0415_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0416",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_016",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 29.24,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.9
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 30.46
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.28,
          "to_sec": 48.31,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.24,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0416_03",
      "candidates": [
        {
          "candidate_id": "cand_0416_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0416_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0416_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0416_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0416_03",
      "dpo_negative": "cand_0416_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0417",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_017",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 26.07,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 50.1
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.69
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.23,
          "to_sec": 37.92,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 26.07,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0417_07",
      "candidates": [
        {
          "candidate_id": "cand_0417_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0417_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0417_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0417_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0417_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0417_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0417_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0417_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0417_07",
      "dpo_negative": "cand_0417_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0418",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_018",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 33.28,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 53.39
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 35.02
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.91,
          "to_sec": 50.02,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 33.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0418_07",
      "candidates": [
        {
          "candidate_id": "cand_0418_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0418_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0418_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0418_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0418_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0418_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0418_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0418_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0418_07",
      "dpo_negative": "cand_0418_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0419",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_019",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 13.04,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 15.09
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 57.56
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.52,
          "to_sec": 43.09,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 13.04,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0419_07",
      "candidates": [
        {
          "candidate_id": "cand_0419_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0419_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0419_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0419_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0419_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0419_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0419_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0419_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0419_07",
      "dpo_negative": "cand_0419_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0420",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_020",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 22.89,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 59.26
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.53
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 34.67,
          "to_sec": 41.09,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 22.89,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0420_02",
      "candidates": [
        {
          "candidate_id": "cand_0420_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0420_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0420_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0420_02",
      "dpo_negative": "cand_0420_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0421",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_021",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 6.9,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 50.25
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 48.58
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.34,
          "to_sec": 36.59,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 6.9,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0421_02",
      "candidates": [
        {
          "candidate_id": "cand_0421_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0421_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0421_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0421_02",
      "dpo_negative": "cand_0421_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0422",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_022",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 24.73,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 22.68
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 28.03
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.59,
          "to_sec": 41.31,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 24.73,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0422_03",
      "candidates": [
        {
          "candidate_id": "cand_0422_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0422_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0422_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0422_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0422_03",
      "dpo_negative": "cand_0422_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0423",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_023",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 20.47,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 28.78
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 57.89
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.28,
          "to_sec": 46.82,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.47,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0423_07",
      "candidates": [
        {
          "candidate_id": "cand_0423_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0423_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0423_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0423_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0423_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0423_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0423_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0423_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0423_07",
      "dpo_negative": "cand_0423_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0424",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_024",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 34.64,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 55.51
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 55.84
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.8,
          "to_sec": 39.56,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 34.64,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0424_07",
      "candidates": [
        {
          "candidate_id": "cand_0424_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0424_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0424_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0424_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0424_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0424_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0424_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0424_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0424_07",
      "dpo_negative": "cand_0424_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0425",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_025",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 33.77,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 56.24
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.18
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.93,
          "to_sec": 41.31,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 33.77,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0425_07",
      "candidates": [
        {
          "candidate_id": "cand_0425_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0425_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0425_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0425_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0425_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0425_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0425_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0425_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0425_07",
      "dpo_negative": "cand_0425_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0426",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_026",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 28.39,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 28.41
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 33.47
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.48,
          "to_sec": 43.12,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 28.39,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0426_02",
      "candidates": [
        {
          "candidate_id": "cand_0426_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0426_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0426_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0426_02",
      "dpo_negative": "cand_0426_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0427",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_027",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 18.41,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 31.77
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 24.44
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.45,
          "to_sec": 46.51,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.41,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0427_02",
      "candidates": [
        {
          "candidate_id": "cand_0427_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0427_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0427_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0427_02",
      "dpo_negative": "cand_0427_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0428",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_028",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 16.54,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 17.31
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.92
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.44,
          "to_sec": 48.51,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 16.54,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0428_03",
      "candidates": [
        {
          "candidate_id": "cand_0428_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0428_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0428_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0428_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0428_03",
      "dpo_negative": "cand_0428_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0429",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_029",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 42.26,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 42.82
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 65.61
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.58,
          "to_sec": 51.37,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 42.26,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0429_07",
      "candidates": [
        {
          "candidate_id": "cand_0429_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0429_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0429_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0429_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0429_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0429_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0429_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0429_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0429_07",
      "dpo_negative": "cand_0429_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0430",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_030",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 35.24,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 37.72
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.94
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.86,
          "to_sec": 42.03,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 35.24,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0430_07",
      "candidates": [
        {
          "candidate_id": "cand_0430_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0430_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0430_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0430_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0430_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0430_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0430_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0430_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0430_07",
      "dpo_negative": "cand_0430_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0431",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_031",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 29.64,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 16.95
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.26
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.55,
          "to_sec": 37.54,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.64,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0431_07",
      "candidates": [
        {
          "candidate_id": "cand_0431_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0431_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0431_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0431_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0431_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0431_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0431_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0431_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0431_07",
      "dpo_negative": "cand_0431_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0432",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_032",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 25.43,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 35.38
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 25.83
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.7,
          "to_sec": 37.63,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 25.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0432_02",
      "candidates": [
        {
          "candidate_id": "cand_0432_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0432_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0432_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0432_02",
      "dpo_negative": "cand_0432_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0433",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_033",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 31.65,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.91
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.27
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.99,
          "to_sec": 37.22,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 31.65,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0433_02",
      "candidates": [
        {
          "candidate_id": "cand_0433_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0433_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0433_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0433_02",
      "dpo_negative": "cand_0433_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0434",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_034",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 26.63,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 53.17
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 57.42
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 23.85,
          "to_sec": 40.05,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 26.63,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0434_03",
      "candidates": [
        {
          "candidate_id": "cand_0434_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0434_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0434_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0434_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0434_03",
      "dpo_negative": "cand_0434_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0435",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_035",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 11.76,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 40.35
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 18.04
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.66,
          "to_sec": 43.71,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 11.76,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0435_07",
      "candidates": [
        {
          "candidate_id": "cand_0435_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0435_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0435_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0435_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0435_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0435_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0435_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0435_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0435_07",
      "dpo_negative": "cand_0435_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0436",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_036",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 23.67,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 21.11
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 53.06
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.28,
          "to_sec": 41.37,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.67,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0436_07",
      "candidates": [
        {
          "candidate_id": "cand_0436_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0436_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0436_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0436_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0436_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0436_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0436_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0436_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0436_07",
      "dpo_negative": "cand_0436_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0437",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_037",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 25.42,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 19.46
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 40.66
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.55,
          "to_sec": 36.85,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 25.42,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0437_07",
      "candidates": [
        {
          "candidate_id": "cand_0437_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0437_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0437_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0437_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0437_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0437_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0437_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0437_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0437_07",
      "dpo_negative": "cand_0437_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0438",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_038",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 26.34,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 52.33
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.78
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.79,
          "to_sec": 47.32,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 26.34,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0438_02",
      "candidates": [
        {
          "candidate_id": "cand_0438_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0438_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0438_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0438_02",
      "dpo_negative": "cand_0438_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0439",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_039",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 18.77,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 27.21
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 38.75
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.21,
          "to_sec": 41.88,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.77,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0439_02",
      "candidates": [
        {
          "candidate_id": "cand_0439_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0439_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0439_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0439_02",
      "dpo_negative": "cand_0439_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0440",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_040",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 30.69,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 28.52
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 30.27
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 29.84,
          "to_sec": 52.99,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 30.69,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0440_03",
      "candidates": [
        {
          "candidate_id": "cand_0440_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0440_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0440_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0440_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0440_03",
      "dpo_negative": "cand_0440_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0441",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_041",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 37.03,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 32.71
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 68.82
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.76,
          "to_sec": 38.52,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 37.03,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0441_07",
      "candidates": [
        {
          "candidate_id": "cand_0441_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0441_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0441_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0441_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0441_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0441_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0441_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0441_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0441_07",
      "dpo_negative": "cand_0441_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0442",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_042",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 40.7,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 51.82
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 30.32
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.44,
          "to_sec": 41.11,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 40.7,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0442_07",
      "candidates": [
        {
          "candidate_id": "cand_0442_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0442_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0442_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0442_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0442_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0442_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0442_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0442_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0442_07",
      "dpo_negative": "cand_0442_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0443",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_043",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 20.42,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 25.09
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 24.87
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.87,
          "to_sec": 44.02,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.42,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0443_07",
      "candidates": [
        {
          "candidate_id": "cand_0443_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0443_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0443_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0443_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0443_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0443_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0443_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0443_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0443_07",
      "dpo_negative": "cand_0443_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0444",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_044",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 7.43,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 48.33
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 31.28
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.35,
          "to_sec": 36.03,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 7.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0444_02",
      "candidates": [
        {
          "candidate_id": "cand_0444_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0444_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0444_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0444_02",
      "dpo_negative": "cand_0444_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0445",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_045",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 15.41,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 35.32
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 23.7
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 20.33,
          "to_sec": 52.53,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 15.41,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0445_02",
      "candidates": [
        {
          "candidate_id": "cand_0445_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0445_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0445_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0445_02",
      "dpo_negative": "cand_0445_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0446",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_046",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 40.88,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 12.54
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 21.52
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.09,
          "to_sec": 53.67,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 40.88,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0446_03",
      "candidates": [
        {
          "candidate_id": "cand_0446_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0446_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0446_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0446_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0446_03",
      "dpo_negative": "cand_0446_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0447",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_047",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 32.14,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 51.43
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 23.95
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.32,
          "to_sec": 45.83,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 32.14,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0447_07",
      "candidates": [
        {
          "candidate_id": "cand_0447_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0447_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0447_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0447_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0447_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0447_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0447_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0447_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0447_07",
      "dpo_negative": "cand_0447_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0448",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_048",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 9.7,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 31.64
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 20.36
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.59,
          "to_sec": 37.29,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 9.7,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0448_07",
      "candidates": [
        {
          "candidate_id": "cand_0448_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0448_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0448_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0448_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0448_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0448_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0448_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0448_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0448_07",
      "dpo_negative": "cand_0448_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0449",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_049",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 40.52,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 60.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 56.13
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 25.81,
          "to_sec": 50.15,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 40.52,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0449_07",
      "candidates": [
        {
          "candidate_id": "cand_0449_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0449_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0449_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0449_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0449_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0449_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0449_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0449_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0449_07",
      "dpo_negative": "cand_0449_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0450",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_050",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 21.13,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 56.73
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.72
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.29,
          "to_sec": 53.05,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 21.13,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0450_02",
      "candidates": [
        {
          "candidate_id": "cand_0450_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0450_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0450_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0450_02",
      "dpo_negative": "cand_0450_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0451",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_051",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 40.43,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 53.16
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 32.13
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.05,
          "to_sec": 52.83,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 40.43,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0451_02",
      "candidates": [
        {
          "candidate_id": "cand_0451_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0451_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0451_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0451_02",
      "dpo_negative": "cand_0451_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0452",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_052",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 44.84,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 49.35
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 29.81
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.82,
          "to_sec": 41.4,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 44.84,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0452_03",
      "candidates": [
        {
          "candidate_id": "cand_0452_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0452_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0452_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0452_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0452_03",
      "dpo_negative": "cand_0452_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0453",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_053",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 23.37,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 25.93
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.98
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.0,
          "to_sec": 49.94,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 23.37,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0453_07",
      "candidates": [
        {
          "candidate_id": "cand_0453_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0453_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0453_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0453_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0453_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0453_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0453_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0453_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0453_07",
      "dpo_negative": "cand_0453_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0454",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_054",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 26.5,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 24.01
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 27.16
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.37,
          "to_sec": 37.26,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 26.5,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0454_07",
      "candidates": [
        {
          "candidate_id": "cand_0454_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0454_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0454_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0454_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0454_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0454_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0454_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0454_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0454_07",
      "dpo_negative": "cand_0454_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0455",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_055",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 21.7,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 48.19
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 19.91
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.16,
          "to_sec": 49.21,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 21.7,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0455_07",
      "candidates": [
        {
          "candidate_id": "cand_0455_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0455_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0455_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0455_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0455_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0455_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0455_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0455_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0455_07",
      "dpo_negative": "cand_0455_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0456",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_056",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 13.42,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 44.56
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.26
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.56,
          "to_sec": 39.47,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 13.42,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0456_02",
      "candidates": [
        {
          "candidate_id": "cand_0456_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0456_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0456_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0456_02",
      "dpo_negative": "cand_0456_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0457",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_057",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 29.91,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 60.55
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.83
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.81,
          "to_sec": 53.33,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 29.91,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0457_02",
      "candidates": [
        {
          "candidate_id": "cand_0457_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0457_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0457_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0457_02",
      "dpo_negative": "cand_0457_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0458",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_058",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 6.15,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 50.86
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 44.13
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.83,
          "to_sec": 37.55,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 6.15,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0458_03",
      "candidates": [
        {
          "candidate_id": "cand_0458_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0458_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0458_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0458_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0458_03",
      "dpo_negative": "cand_0458_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0459",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_059",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 36.73,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 43.12
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 39.04
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.16,
          "to_sec": 41.01,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 36.73,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0459_07",
      "candidates": [
        {
          "candidate_id": "cand_0459_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0459_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0459_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0459_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0459_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0459_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0459_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0459_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0459_07",
      "dpo_negative": "cand_0459_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0460",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_060",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 28.07,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 29.81
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 60.5
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 31.57,
          "to_sec": 37.98,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 28.07,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0460_07",
      "candidates": [
        {
          "candidate_id": "cand_0460_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0460_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0460_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0460_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0460_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0460_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0460_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0460_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0460_07",
      "dpo_negative": "cand_0460_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0461",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_061",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 8.28,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 12.36
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 64.94
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 34.05,
          "to_sec": 37.34,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 8.28,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0461_07",
      "candidates": [
        {
          "candidate_id": "cand_0461_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0461_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0461_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0461_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0461_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0461_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0461_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0461_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0461_07",
      "dpo_negative": "cand_0461_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0462",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_062",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 19.54,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 54.42
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 65.74
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.35,
          "to_sec": 49.25,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 19.54,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0462_02",
      "candidates": [
        {
          "candidate_id": "cand_0462_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0462_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0462_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0462_02",
      "dpo_negative": "cand_0462_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0463",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_063",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 11.11,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.07
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.21
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.55,
          "to_sec": 37.72,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 11.11,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0463_02",
      "candidates": [
        {
          "candidate_id": "cand_0463_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0463_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0463_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0463_02",
      "dpo_negative": "cand_0463_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0464",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_064",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 12.03,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 24.97
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 60.49
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.37,
          "to_sec": 43.18,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 12.03,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0464_03",
      "candidates": [
        {
          "candidate_id": "cand_0464_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0464_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0464_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0464_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0464_03",
      "dpo_negative": "cand_0464_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0465",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_065",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 8.62,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 31.57
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 66.16
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.55,
          "to_sec": 49.77,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 8.62,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0465_07",
      "candidates": [
        {
          "candidate_id": "cand_0465_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0465_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0465_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0465_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0465_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0465_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0465_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0465_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0465_07",
      "dpo_negative": "cand_0465_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0466",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_066",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 14.37,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 34.27
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 19.3
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 24.49,
          "to_sec": 38.58,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 14.37,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0466_07",
      "candidates": [
        {
          "candidate_id": "cand_0466_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0466_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0466_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0466_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0466_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0466_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0466_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0466_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0466_07",
      "dpo_negative": "cand_0466_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0467",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_067",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 17.08,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 27.14
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.84
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 32.13,
          "to_sec": 47.11,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 17.08,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0467_07",
      "candidates": [
        {
          "candidate_id": "cand_0467_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0467_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0467_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0467_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0467_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0467_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0467_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0467_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0467_07",
      "dpo_negative": "cand_0467_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0468",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_068",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 40.23,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 39.72
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 42.91
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 26.24,
          "to_sec": 49.21,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 40.23,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0468_02",
      "candidates": [
        {
          "candidate_id": "cand_0468_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0468_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0468_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0468_02",
      "dpo_negative": "cand_0468_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0469",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_069",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 11.56,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 52.93
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 59.32
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 22.64,
          "to_sec": 42.79,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 11.56,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0469_02",
      "candidates": [
        {
          "candidate_id": "cand_0469_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0469_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0469_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0469_02",
      "dpo_negative": "cand_0469_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0470",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_070",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 19.45,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 34.97
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 47.58
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.57,
          "to_sec": 42.5,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 19.45,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0470_03",
      "candidates": [
        {
          "candidate_id": "cand_0470_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0470_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0470_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0470_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0470_03",
      "dpo_negative": "cand_0470_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0471",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_071",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 33.21,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 38.63
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 51.48
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.46,
          "to_sec": 43.51,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 33.21,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0471_07",
      "candidates": [
        {
          "candidate_id": "cand_0471_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0471_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0471_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0471_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0471_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0471_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0471_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0471_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0471_07",
      "dpo_negative": "cand_0471_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0472",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_072",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 20.66,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 39.57
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.43
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 21.36,
          "to_sec": 39.63,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 20.66,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0472_07",
      "candidates": [
        {
          "candidate_id": "cand_0472_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0472_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0472_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0472_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0472_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0472_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0472_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0472_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0472_07",
      "dpo_negative": "cand_0472_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0473",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_073",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 41.18,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 55.97
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 42.76
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 24.08,
          "to_sec": 37.26,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 41.18,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0473_07",
      "candidates": [
        {
          "candidate_id": "cand_0473_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0473_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0473_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0473_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0473_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0473_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0473_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0473_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0473_07",
      "dpo_negative": "cand_0473_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0474",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_074",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 11.06,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 15.48
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 66.7
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.63,
          "to_sec": 40.87,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 11.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0474_02",
      "candidates": [
        {
          "candidate_id": "cand_0474_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0474_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0474_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0474_02",
      "dpo_negative": "cand_0474_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0475",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_075",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 28.66,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 28.57
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 37.8
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 22.16,
          "to_sec": 38.02,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 28.66,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0475_02",
      "candidates": [
        {
          "candidate_id": "cand_0475_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0475_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0475_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0475_02",
      "dpo_negative": "cand_0475_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0476",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_076",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 38.88,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 46.64
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 68.85
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.1,
          "to_sec": 38.59,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 38.88,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0476_03",
      "candidates": [
        {
          "candidate_id": "cand_0476_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0476_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0476_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0476_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0476_03",
      "dpo_negative": "cand_0476_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0477",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_077",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 18.77,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 21.85
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 25.04
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.89,
          "to_sec": 46.42,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.77,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0477_07",
      "candidates": [
        {
          "candidate_id": "cand_0477_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0477_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0477_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0477_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0477_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0477_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0477_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0477_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0477_07",
      "dpo_negative": "cand_0477_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0478",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_078",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 18.03,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 29.68
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 35.53
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 30.01,
          "to_sec": 52.68,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 18.03,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0478_07",
      "candidates": [
        {
          "candidate_id": "cand_0478_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0478_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0478_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0478_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0478_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0478_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0478_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0478_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0478_07",
      "dpo_negative": "cand_0478_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0479",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_079",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 25.44,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 51.21
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 59.59
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 26.18,
          "to_sec": 48.46,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 25.44,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0479_07",
      "candidates": [
        {
          "candidate_id": "cand_0479_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0479_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0479_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0479_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0479_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0479_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0479_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0479_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0479_07",
      "dpo_negative": "cand_0479_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0480",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_000",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 11.79,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 52.07
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 46.35
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 27.71,
          "to_sec": 41.13,
          "reason_hint": "exposition_repeat"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 11.79,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0480_02",
      "candidates": [
        {
          "candidate_id": "cand_0480_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.5,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0480_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0480_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0480_02",
      "dpo_negative": "cand_0480_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0481",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_001",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 11.71,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 25.13
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 61.5
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.96,
          "to_sec": 48.59,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 11.71,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0481_02",
      "candidates": [
        {
          "candidate_id": "cand_0481_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0481_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0481_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0481_02",
      "dpo_negative": "cand_0481_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0482",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_002",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 16.96,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 29.39
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 40.35
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.44,
          "to_sec": 40.99,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 16.96,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0482_03",
      "candidates": [
        {
          "candidate_id": "cand_0482_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0482_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0482_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0482_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0482_03",
      "dpo_negative": "cand_0482_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0483",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_003",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 23.29,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 40.72
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 25.37
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 28.56,
          "to_sec": 52.23,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 23.29,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0483_07",
      "candidates": [
        {
          "candidate_id": "cand_0483_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0483_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0483_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0483_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0483_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0483_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0483_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0483_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0483_07",
      "dpo_negative": "cand_0483_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0484",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_004",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 8.93,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 32.15
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 57.65
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.45,
          "to_sec": 52.67,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 8.93,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0484_07",
      "candidates": [
        {
          "candidate_id": "cand_0484_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0484_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0484_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0484_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0484_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0484_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0484_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0484_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0484_07",
      "dpo_negative": "cand_0484_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0485",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_005",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 18.82,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 43.13
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 34.59
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 25.82,
          "to_sec": 46.05,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 18.82,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0485_07",
      "candidates": [
        {
          "candidate_id": "cand_0485_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0485_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0485_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0485_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0485_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0485_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0485_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0485_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0485_07",
      "dpo_negative": "cand_0485_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0486",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_006",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 40.89,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 47.66
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 49.73
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.31,
          "to_sec": 46.55,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 40.89,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0486_02",
      "candidates": [
        {
          "candidate_id": "cand_0486_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0486_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0486_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0486_02",
      "dpo_negative": "cand_0486_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0487",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_007",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 38.66,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 38.49
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 55.91
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.42,
          "to_sec": 52.04,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 38.66,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0487_02",
      "candidates": [
        {
          "candidate_id": "cand_0487_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0487_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0487_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0487_02",
      "dpo_negative": "cand_0487_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0488",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_008",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 40.17,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 45.44
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 39.94
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 20.58,
          "to_sec": 44.35,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "灯市和暗渠对照很漂亮，可以多保留这种上下空间反差。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 40.17,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0488_03",
      "candidates": [
        {
          "candidate_id": "cand_0488_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0488_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0488_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0488_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0488_03",
      "dpo_negative": "cand_0488_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0489",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_009",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p04",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 7.06,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 50.01
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 52.46
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.16,
          "to_sec": 47.21,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 7.06,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0489_07",
      "candidates": [
        {
          "candidate_id": "cand_0489_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0489_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0489_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0489_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0489_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0489_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0489_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0489_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0489_07",
      "dpo_negative": "cand_0489_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0490",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_010",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p08",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 21.89,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 50.9
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 48.93
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 21.83,
          "to_sec": 41.53,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "这个反转强，账册可以成为长期证据链。",
      "like": false,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 21.89,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0490_07",
      "candidates": [
        {
          "candidate_id": "cand_0490_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0490_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0490_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0490_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0490_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.76,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0490_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.825,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0490_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.81,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0490_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.875,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0490_07",
      "dpo_negative": "cand_0490_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0491",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_011",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p14",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 22.2,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 39.47
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 32.26
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 29.76,
          "to_sec": 42.25,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 22.2,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0491_07",
      "candidates": [
        {
          "candidate_id": "cand_0491_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0491_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0491_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0491_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0491_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0491_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0491_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0491_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0491_07",
      "dpo_negative": "cand_0491_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0492",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_012",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 38.81,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 41.88
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 52.89
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 33.93,
          "to_sec": 42.01,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "喜欢钥匙和鳞纹这种能连接旧案的物件，下一章要让它们真正触发机关。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 38.81,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0492_02",
      "candidates": [
        {
          "candidate_id": "cand_0492_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0492_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0492_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0492_02",
      "dpo_negative": "cand_0492_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0493",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_013",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p05",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 22.68,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 34.59
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 22.04
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 30.17,
          "to_sec": 50.02,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": true,
      "dwell_time_sec": 22.68,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0493_02",
      "candidates": [
        {
          "candidate_id": "cand_0493_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.52,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0493_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0493_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0493_02",
      "dpo_negative": "cand_0493_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0494",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_014",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p12",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "不要大段解释设定，我想从行动里知道真相。",
          "timestamp_sec": 9.55,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 21.16
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 33.72
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 27.61,
          "to_sec": 41.28,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "揭秘机制很棒，喜欢把玄疑落到机关和人谋上。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 9.55,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 4,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0494_03",
      "candidates": [
        {
          "candidate_id": "cand_0494_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0494_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0494_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0494_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.695,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0494_03",
      "dpo_negative": "cand_0494_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0495",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_015",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "玄幻悬疑",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p09",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "女主可以更主动一点，不要只被剧情推着走。",
          "timestamp_sec": 22.86,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 24.44
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 28.56
        },
        {
          "type": "fast_forward",
          "value": true,
          "from_sec": 32.27,
          "to_sec": 53.3,
          "reason_hint": "exposition_repeat"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": false,
      "favorite": true,
      "fast_forward": true,
      "dwell_time_sec": 22.86,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 8,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0495_07",
      "candidates": [
        {
          "candidate_id": "cand_0495_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0495_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0495_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0495_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.715,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0495_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.78,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0495_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.765,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0495_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.83,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0495_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.895,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0495_07",
      "dpo_negative": "cand_0495_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0496",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_016",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "赛博都市",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p02",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声 / warm, gentle young female voice",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这里我快进了，重复信息太多。",
          "timestamp_sec": 32.64,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 39.3
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 19.57
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.05,
          "to_sec": 51.22,
          "reason_hint": "none"
        },
        {
          "type": "seek_back",
          "value": true,
          "from_sec": 47.2,
          "to_sec": 31.5,
          "reason_hint": "relisten_voice_or_key_plot"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "机关开门很有画面，喜欢月光和钥匙配合。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 32.64,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 16,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0496_07",
      "candidates": [
        {
          "candidate_id": "cand_0496_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.54,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0496_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.605,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0496_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.67,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0496_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.735,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0496_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.72,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0496_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.785,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0496_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.85,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0496_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.915,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0496_07",
      "dpo_negative": "cand_0496_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0497",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_017",
    "chapter_id": "ch_03",
    "input_context": {
      "story_context": {
        "genre": "古风权谋",
        "arc": "雨后城墙的密信",
        "chapter_title": "第三章：听钟台的白灯",
        "chapter_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。",
        "paragraph_id": "ch_03_p07",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾潜入灯市与听钟台，发现司灯人伪造钟声，父亲可能仍活在水路尽头。"
      },
      "audio_context": {
        "voice_style": "温柔女声、低声悬疑",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这张图的雨夜感很好，下一段继续这个调性。",
          "timestamp_sec": 14.16,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 42.11
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 35.0
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 23.55,
          "to_sec": 36.98,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 14.16,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 32,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0497_07",
      "candidates": [
        {
          "candidate_id": "cand_0497_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.56,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0497_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.625,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0497_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.69,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0497_03",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.675,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0497_04",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.74,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0497_05",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.805,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0497_06",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.87,
          "risk": "low"
        },
        {
          "candidate_id": "cand_0497_07",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.855,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0497_07",
      "dpo_negative": "cand_0497_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0498",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_018",
    "chapter_id": "ch_01",
    "input_context": {
      "story_context": {
        "genre": "太空歌剧",
        "arc": "雨后城墙的密信",
        "chapter_title": "第一章：雨后城墙的密信",
        "chapter_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。",
        "paragraph_id": "ch_01_p06",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾在雨后外城墙找到火漆密信和银色鱼鳞，第二声钟把她推向旧水门。"
      },
      "audio_context": {
        "voice_style": "清澈年轻女声、转折前停顿",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "节奏可以更紧一点，但别丢掉这种安静的悬念。",
          "timestamp_sec": 38.53,
          "target": "audio_or_scene",
          "polarity": "mixed"
        },
        {
          "type": "like",
          "value": false,
          "timestamp_sec": 55.5
        },
        {
          "type": "favorite",
          "value": false,
          "timestamp_sec": 54.47
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 31.84,
          "to_sec": 48.5,
          "reason_hint": "none"
        },
        {
          "type": "pause",
          "value": true,
          "timestamp_sec": 28.0,
          "reason_hint": "visual_attention"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "设定有意思但略像说明，可以用行动表现司灯人的危险。",
      "like": false,
      "favorite": false,
      "fast_forward": false,
      "dwell_time_sec": 38.53,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 1,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0498_02",
      "candidates": [
        {
          "candidate_id": "cand_0498_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.58,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0498_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.645,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0498_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.63,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0498_02",
      "dpo_negative": "cand_0498_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  },
  {
    "record_id": "planner_0499",
    "schema_version": "v8.personalized_planner_interaction.v1",
    "user_id": "u_019",
    "chapter_id": "ch_02",
    "input_context": {
      "story_context": {
        "genre": "克苏鲁海边小镇",
        "arc": "雨后城墙的密信",
        "chapter_title": "第二章：旧水门下的灯",
        "chapter_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。",
        "paragraph_id": "ch_02_p10",
        "chapter_goal": "把用户反馈绑定到具体章节段落，下一章据此改变节奏、线索和声音。",
        "previous_generation_summary": "沈绾穿过旧水门，发现水下暗仓、盲女阿芜和父亲留下的第二枚钥齿。"
      },
      "audio_context": {
        "voice_style": "Serena 女声、克制但有画面感",
        "tts_backend": "Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice",
        "speaker": "Serena",
        "voice_profile": "Serena 女声 / warm, gentle young female voice",
        "sample_rate": 24000,
        "scene_images": 3,
        "player_mode": "NetEase Cloud Music style audiobook player"
      },
      "previous_interactions": [
        {
          "type": "comment",
          "text": "这段氛围很好，声音可以再压低一点。",
          "timestamp_sec": 17.68,
          "target": "audio_or_scene",
          "polarity": "positive"
        },
        {
          "type": "like",
          "value": true,
          "timestamp_sec": 58.35
        },
        {
          "type": "favorite",
          "value": true,
          "timestamp_sec": 36.01
        },
        {
          "type": "fast_forward",
          "value": false,
          "from_sec": 28.22,
          "to_sec": 49.25,
          "reason_hint": "none"
        }
      ],
      "hidden_state_available_only_for_training": false
    },
    "interaction_summary": {
      "comment": "女主可以更主动一点，不要只被剧情推着走。",
      "like": true,
      "favorite": true,
      "fast_forward": false,
      "dwell_time_sec": 17.68,
      "unified_policy": "all_user_interactions_are_explicit_events"
    },
    "adaptation_brief": {
      "intent_hypotheses": [
        {
          "intent": "用户希望更早得到剧情推进，但仍保留安静悬念",
          "confidence": 0.76,
          "scope": "next_1_to_2_chapters",
          "risk": "over-accelerating mood"
        }
      ],
      "story_directives": [
        "第一段明确雨声停在城墙外与铜钟轻震",
        "第二段让沈绾在第七块青砖下取出火漆密信",
        "第三段用银色鱼鳞、巡夜人灯火和第二声钟收束悬念"
      ],
      "audio_directives": [
        "Qwen3-TTS 中文旁白保持低声",
        "铜钟第二次响起前增加短停顿",
        "密信与鱼鳞出现时降低语速但不读出交互元信息"
      ],
      "image_directives": [
        "每章按内容顺序 3 张图",
        "不带文字",
        "雨后外城墙与铜钟 -> 青砖下火漆密信与银色鱼鳞 -> 雾中巡夜人灯火与第二声钟"
      ],
      "negative_constraints": [
        "不要把慢热悬念误改成全程追逐",
        "不要在图像里生成文字",
        "不要读出用户评论本身"
      ]
    },
    "candidate_budget": 2,
    "test_time_scaling_trace": {
      "strategy": "budgeted candidate expansion + Simulator/Judge scoring",
      "budgets": [
        1,
        2,
        4,
        8,
        16,
        32
      ],
      "selected_candidate": "cand_0499_02",
      "candidates": [
        {
          "candidate_id": "cand_0499_00",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.6,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0499_01",
          "change": "add voice pause and reduce exposition",
          "predicted_audio_engagement": 0.585,
          "risk": "medium"
        },
        {
          "candidate_id": "cand_0499_02",
          "change": "advance clue earlier",
          "predicted_audio_engagement": 0.65,
          "risk": "low"
        }
      ]
    },
    "training_target": {
      "sft_target": "adaptation_brief",
      "dpo_positive": "cand_0499_02",
      "dpo_negative": "cand_0499_00",
      "grpo_reward": "Audio Engagement Return + TTS-NCFU - overcommit - visual_text_penalty"
    },
    "eval_hooks": {
      "rubric_builder": "pre-output canonical rubric",
      "rubric_judge": "compare previous_generation and current_generation",
      "feedback_aggregator": "return structured reward to Planner"
    }
  }
]
