{
  "version": "screenplay_writing_strategy.v1",
  "generated_at": "2026-04-11T17:23:58.783311Z",
  "meta": {
    "candidate_run_dir": "/wwwb/aitools/writer/outputs/screenplay_smoke_20260328_v1",
    "screenplay_path": "/wwwb/aitools/writer/outputs/screenplay_smoke_20260328_v1/03d_screenplay.json",
    "consultant_path": "outputs/script_consultant/script_consultant_current.json",
    "screenplay_contract_version": ""
  },
  "strategy_contract": [
    {
      "rule_id": "retain_subject_anchor",
      "layer": "screenplay_text",
      "severity": "fail",
      "description": "当 block 已绑定角色时，正文应显式保留至少一个角色主体锚点，避免主体在前链即被抹平。"
    },
    {
      "rule_id": "retain_action_anchor",
      "layer": "screenplay_text",
      "severity": "warn",
      "description": "正文应包含可表演的动作锚点，而不是只有抽象结果或背景说明。"
    },
    {
      "rule_id": "retain_location_anchor",
      "layer": "screenplay_text_or_stage_direction",
      "severity": "warn",
      "description": "当 block 已绑定地点时，正文或短舞台提示应保留地点锚点，支撑下游空间理解。"
    },
    {
      "rule_id": "dialogue_attribution_ready",
      "layer": "screenplay_text",
      "severity": "fail",
      "description": "当正文写入直接引语时，必须保留可识别的说话人归属，避免对白内容可读但说话者不清。"
    },
    {
      "rule_id": "avoid_abstract_summary_prose",
      "layer": "precheck",
      "severity": "warn",
      "description": "避免把正文写成编年摘要、流程梗概、模板占位句或抽象压力标签，降低后续 prompt retention 修补压力。"
    }
  ],
  "consultant_focus": {
    "used": true,
    "source_path": "outputs/script_consultant/script_consultant_current.json",
    "confidence": "high",
    "writing_direction": [
      "基于已验证的高收益repair动作反向定义剧本写作前置规范，从源头减少后续repair成本",
      "推行Dramart结构化要求与Seedance 2.0镜头生成要求双对齐的写作标准",
      "优先落地可被prompt_guard自动校验的通用写作规则，支撑批量生产",
      "建立剧本片段与后续镜头生成参数的标准化映射规则，降低中间转换损耗"
    ],
    "writing_method": [
      "每个剧本段落前置标注标准化场景属性：时间、空间、氛围、核心角色站位",
      "动作描述采用「角色+具体动作+环境交互」三段式结构，无模糊指代",
      "对话内容单独标注说话人、标准化情绪标签、伴随动作三类辅助信息",
      "每个段落结尾标注可被机器识别的镜头类型标签（全景/中景/特写等）"
    ],
    "next_actions": [
      "基于现有高收益repair动作输出通用版剧本写作规范手册",
      "开发剧本写作前置自动校验工具，对接prompt_guard实现合规性预检查",
      "完成通用写作规范的小批量测试验证，统计repair率下降幅度",
      "将验证有效的写作规范回灌至前链剧本生成的prompt模板中"
    ]
  },
  "summary": {
    "status": "warn",
    "block_count": 5,
    "pass_block_count": 3,
    "warn_block_count": 2,
    "fail_block_count": 0,
    "pass_ratio": 0.6,
    "warn_ratio": 0.4,
    "fail_ratio": 0.0,
    "subject_anchor_gap_count": 0,
    "action_anchor_gap_count": 0,
    "location_anchor_gap_count": 0,
    "dialogue_attribution_gap_count": 0,
    "abstract_prose_risk_count": 2,
    "consultant_used": true,
    "consultant_confidence": "high",
    "next_fix_focus": [
      "avoid_abstract_summary_prose"
    ],
    "status_reason": "warn_blocks_exceed_threshold"
  },
  "checks": [
    {
      "episode_id": "EP0001",
      "block_id": "EP0001B001",
      "status": "warn",
      "source_scene_ids": [
        "S0002"
      ],
      "character_names": [
        "老道",
        "修士",
        "童子",
        "李凡"
      ],
      "location_names": [
        "墨竹山",
        "法坛",
        "深山老林"
      ],
      "subject_anchor_ok": true,
      "action_anchor_ok": true,
      "location_anchor_ok": true,
      "dialogue_expected": false,
      "dialogue_needs_attribution": false,
      "dialogue_attribution_ok": true,
      "abstract_risk_codes": [
        "system_broadcast_pseudodialogue"
      ],
      "fail_reasons": [],
      "warn_reasons": [
        "abstract:system_broadcast_pseudodialogue"
      ],
      "screenplay_preview": "（墨竹山，险恶之地，妖兽横行，毒瘴弥漫。一片人力开凿出的平地上，矗立着一尊诡异的八臂六首魔尊法相。法坛前，几名修士将几个童子带到一位老道面前。）\n修士：道长，这些是此次筛选出的童子，灵根、道心、魔胎皆已验过。\n老道：（面无表情，为每个童子用脚在地上画出一个圈）入夜后，不可踏出此圈。\n（童子们瑟缩着点头。李凡混在其中，他身穿粗布衣，眼神茫然又带着一丝现代人的不安。他偷偷尝试在心中召唤系统。）\n李凡：（内心）系统？金手指？老爷爷？快出来啊！"
    },
    {
      "episode_id": "EP0001",
      "block_id": "EP0001B002",
      "status": "pass",
      "source_scene_ids": [
        "S0005"
      ],
      "character_names": [
        "李凡",
        "老道"
      ],
      "location_names": [
        "深山老林"
      ],
      "subject_anchor_ok": true,
      "action_anchor_ok": true,
      "location_anchor_ok": true,
      "dialogue_expected": false,
      "dialogue_needs_attribution": false,
      "dialogue_attribution_ok": true,
      "abstract_risk_codes": [],
      "fail_reasons": [],
      "warn_reasons": [],
      "screenplay_preview": "（夜深，深山老林一片死寂。李凡盯着眼前只有“镇静一点”、“乐观一点”等选项的系统面板，终于忍不住了。）\n李凡：（低声咆哮）就这？就这？！我要的是功法！法宝！不是心灵鸡汤！\n（不远处的老道缓缓转过头，目光如电，落在李凡身上。他站起身，高大的身影在月光下投下压迫性的阴影，一步步走近。）\n（李凡吓得噤声。老道走到他面前，沉默地看了他片刻，然后伸手凭空一抓，一块热乎乎的芝麻饼出现在他手中，随手扔给李凡。）\n老道：（声音低沉）吃。\n（李凡愣愣地接"
    },
    {
      "episode_id": "EP0001",
      "block_id": "EP0001B003",
      "status": "warn",
      "source_scene_ids": [
        "S0006"
      ],
      "character_names": [
        "李凡",
        "老道"
      ],
      "location_names": [
        "深山老林"
      ],
      "subject_anchor_ok": true,
      "action_anchor_ok": true,
      "location_anchor_ok": true,
      "dialogue_expected": false,
      "dialogue_needs_attribution": false,
      "dialogue_attribution_ok": true,
      "abstract_risk_codes": [
        "system_broadcast_pseudodialogue"
      ],
      "fail_reasons": [],
      "warn_reasons": [
        "abstract:system_broadcast_pseudodialogue"
      ],
      "screenplay_preview": "（李凡拿着芝麻饼，有些发懵。这时，系统冰冷的提示音在他脑中响起。）\n系统：【先天气运‘镇静一点’已确认绑定。心情值-1。】\n李凡：（内心）哦迈噶德！选了还要扣心情？\n系统：【心情值-1。】\n系统：【心情值-1。】\n（连续的提示让李凡烦躁不已。他干脆往后一躺，盯着只有心情值显示的系统面板。）\n李凡：（抱怨）什么破系统，除了扣心情还会干嘛？\n（他拿起芝麻饼，咬了一口。香甜的味道在口中化开。）\n系统：【检测到愉悦刺激，心情值+1。】\n系统：【"
    },
    {
      "episode_id": "EP0001",
      "block_id": "EP0001B004",
      "status": "pass",
      "source_scene_ids": [
        "S0010"
      ],
      "character_names": [
        "李凡",
        "老道"
      ],
      "location_names": [
        "墨竹山"
      ],
      "subject_anchor_ok": true,
      "action_anchor_ok": true,
      "location_anchor_ok": true,
      "dialogue_expected": false,
      "dialogue_needs_attribution": false,
      "dialogue_attribution_ok": true,
      "abstract_risk_codes": [],
      "fail_reasons": [],
      "warn_reasons": [],
      "screenplay_preview": "（心情回升，系统面板上又出现新提示。）\n系统：【抽奖功能已解锁（充能中）。当前充能进度：8/100。】\n李凡：（眼睛一亮）抽奖？\n（但“暂不可用”几个字让他泄了气。）\n李凡：啧，真小气，连个开局十连都没有。\n系统：【检测到抱怨情绪，心情值-1。当前充能进度：9/100。】\n李凡：……\n（他正研究着充能机制，一旁闭目养神的老道忽然睁开眼，望向天空。）\n老道：（沉声）虚月当空，莫要抬头。\n（李凡下意识地仰头——夜空中，赫然悬挂着两轮月亮！一"
    },
    {
      "episode_id": "EP0001",
      "block_id": "EP0001B005",
      "status": "pass",
      "source_scene_ids": [
        "S0013",
        "S0014"
      ],
      "character_names": [
        "李凡",
        "老道",
        "童子"
      ],
      "location_names": [
        "墨竹山"
      ],
      "subject_anchor_ok": true,
      "action_anchor_ok": true,
      "location_anchor_ok": true,
      "dialogue_expected": false,
      "dialogue_needs_attribution": false,
      "dialogue_attribution_ok": true,
      "abstract_risk_codes": [],
      "fail_reasons": [],
      "warn_reasons": [],
      "screenplay_preview": "（双月同辉的异象下，墨竹山狂风骤起，毒瘴翻涌，形成骇人的龙卷！李凡被风暴卷起，天旋地转间，他看到一点寒芒破开风暴，直射而来！）\n（那寒芒是一枚小巧的星光之剑，瞬间钻入他的右手掌心！剧痛传来！）\n系统：【检测到未知能量灌注……抽奖完成。获得物品：？？？】\n（同时，刺耳的警报在李凡脑中炸响。）\n系统：【警告！心情值持续下降！-1！-1！-1！】\n（李凡摔回地面，惊恐地看着自己毫无异样的手掌，又感到心情值暴跌带来的窒息般的恐慌。他手忙脚乱地抓"
    }
  ]
}