Sfoglia il codice sorgente

扶正 v2 为正式版:index.html/frameworks/payloads 合并,删除 _v2 冗余

- web/index.html ← 决策落点版前端(输入列/选择线索/kind 徽章/取舍高亮/名词说明),数据路径改回 frameworks.json/payloads.json,去掉 v2 标记
- web/frameworks.json、payloads.json ← v2 全量数据(7 帖 19 颗;抖音/Voodoo 经语义闸排除)
- 删除 web/index_v2.html、frameworks_v2.json、payloads_v2.json
(云端同步覆盖 8123、删 _v2、停 8124,单一正式入口)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SamLee 4 settimane fa
parent
commit
d4f37d5946
6 ha cambiato i file con 700 aggiunte e 5643 eliminazioni
  1. 428 351
      web/frameworks.json
  2. 0 3420
      web/frameworks_v2.json
  3. 48 10
      web/index.html
  4. 0 436
      web/index_v2.html
  5. 224 360
      web/payloads.json
  6. 0 1066
      web/payloads_v2.json

File diff suppressed because it is too large
+ 428 - 351
web/frameworks.json


+ 0 - 3420
web/frameworks_v2.json

@@ -1,3420 +0,0 @@
-{
- "count": 7,
- "posts": [
-  {
-   "post_id": "699308fa0000000016009697",
-   "source_id": "xhs_699308fa0000000016009697",
-   "title": "真正能爆的选题,往往是你写完后感觉羞耻的",
-   "platform": "xiaohongshu",
-   "url": "https://www.xiaohongshu.com/explore/699308fa0000000016009697",
-   "media": {
-    "type": "image",
-    "video_url": null,
-    "images": [
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_1.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_2.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_3.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_4.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_5.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_6.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_7.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_8.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_9.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_10.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_11.webp",
-     "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_12.webp"
-    ]
-   },
-   "cards": [
-    {
-     "index": 1,
-     "content": "核心观点:真正能爆的选题,往往是你写完后感觉羞耻的。选题若太正确、太专业,爆的概率反而低。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_1.webp"
-    },
-    {
-     "index": 2,
-     "content": "案例对比:纯干货分享(如向管理方法论)往往数据平平。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_2.webp"
-    },
-    {
-     "index": 3,
-     "content": "原理:爆款选题需要经过“情绪审核”。差耻感是好选题的防伪标签。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_3.webp"
-    },
-    {
-     "index": 4,
-     "content": "选题自测:如果你发出前觉得挑不出毛病(正确但无感),则平平;如果你觉得“不好意思”或犹豫(怕别人觉得在装、怕太直白),则有爆发潜力。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_4.webp"
-    },
-    {
-     "index": 5,
-     "content": "羞耻感的本质:触碰到了真实但平时大家不敢说出口、被社交礼仪封存的公共痛点。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_5.webp"
-    },
-    {
-     "index": 6,
-     "content": "冒犯感的作用:爆款选题通常是对某种“正确共识”的冒犯,而非脏话式的冒犯。这种写作压力源于你踩到了大众的神经。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_6.webp"
-    },
-    {
-     "index": 7,
-     "content": "风险判定:创作者觉得“安全、没风险”的选题,观众看到通常也“没感觉”。没有情绪触发就没有转发,也就不可能爆。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_7.webp"
-    },
-    {
-     "index": 8,
-     "content": "爆款逻辑:普通的选题在加固一个信念,而爆款在撕裂一个信念(即圣经句),如撕裂“能力强的人一定会被看见”。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_8.webp"
-    },
-    {
-     "index": 9,
-     "content": "实操心法:选题不是灵感,是机制。找到“圣经句”,找到它崩塌的场景,把裂缝撕开。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_9.webp"
-    },
-    {
-     "index": 10,
-     "content": "实操第一招:寻找正确共识的失灵瞬间。列出赛道大号反复讲的共识,反问:“什么情况下,一个人严格按这句话做,反而越做越差?”(例:内容为王什么时候失灵)。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_10.webp"
-    },
-    {
-     "index": 11,
-     "content": "实操第二招:去评论区找“但是”。在竞品的爆款视频下,寻找那些“道理我都懂,但是……”的评论。这个“但是”就是现成的、经过市场验证的选题。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_11.webp"
-    },
-    {
-     "index": 12,
-     "content": "总结:观众缺的不是正确答案,而是有人帮他们说出:“这个正确答案,在你身上根本不好使”。",
-     "image_url": "/data/demo/xiaohongshu/xhs_699308fa0000000016009697/image_12.webp"
-    }
-   ],
-   "knowledges": [
-    {
-     "id": "k1",
-     "type": "how",
-     "role": "主",
-     "parent": null,
-     "title": "爆款选题的“撕裂共识”挖掘法",
-     "purpose": "通过撕裂大众共识产出一个具有爆发潜力的选题",
-     "业务阶段": [
-      "选题"
-     ],
-     "steps": [
-      {
-       "id": "s1",
-       "input": "赛道内的爆款内容或大号共识",
-       "directive": "列出赛道大号反复强调的“圣经句”(正确共识),并反问:什么情况下,一个人严格按这句话做,反而越做越差?寻找共识失灵的瞬间。",
-       "output": "← 圣经句的失灵场景",
-       "出处": [
-        "卡片10"
-       ],
-       "创作阶段": "定向",
-       "动作": "共识反向推导",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "共识失灵场景",
-         "candidate": "共识失灵场景",
-         "link": "新建",
-         "score": 0.5869,
-         "top": [
-          {
-           "name": "使用场景",
-           "score": 0.5869,
-           "path": "/理念/知识/商业/产品服务/使用场景"
-          },
-          {
-           "name": "通用共识符号",
-           "score": 0.5851,
-           "path": "/表象/视觉/符号/图案符号/标识图案/通用共识符号"
-          },
-          {
-           "name": "场景感悟",
-           "score": 0.5571,
-           "path": "/理念/观念/个人观念/人生感悟/观点表达/场景感悟"
-          }
-         ]
-        },
-        {
-         "scope_type": "form",
-         "value": "逆向提问",
-         "candidate": "逆向提问",
-         "link": "新建",
-         "score": 0.7006,
-         "top": [
-          {
-           "name": "反问式",
-           "score": 0.7006,
-           "path": "/架构/修辞/修辞意象/句式辞格/问答句式/反问式"
-          },
-          {
-           "name": "逻辑反转",
-           "score": 0.6357,
-           "path": "/架构/叙事/叙事技法/戏剧张力/反转/逻辑反转"
-          },
-          {
-           "name": "设问式",
-           "score": 0.6298,
-           "path": "/架构/修辞/修辞意象/句式辞格/问答句式/设问式"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "认知挑战",
-         "candidate": "认知挑战",
-         "link": "新建",
-         "score": 0.5244,
-         "top": [
-          {
-           "name": "趣味互动",
-           "score": 0.5244,
-           "path": "/表达/互动引导/吸引关注/趣味互动"
-          },
-          {
-           "name": "矛盾冲突",
-           "score": 0.5142,
-           "path": "/表达/论证说理/分析论证/对比反差/矛盾冲突"
-          },
-          {
-           "name": "论证强化",
-           "score": 0.512,
-           "path": "/表达/论证说理/分析论证/论证评判/肯定论证/论证强化"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s2",
-       "input": "← 圣经句的失灵场景",
-       "directive": "将裂缝撕开,把这个“正确答案不好使”的真实反馈转化为选题。确保选题通过“情绪审核”,即发出前你会感到犹豫或羞耻。",
-       "output": "具有冒犯感/羞耻感的爆款选题",
-       "出处": [
-        "卡片9",
-        "卡片12"
-       ],
-       "创作阶段": "构思",
-       "动作": "痛点挖掘",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "撕裂感选题",
-         "candidate": "撕裂感选题",
-         "link": "新建",
-         "score": 0.5309,
-         "top": [
-          {
-           "name": "人生议题",
-           "score": 0.5309,
-           "path": "/理念/观念/个人观念/人生感悟/人生议题"
-          },
-          {
-           "name": "标题",
-           "score": 0.5287,
-           "path": "/表象/视觉/符号/文字符号/标题"
-          },
-          {
-           "name": "痛点问题",
-           "score": 0.513,
-           "path": "/理念/知识/商业/产品服务/痛点问题"
-          }
-         ]
-        },
-        {
-         "scope_type": "feeling",
-         "value": "冒犯感",
-         "candidate": "冒犯感",
-         "link": "新建",
-         "score": 0.5938,
-         "top": [
-          {
-           "name": "厌恶反感",
-           "score": 0.5938,
-           "path": "/情感/共情/厌恶反感"
-          },
-          {
-           "name": "情感",
-           "score": 0.5689,
-           "path": "/情感"
-          },
-          {
-           "name": "共情",
-           "score": 0.562,
-           "path": "/情感/共情"
-          }
-         ]
-        },
-        {
-         "scope_type": "intent",
-         "value": "爆款",
-         "candidate": "爆款",
-         "link": "新建",
-         "score": 0.627,
-         "top": [
-          {
-           "name": "种草推荐",
-           "score": 0.627,
-           "path": "/行为引导/商业推广/种草推荐"
-          },
-          {
-           "name": "裂变",
-           "score": 0.5703,
-           "path": "/行为引导/裂变"
-          },
-          {
-           "name": "科普",
-           "score": 0.5371,
-           "path": "/信息传递/知识传递/科普"
-          }
-         ]
-        }
-       ]
-      }
-     ],
-     "dropped": []
-    },
-    {
-     "id": "k2",
-     "type": "how",
-     "role": "主",
-     "parent": null,
-     "title": "评论区“但是”选题法",
-     "purpose": "从用户真实反馈中直接获取经过验证的选题",
-     "业务阶段": [
-      "选题"
-     ],
-     "steps": [
-      {
-       "id": "s1",
-       "input": "竞品的爆款视频及其评论区",
-       "directive": "在竞品爆款视频评论区中寻找关键词“但是”。重点关注那些符合“道理我都懂,但是……”逻辑的评论。例:『内容为王我懂,但是我现在天天投流也没量。』",
-       "output": "用户内心真实的抵触点/痛点",
-       "出处": [
-        "卡片11"
-       ],
-       "创作阶段": "定向",
-       "动作": "评论区调研",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "用户抵触点",
-         "candidate": "用户抵触点",
-         "link": "新建",
-         "score": 0.4811,
-         "top": [
-          {
-           "name": "痛点问题",
-           "score": 0.4811,
-           "path": "/理念/知识/商业/产品服务/痛点问题"
-          },
-          {
-           "name": "消费体验",
-           "score": 0.4776,
-           "path": "/理念/观念/个人观念/人生感悟/内心感受/消费体验"
-          },
-          {
-           "name": "提示引导",
-           "score": 0.4635,
-           "path": "/表象/视觉/符号/文字符号/标注/提示引导"
-          }
-         ]
-        },
-        {
-         "scope_type": "form",
-         "value": "关键词",
-         "candidate": "关键词",
-         "link": "新建",
-         "score": 0.5666,
-         "top": [
-          {
-           "name": "图文关系",
-           "score": 0.5666,
-           "path": "/呈现/视觉/视觉制作/构图编排/版面设计/图文关系"
-          },
-          {
-           "name": "修辞",
-           "score": 0.5572,
-           "path": "/架构/修辞"
-          },
-          {
-           "name": "策略",
-           "score": 0.5516,
-           "path": "/架构/策略"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "痛点",
-         "candidate": "痛点",
-         "link": "新建",
-         "score": 0.5791,
-         "top": [
-          {
-           "name": "核心点明",
-           "score": 0.5791,
-           "path": "/表达/信息传达/传达手法/强调突出/核心点明"
-          },
-          {
-           "name": "解决方案",
-           "score": 0.5599,
-           "path": "/表达/论证说理/解决方案"
-          },
-          {
-           "name": "情感共鸣",
-           "score": 0.5542,
-           "path": "/表达/互动引导/情感连接/情感共鸣"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s2",
-       "input": "← 用户内心真实的抵触点/痛点",
-       "directive": "直接将这个“但是”后的内容转化为选题,帮观众说出他们想说但没人说的话。",
-       "output": "源于市场真实需求的选题",
-       "出处": [
-        "卡片11",
-        "卡片12"
-       ],
-       "创作阶段": "构思",
-       "动作": "需求转化",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "市场需求选题",
-         "candidate": "市场需求选题",
-         "link": "新建",
-         "score": 0.6062,
-         "top": [
-          {
-           "name": "市场品类",
-           "score": 0.6062,
-           "path": "/理念/知识/商业/产品服务/市场品类"
-          },
-          {
-           "name": "行业研究",
-           "score": 0.5857,
-           "path": "/理念/知识/商业/行业分析/行业研究"
-          },
-          {
-           "name": "行业分析",
-           "score": 0.5734,
-           "path": "/理念/知识/商业/行业分析"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "情感共鸣",
-         "candidate": "情感共鸣",
-         "link": "复用",
-         "score": 1.0,
-         "top": [
-          {
-           "name": "情感共鸣",
-           "score": 1.0,
-           "path": "/表达/互动引导/情感连接/情感共鸣"
-          },
-          {
-           "name": "情感连接",
-           "score": 0.7847,
-           "path": "/表达/互动引导/情感连接"
-          },
-          {
-           "name": "情感表达",
-           "score": 0.7648,
-           "path": "/表达/情感表达"
-          }
-         ]
-        },
-        {
-         "scope_type": "intent",
-         "value": "转发",
-         "candidate": "转发",
-         "link": "复用",
-         "score": 0.9995,
-         "top": [
-          {
-           "name": "转发",
-           "score": 0.9995,
-           "path": "/行为引导/传播/转发"
-          },
-          {
-           "name": "分享",
-           "score": 0.6473,
-           "path": "/信息传递/信息扩散/分享"
-          },
-          {
-           "name": "传播",
-           "score": 0.598,
-           "path": "/信息传递/信息扩散/传播"
-          }
-         ]
-        }
-       ]
-      }
-     ],
-     "dropped": []
-    },
-    {
-     "id": "k3",
-     "type": "what",
-     "role": "组件",
-     "parent": {
-      "how_id": "k1",
-      "step": 2
-     },
-     "title": "选题潜力潜力自测指标",
-     "业务阶段": [
-      "选题"
-     ],
-     "出处": [
-      "卡片4",
-      "卡片7"
-     ],
-     "界定": "通过创作者的情绪反馈来判断选题是否具备爆款潜力。",
-     "kind": "选项",
-     "主体": [
-      {
-       "小标题": "情绪自测对照",
-       "形式": "对照",
-       "条目": [
-        {
-         "词": "正确但无感",
-         "说明": "发出前觉得挑不出毛病,内心毫无波动。",
-         "选择线索": "对应“平平”的选题,极大概率不会点击和转发。"
-        },
-        {
-         "词": "羞耻与犹豫",
-         "说明": "怕别人觉得在装、怕太直白、怕冒犯。觉得“不好意思”。",
-         "选择线索": "对应“爆款”潜力,说明踩到了大众神经或社交礼仪封存的痛点。"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "指标自测",
-       "candidate": "指标自测",
-       "link": "新建",
-       "score": 0.5199,
-       "top": [
-        {
-         "name": "健康评估",
-         "score": 0.5199,
-         "path": "/理念/知识/身心科学/健康养生/身体健康/健康评估"
-        },
-        {
-         "name": "自我关怀",
-         "score": 0.5025,
-         "path": "/理念/观念/个人观念/人生感悟/人生态度/自我关怀"
-        },
-        {
-         "name": "健康科普",
-         "score": 0.4761,
-         "path": "/理念/知识/身心科学/健康养生/身体健康/健康科普"
-        }
-       ]
-      },
-      {
-       "scope_type": "feeling",
-       "value": "犹豫羞耻感",
-       "candidate": "犹豫羞耻感",
-       "link": "新建",
-       "score": 0.5353,
-       "top": [
-        {
-         "name": "厌恶反感",
-         "score": 0.5353,
-         "path": "/情感/共情/厌恶反感"
-        },
-        {
-         "name": "情感",
-         "score": 0.5067,
-         "path": "/情感"
-        },
-        {
-         "name": "美感",
-         "score": 0.4981,
-         "path": "/情感/美感"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "潜力评估",
-       "candidate": "潜力评估",
-       "link": "新建",
-       "score": 0.5617,
-       "top": [
-        {
-         "name": "动机激发",
-         "score": 0.5617,
-         "path": "/表达/信息传达/传达手法/强调突出/动机激发"
-        },
-        {
-         "name": "属性效能",
-         "score": 0.5398,
-         "path": "/表达/信息传达/传达手法/强调突出/属性效能"
-        },
-        {
-         "name": "引用评价",
-         "score": 0.5263,
-         "path": "/表达/论证说理/证据支撑/引用援引/引用评价"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k4",
-     "type": "why",
-     "role": "主",
-     "parent": null,
-     "title": "选题的“撕裂共识”原理",
-     "业务阶段": [
-      "灵感",
-      "选题"
-     ],
-     "出处": [
-      "卡片6",
-      "卡片8"
-     ],
-     "主张": "普通的选题在加固一个信念,而爆款在撕裂一个信念。",
-     "支撑": [
-      {
-       "小标题": "传播机制",
-       "形式": "机制",
-       "内容": "爆款通常是对某种“正确共识”的冒犯。没有情绪触发就没有转发,创作者感到安全没风险,观众通常就没感觉。"
-      },
-      {
-       "小标题": "对创作的取舍",
-       "形式": "取舍",
-       "内容": "应舍弃一味追求“政治正确”或“专业理性”的干货逻辑。这种逻辑只通过了“大脑审核”而忽略了“情绪审核”。创作时该侧重去刻画那些“真实但平时大家不敢说出口”的内容,主动寻找或制造与大众既定共识的对抗感。"
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "撕裂共识原理",
-       "candidate": "撕裂共识原理",
-       "link": "新建",
-       "score": 0.5642,
-       "top": [
-        {
-         "name": "科学原理",
-         "score": 0.5642,
-         "path": "/理念/知识/思想/逻辑原理/科学原理"
-        },
-        {
-         "name": "逻辑原理",
-         "score": 0.5636,
-         "path": "/理念/知识/思想/逻辑原理"
-        },
-        {
-         "name": "通用共识符号",
-         "score": 0.5447,
-         "path": "/表象/视觉/符号/图案符号/标识图案/通用共识符号"
-        }
-       ]
-      },
-      {
-       "scope_type": "feeling",
-       "value": "情绪触发",
-       "candidate": "情绪触发",
-       "link": "新建",
-       "score": 0.695,
-       "top": [
-        {
-         "name": "情绪处境共鸣",
-         "score": 0.695,
-         "path": "/情感/同感/情绪处境共鸣"
-        },
-        {
-         "name": "情感",
-         "score": 0.6833,
-         "path": "/情感"
-        },
-        {
-         "name": "共情",
-         "score": 0.612,
-         "path": "/情感/共情"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "传播机制",
-       "candidate": "传播机制",
-       "link": "新建",
-       "score": 0.7034,
-       "top": [
-        {
-         "name": "传播转化",
-         "score": 0.7034,
-         "path": "/结构/叙事推进/收束归纳/闭环收束/传播转化"
-        },
-        {
-         "name": "传播引导",
-         "score": 0.703,
-         "path": "/表达/互动引导/行动引导/传播引导"
-        },
-        {
-         "name": "信息传达",
-         "score": 0.585,
-         "path": "/表达/信息传达"
-        }
-       ]
-      },
-      {
-       "scope_type": "intent",
-       "value": "社交货币",
-       "candidate": "社交货币",
-       "link": "新建",
-       "score": 0.5602,
-       "top": [
-        {
-         "name": "商业推广",
-         "score": 0.5602,
-         "path": "/行为引导/商业推广"
-        },
-        {
-         "name": "裂变",
-         "score": 0.5591,
-         "path": "/行为引导/裂变"
-        },
-        {
-         "name": "信息扩散",
-         "score": 0.559,
-         "path": "/信息传递/信息扩散"
-        }
-       ]
-      }
-     ]
-    }
-   ]
-  },
-  {
-   "post_id": "698481e1000000000a02a7c1",
-   "source_id": "xhs_698481e1000000000a02a7c1",
-   "title": "7种编剧常用的叙事结构,写剧不用愁!",
-   "platform": "xiaohongshu",
-   "url": "https://www.xiaohongshu.com/explore/698481e1000000000a02a7c1",
-   "media": {
-    "type": "image",
-    "video_url": null,
-    "images": [
-     "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_1.webp",
-     "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_2.webp",
-     "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_3.webp",
-     "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_4.webp",
-     "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_5.webp",
-     "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_6.webp"
-    ]
-   },
-   "cards": [
-    {
-     "index": 1,
-     "content": "三幕式结构:最基础的线性叙事。第一幕(开端)交代背景、人设及冲突触发;第二幕(发展)是主体,核心冲突升级,经历人物成长与阻碍。",
-     "image_url": "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_1.webp"
-    },
-    {
-     "index": 2,
-     "content": "接三幕式第三幕(高潮与结局):矛盾爆发并最终解决。英雄之旅结构:核心是“平凡人到英雄的蜕变”,包含启程(离开舒适区)、考验(认知世界、对抗反派)、归来(战胜危机获得收获)三个阶段。",
-     "image_url": "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_2.webp"
-    },
-    {
-     "index": 3,
-     "content": "非线性结构:打破时间先后顺序,利用闪回、倒叙、多视角等方式,根据主题刻意调整时间线。环形结构:首尾呼应形成闭环,是非线性结构的一种特殊形式。",
-     "image_url": "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_3.webp"
-    },
-    {
-     "index": 4,
-     "content": "接环形结构:分为非循环类(场景台词呼应,产生宿命感)和带循环类(重复经历事件直到打破循环)。多线叙事结构:多条独立故事线并行推进,在某个节点交汇,适合群像戏。",
-     "image_url": "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_4.webp"
-    },
-    {
-     "index": 5,
-     "content": "嵌套式结构:故事里套故事(戏中戏、梦中梦),外层故事作为引子,内外层形成呼应或推动。反结构:打破固定框架,无明确核心冲突或主角成长,注重氛围、情绪和人性探讨。",
-     "image_url": "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_5.webp"
-    },
-    {
-     "index": 6,
-     "content": "接反结构:情节由碎片化片段拼接而成,可能没有完整结局,考验文字功底与情绪表达能力。",
-     "image_url": "/data/demo/xiaohongshu/xhs_698481e1000000000a02a7c1/image_6.webp"
-    }
-   ],
-   "knowledges": [
-    {
-     "id": "k1",
-     "type": "what",
-     "role": "主",
-     "parent": null,
-     "title": "7种编剧常用叙事结构清单",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "图1",
-      "卡片1",
-      "卡片2",
-      "卡片3",
-      "卡片4",
-      "卡片5",
-      "卡片6"
-     ],
-     "界定": "编剧创作中用于组织情节发展、安排时间线与视角的七种经典逻辑框架。",
-     "kind": "选项",
-     "主体": [
-      {
-       "小标题": "叙事结构选项",
-       "形式": "清单",
-       "条目": [
-        {
-         "词": "三幕式结构",
-         "说明": "最基础的线性叙事。分为:第一幕(开端)交代背景、人设及冲突触发;第二幕(发展)是主体,核心冲突升级,经历人物成长与阻碍;第三幕(高潮与结局)矛盾爆发并最终解决。",
-         "选择线索": "适合追求严谨线性逻辑、标准商业电影叙事的创作。"
-        },
-        {
-         "词": "英雄之旅",
-         "说明": "核心是“平凡人到英雄的蜕变”。包含:启程(离开舒适区)、考验(认知世界、对抗反派)、归来(战胜危机获得收获)三个阶段。",
-         "选择线索": "适合强调主角个人成长、动作冒险或励志类题材。"
-        },
-        {
-         "词": "非线性结构",
-         "说明": "打破时间先后顺序。利用闪回、倒叙、多视角等方式,根据主题刻意调整时间线,制造悬念。",
-         "选择线索": "适合需要通过时间线错位解构主题或增加悬疑感的创作。"
-        },
-        {
-         "词": "环形结构",
-         "说明": "首尾呼应形成闭环。分为非循环类(场景台词呼应,产生宿命感)和带循环类(重复经历事件直到打破循环)。",
-         "选择线索": "适合表达宿命论、轮回感或需要强调首尾逻辑闭合的故事。"
-        },
-        {
-         "词": "多线叙事",
-         "说明": "多条独立故事线并行推进,在某个节点交汇。",
-         "选择线索": "适合群像戏,用于丰富故事维度或展现宏大全局。"
-        },
-        {
-         "词": "嵌套式结构",
-         "说明": "故事里套故事(戏中戏、梦中梦)。外层故事作为引子,内外层形成呼应或推动关系。",
-         "选择线索": "用于拓展想象空间,探讨现实与虚构/梦境的界限。"
-        },
-        {
-         "词": "反结构",
-         "说明": "抛弃传统线性逻辑与核心冲突,情节由碎片化片段拼接而成。注重氛围、情绪和人性探讨,可能没有完整结局。",
-         "选择线索": "适合意识流、艺术片或强情绪表达、非传统冲突驱动的创作。"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "叙事结构",
-       "candidate": "叙事结构",
-       "link": "新建",
-       "score": 0.7536,
-       "top": [
-        {
-         "name": "历史叙事",
-         "score": 0.7536,
-         "path": "/理念/知识/历史/历史知识形态/历史叙事"
-        },
-        {
-         "name": "社会结构",
-         "score": 0.7226,
-         "path": "/理念/知识/社会知识/社会结构"
-        },
-        {
-         "name": "关系结构",
-         "score": 0.6959,
-         "path": "/理念/知识/思想/概念范畴/关系结构"
-        }
-       ]
-      },
-      {
-       "scope_type": "form",
-       "value": "分类清单",
-       "candidate": "分类清单",
-       "link": "新建",
-       "score": 0.6985,
-       "top": [
-        {
-         "name": "条目列举",
-         "score": 0.6985,
-         "path": "/架构/逻辑/信息编排逻辑/条目列举"
-        },
-        {
-         "name": "序号列举",
-         "score": 0.6418,
-         "path": "/架构/逻辑/信息编排逻辑/条目列举/逐条罗列/序号列举"
-        },
-        {
-         "name": "排名榜单",
-         "score": 0.6274,
-         "path": "/架构/逻辑/信息编排逻辑/条目列举/排名榜单"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "情节组织",
-       "candidate": "情节组织",
-       "link": "新建",
-       "score": 0.624,
-       "top": [
-        {
-         "name": "单元组织",
-         "score": 0.624,
-         "path": "/结构/结构模式/单元组织"
-        },
-        {
-         "name": "叙事闭合",
-         "score": 0.6207,
-         "path": "/结构/叙事推进/收束归纳/闭环收束/叙事闭合"
-        },
-        {
-         "name": "叙事推进",
-         "score": 0.6198,
-         "path": "/结构/叙事推进"
-        }
-       ]
-      },
-      {
-       "scope_type": "intent",
-       "value": "创作框架",
-       "candidate": "创作框架",
-       "link": "新建",
-       "score": 0.5202,
-       "top": [
-        {
-         "name": "事实呈现",
-         "score": 0.5202,
-         "path": "/信息传递/事实呈现"
-        },
-        {
-         "name": "解读",
-         "score": 0.4985,
-         "path": "/信息传递/知识传递/解读"
-        },
-        {
-         "name": "裂变",
-         "score": 0.4893,
-         "path": "/行为引导/裂变"
-        }
-       ]
-      }
-     ]
-    }
-   ]
-  },
-  {
-   "post_id": "67e2e39b0000000003028ff0",
-   "source_id": "xhs_67e2e39b0000000003028ff0",
-   "title": "剧本创作:理解前提、人物、冲突",
-   "platform": "xiaohongshu",
-   "url": "https://www.xiaohongshu.com/explore/67e2e39b0000000003028ff0",
-   "media": {
-    "type": "image",
-    "video_url": null,
-    "images": [
-     "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_1.webp",
-     "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_2.webp",
-     "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_3.webp",
-     "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_4.webp",
-     "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_5.webp",
-     "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_6.webp"
-    ]
-   },
-   "cards": [
-    {
-     "index": 1,
-     "content": "1. 前提:指称主题、基本思想、驱动力等,是剧本的目标。2. 前提的内容构成公式:作者立场+人物+冲突+结论。3. 人物结构:生理、心理、社会三个维度融合,排序为生理、社会、心理。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_1.webp"
-    },
-    {
-     "index": 2,
-     "content": "1. 三维度拆解:生理维度(性别、年龄、体貌、遗传等)、社会维度(阶层、职业、教育、家庭等)、心理维度(道德标准、志向、挫折、性格、态度等)。2. 环境与人物:人物是其生理特征与环境在特定时刻影响的总和。3. 人物的发展:人物通过面临冲突的反应实现发展,发展的推力来自于对前提的证明。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_2.webp"
-    },
-    {
-     "index": 3,
-     "content": "1. 人物的意志力:人物必须有足够的意志力将奋斗进行到底。2. 三个创作思考问题:我应该做什么?别人会做什么?什么应该被完成?3. 主使人物(主角):指居于主导地位、创造冲突的人。4. 对立人物:阻止主使人物,两者必须实力相当、意志平衡。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_3.webp"
-    },
-    {
-     "index": 4,
-     "content": "1. 冲突的本质:由意志与阻碍力的碰撞产生。2. 冲突的四种类型:静态(无可见发展)、跳跃(强迫人物做出不相符的行动)、缓慢升级(逻辑清晰地递增紧张感)、预示(张力与坚定的对手不妥协)。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_4.webp"
-    },
-    {
-     "index": 5,
-     "content": "1. 发现冲突的方法:从周遭人物的性格特质(如关怀、自负、阴险、好奇等)及对立事物相遇中构思。2. 攻击—反击:冲突从简单的基础开始,通过势均力敌的持续升级导向高潮。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_5.webp"
-    },
-    {
-     "index": 6,
-     "content": "1. 过渡:小的冲突叫过渡,使人物改变精神状态直至做出决定。2. 切入点:必须是决定点或准备做出决定的点,能引发连串事件。3. 危机与高潮:危机是转折点,即即将到来的决定性改变;重大决定构成人生转折。4. 结构:每个场景本身应包含前提呈现、人物、冲突、过渡、危机、高潮和结局。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e2e39b0000000003028ff0/image_6.webp"
-    }
-   ],
-   "knowledges": [
-    {
-     "id": "k1",
-     "type": "how",
-     "role": "主",
-     "parent": null,
-     "title": "剧本故事构建工序",
-     "purpose": "将灵感转化为包含前提、人物与冲突的剧本结构",
-     "业务阶段": [
-      "脚本"
-     ],
-     "steps": [
-      {
-       "id": "s1",
-       "input": "创作灵感",
-       "directive": "明确前提(即剧本目标),公式为:作者立场+人物+冲突+结论。例:『节俭导致浪费』,其中节俭是立场,浪费是结论。",
-       "output": "故事前提",
-       "出处": [
-        "卡片1"
-       ],
-       "创作阶段": "定向",
-       "动作": "确立前提",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "剧本前提",
-         "candidate": "剧本前提",
-         "link": "新建",
-         "score": 0.5589,
-         "top": [
-          {
-           "name": "概念构想",
-           "score": 0.5589,
-           "path": "/理念/知识/思想/概念范畴/认知思辨/概念构想"
-          },
-          {
-           "name": "标题",
-           "score": 0.5479,
-           "path": "/表象/视觉/符号/文字符号/标题"
-          },
-          {
-           "name": "场景感悟",
-           "score": 0.5431,
-           "path": "/理念/观念/个人观念/人生感悟/观点表达/场景感悟"
-          }
-         ]
-        },
-        {
-         "scope_type": "form",
-         "value": "命题公式",
-         "candidate": "命题公式",
-         "link": "新建",
-         "score": 0.6246,
-         "top": [
-          {
-           "name": "假设逻辑",
-           "score": 0.6246,
-           "path": "/架构/逻辑/叙事逻辑/假设逻辑"
-          },
-          {
-           "name": "逻辑推论",
-           "score": 0.5938,
-           "path": "/架构/逻辑/信息编排逻辑/归纳论证/逻辑推论"
-          },
-          {
-           "name": "归纳论证",
-           "score": 0.5867,
-           "path": "/架构/逻辑/信息编排逻辑/归纳论证"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "创作导向",
-         "candidate": "创作导向",
-         "link": "新建",
-         "score": 0.5662,
-         "top": [
-          {
-           "name": "行动引导",
-           "score": 0.5662,
-           "path": "/表达/互动引导/行动引导"
-          },
-          {
-           "name": "传播引导",
-           "score": 0.5561,
-           "path": "/表达/互动引导/行动引导/传播引导"
-          },
-          {
-           "name": "转化引导",
-           "score": 0.5551,
-           "path": "/表达/互动引导/行动引导/转化引导"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s2",
-       "input": "← s1产出",
-       "directive": "依据前提构建人物。从生理(性别/年龄/体貌等)、社会(阶层/职业等)、心理(道德/志向等)三维度融合,并确保人物具备将奋斗进行到底的意志力。",
-       "output": "三维度人物设定",
-       "出处": [
-        "卡片1",
-        "卡片2",
-        "卡片3"
-       ],
-       "创作阶段": "构思",
-       "动作": "人物建模",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "人物塑造",
-         "candidate": "人物塑造",
-         "link": "新建",
-         "score": 0.8113,
-         "top": [
-          {
-           "name": "人物形象",
-           "score": 0.8113,
-           "path": "/表象/视觉/符号/图案符号/形象图案/人物形象"
-          },
-          {
-           "name": "人物",
-           "score": 0.7502,
-           "path": "/表象/视觉/实体/人物"
-          },
-          {
-           "name": "人物特征",
-           "score": 0.7463,
-           "path": "/表象/视觉/实体/人物/人物特征"
-          }
-         ]
-        },
-        {
-         "scope_type": "form",
-         "value": "三维建模",
-         "candidate": "三维建模",
-         "link": "新建",
-         "score": 0.8475,
-         "top": [
-          {
-           "name": "三维建模合成",
-           "score": 0.8475,
-           "path": "/呈现/视觉/视觉制作/后期处理/图像合成处理/三维建模合成"
-          },
-          {
-           "name": "材质纹理融合",
-           "score": 0.5818,
-           "path": "/架构/创意/元素嫁接/材质纹理融合"
-          },
-          {
-           "name": "角色塑造",
-           "score": 0.5634,
-           "path": "/架构/叙事/叙事组织/角色书写/角色塑造"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "叙事驱动力",
-         "candidate": "叙事驱动力",
-         "link": "新建",
-         "score": 0.7514,
-         "top": [
-          {
-           "name": "叙事推进",
-           "score": 0.7514,
-           "path": "/结构/叙事推进"
-          },
-          {
-           "name": "叙事闭合",
-           "score": 0.7056,
-           "path": "/结构/叙事推进/收束归纳/闭环收束/叙事闭合"
-          },
-          {
-           "name": "叙事推进节点",
-           "score": 0.6846,
-           "path": "/结构/叙事推进/叙事推进节点"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s3",
-       "input": "← s2产出",
-       "directive": "通过主使人物与对立人物的意志碰撞发现冲突。确保冲突从简单起步,通过攻击—反击实现缓慢升级。",
-       "output": "升级的冲突路径",
-       "出处": [
-        "卡片4",
-        "卡片5"
-       ],
-       "创作阶段": "结构",
-       "动作": "设计冲突",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "戏剧冲突",
-         "candidate": "戏剧冲突",
-         "link": "新建",
-         "score": 0.7608,
-         "top": [
-          {
-           "name": "戏剧演出",
-           "score": 0.7608,
-           "path": "/表象/视觉/行为/表演行为/综艺表演/戏剧演出"
-          },
-          {
-           "name": "冲突对抗",
-           "score": 0.7191,
-           "path": "/表象/视觉/行为/人际互动/关系行为/冲突对抗"
-          },
-          {
-           "name": "战争冲突",
-           "score": 0.6758,
-           "path": "/理念/事件/政治事件/战争冲突"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "节奏升级",
-         "candidate": "节奏升级",
-         "link": "新建",
-         "score": 0.6796,
-         "top": [
-          {
-           "name": "推进节奏",
-           "score": 0.6796,
-           "path": "/结构/叙事推进/推进节奏"
-          },
-          {
-           "name": "层次跃升",
-           "score": 0.5951,
-           "path": "/表达/论证说理/提炼升华/升华深化/层次跃升"
-          },
-          {
-           "name": "叙事推进",
-           "score": 0.5286,
-           "path": "/结构/叙事推进"
-          }
-         ]
-        },
-        {
-         "scope_type": "feeling",
-         "value": "紧张感",
-         "candidate": "紧张感",
-         "link": "新建",
-         "score": 0.5968,
-         "top": [
-          {
-           "name": "悬念期待",
-           "score": 0.5968,
-           "path": "/认知/好奇/悬念期待"
-          },
-          {
-           "name": "焦虑恐惧",
-           "score": 0.5816,
-           "path": "/情感/共情/焦虑恐惧"
-          },
-          {
-           "name": "美感",
-           "score": 0.5779,
-           "path": "/情感/美感"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s4",
-       "input": "← s3产出",
-       "directive": "选择包含决定点的切入点进入故事。通过小的冲突(过渡)改变人物状态,直至危机(转折点)爆发产生高潮与结局。",
-       "output": "完整的剧本结构设计",
-       "出处": [
-        "卡片6"
-       ],
-       "创作阶段": null,
-       "动作": "布局场景结构",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "情节结构",
-         "candidate": "情节结构",
-         "link": "新建",
-         "score": 0.6846,
-         "top": [
-          {
-           "name": "关系结构",
-           "score": 0.6846,
-           "path": "/理念/知识/思想/概念范畴/关系结构"
-          },
-          {
-           "name": "社会结构",
-           "score": 0.6837,
-           "path": "/理念/知识/社会知识/社会结构"
-          },
-          {
-           "name": "历史叙事",
-           "score": 0.619,
-           "path": "/理念/知识/历史/历史知识形态/历史叙事"
-          }
-         ]
-        },
-        {
-         "scope_type": "form",
-         "value": "起承转合",
-         "candidate": "起承转合",
-         "link": "新建",
-         "score": 0.5796,
-         "top": [
-          {
-           "name": "对仗句式",
-           "score": 0.5796,
-           "path": "/架构/修辞/修辞意象/句式辞格/对仗句式"
-          },
-          {
-           "name": "叙事逻辑",
-           "score": 0.5759,
-           "path": "/架构/逻辑/叙事逻辑"
-          },
-          {
-           "name": "叙事技法",
-           "score": 0.5752,
-           "path": "/架构/叙事/叙事技法"
-          }
-         ]
-        },
-        {
-         "scope_type": "intent",
-         "value": "逻辑自洽",
-         "candidate": "逻辑自洽",
-         "link": "新建",
-         "score": 0.5349,
-         "top": [
-          {
-           "name": "科普",
-           "score": 0.5349,
-           "path": "/信息传递/知识传递/科普"
-          },
-          {
-           "name": "事实呈现",
-           "score": 0.5254,
-           "path": "/信息传递/事实呈现"
-          },
-          {
-           "name": "批判",
-           "score": 0.4702,
-           "path": "/情感联结/情感抒发/批判"
-          }
-         ]
-        }
-       ]
-      }
-     ],
-     "dropped": []
-    },
-    {
-     "id": "k2",
-     "type": "what",
-     "role": "组件",
-     "parent": {
-      "how_id": "k1",
-      "step": 2
-     },
-     "title": "人物构建的三维度模型",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片2"
-     ],
-     "界定": "人物是其生理特征与环境在特定时刻影响的总和,需从内到外完整拆解。",
-     "kind": "构成",
-     "主体": [
-      {
-       "小标题": "生理维度",
-       "条目": [
-        {
-         "词": "生理因素",
-         "说明": "包含性别、年龄、体貌、遗传等特征。"
-        }
-       ]
-      },
-      {
-       "小标题": "社会维度",
-       "条目": [
-        {
-         "词": "社会环境",
-         "说明": "包含阶层、职业、教育、家庭等背景。"
-        }
-       ]
-      },
-      {
-       "小标题": "心理维度",
-       "条目": [
-        {
-         "词": "心理特质",
-         "说明": "包含道德标准、志向、挫折、性格、态度等。"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "人物特质",
-       "candidate": "人物特质",
-       "link": "新建",
-       "score": 0.8235,
-       "top": [
-        {
-         "name": "人物特征",
-         "score": 0.8235,
-         "path": "/表象/视觉/实体/人物/人物特征"
-        },
-        {
-         "name": "人物形象",
-         "score": 0.7516,
-         "path": "/表象/视觉/符号/图案符号/形象图案/人物形象"
-        },
-        {
-         "name": "人物",
-         "score": 0.7425,
-         "path": "/表象/视觉/实体/人物"
-        }
-       ]
-      },
-      {
-       "scope_type": "form",
-       "value": "三维度模型",
-       "candidate": "三维度模型",
-       "link": "新建",
-       "score": 0.681,
-       "top": [
-        {
-         "name": "三维建模合成",
-         "score": 0.681,
-         "path": "/呈现/视觉/视觉制作/后期处理/图像合成处理/三维建模合成"
-        },
-        {
-         "name": "价值塑造",
-         "score": 0.5219,
-         "path": "/架构/策略/认知引导/话语影响/立场引导/价值塑造"
-        },
-        {
-         "name": "第三人称",
-         "score": 0.5166,
-         "path": "/架构/叙事/叙事视角/人称结构/第三人称"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "真实感",
-       "candidate": "真实感",
-       "link": "新建",
-       "score": 0.5666,
-       "top": [
-        {
-         "name": "细节具象",
-         "score": 0.5666,
-         "path": "/表达/信息传达/传达深度/补充细化/细节具象"
-        },
-        {
-         "name": "情感共鸣",
-         "score": 0.5608,
-         "path": "/表达/互动引导/情感连接/情感共鸣"
-        },
-        {
-         "name": "细节呈现",
-         "score": 0.5483,
-         "path": "/表达/信息传达/传达深度/详细说明/展示呈现/细节呈现"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k3",
-     "type": "what",
-     "role": "组件",
-     "parent": {
-      "how_id": "k1",
-      "step": 3
-     },
-     "title": "戏剧冲突的四种类型",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片4"
-     ],
-     "界定": "根据意志与阻碍力碰撞的呈现状态对冲突进行分类。",
-     "kind": "选项",
-     "主体": [
-      {
-       "小标题": "冲突形态分类",
-       "条目": [
-        {
-         "词": "静态冲突",
-         "说明": "内部无可见的发展进度。",
-         "选择线索": "常表现为僵局或停顿状态。"
-        },
-        {
-         "词": "跳跃冲突",
-         "说明": "强迫人物做出与其性格不相符的突发行动。",
-         "选择线索": "需要剧烈的情节转折时使用。"
-        },
-        {
-         "词": "缓慢升级冲突",
-         "说明": "逻辑清晰地递增紧张感。",
-         "选择线索": "追求剧本扎实逻辑和真实情感共鸣时作为首选。"
-        },
-        {
-         "词": "预示冲突",
-         "说明": "通过坚定的对手与不妥协的张力表现。",
-         "选择线索": "用于建立长期威胁或势均力敌的对峙感。"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "冲突形态",
-       "candidate": "冲突形态",
-       "link": "新建",
-       "score": 0.7735,
-       "top": [
-        {
-         "name": "冲突对抗",
-         "score": 0.7735,
-         "path": "/表象/视觉/行为/人际互动/关系行为/冲突对抗"
-        },
-        {
-         "name": "战争冲突",
-         "score": 0.7121,
-         "path": "/理念/事件/政治事件/战争冲突"
-        },
-        {
-         "name": "表演形态",
-         "score": 0.6944,
-         "path": "/表象/视觉/行为/表演行为/杂技/表演形态"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "叙理逻辑",
-       "candidate": "叙理逻辑",
-       "link": "新建",
-       "score": 0.7114,
-       "top": [
-        {
-         "name": "逻辑顺接",
-         "score": 0.7114,
-         "path": "/结构/叙事推进/承接转换/逻辑顺接"
-        },
-        {
-         "name": "逻辑推演",
-         "score": 0.6933,
-         "path": "/表达/论证说理/证据支撑/逻辑推演"
-        },
-        {
-         "name": "逻辑铺垫",
-         "score": 0.6651,
-         "path": "/结构/叙事推进/铺垫准备/逻辑铺垫"
-        }
-       ]
-      },
-      {
-       "scope_type": "feeling",
-       "value": "情感共鸣",
-       "candidate": "情感共鸣",
-       "link": "新建",
-       "score": 0.7989,
-       "top": [
-        {
-         "name": "情感",
-         "score": 0.7989,
-         "path": "/情感"
-        },
-        {
-         "name": "情绪处境共鸣",
-         "score": 0.7864,
-         "path": "/情感/同感/情绪处境共鸣"
-        },
-        {
-         "name": "共情",
-         "score": 0.7817,
-         "path": "/情感/共情"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k4",
-     "type": "why",
-     "role": "主",
-     "parent": null,
-     "title": "意志力与冲突平衡原理",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片3"
-     ],
-     "主张": "冲突的质量取决于对抗双方意志的平衡与强韧度。",
-     "支撑": [
-      {
-       "小标题": "对抗机制",
-       "形式": "机制",
-       "内容": "主使人物(主角)与对立人物必须实力相当、意志平衡。人物必须有足够的意志力将奋斗进行到底,否则冲突将提前瓦解。"
-      },
-      {
-       "小标题": "创作取舍",
-       "形式": "取舍",
-       "内容": "在设定人物时,应当侧重赋予其明确的驱动力和对抗强度,避免因一方过于软弱而导致故事动力过早消失。"
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "人物意志力",
-       "candidate": "人物意志力",
-       "link": "新建",
-       "score": 0.704,
-       "top": [
-        {
-         "name": "人物",
-         "score": 0.704,
-         "path": "/表象/视觉/实体/人物"
-        },
-        {
-         "name": "人物形象",
-         "score": 0.6881,
-         "path": "/表象/视觉/符号/图案符号/形象图案/人物形象"
-        },
-        {
-         "name": "人物特征",
-         "score": 0.6691,
-         "path": "/表象/视觉/实体/人物/人物特征"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "对抗机制",
-       "candidate": "对抗机制",
-       "link": "新建",
-       "score": 0.5448,
-       "top": [
-        {
-         "name": "矛盾冲突",
-         "score": 0.5448,
-         "path": "/表达/论证说理/分析论证/对比反差/矛盾冲突"
-        },
-        {
-         "name": "维度对比",
-         "score": 0.527,
-         "path": "/表达/论证说理/分析论证/对比反差/维度对比"
-        },
-        {
-         "name": "对比引入",
-         "score": 0.5105,
-         "path": "/结构/叙事推进/开篇引入/策略引入/对比引入"
-        }
-       ]
-      },
-      {
-       "scope_type": "intent",
-       "value": "故事动力",
-       "candidate": "故事动力",
-       "link": "新建",
-       "score": 0.5182,
-       "top": [
-        {
-         "name": "科普",
-         "score": 0.5182,
-         "path": "/信息传递/知识传递/科普"
-        },
-        {
-         "name": "事实呈现",
-         "score": 0.4971,
-         "path": "/信息传递/事实呈现"
-        },
-        {
-         "name": "裂变",
-         "score": 0.4969,
-         "path": "/行为引导/裂变"
-        }
-       ]
-      }
-     ]
-    }
-   ]
-  },
-  {
-   "post_id": "680659e8000000001a007a11",
-   "source_id": "xhs_680659e8000000001a007a11",
-   "title": "故事设计原理拆解学习",
-   "platform": "xiaohongshu",
-   "url": "https://www.xiaohongshu.com/explore/680659e8000000001a007a11",
-   "media": {
-    "type": "image",
-    "video_url": null,
-    "images": [
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_1.webp",
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_2.webp",
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_3.webp",
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_4.webp",
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_5.webp",
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_6.webp",
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_7.webp",
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_8.webp",
-     "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_9.webp"
-    ]
-   },
-   "cards": [
-    {
-     "index": 1,
-     "content": "故事五部分构成叙事弧线:阐述(交代背景人设)、激励事件(诱发事件)、进展纠葛(上升动作)、危机(情节突转)、高潮(问题解决)、结局(下降动作)。激励事件分为随机型和有因型(主角抉择)。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_1.webp"
-    },
-    {
-     "index": 2,
-     "content": "激励事件的功能:打破平衡、激发欲望、将主角送上求索之路。构思模式:发生在主角身上最坏/最好的事情如何逆转。纠葛分为单一层面的冲突和复杂型(所有三个层面)的冲突。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_2.webp"
-    },
-    {
-     "index": 3,
-     "content": "故事宏观结构:节拍构成场景,场景构成序列,序列构成幕。标准三幕故事要求四个重大场景:开篇激励事件、第一幕高潮、第二幕高潮、第三幕高潮。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_3.webp"
-    },
-    {
-     "index": 4,
-     "content": "场景设计要素:1. 转折点(产生惊奇、增强好奇心、见识新方向);2. 伏笔/分晓(知识的层层铺垫与传达)。故事脊椎是贯穿始终的求索之路。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_4.webp"
-    },
-    {
-     "index": 5,
-     "content": "情感转变:通过核心情感(快感、痛感)的动态交替打破‘回报递减定理’。情感触发三前提:移情于人物、知道人物想要什么、明白利害攸关的价值。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_5.webp"
-    },
-    {
-     "index": 6,
-     "content": "选择的性质:真正的选择是‘两难之择’(不可调和的两善取其一,或两恶取其轻)。通过人物A、B、C的三角关系构建复合连锁的选择冲突。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_6.webp"
-    },
-    {
-     "index": 7,
-     "content": "场景分析五步程序:1. 确定冲突(明确场景目标与对抗力量);2. 标注开篇价值(正/负面);3. 分解为节拍(动作/反应交流);4. 标注结尾价值并比较;5. 概述节拍并标注转折点位置。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_7.webp"
-    },
-    {
-     "index": 8,
-     "content": "危机设计:危机是一个‘危险机会’的时刻,是主角在生活压力下必须作出的终极决定,揭示人物深层性格和核心价值。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_8.webp"
-    },
-    {
-     "index": 9,
-     "content": "高潮与结局:高潮必须充满意义(价值剧变),通过情感满足观众预期。结局用途包括:为次情节提供高潮场景、展示高潮影响、体现对观众的尊重。",
-     "image_url": "/data/demo/xiaohongshu/xhs_680659e8000000001a007a11/image_9.webp"
-    }
-   ],
-   "knowledges": [
-    {
-     "id": "k1",
-     "type": "how",
-     "role": "主",
-     "parent": null,
-     "title": "场景分析五步程序",
-     "purpose": "通过系统分析确定场景的冲突、动作与转折效果",
-     "业务阶段": [
-      "脚本"
-     ],
-     "steps": [
-      {
-       "id": "s1",
-       "input": "原始剧本/剧集场景",
-       "directive": "确定冲突,明确场景目标与对抗力量",
-       "output": "场景核心冲突点",
-       "出处": [
-        "卡片7"
-       ],
-       "创作阶段": "打磨",
-       "动作": "冲突拆解",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "剧本冲突",
-         "candidate": "剧本冲突",
-         "link": "新建",
-         "score": 0.7396,
-         "top": [
-          {
-           "name": "冲突对抗",
-           "score": 0.7396,
-           "path": "/表象/视觉/行为/人际互动/关系行为/冲突对抗"
-          },
-          {
-           "name": "战争冲突",
-           "score": 0.6629,
-           "path": "/理念/事件/政治事件/战争冲突"
-          },
-          {
-           "name": "地缘冲突",
-           "score": 0.6193,
-           "path": "/理念/知识/政治/国际政治/地缘政治/地缘冲突"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "场景目标设定",
-         "candidate": "场景目标设定",
-         "link": "新建",
-         "score": 0.7238,
-         "top": [
-          {
-           "name": "场景描绘",
-           "score": 0.7238,
-           "path": "/表达/信息传达/传达深度/详细说明/展示呈现/场景描绘"
-          },
-          {
-           "name": "场景引入",
-           "score": 0.6876,
-           "path": "/结构/叙事推进/开篇引入/策略引入/场景引入"
-          },
-          {
-           "name": "基调设定",
-           "score": 0.6429,
-           "path": "/结构/叙事推进/开篇引入/直述开篇/基调设定"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s2",
-       "input": "← s1产出",
-       "directive": "标注开篇价值,判断是正向还是负向状态",
-       "output": "场景起始价值状态",
-       "出处": [
-        "卡片7"
-       ],
-       "创作阶段": "打磨",
-       "动作": "状态标注",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "价值状态",
-         "candidate": "价值状态",
-         "link": "新建",
-         "score": 0.7285,
-         "top": [
-          {
-           "name": "价值导向",
-           "score": 0.7285,
-           "path": "/理念/观念/个人观念/处世智慧/品格修养/价值导向"
-          },
-          {
-           "name": "价值观念",
-           "score": 0.7272,
-           "path": "/理念/观念/个人观念/处世智慧/价值取向/价值观念"
-          },
-          {
-           "name": "价值象征",
-           "score": 0.7102,
-           "path": "/理念/知识/思想/概念范畴/价值象征"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "起始点标注",
-         "candidate": "起始点标注",
-         "link": "新建",
-         "score": 0.5335,
-         "top": [
-          {
-           "name": "路径方法",
-           "score": 0.5335,
-           "path": "/表达/互动引导/行动引导/路径方法"
-          },
-          {
-           "name": "确立基点",
-           "score": 0.5323,
-           "path": "/结构/叙事推进/开篇引入/直述开篇/确立基点"
-          },
-          {
-           "name": "强调突出",
-           "score": 0.5264,
-           "path": "/表达/信息传达/传达手法/强调突出"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s3",
-       "input": "← s2产出",
-       "directive": "将场景分解为节拍,观察角色间的动作/反应交流",
-       "output": "节拍序列",
-       "出处": [
-        "卡片7"
-       ],
-       "创作阶段": "打磨",
-       "动作": "结构拆解",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "叙事节拍",
-         "candidate": "叙事节拍",
-         "link": "新建",
-         "score": 0.687,
-         "top": [
-          {
-           "name": "历史叙事",
-           "score": 0.687,
-           "path": "/理念/知识/历史/历史知识形态/历史叙事"
-          },
-          {
-           "name": "配乐",
-           "score": 0.5611,
-           "path": "/表象/声音/音乐/配乐"
-          },
-          {
-           "name": "标题",
-           "score": 0.5498,
-           "path": "/表象/视觉/符号/文字符号/标题"
-          }
-         ]
-        },
-        {
-         "scope_type": "form",
-         "value": "动作反应序列",
-         "candidate": "动作反应序列",
-         "link": "新建",
-         "score": 0.6479,
-         "top": [
-          {
-           "name": "动作姿态",
-           "score": 0.6479,
-           "path": "/呈现/视觉/视觉画面/形象塑造/人物表现/动作姿态"
-          },
-          {
-           "name": "行为对抗",
-           "score": 0.5821,
-           "path": "/架构/叙事/叙事技法/戏剧张力/冲突/行为对抗"
-          },
-          {
-           "name": "情绪强化",
-           "score": 0.558,
-           "path": "/架构/策略/情感调动/情感激发/情绪基调/情绪强化"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s4",
-       "input": "← s3产出",
-       "directive": "标注结尾价值并与开篇价值进行比较,看是否有变化",
-       "output": "价值转变结果",
-       "出处": [
-        "卡片7"
-       ],
-       "创作阶段": "打磨",
-       "动作": "效果复核",
-       "作用域": [
-        {
-         "scope_type": "effect",
-         "value": "价值转变",
-         "candidate": "价值转变",
-         "link": "新建",
-         "score": 0.7352,
-         "top": [
-          {
-           "name": "价值升华",
-           "score": 0.7352,
-           "path": "/结构/叙事推进/收束归纳/闭环收束/价值升华"
-          },
-          {
-           "name": "价值建构",
-           "score": 0.7031,
-           "path": "/表达/论证说理/提炼升华/价值建构"
-          },
-          {
-           "name": "价值肯定",
-           "score": 0.6775,
-           "path": "/表达/论证说理/分析论证/论证评判/肯定论证/价值肯定"
-          }
-         ]
-        },
-        {
-         "scope_type": "intent",
-         "value": "逻辑",
-         "candidate": "逻辑",
-         "link": "新建",
-         "score": 0.5602,
-         "top": [
-          {
-           "name": "分析",
-           "score": 0.5602,
-           "path": "/信息传递/知识传递/分析"
-          },
-          {
-           "name": "科普",
-           "score": 0.5465,
-           "path": "/信息传递/知识传递/科普"
-          },
-          {
-           "name": "事实呈现",
-           "score": 0.5403,
-           "path": "/信息传递/事实呈现"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s5",
-       "input": "← s4产出",
-       "directive": "概述节拍并标注出转折点发生的具体位置",
-       "output": "完整的场景分析报告",
-       "出处": [
-        "卡片7"
-       ],
-       "创作阶段": "打磨",
-       "动作": "综合复盘",
-       "作用域": [
-        {
-         "scope_type": "form",
-         "value": "场景分析报告",
-         "candidate": "场景分析报告",
-         "link": "新建",
-         "score": 0.6723,
-         "top": [
-          {
-           "name": "场景描写",
-           "score": 0.6723,
-           "path": "/架构/修辞/描写刻画/细节描绘/场景描写"
-          },
-          {
-           "name": "内容场景对比",
-           "score": 0.6604,
-           "path": "/架构/创意/对比反差/并置对比/通用对比/内容场景对比"
-          },
-          {
-           "name": "场景植入",
-           "score": 0.6303,
-           "path": "/架构/策略/认知引导/场景植入"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "转折点",
-         "candidate": "转折点",
-         "link": "新建",
-         "score": 0.7725,
-         "top": [
-          {
-           "name": "转折变化",
-           "score": 0.7725,
-           "path": "/结构/叙事推进/承接转换/转折变化"
-          },
-          {
-           "name": "视角转换",
-           "score": 0.6036,
-           "path": "/结构/叙事推进/承接转换/视角转换"
-          },
-          {
-           "name": "叙事推进节点",
-           "score": 0.589,
-           "path": "/结构/叙事推进/叙事推进节点"
-          }
-         ]
-        }
-       ]
-      }
-     ],
-     "dropped": []
-    },
-    {
-     "id": "k2",
-     "type": "what",
-     "role": "主",
-     "parent": null,
-     "title": "故事弧线的五部分构成",
-     "业务阶段": [
-      "脚本",
-      "选题"
-     ],
-     "出处": [
-      "卡片1"
-     ],
-     "界定": "构成故事叙事完整弧线的五个核心阶段。",
-     "kind": "构成",
-     "主体": [
-      {
-       "小标题": "叙事要素清单",
-       "形式": "清单",
-       "条目": [
-        {
-         "词": "阐述",
-         "说明": "交代背景人设"
-        },
-        {
-         "词": "激励事件",
-         "说明": "诱发事件,分为随机型和有因型即主角抉择"
-        },
-        {
-         "词": "进展纠葛",
-         "说明": "上升动作"
-        },
-        {
-         "词": "危机/高潮",
-         "说明": "情节突转与问题解决"
-        },
-        {
-         "词": "结局",
-         "说明": "下降动作,展示高潮影响及为次情节收口"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "叙事弧线",
-       "candidate": "叙事弧线",
-       "link": "新建",
-       "score": 0.7116,
-       "top": [
-        {
-         "name": "历史叙事",
-         "score": 0.7116,
-         "path": "/理念/知识/历史/历史知识形态/历史叙事"
-        },
-        {
-         "name": "人物故事",
-         "score": 0.571,
-         "path": "/理念/事件/社会事件/人物故事"
-        },
-        {
-         "name": "构图",
-         "score": 0.5641,
-         "path": "/表象/视觉/画面/构图"
-        }
-       ]
-      },
-      {
-       "scope_type": "form",
-       "value": "五段式结构",
-       "candidate": "五段式结构",
-       "link": "新建",
-       "score": 0.7181,
-       "top": [
-        {
-         "name": "分段结构",
-         "score": 0.7181,
-         "path": "/架构/逻辑/信息编排逻辑/条目列举/分段结构"
-        },
-        {
-         "name": "对话结构",
-         "score": 0.6753,
-         "path": "/架构/叙事/叙事体裁/演说交流/对话访谈/对话结构"
-        },
-        {
-         "name": "结构编排",
-         "score": 0.6507,
-         "path": "/架构/叙事/叙事组织/脉络铺排/结构编排"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "情节推进",
-       "candidate": "情节推进",
-       "link": "新建",
-       "score": 0.8455,
-       "top": [
-        {
-         "name": "叙事推进",
-         "score": 0.8455,
-         "path": "/结构/叙事推进"
-        },
-        {
-         "name": "叙事推进节点",
-         "score": 0.7857,
-         "path": "/结构/叙事推进/叙事推进节点"
-        },
-        {
-         "name": "推进节奏",
-         "score": 0.7213,
-         "path": "/结构/叙事推进/推进节奏"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k3",
-     "type": "what",
-     "role": "主",
-     "parent": null,
-     "title": "激励事件的选择类型",
-     "业务阶段": [
-      "脚本",
-      "灵感"
-     ],
-     "出处": [
-      "卡片1",
-      "卡片2"
-     ],
-     "界定": "打破故事平衡并捕获好奇心的诱发事件分类。",
-     "kind": "选项",
-     "主体": [
-      {
-       "小标题": "发生形式",
-       "形式": "分类",
-       "条目": [
-        {
-         "词": "随机型",
-         "说明": "偶然发生的事件",
-         "选择线索": "用于表现命运的无常或外部环境的剧烈变动"
-        },
-        {
-         "词": "有因型",
-         "说明": "由主角主动抉择导致",
-         "选择线索": "用于强调主角性格特征或主动性动机"
-        }
-       ]
-      },
-      {
-       "小标题": "构思逻辑",
-       "形式": "对策",
-       "内容": "关注发生在主角身上最坏或最好的事情如何发生逆转。"
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "激励事件",
-       "candidate": "激励事件",
-       "link": "新建",
-       "score": 0.7084,
-       "top": [
-        {
-         "name": "事件",
-         "score": 0.7084,
-         "path": "/理念/事件"
-        },
-        {
-         "name": "事件评价",
-         "score": 0.6426,
-         "path": "/理念/观念/社会观念/时政评议/历史评价/事件评价"
-        },
-        {
-         "name": "社会事件",
-         "score": 0.637,
-         "path": "/理念/事件/社会事件"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "好奇心激发",
-       "candidate": "好奇心激发",
-       "link": "新建",
-       "score": 0.6975,
-       "top": [
-        {
-         "name": "动机激发",
-         "score": 0.6975,
-         "path": "/表达/信息传达/传达手法/强调突出/动机激发"
-        },
-        {
-         "name": "悬念设置",
-         "score": 0.5601,
-         "path": "/结构/叙事推进/叙事推进节点/悬念设置"
-        },
-        {
-         "name": "趣味互动",
-         "score": 0.5597,
-         "path": "/表达/互动引导/吸引关注/趣味互动"
-        }
-       ]
-      },
-      {
-       "scope_type": "intent",
-       "value": "人物塑造",
-       "candidate": "人物塑造",
-       "link": "新建",
-       "score": 0.5146,
-       "top": [
-        {
-         "name": "行为引导",
-         "score": 0.5146,
-         "path": "/行为引导"
-        },
-        {
-         "name": "事实呈现",
-         "score": 0.5093,
-         "path": "/信息传递/事实呈现"
-        },
-        {
-         "name": "情感抒发",
-         "score": 0.4864,
-         "path": "/情感联结/情感抒发"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k4",
-     "type": "what",
-     "role": "主",
-     "parent": null,
-     "title": "场景设计四要素",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片4",
-      "卡片5",
-      "卡片6"
-     ],
-     "界定": "构成一个有效场景必须具备的四个关键设计点。",
-     "kind": "构成",
-     "主体": [
-      {
-       "小标题": "设计维度",
-       "形式": "清单",
-       "条目": [
-        {
-         "词": "转折点",
-         "说明": "产生惊奇、增强好奇心、见识新方向"
-        },
-        {
-         "词": "伏笔/分晓",
-         "说明": "知识的层层铺垫与传达"
-        },
-        {
-         "词": "情感转变",
-         "说明": "通过核心情感即快感与痛感的动态交替,打破回报递减定理"
-        },
-        {
-         "词": "选择",
-         "说明": "必须是两难之择,如两善取其一或两恶取其轻,通过三角关系构建连锁冲突"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "场景设计",
-       "candidate": "场景设计",
-       "link": "新建",
-       "score": 0.7737,
-       "top": [
-        {
-         "name": "场景氛围",
-         "score": 0.7737,
-         "path": "/表象/视觉/画面/后期/情绪意境/场景氛围"
-        },
-        {
-         "name": "场景形象",
-         "score": 0.772,
-         "path": "/表象/视觉/符号/图案符号/形象图案/场景形象"
-        },
-        {
-         "name": "演出场景",
-         "score": 0.733,
-         "path": "/表象/视觉/空间/空间场所/演艺场地/演出场景"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "情感波幅",
-       "candidate": "情感波幅",
-       "link": "新建",
-       "score": 0.6874,
-       "top": [
-        {
-         "name": "情感表达",
-         "score": 0.6874,
-         "path": "/表达/情感表达"
-        },
-        {
-         "name": "情感张力",
-         "score": 0.6774,
-         "path": "/表达/论证说理/分析论证/对比反差/情感张力"
-        },
-        {
-         "name": "情感共鸣",
-         "score": 0.6707,
-         "path": "/表达/互动引导/情感连接/情感共鸣"
-        }
-       ]
-      },
-      {
-       "scope_type": "feeling",
-       "value": "惊奇感",
-       "candidate": "惊奇感",
-       "link": "新建",
-       "score": 0.8372,
-       "top": [
-        {
-         "name": "惊奇",
-         "score": 0.8372,
-         "path": "/认知/惊奇"
-        },
-        {
-         "name": "美感",
-         "score": 0.6186,
-         "path": "/情感/美感"
-        },
-        {
-         "name": "悬念期待",
-         "score": 0.5879,
-         "path": "/认知/好奇/悬念期待"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k5",
-     "type": "why",
-     "role": "主",
-     "parent": null,
-     "title": "情感触发原理",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片5"
-     ],
-     "主张": "观众的情感共鸣并非随机,而是建立在逻辑认知之上。",
-     "支撑": [
-      {
-       "小标题": "触发前提",
-       "形式": "依据",
-       "内容": "情感触发必须满足三个前提:移情于人物、知道人物想要什么、明白利害攸关的价值。"
-      },
-      {
-       "小标题": "对创作的取舍",
-       "形式": "取舍",
-       "内容": "所以在描写情感冲突前,必须先花篇幅建立人物欲望和丢失该东西的代价,否则单纯的情绪宣泄无法让观众产生共鸣。"
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "情感触发",
-       "candidate": "情感触发",
-       "link": "新建",
-       "score": 0.7829,
-       "top": [
-        {
-         "name": "情感",
-         "score": 0.7829,
-         "path": "/理念/情感"
-        },
-        {
-         "name": "情感体验",
-         "score": 0.7417,
-         "path": "/理念/观念/个人观念/人生感悟/内心感受/情感体验"
-        },
-        {
-         "name": "情感表达",
-         "score": 0.7288,
-         "path": "/表象/视觉/行为/人际互动/表达沟通/情感表达"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "观众移情",
-       "candidate": "观众移情",
-       "link": "新建",
-       "score": 0.6569,
-       "top": [
-        {
-         "name": "情感共鸣",
-         "score": 0.6569,
-         "path": "/表达/互动引导/情感连接/情感共鸣"
-        },
-        {
-         "name": "情感动员",
-         "score": 0.6024,
-         "path": "/表达/互动引导/情感连接/情感动员"
-        },
-        {
-         "name": "情感收束",
-         "score": 0.5783,
-         "path": "/结构/叙事推进/收束归纳/情感收束"
-        }
-       ]
-      },
-      {
-       "scope_type": "feeling",
-       "value": "情感共鸣",
-       "candidate": "情感共鸣",
-       "link": "新建",
-       "score": 0.7989,
-       "top": [
-        {
-         "name": "情感",
-         "score": 0.7989,
-         "path": "/情感"
-        },
-        {
-         "name": "情绪处境共鸣",
-         "score": 0.7864,
-         "path": "/情感/同感/情绪处境共鸣"
-        },
-        {
-         "name": "共情",
-         "score": 0.7817,
-         "path": "/情感/共情"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k6",
-     "type": "why",
-     "role": "主",
-     "parent": null,
-     "title": "冲突的分类原则",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片2"
-     ],
-     "主张": "冲突的复杂性决定了故事的厚度。",
-     "支撑": [
-      {
-       "小标题": "冲突层次",
-       "形式": "依据",
-       "内容": "冲突分为三个层面:内心冲突、个人冲突、个人与外界环境的冲突。"
-      },
-      {
-       "小标题": "对创作的取舍",
-       "形式": "取舍",
-       "内容": "应追求复杂型冲突,即让主角同时面对所有三个层面的对抗力量,避免单一维度的线性对抗,使故事更具进展纠葛的张力。"
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "冲突层次",
-       "candidate": "冲突层次",
-       "link": "新建",
-       "score": 0.7465,
-       "top": [
-        {
-         "name": "冲突对抗",
-         "score": 0.7465,
-         "path": "/表象/视觉/行为/人际互动/关系行为/冲突对抗"
-        },
-        {
-         "name": "战争冲突",
-         "score": 0.6795,
-         "path": "/理念/事件/政治事件/战争冲突"
-        },
-        {
-         "name": "地缘冲突",
-         "score": 0.6246,
-         "path": "/理念/知识/政治/国际政治/地缘政治/地缘冲突"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "叙事张力",
-       "candidate": "叙事张力",
-       "link": "新建",
-       "score": 0.772,
-       "top": [
-        {
-         "name": "情感张力",
-         "score": 0.772,
-         "path": "/表达/论证说理/分析论证/对比反差/情感张力"
-        },
-        {
-         "name": "叙事闭合",
-         "score": 0.7416,
-         "path": "/结构/叙事推进/收束归纳/闭环收束/叙事闭合"
-        },
-        {
-         "name": "叙事推进",
-         "score": 0.7408,
-         "path": "/结构/叙事推进"
-        }
-       ]
-      },
-      {
-       "scope_type": "intent",
-       "value": "故事厚度",
-       "candidate": "故事厚度",
-       "link": "新建",
-       "score": 0.4903,
-       "top": [
-        {
-         "name": "科普",
-         "score": 0.4903,
-         "path": "/信息传递/知识传递/科普"
-        },
-        {
-         "name": "事实呈现",
-         "score": 0.4884,
-         "path": "/信息传递/事实呈现"
-        },
-        {
-         "name": "种草推荐",
-         "score": 0.4662,
-         "path": "/行为引导/商业推广/种草推荐"
-        }
-       ]
-      }
-     ]
-    }
-   ]
-  },
-  {
-   "post_id": "67e4bdf50000000006028a59",
-   "source_id": "xhs_67e4bdf50000000006028a59",
-   "title": "只要学会这几样,写短视频脚本真的不难❗️",
-   "platform": "xiaohongshu",
-   "url": "https://www.xiaohongshu.com/explore/67e4bdf50000000006028a59",
-   "media": {
-    "type": "image",
-    "video_url": null,
-    "images": [
-     "/data/demo/xiaohongshu/xhs_67e4bdf50000000006028a59/image_1.webp",
-     "/data/demo/xiaohongshu/xhs_67e4bdf50000000006028a59/image_2.webp",
-     "/data/demo/xiaohongshu/xhs_67e4bdf50000000006028a59/image_3.webp",
-     "/data/demo/xiaohongshu/xhs_67e4bdf50000000006028a59/image_4.webp"
-    ]
-   },
-   "cards": [
-    {
-     "index": 1,
-     "content": "短视频脚本流程梳理:包含确定选题、搭建框架(人/景/事)、细节完善(分镜序号、拍摄场景、画面感构思、拍摄技巧、字幕与音效策略、长短视频时长分配建议)。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e4bdf50000000006028a59/image_1.webp"
-    },
-    {
-     "index": 2,
-     "content": "脚本构思三步骤与要素:明确标题(核心主题)、视频画面描述、五种景别交替使用、多角度拍摄、视频文案(含注译);脚本构思包含点名主题、截取痛点、制造起伏、引起共鸣等多种策略。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e4bdf50000000006028a59/image_2.webp"
-    },
-    {
-     "index": 3,
-     "content": "分镜头脚本公式:提供vlog脚本五大公式(如引起共鸣=人物+状态+情感宣泄);脚本三要素(开头噱头、中间论述、结尾总结);黄金结构(引子、内容主题、结尾的具体设计细节)。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e4bdf50000000006028a59/image_3.webp"
-    },
-    {
-     "index": 4,
-     "content": "常用构图知识清单:水平线构图(稳定)、对角线构图(动感)、中心构图(主体突出)、框式构图(神秘窥视感)、九宫格/三分法构图(排列主体、简化画面)。",
-     "image_url": "/data/demo/xiaohongshu/xhs_67e4bdf50000000006028a59/image_4.webp"
-    }
-   ],
-   "knowledges": [
-    {
-     "id": "k1",
-     "type": "how",
-     "role": "主",
-     "parent": null,
-     "title": "短视频脚本创作全流程",
-     "purpose": "按部就班完成一份细节完善的视频脚本",
-     "业务阶段": [
-      "脚本"
-     ],
-     "steps": [
-      {
-       "id": "s1",
-       "input": "创作意向/原始灵感",
-       "directive": "明确视频的核心主题,并将其转化为具体的标题。",
-       "output": "确定选题(标题)",
-       "出处": [
-        "卡片1",
-        "卡片2"
-       ],
-       "创作阶段": "定向",
-       "动作": "确定选题",
-       "作用域": [
-        {
-         "scope_type": "substance",
-         "value": "选题方向",
-         "candidate": "选题方向",
-         "link": "新建",
-         "score": 0.5839,
-         "top": [
-          {
-           "name": "价值取向",
-           "score": 0.5839,
-           "path": "/理念/观念/个人观念/处世智慧/价值取向"
-          },
-          {
-           "name": "学科领域",
-           "score": 0.5814,
-           "path": "/理念/知识/思想/学科领域"
-          },
-          {
-           "name": "行业研究",
-           "score": 0.5712,
-           "path": "/理念/知识/商业/行业分析/行业研究"
-          }
-         ]
-        },
-        {
-         "scope_type": "intent",
-         "value": "创作",
-         "candidate": "创作",
-         "link": "新建",
-         "score": 0.5424,
-         "top": [
-          {
-           "name": "解读",
-           "score": 0.5424,
-           "path": "/信息传递/知识传递/解读"
-          },
-          {
-           "name": "分享",
-           "score": 0.5361,
-           "path": "/信息传递/信息扩散/分享"
-          },
-          {
-           "name": "批判",
-           "score": 0.5359,
-           "path": "/情感联结/情感抒发/批判"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s2",
-       "input": "← s1产出",
-       "directive": "围绕选题搭建基础骨架,需涵盖人物(主体)、场景(环境)、事件(情节)三大核心要素。",
-       "output": "脚本框架",
-       "出处": [
-        "卡片1"
-       ],
-       "创作阶段": "构思",
-       "动作": "搭建框架",
-       "作用域": [
-        {
-         "scope_type": "form",
-         "value": "脚本框架",
-         "candidate": "脚本框架",
-         "link": "新建",
-         "score": 0.6975,
-         "top": [
-          {
-           "name": "规范框架",
-           "score": 0.6975,
-           "path": "/架构/逻辑/信息编排逻辑/条目列举/分段结构/规范框架"
-          },
-          {
-           "name": "框架类型",
-           "score": 0.695,
-           "path": "/架构/叙事/叙事组织/脉络铺排/结构编排/框架类型"
-          },
-          {
-           "name": "架构",
-           "score": 0.6268,
-           "path": "/架构"
-          }
-         ]
-        },
-        {
-         "scope_type": "substance",
-         "value": "叙事要素",
-         "candidate": "叙事要素",
-         "link": "新建",
-         "score": 0.7066,
-         "top": [
-          {
-           "name": "历史叙事",
-           "score": 0.7066,
-           "path": "/理念/知识/历史/历史知识形态/历史叙事"
-          },
-          {
-           "name": "构成要素",
-           "score": 0.6372,
-           "path": "/理念/知识/思想/概念范畴/关系结构/构成要素"
-          },
-          {
-           "name": "人物故事",
-           "score": 0.5836,
-           "path": "/理念/事件/社会事件/人物故事"
-          }
-         ]
-        }
-       ]
-      },
-      {
-       "id": "s3",
-       "input": "← s2产出",
-       "directive": "将框架细化为镜头动作。包含分配镜号、明确视频画面描述(可搭配五种景别交替、多角度拍摄)、编写视频文案及注译、规划字幕音效策略。长视频注意开头10-15秒设计,短视频需在3-5秒内呈现主题。",
-       "output": "细节完善的脚本实稿",
-       "出处": [
-        "卡片1",
-        "卡片2"
-       ],
-       "创作阶段": "打磨",
-       "动作": "细节完善",
-       "作用域": [
-        {
-         "scope_type": "form",
-         "value": "分镜脚本",
-         "candidate": "分镜脚本",
-         "link": "新建",
-         "score": 0.639,
-         "top": [
-          {
-           "name": "漫画",
-           "score": 0.639,
-           "path": "/呈现/视觉/视觉风格/视觉艺术风格/绘画风格/漫画"
-          },
-          {
-           "name": "叙事逻辑",
-           "score": 0.5933,
-           "path": "/架构/逻辑/叙事逻辑"
-          },
-          {
-           "name": "剪辑组接",
-           "score": 0.591,
-           "path": "/呈现/视觉/视觉制作/剪辑组接"
-          }
-         ]
-        },
-        {
-         "scope_type": "effect",
-         "value": "节奏掌控",
-         "candidate": "节奏掌控",
-         "link": "新建",
-         "score": 0.7099,
-         "top": [
-          {
-           "name": "推进节奏",
-           "score": 0.7099,
-           "path": "/结构/叙事推进/推进节奏"
-          },
-          {
-           "name": "基调设定",
-           "score": 0.5435,
-           "path": "/结构/叙事推进/开篇引入/直述开篇/基调设定"
-          },
-          {
-           "name": "高潮构建",
-           "score": 0.5423,
-           "path": "/结构/叙事推进/叙事推进节点/高潮构建"
-          }
-         ]
-        },
-        {
-         "scope_type": "intent",
-         "value": "完播率",
-         "candidate": "完播率",
-         "link": "新建",
-         "score": 0.5163,
-         "top": [
-          {
-           "name": "科普",
-           "score": 0.5163,
-           "path": "/信息传递/知识传递/科普"
-          },
-          {
-           "name": "种草推荐",
-           "score": 0.5139,
-           "path": "/行为引导/商业推广/种草推荐"
-          },
-          {
-           "name": "粉丝互动",
-           "score": 0.4853,
-           "path": "/情感联结/关系维护/粉丝互动"
-          }
-         ]
-        }
-       ]
-      }
-     ],
-     "dropped": []
-    },
-    {
-     "id": "k2",
-     "type": "what",
-     "role": "主",
-     "parent": null,
-     "title": "短视频脚本构思逻辑与黄金结构",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片2",
-      "卡片3"
-     ],
-     "界定": "脚本内容的叙事组织方式与段落分布规律。",
-     "kind": "构成",
-     "主体": [
-      {
-       "小标题": "黄金三段式结构",
-       "形式": "清单",
-       "条目": [
-        {
-         "词": "引子",
-         "说明": "视觉冲击或意想不到的镜头,作为开头噱头引起兴趣。"
-        },
-        {
-         "词": "内容主题",
-         "说明": "中间部分的论述,通过起伏的故事线把握叙事节奏。"
-        },
-        {
-         "词": "结尾",
-         "说明": "总结全篇,包含印象点、情感升华或行动引导(CTA)。"
-        }
-       ]
-      },
-      {
-       "小标题": "内容切入策略",
-       "形式": "清单",
-       "条目": [
-        {
-         "词": "开门见山",
-         "说明": "直接点名主题。"
-        },
-        {
-         "词": "制造起伏",
-         "说明": "通过提出疑问、方案解决或故事讲述制造波折。"
-        },
-        {
-         "词": "截取痛点",
-         "说明": "选取能引起受众共鸣的情境。"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "form",
-       "value": "三段式结构",
-       "candidate": "三段式结构",
-       "link": "新建",
-       "score": 0.7571,
-       "top": [
-        {
-         "name": "分段结构",
-         "score": 0.7571,
-         "path": "/架构/逻辑/信息编排逻辑/条目列举/分段结构"
-        },
-        {
-         "name": "对话结构",
-         "score": 0.7041,
-         "path": "/架构/叙事/叙事体裁/演说交流/对话访谈/对话结构"
-        },
-        {
-         "name": "结构编排",
-         "score": 0.6811,
-         "path": "/架构/叙事/叙事组织/脉络铺排/结构编排"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "共鸣激发",
-       "candidate": "共鸣激发",
-       "link": "新建",
-       "score": 0.7747,
-       "top": [
-        {
-         "name": "情感共鸣",
-         "score": 0.7747,
-         "path": "/表达/互动引导/情感连接/情感共鸣"
-        },
-        {
-         "name": "动机激发",
-         "score": 0.672,
-         "path": "/表达/信息传达/传达手法/强调突出/动机激发"
-        },
-        {
-         "name": "呼应回应",
-         "score": 0.6095,
-         "path": "/结构/叙事推进/承接转换/逻辑顺接/呼应回应"
-        }
-       ]
-      },
-      {
-       "scope_type": "intent",
-       "value": "行动引导",
-       "candidate": "行动引导",
-       "link": "新建",
-       "score": 0.8335,
-       "top": [
-        {
-         "name": "行为引导",
-         "score": 0.8335,
-         "path": "/行为引导"
-        },
-        {
-         "name": "事实呈现",
-         "score": 0.5448,
-         "path": "/信息传递/事实呈现"
-        },
-        {
-         "name": "引流",
-         "score": 0.5417,
-         "path": "/行为引导/传播/引流"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k3",
-     "type": "what",
-     "role": "主",
-     "parent": null,
-     "title": "Vlog脚本创作五大公式",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片3"
-     ],
-     "界定": "针对Vlog题材的标准化内容组合公式。",
-     "kind": "选项",
-     "主体": [
-      {
-       "小标题": "常用公式清单",
-       "形式": "清单",
-       "条目": [
-        {
-         "词": "引起共鸣公式",
-         "说明": "人物 + 状态 + 情感宣泄",
-         "选择线索": "适用于希望与观众建立深层情感链接,表达态度而非单纯记录时使用。"
-        },
-        {
-         "词": "引发好奇公式",
-         "说明": "通过反直觉或悬念设置引起观众持续观看。",
-         "选择线索": "适用于有反差感或强结果支撑的内容。"
-        },
-        {
-         "词": "干货输出公式",
-         "说明": "直给知识或方法论,解决具体问题。",
-         "选择线索": "适用于科普、教程或纯利他向内容。"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "Vlog内容",
-       "candidate": "Vlog内容",
-       "link": "新建",
-       "score": 0.5697,
-       "top": [
-        {
-         "name": "标题",
-         "score": 0.5697,
-         "path": "/表象/视觉/符号/文字符号/标题"
-        },
-        {
-         "name": "居家生活",
-         "score": 0.5412,
-         "path": "/理念/方法/生活技巧/居家生活"
-        },
-        {
-         "name": "居家生活",
-         "score": 0.5412,
-         "path": "/表象/视觉/行为/日常活动/居家生活"
-        }
-       ]
-      },
-      {
-       "scope_type": "form",
-       "value": "内容公式",
-       "candidate": "内容公式",
-       "link": "新建",
-       "score": 0.5731,
-       "top": [
-        {
-         "name": "内容场景对比",
-         "score": 0.5731,
-         "path": "/架构/创意/对比反差/并置对比/通用对比/内容场景对比"
-        },
-        {
-         "name": "图文关系",
-         "score": 0.5503,
-         "path": "/呈现/视觉/视觉制作/构图编排/版面设计/图文关系"
-        },
-        {
-         "name": "引用呈现",
-         "score": 0.5394,
-         "path": "/架构/策略/认知引导/话语影响/标题操控/引用呈现"
-        }
-       ]
-      },
-      {
-       "scope_type": "feeling",
-       "value": "信任感",
-       "candidate": "信任感",
-       "link": "新建",
-       "score": 0.5922,
-       "top": [
-        {
-         "name": "美感",
-         "score": 0.5922,
-         "path": "/情感/美感"
-        },
-        {
-         "name": "专业信赖",
-         "score": 0.5726,
-         "path": "/认知/评判/专业信赖"
-        },
-        {
-         "name": "情感",
-         "score": 0.572,
-         "path": "/情感"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "悬念设置",
-       "candidate": "悬念设置",
-       "link": "复用",
-       "score": 1.0,
-       "top": [
-        {
-         "name": "悬念设置",
-         "score": 1.0,
-         "path": "/结构/叙事推进/叙事推进节点/悬念设置"
-        },
-        {
-         "name": "情感铺垫",
-         "score": 0.6462,
-         "path": "/结构/叙事推进/铺垫准备/情感铺垫"
-        },
-        {
-         "name": "设定铺垫",
-         "score": 0.6262,
-         "path": "/结构/叙事推进/铺垫准备/设定铺垫"
-        }
-       ]
-      }
-     ]
-    },
-    {
-     "id": "k4",
-     "type": "what",
-     "role": "主",
-     "parent": null,
-     "title": "常用拍摄构图知识清单",
-     "业务阶段": [
-      "脚本"
-     ],
-     "出处": [
-      "卡片4"
-     ],
-     "界定": "在短视频拍摄阶段用于组织画面元素的视觉方法论。",
-     "kind": "选项",
-     "主体": [
-      {
-       "小标题": "构图法分类",
-       "形式": "清单",
-       "条目": [
-        {
-         "词": "水平线构图",
-         "说明": "画面表现平稳。",
-         "选择线索": "追求画面稳定感和开阔感时使用。"
-        },
-        {
-         "词": "对角线构图",
-         "说明": "线条斜跨画面。",
-         "选择线索": "需要增强画面动感或引导观众视线时使用。"
-        },
-        {
-         "词": "中心构图",
-         "说明": "主体位于正中央。",
-         "选择线索": "主体单一且需要高度突出时使用。"
-        },
-        {
-         "词": "框式构图",
-         "说明": "利用前景形成框架。",
-         "选择线索": "制造神秘感、窥视感或纵深感时使用。"
-        },
-        {
-         "词": "九宫格/三分法构图",
-         "说明": "主体落在交叉点或分割线上。",
-         "选择线索": "通用的画面排列方式,用于简化画面、使主体位置自然。"
-        }
-       ]
-      }
-     ],
-     "作用域": [
-      {
-       "scope_type": "substance",
-       "value": "拍摄构图",
-       "candidate": "拍摄构图",
-       "link": "新建",
-       "score": 0.873,
-       "top": [
-        {
-         "name": "构图",
-         "score": 0.873,
-         "path": "/表象/视觉/画面/构图"
-        },
-        {
-         "name": "色彩构成",
-         "score": 0.6082,
-         "path": "/表象/视觉/画面特征/色彩表现/色彩构成"
-        },
-        {
-         "name": "光影",
-         "score": 0.559,
-         "path": "/表象/视觉/画面/光影"
-        }
-       ]
-      },
-      {
-       "scope_type": "effect",
-       "value": "视觉引导",
-       "candidate": "视觉引导",
-       "link": "新建",
-       "score": 0.7313,
-       "top": [
-        {
-         "name": "行动引导",
-         "score": 0.7313,
-         "path": "/表达/互动引导/行动引导"
-        },
-        {
-         "name": "互动引导",
-         "score": 0.7215,
-         "path": "/表达/互动引导"
-        },
-        {
-         "name": "视觉开篇",
-         "score": 0.7135,
-         "path": "/结构/叙事推进/开篇引入/直述开篇/视觉开篇"
-        }
-       ]
-      },
-      {
-       "scope_type": "feeling",
-       "value": "稳定感",
-       "candidate": "稳定感",
-       "link": "新建",
-       "score": 0.6121,
-       "top": [
-        {
-         "name": "美感",
-         "score": 0.6121,
-         "path": "/情感/美感"
-        },
-        {
-         "name": "风格美感",
-         "score": 0.5636,
-         "path": "/情感/美感/风格美感"
-        },
-        {
-         "name": "视觉美感",
-         "score": 0.5604,
-         "path": "/情感/美感/视觉美感"
-        }
-       ]
-      },
-      {
-       "scope_type": "feeling",
-       "value": "纵深感",
-       "candidate": "纵深感",
-       "link": "新建",
-       "score": 0.5864,
-       "top": [
-        {
-         "name": "美感",
-         "score": 0.5864,
-         "path": "/情感/美感"
-        },
-        {
-         "name": "视觉美感",
-         "score": 0.5809,
-         "path": "/情感/美感/视觉美感"
-        },
-        {
-         "name": "空间美感",
-         "score": 0.5785,
-         "path": "/情感/美感/空间美感"
-        }
-       ]
-      }
-     ]
-    }
-   ]
-  },
-  {
-   "post_id": "7589257893544165455",
-   "source_id": "dy_7589257893544165455",
-   "title": "如何用AI十几秒制作一段高质量精彩的视频...",
-   "platform": "douyin",
-   "url": "https://www.douyin.com/video/7589257893544165455",
-   "media": {
-    "type": "video",
-    "video_url": "/data/demo/douyin/dy_7589257893544165455/video.mp4",
-    "images": []
-   },
-   "cards": [
-    {
-     "index": 1,
-     "content": "利用豆包 AI 生成视频描述词。How:1. 打开豆包 App,开启‘深度思考’模式;\n2. 输入提示词,设定身份(如:旅游视频创作者)并提出具体需求(如:写一段关于上海旅游的视频描述词,30字以内);\n3. 从生成的多个选项中选择满意的内容并复制。",
-     "video_url": "/data/demo/douyin/dy_7589257893544165455/video.mp4",
-     "start": 0.0,
-     "end": 23.0
-    },
-    {
-     "index": 2,
-     "content": "使用“文生视频”工具生成成片。How:1. 在微信中搜索并打开‘创作神器’小程序;\n2. 选择‘文生视频’功能;\n3. 粘贴刚才复制的描述词,点击‘灵感扩写’以丰富文案细节;\n4. 选择画面比例(如 9:16),点击‘生成视频’即可获得成片。",
-     "video_url": "/data/demo/douyin/dy_7589257893544165455/video.mp4",
-     "start": 24.0,
-     "end": 46.0
-    }
-   ],
-   "no_knowledge": true,
-   "knowledges": []
-  },
-  {
-   "post_id": "6a33655e000000000f0055af",
-   "source_id": "xhs_6a33655e000000000f0055af",
-   "title": "🎮Voodoo 转型成功,单日流水破百万美元",
-   "platform": "xiaohongshu",
-   "url": "https://www.xiaohongshu.com/explore/6a33655e000000000f0055af",
-   "media": {
-    "type": "image",
-    "video_url": null,
-    "images": [
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un47g5or0rc9nrd7lo51t35o?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4805or0rc9nrd7l4l2ce88?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un48g5or0rc9nrd7l95ettf0?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4905or0rc9nrd7lv5q3bho?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un49g5or0rc9nrd7le5ge5i0?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4a05or0rc9nrd7laa4jb7g?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4ag5or0rc9nrd7lu0cqh0g?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4b05or0rc9nrd7lgmvbg8o?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4bg5or0rc9nrd7lrslni4g?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4c05or0rc9nrd7lcbova80?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4cg5or0rc9nrd7l80k7bp0?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4d05or0rc9nrd7l0poig80?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4dg5or0rc9nrd7l9jnq1v8?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4e05or0rc9nrd7lqovqas0?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2tin6s2g5or0rc9nrd7lkvvqnm8?imageView2/2/w/1080/format/webp",
-     "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2tin6s305or0rc9nrd7livn3u50?imageView2/2/w/1080/format/webp"
-    ]
-   },
-   "cards": [
-    {
-     "index": 1,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un47g5or0rc9nrd7lo51t35o?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 2,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4805or0rc9nrd7l4l2ce88?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 3,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un48g5or0rc9nrd7l95ettf0?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 4,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4905or0rc9nrd7lv5q3bho?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 5,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un49g5or0rc9nrd7le5ge5i0?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 6,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4a05or0rc9nrd7laa4jb7g?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 7,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4ag5or0rc9nrd7lu0cqh0g?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 8,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4b05or0rc9nrd7lgmvbg8o?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 9,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4bg5or0rc9nrd7lrslni4g?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 10,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4c05or0rc9nrd7lcbova80?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 11,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4cg5or0rc9nrd7l80k7bp0?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 12,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4d05or0rc9nrd7l0poig80?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 13,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4dg5or0rc9nrd7l9jnq1v8?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 14,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2t9un4e05or0rc9nrd7lqovqas0?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 15,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2tin6s2g5or0rc9nrd7lkvvqnm8?imageView2/2/w/1080/format/webp"
-    },
-    {
-     "index": 16,
-     "content": "",
-     "image_url": "https://ci.xiaohongshu.com/spectrum/1040g34o321hr2tin6s305or0rc9nrd7livn3u50?imageView2/2/w/1080/format/webp"
-    }
-   ],
-   "no_knowledge": true,
-   "knowledges": []
-  }
- ]
-}

+ 48 - 10
web/index.html

@@ -89,6 +89,13 @@
   .cstage-chip{display:inline-block;font-size:11px;padding:1px 6px;border-radius:10px;background:#ede9fe;color:#5b21b6}
   .act-chip{display:inline-block;font-size:11.5px;padding:1px 7px;border-radius:4px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
   .dir-txt{font-size:11.5px;color:#33312c;line-height:1.65}.out-txt{font-size:11.5px;color:#166534}
+  .in-txt{font-size:11.5px;color:#1e40af;line-height:1.6}
+  .cue{font-size:11px;color:#7c2d12;background:#fff7ed;border-left:2px solid #fb923c;padding:3px 7px;margin-top:4px;border-radius:0 4px 4px 0}
+  .cue b{color:#9a3412}
+  .kindb{font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:9px;margin-right:8px;vertical-align:middle;cursor:help}
+  .kind-选项{background:#dbeafe;color:#1e40af}.kind-构成{background:#dcfce7;color:#166534}
+  .ksec-f.key{background:#fde68a;color:#92400e;font-weight:700}
+  .glossbtn{background:#ede9fe!important;color:#6d28d9!important;border-color:#ddd6fe!important}
   .from{font-size:11px;color:#9ca3af}
   /* what/why 自由小节 */
   .def{font-size:13px;background:#fdf4ff;border-left:3px solid #a21caf;border-radius:0 6px 6px 0;padding:8px 12px;margin:6px 0 10px}
@@ -165,6 +172,30 @@ const j=u=>fetch(u,{cache:"no-store"}).then(r=>r.json());
 const SCOPES=[["substance","实质"],["form","形式"],["feeling","感受"],["effect","作用"],["intent","意图"]];
 const SC_CN={substance:"实质",form:"形式",feeling:"感受",effect:"作用",intent:"意图"};
 const TYPECN={how:"How 工序",what:"What 构成",why:"Why 原理"};
+// 把提示词里的"黑话"形式标签换成大白话(找不到就原样显示)
+const FORM_PLAIN={"取舍":"怎么用","依据":"为什么对","机制":"怎么起作用","平台逻辑":"平台规则","读者心理":"读者心理","例证":"例子","反例":"反例","判据":"判断标准","对照":"对比","清单":"清单","分类":"分类","定义":"定义","维度":"方面"};
+const plainForm=f=>FORM_PLAIN[f]||f;
+const GLOSSARY=`## 一篇帖子能拆出三种知识(平级的)
+这三种各帮你做一个不同的决定,没有谁更重要。
+
+| 标签 | 大白话 | 它帮你决定 |
+|---|---|---|
+| **怎么做** (How) | 一步步把东西做出来的流程 | 按什么**顺序**做 |
+| **是什么** (What) | 某东西由什么组成 / 有哪些种类 | 用**哪些料** |
+| **为什么** (Why) | 背后的道理、标准、平台规则 | 该**留什么、砍什么** |
+
+## 「是什么」分两种
+- **组成·都要用**(构成型):像配方,列出的几样要**全用上**(例:人物 = 生理+社会+心理)。
+- **可选·挑着用**(选项型):像菜单,列出几种**选一种**用(例:7 种叙事结构挑一种)。
+  - 每个选项后面那句 **👉 什么时候用** 就是「**选择线索**」——告诉你哪种情况该挑它。没有它,就只能背、不会选。
+
+## 「为什么」里每条道理的小标签
+说明这条是哪种支撑:
+- **怎么用**(原"取舍"):这条道理落到创作上——该多写什么、砍什么。**最重要,每条「为什么」都有**。
+- **为什么对**(原"依据"):这条说法凭什么成立。
+- **怎么起作用**(原"机制"):它是怎么运转、起效果的。
+- **平台规则 / 读者心理**:从平台算法、或读者角度的解释。
+- 例子 / 反例 / …:举例支撑(这些标签是开放的,可能还有别的)。`;
 
 const STEPS=[
   {key:"read",label:"读懂帖子",desc:"把图、视频读成文字",
@@ -250,12 +281,12 @@ function HowTable({k,onScope,onPrompt,onSource}){
       <tr><th className="c-idx" rowSpan="2">#</th>
         <th className="g-frame" colSpan="5" onClick={()=>onPrompt("frame")}>② 拆框架 + 轻标签 ▸ 提示词</th>
         <th className="g-scope" colSpan="5" onClick={()=>onPrompt("scope")}>③ 作用域 ▸ 提示词</th></tr>
-      <tr><th className="c-intent">目的</th><th className="c-cstage">创作<br/>阶段</th><th className="c-act">动作</th><th className="c-dir">怎么做</th><th className="c-out">产出</th>
+      <tr><th className="c-intent">输入</th><th className="c-cstage">创作<br/>阶段</th><th className="c-act">动作</th><th className="c-dir">方法</th><th className="c-out">产出</th>
         {SCOPES.map(([kk,cn])=><th key={kk} className={"c-scope s-"+kk}>{cn}</th>)}</tr>
     </thead>
     <tbody>{steps.map((s,i)=><tr className="step" key={i}>
       <td className="idx">{i+1}</td>
-      <td className="intent">{s.intent}{s.出处&&s.出处.length>0&&<span className="srcbtn" title={"看原文出处 "+s.出处.join(" ")} onClick={()=>onSource(s.出处)}>🔍</span>}</td>
+      <td className="intent"><span className="in-txt">{s.input}</span>{s.出处&&s.出处.length>0&&<span className="srcbtn" title={"看原文出处 "+s.出处.join(" ")} onClick={()=>onSource(s.出处)}>🔍</span>}</td>
       <td className="cstage">{s.创作阶段&&<span className="cstage-chip">{s.创作阶段}</span>}</td>
       <td className="act">{s.动作&&<span className="act-chip">{s.动作}</span>}</td>
       <td className="dir"><span className="dir-txt">{s.directive}</span></td>
@@ -266,15 +297,17 @@ function HowTable({k,onScope,onPrompt,onSource}){
 }
 function KSection({b}){
   const items=b.条目||[];
+  const isKey=b.形式==="取舍";
   return <div className="ksec">
-    <div className="ksec-h">{b.小标题&&<span className="ksec-t">{b.小标题}</span>}{b.形式&&<span className="ksec-f">{b.形式}</span>}</div>
+    <div className="ksec-h">{b.小标题&&<span className="ksec-t">{b.小标题}</span>}{b.形式&&<span className={"ksec-f"+(isKey?" key":"")} title={"原标签:"+b.形式}>{isKey?"💡 ":""}{plainForm(b.形式)}</span>}</div>
     {b.内容&&<div className="ksec-c">{b.内容}</div>}
-    {items.length>0&&<table className="elem"><tbody>{items.map((c,i)=><tr key={i}><td className="el">{c.词||c.要素}</td><td>{c.说明}</td></tr>)}</tbody></table>}
+    {items.length>0&&<table className="elem"><tbody>{items.map((c,i)=><tr key={i}>
+      <td className="el">{c.词||c.要素}</td><td>{c.说明}{c.选择线索&&<div className="cue"><b>👉 什么时候用:</b>{c.选择线索}</div>}</td></tr>)}</tbody></table>}
   </div>;
 }
-function WhatCard({k,onScope}){
+function WhatCard({k,onScope,onGloss}){
   return <div>
-    {k.界定&&<div className="def">界定:{k.界定}</div>}
+    {k.界定&&<div className="def">{k.kind&&<span className={"kindb kind-"+k.kind} title="点开「名词说明」看区别" onClick={()=>onGloss&&onGloss()}>{k.kind==="选项"?"🎯 可选·挑着用":"🧩 组成·都要用"}</span>}界定:{k.界定}</div>}
     {(k.主体||[]).map((b,i)=><KSection key={i} b={b}/>)}
     <KScopes list={k.作用域} onScope={onScope}/>
   </div>;
@@ -287,7 +320,7 @@ function WhyCard({k,onScope}){
   </div>;
 }
 
-function KnowledgeCard({k,idx,onScope,onPrompt,onJson,onSource,payload,how_titles}){
+function KnowledgeCard({k,idx,onScope,onPrompt,onJson,onSource,payload,how_titles,onGloss}){
   const par=k.parent;
   return <div className="kcard" id={"k-"+k.id}>
     <div className="khead">
@@ -301,7 +334,7 @@ function KnowledgeCard({k,idx,onScope,onPrompt,onJson,onSource,payload,how_title
     </div>
     <div className="kbody">
       {k.type==="how"&&<HowTable k={k} onScope={onScope} onPrompt={onPrompt} onSource={onSource}/>}
-      {k.type==="what"&&<WhatCard k={k} onScope={onScope}/>}
+      {k.type==="what"&&<WhatCard k={k} onScope={onScope} onGloss={onGloss}/>}
       {k.type==="why"&&<WhyCard k={k} onScope={onScope}/>}
     </div>
   </div>;
@@ -316,6 +349,7 @@ function App(){
   const [zoom,setZoom]=useState(null);
   const [src,setSrc]=useState(null);
   const [hl,setHl]=useState(false);
+  const [gloss,setGloss]=useState(false);
   useEffect(()=>{Promise.all([j("/frameworks.json"),j("/payloads.json").catch(()=>[])]).then(([f,pl])=>{
     setItems((f.posts||[]).map(p=>({...p,payloads:(pl||[]).filter(x=>(x.source||{}).id===(p.source_id||("xhs_"+p.post_id)))})));});},[]);
   useEffect(()=>{document.body.classList.toggle("hl",hl);},[hl]);
@@ -353,10 +387,11 @@ function App(){
       </details>
       <div className="barhint" style={{display:"flex",gap:8,alignItems:"center"}}>
         <span>这一帖拆出 <b>{ks.length}</b> 颗知识(how 工序表 / what 构成卡 / why 论点卡);组件颗标「出自某 how 第 N 步」可点跳。</span>
-        <button className={"lbtn"+(hl?" on":"")} onClick={()=>setHl(!hl)} style={{marginLeft:"auto"}}>高亮「新值」</button>
+        <button className="lbtn glossbtn" onClick={()=>setGloss(true)} style={{marginLeft:"auto"}}>❓ 名词说明</button>
+        <button className={"lbtn"+(hl?" on":"")} onClick={()=>setHl(!hl)}>高亮「新值」</button>
       </div>
       {ks.length===0 && <div className="kcard"><div className="kbody" style={{padding:"20px 16px",color:"#9ca3af",fontSize:"13px"}}>🚫 这帖<b style={{color:"#6b7280"}}>没有可提取的创作知识</b>(纯作品 / 展示 / 无关)——① 读懂时 <code>is_empty=true</code>,后面拆颗/归类/入库已自动跳过。</div></div>}
-      {ks.map((k,i)=><KnowledgeCard key={i} k={k} idx={i} onScope={setScope} onPrompt={openPrompt} onJson={setJson} onSource={openSource} payload={payloadOf(k)} how_titles={how_titles}/>)}
+      {ks.map((k,i)=><KnowledgeCard key={i} k={k} idx={i} onScope={setScope} onPrompt={openPrompt} onJson={setJson} onSource={openSource} payload={payloadOf(k)} how_titles={how_titles} onGloss={()=>setGloss(true)}/>)}
     </div>
     {scope&&<div><div className="ov" onClick={()=>setScope(null)}></div>
       <div className="drawer"><h2>作用域回扣详情<span className="x" onClick={()=>setScope(null)}>×</span></h2>
@@ -384,6 +419,9 @@ function App(){
         {c.video_url&&<video src={c.video_url+(c.start!=null?("#t="+Math.floor(c.start)+","+Math.floor(c.end)):"")} controls/>}
         {c.content?<div className="srcread">① 在这张卡读到的:{c.content}</div>:<div style={{color:"#9ca3af",fontSize:"12px",marginTop:5}}>(这张卡没读到要点)</div>}
       </div>)}</div></div></div>}
+    {gloss&&<div className="modal" onClick={()=>setGloss(false)}><div className="mbox" onClick={e=>e.stopPropagation()}>
+      <h2>❓ 名词说明 · 用大白话讲清楚<span className="x" onClick={()=>setGloss(false)}>×</span></h2>
+      <div className="body"><div className="md" dangerouslySetInnerHTML={{__html:mdToHtml(GLOSSARY)}}/></div></div></div>}
     {zoom&&<div className="lb" onClick={()=>setZoom(null)}><img src={zoom}/></div>}
   </div>;
 }

+ 0 - 436
web/index_v2.html

@@ -1,436 +0,0 @@
-<!doctype html>
-<html lang="zh">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1">
-<title>创作知识的解构 · v2</title>
-<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
-<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
-<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
-<style>
-  *{box-sizing:border-box}
-  html,body{margin:0;padding:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-size:13px;color:#111827;background:#f5f5f7;height:100vh;overflow:hidden}
-  .app{height:100vh;display:flex;flex-direction:column}
-  header.top{padding:11px 18px 9px;background:#fff;border-bottom:1px solid #e5e7eb;flex:none}
-  header.top h1{margin:0 0 7px;font-size:16px;font-weight:600}
-  .picker{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
-  .picker .lab{font-size:11.5px;color:#9ca3af;margin-right:2px}
-  .pill{font-size:12px;padding:4px 11px;border-radius:14px;border:1px solid #e5e7eb;background:#fff;color:#6b7280;cursor:pointer}
-  .pill:hover{background:#f3f4f6}
-  .pill.on{background:#1e293b;color:#fff;border-color:#1e293b;font-weight:600}
-  .pill .n{font-size:10px;opacity:.7;margin-left:4px}
-  .scroll{flex:1;overflow:auto;background:#f5f5f7;padding-bottom:40px}
-  details.src{margin:10px 18px 0;background:#fff;border:1px solid #e2e8f0;border-radius:6px}
-  details.src summary{padding:8px 14px;cursor:pointer;font-size:12px;color:#475569;list-style:none}
-  details.src summary::before{content:'▶ ';color:#94a3b8;font-size:10px}
-  details.src[open] summary::before{content:'▼ '}
-  .srcbody{padding:4px 16px 12px;font-size:12px}
-  .srcbody a{color:#2563eb;word-break:break-all}
-  .srcprompt{color:#0e7490;font-size:11.5px;cursor:pointer}.srcprompt:hover{text-decoration:underline}
-  .srcimgs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
-  .srcimgs img{width:80px;height:80px;object-fit:cover;border-radius:4px;border:1px solid #e2e8f0;cursor:zoom-in}
-  .barhint{margin:8px 18px 0;font-size:11.5px;color:#6b7280}
-  .ribbon{margin:11px 18px 0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 14px}
-  .rcap{font-size:11.5px;color:#6b7280;margin-bottom:8px}
-  .rsteps{display:flex;align-items:stretch;flex-wrap:wrap}
-  .rstep{flex:1;min-width:148px;border:1px solid #e2e8f0;border-radius:8px;padding:9px 11px;cursor:pointer;background:#f8fafc}
-  .rstep:hover{background:#ecfeff;border-color:#99d5d0}
-  .rstep.auto{cursor:default;background:#f1f5f9;opacity:.9}.rstep.auto:hover{background:#f1f5f9;border-color:#e2e8f0}
-  .rtop{display:flex;align-items:center;gap:7px}
-  .rn{width:18px;height:18px;border-radius:50%;background:#0e7490;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;flex:none}
-  .rstep.auto .rn{background:#94a3b8}
-  .rlab{font-size:13.5px;font-weight:600}
-  .rdesc{font-size:11.5px;color:#6b7280;margin:5px 0 7px;line-height:1.5}
-  .rbtn{font-size:11.5px;color:#0e7490}.rstep.auto .rbtn{color:#94a3b8}
-  .rarrow{display:flex;align-items:center;color:#cbd5e1;font-size:18px;padding:0 4px;flex:none}
-  .pmwhy{font-size:12.5px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:8px 11px;margin-bottom:12px;line-height:1.6}
-  .pmwhy b{color:#78350f}
-  .lbtn{padding:3px 9px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;cursor:pointer;font-size:11.5px;color:#334155;font-family:inherit}
-  .lbtn:hover{background:#f1f5f9}.lbtn.on{background:#fef3c7;border-color:#d97706;color:#92400e;font-weight:600}
-  /* 颗卡 */
-  .kcard{margin:12px 18px 0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}
-  .khead{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid #eef2f7;flex-wrap:wrap}
-  .kno{font-size:11px;font-weight:700;color:#fff;background:#475569;border-radius:4px;padding:1px 7px}
-  .ktype{font-size:11px;font-weight:700;border-radius:4px;padding:1px 8px}
-  .ty-how{background:#cffafe;color:#155e75}.ty-what{background:#fae8ff;color:#86198f}.ty-why{background:#fef9c3;color:#854d0e}
-  .ktitle{font-size:14px;font-weight:600}
-  .krole{font-size:10.5px;padding:1px 6px;border-radius:3px;background:#f1f5f9;color:#64748b}
-  .kref{font-size:11px;color:#0e7490;cursor:pointer}.kref:hover{text-decoration:underline}
-  .srcbtn{cursor:pointer;color:#0e7490;margin-left:3px;user-select:none}.srcbtn:hover{color:#155e75}
-  .srccard{border:1px solid #e2e8f0;border-radius:6px;padding:8px 10px;margin:8px 0;background:#f8fafc}
-  .srccard .ci{font-size:11.5px;color:#6b7280;font-weight:600;margin-bottom:5px}
-  .srccard img{max-width:100%;max-height:360px;border-radius:5px;border:1px solid #e2e8f0;cursor:zoom-in}
-  .srccard video{max-width:100%;max-height:300px;border-radius:5px}
-  .srcread{font-size:12.5px;color:#1f2937;line-height:1.6;margin-top:6px;background:#fff;border-left:3px solid #0e7490;padding:6px 9px}
-  .kbiz{font-size:11px;padding:1px 7px;border-radius:3px;background:#fef3c7;color:#92400e}
-  .kacts{margin-left:auto;display:flex;gap:6px}
-  .kbody{padding:6px 14px 13px}
-  /* how 工序表 */
-  .twrap{overflow:auto;border:1px solid #e5e7eb;border-radius:6px;margin-top:8px}
-  table.proc{width:max-content;min-width:100%;border-collapse:collapse;font-size:12px}
-  table.proc th,table.proc td{border:1px solid #e5e7eb;padding:6px 8px;vertical-align:top;line-height:1.5}
-  table.proc thead th{font-weight:600;text-align:center;font-size:12px;position:sticky;top:0;z-index:3}
-  table.proc thead tr:nth-child(2) th{top:30px}
-  td.idx{width:30px;text-align:center;color:#6b7280;background:#f8fafc}
-  th.c-intent,td.intent{width:210px;min-width:210px;max-width:210px;white-space:pre-wrap}
-  th.c-cstage,td.cstage{width:54px;text-align:center;background:#ecfeff}
-  th.c-act,td.act{min-width:110px;max-width:140px;word-break:break-word;background:#ecfeff}
-  th.c-dir,td.dir{min-width:230px;max-width:330px;white-space:pre-wrap;word-break:break-word;background:#ecfeff}
-  th.c-out,td.out{min-width:160px;max-width:240px;white-space:pre-wrap;background:#ecfeff}
-  th.c-scope,td.scope{width:92px;min-width:92px;max-width:92px;word-break:break-word}
-  th.g-frame{background:#0e7490;color:#fff;cursor:pointer}th.g-frame:hover{background:#155e75}
-  th.g-scope{background:#7c3aed;color:#fff;cursor:pointer}th.g-scope:hover{background:#6d28d9}
-  th.c-idx{background:#475569;color:#fff;vertical-align:middle}
-  thead tr:nth-child(2) th.c-intent,thead tr:nth-child(2) th.c-cstage,thead tr:nth-child(2) th.c-act,thead tr:nth-child(2) th.c-dir,thead tr:nth-child(2) th.c-out{background:#0891b2;color:#fff}
-  thead tr:nth-child(2) th.s-substance{background:#dc2626;color:#fff}thead tr:nth-child(2) th.s-form{background:#2563eb;color:#fff}
-  thead tr:nth-child(2) th.s-feeling{background:#db2777;color:#fff}thead tr:nth-child(2) th.s-effect{background:#16a34a;color:#fff}thead tr:nth-child(2) th.s-intent{background:#d97706;color:#fff}
-  td.scope.s-substance{background:#fef2f2}td.scope.s-form{background:#eff6ff}td.scope.s-feeling{background:#fdf2f8}td.scope.s-effect{background:#f0fdf4}td.scope.s-intent{background:#fffbeb}
-  tr.step>td{border-top:1.5px solid #cbd5e1}
-  .cstage-chip{display:inline-block;font-size:11px;padding:1px 6px;border-radius:10px;background:#ede9fe;color:#5b21b6}
-  .act-chip{display:inline-block;font-size:11.5px;padding:1px 7px;border-radius:4px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
-  .dir-txt{font-size:11.5px;color:#33312c;line-height:1.65}.out-txt{font-size:11.5px;color:#166534}
-  .in-txt{font-size:11.5px;color:#1e40af;line-height:1.6}
-  .cue{font-size:11px;color:#7c2d12;background:#fff7ed;border-left:2px solid #fb923c;padding:3px 7px;margin-top:4px;border-radius:0 4px 4px 0}
-  .cue b{color:#9a3412}
-  .kindb{font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:9px;margin-right:8px;vertical-align:middle;cursor:help}
-  .kind-选项{background:#dbeafe;color:#1e40af}.kind-构成{background:#dcfce7;color:#166534}
-  .ksec-f.key{background:#fde68a;color:#92400e;font-weight:700}
-  .glossbtn{background:#ede9fe!important;color:#6d28d9!important;border-color:#ddd6fe!important}
-  .v2tag{font-size:11px;font-weight:500;color:#fff;background:#7c3aed;padding:2px 9px;border-radius:10px;margin-left:8px;vertical-align:middle}
-  .from{font-size:11px;color:#9ca3af}
-  /* what/why 自由小节 */
-  .def{font-size:13px;background:#fdf4ff;border-left:3px solid #a21caf;border-radius:0 6px 6px 0;padding:8px 12px;margin:6px 0 10px}
-  .ksec{margin:9px 0;padding-left:11px;border-left:3px solid #e2e8f0}
-  .ksec-h{display:flex;align-items:center;gap:7px;margin-bottom:4px}
-  .ksec-t{font-size:13px;font-weight:600;color:#334155}
-  .ksec-f{font-size:10.5px;padding:1px 7px;border-radius:9px;background:#f1f5f9;color:#64748b}
-  .ksec-c{font-size:12.5px;line-height:1.65;color:#1f2937;margin-bottom:4px}
-  table.elem{border-collapse:collapse;width:100%;font-size:12.5px}
-  table.elem td{border:1px solid #f0e6f5;padding:6px 10px;text-align:left;vertical-align:top}
-  table.elem td.el{font-weight:600;color:#86198f;background:#fdf4ff;width:130px}
-  /* why 论点卡 */
-  .why-row{display:flex;gap:10px;margin:7px 0}
-  .why-lab{font-size:11px;font-weight:700;border-radius:4px;padding:2px 8px;flex:none;height:20px}
-  .wl-claim{background:#fef9c3;color:#854d0e}.wl-basis{background:#e0e7ff;color:#3730a3}.wl-impact{background:#dcfce7;color:#166534}
-  .why-txt{font-size:12.5px;line-height:1.65;color:#1f2937}
-  /* 颗级作用域 */
-  .kscopes{margin-top:9px;display:flex;gap:5px;flex-wrap:wrap;align-items:center}
-  .kscopes .lab{font-size:11px;color:#9ca3af}
-  .sv{display:inline-block;cursor:pointer;font-size:11.5px;padding:1px 5px;border-radius:3px;border:1px solid rgba(0,0,0,.08);background:rgba(255,255,255,.7);margin:1px 0}
-  .sv:hover{box-shadow:0 0 0 1px #1e293b}
-  .sv .k{font-size:11.5px;opacity:.85;font-weight:700;margin-right:4px}
-  table.proc th.c-scope{font-size:13.5px}
-  .sv .mk{font-size:9px;padding:0 3px;border-radius:2px;margin-left:3px;vertical-align:top}
-  .mk-new{background:#fde68a;color:#92400e}.mk-reuse{background:#bbf7d0;color:#166534}
-  .sv.s-substance{background:#fef2f2}.sv.s-form{background:#eff6ff}.sv.s-feeling{background:#fdf2f8}.sv.s-effect{background:#f0fdf4}.sv.s-intent{background:#fffbeb}
-  body.hl .sv .mk-new{outline:2px solid #d97706}
-  /* drawer + modal */
-  .ov{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:100}
-  .drawer{position:fixed;right:0;top:0;bottom:0;width:440px;max-width:92vw;background:#fff;box-shadow:-4px 0 16px rgba(0,0,0,.15);z-index:101;overflow-y:auto}
-  .drawer h2{margin:0;padding:13px 16px;background:#1e293b;color:#fff;font-size:14px;display:flex;align-items:center}
-  .drawer h2 .x{margin-left:auto;cursor:pointer;font-size:18px}
-  .dc{padding:14px 16px;font-size:12.5px;line-height:1.6}.dc .row{margin:6px 0}.dc b{color:#374151}
-  .verdict{display:inline-block;padding:2px 9px;border-radius:5px;font-weight:600;font-size:12px}
-  .v-new{background:#fef3c7;color:#92400e}.v-reuse{background:#dcfce7;color:#166534}
-  .nn{margin:5px 0;padding:7px 10px;border:1px solid #e5e7eb;border-radius:5px;background:#f8fafc}
-  .nn .nm{font-weight:600}.nn .sc{float:right;color:#6b7280;font-family:ui-monospace,monospace}
-  .nn .pth{color:#9ca3af;font-size:11px;font-family:ui-monospace,monospace;word-break:break-all}
-  .modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:110;display:flex;align-items:center;justify-content:center;padding:20px}
-  .mbox{background:#fff;width:760px;max-width:94vw;max-height:86vh;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
-  .mbox h2{margin:0;padding:13px 18px;background:#0f766e;color:#fff;font-size:14px;display:flex;align-items:center}
-  .mbox h2 .x{margin-left:auto;cursor:pointer;font-size:18px}
-  .mbox .body{padding:15px 18px;overflow:auto}.mbox pre{margin:0;font:12.5px/1.7 ui-monospace,Menlo,monospace;white-space:pre-wrap;color:#1f2937}
-  /* 提示词 Markdown 渲染 */
-  .md{font-size:13px;line-height:1.7;color:#1f2937}
-  .md h3{font-size:16px;margin:18px 0 8px;padding-bottom:5px;border-bottom:2px solid #0f766e;color:#0f766e}
-  .md h4{font-size:14px;margin:15px 0 6px;color:#0f766e}
-  .md h5,.md h6{font-size:13px;margin:12px 0 5px;color:#115e59}
-  .md p{margin:8px 0}
-  .md strong{color:#9a3412;font-weight:700}
-  .md code{background:#f1f5f9;color:#be123c;padding:1px 5px;border-radius:4px;font:12px ui-monospace,Menlo,monospace}
-  .md pre{background:#0f172a;border-radius:8px;padding:12px 14px;overflow-x:auto;margin:10px 0}
-  .md pre code{background:none;color:#e2e8f0;padding:0;font-size:12px;line-height:1.6}
-  .md blockquote{margin:10px 0;padding:8px 12px;background:#f0fdfa;border-left:3px solid #14b8a6;border-radius:0 6px 6px 0;color:#134e4a}
-  .md ul,.md ol{margin:8px 0;padding-left:22px}.md li{margin:4px 0}
-  .md hr{border:none;border-top:1px dashed #cbd5e1;margin:14px 0}
-  .md table{border-collapse:collapse;width:100%;margin:10px 0;font-size:12.5px}
-  .md th,.md td{border:1px solid #cbd5e1;padding:6px 9px;text-align:left;vertical-align:top}
-  .md th{background:#0f766e;color:#fff;font-weight:600;white-space:nowrap}
-  .md tbody tr:nth-child(even){background:#f8fafc}
-  .md a{color:#0e7490;text-decoration:underline}
-  .md .ptag{font-size:14px;font-weight:700;color:#0f766e;margin:16px 0 7px;padding:4px 10px;background:#ccfbf1;border-radius:6px;display:inline-block}
-  .md .ptag-ex{font-size:12px;font-weight:600;color:#92400e;background:#fef3c7;margin:11px 0 5px;padding:2px 9px}
-  .md .ptag-sub{font-weight:400;font-size:11.5px;opacity:.8;margin-left:7px}
-  .lb{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:120;cursor:zoom-out}.lb img{max-width:92vw;max-height:92vh;border-radius:6px}
-  .empty{color:#9ca3af;padding:50px;text-align:center}
-</style>
-</head>
-<body>
-<div id="root"></div>
-<script type="text/x-jsx" id="app-src">
-const {useState,useEffect}=React;
-const j=u=>fetch(u,{cache:"no-store"}).then(r=>r.json());
-const SCOPES=[["substance","实质"],["form","形式"],["feeling","感受"],["effect","作用"],["intent","意图"]];
-const SC_CN={substance:"实质",form:"形式",feeling:"感受",effect:"作用",intent:"意图"};
-const TYPECN={how:"How 工序",what:"What 构成",why:"Why 原理"};
-// 把提示词里的"黑话"形式标签换成大白话(找不到就原样显示)
-const FORM_PLAIN={"取舍":"怎么用","依据":"为什么对","机制":"怎么起作用","平台逻辑":"平台规则","读者心理":"读者心理","例证":"例子","反例":"反例","判据":"判断标准","对照":"对比","清单":"清单","分类":"分类","定义":"定义","维度":"方面"};
-const plainForm=f=>FORM_PLAIN[f]||f;
-const GLOSSARY=`## 一篇帖子能拆出三种知识(平级的)
-这三种各帮你做一个不同的决定,没有谁更重要。
-
-| 标签 | 大白话 | 它帮你决定 |
-|---|---|---|
-| **怎么做** (How) | 一步步把东西做出来的流程 | 按什么**顺序**做 |
-| **是什么** (What) | 某东西由什么组成 / 有哪些种类 | 用**哪些料** |
-| **为什么** (Why) | 背后的道理、标准、平台规则 | 该**留什么、砍什么** |
-
-## 「是什么」分两种
-- **组成·都要用**(构成型):像配方,列出的几样要**全用上**(例:人物 = 生理+社会+心理)。
-- **可选·挑着用**(选项型):像菜单,列出几种**选一种**用(例:7 种叙事结构挑一种)。
-  - 每个选项后面那句 **👉 什么时候用** 就是「**选择线索**」——告诉你哪种情况该挑它。没有它,就只能背、不会选。
-
-## 「为什么」里每条道理的小标签
-说明这条是哪种支撑:
-- **怎么用**(原"取舍"):这条道理落到创作上——该多写什么、砍什么。**最重要,每条「为什么」都有**。
-- **为什么对**(原"依据"):这条说法凭什么成立。
-- **怎么起作用**(原"机制"):它是怎么运转、起效果的。
-- **平台规则 / 读者心理**:从平台算法、或读者角度的解释。
-- 例子 / 反例 / …:举例支撑(这些标签是开放的,可能还有别的)。`;
-
-const STEPS=[
-  {key:"read",label:"读懂帖子",desc:"把图、视频读成文字",
-   why:"创作知识常在图里、不在正文;这一步只忠实转写、不判断,避免一步干两件事。",
-   src:["/prompt-read/extract.txt"]},
-  {key:"frame",label:"拆出知识",desc:"从文字里拆出一条条知识,理清每条是 怎么做 / 是什么 / 为什么",
-   why:"先判类型再拆——三类成形不同,默认 how 会把纯 what 硬掰成假 how;how 先吸进步骤里的 what/why,吸不进的才独立成一条。",
-   src:["/prompt-skill/phase1-frame.md"]},
-  {key:"scope",label:"给知识归类",desc:"标好 讲什么 / 起什么作用 / 哪个创作环节,再和已有分类库对上号",
-   why:"这 5 类标签最容易串味,又要中途调向量回扣工具;单独一步写厚,避免塞进一个提示词复杂到死循环。",
-   src:["/prompt-skill/phase2-scope.md"]},
-  {key:"store",label:"存进知识库",desc:"整理成统一格式存起来,供以后调用",
-   why:"纯拼接 + 校验的确定性活,程序自动做——没有提示词,让 AI 来干只会帮倒忙。",
-   src:null}
-];
-const STEPMAP={}; STEPS.forEach(s=>STEPMAP[s.key]=s);
-
-// 极简 Markdown 渲染(自带、无外部依赖):标题/表格/代码/引用/列表/加粗/行内码/链接
-function mdToHtml(src){
-  var escc=function(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");};
-  var inline=function(t){
-    t=escc(t);
-    t=t.replace(/`([^`]+)`/g,'<code>$1</code>');
-    t=t.replace(/\*\*([^*]+)\*\*/g,'<strong>$1</strong>');
-    t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank">$1</a>');
-    return t;
-  };
-  var L=(src||"").split("\n"), out=[], i=0;
-  var isStruct=function(s){return /^```/.test(s)||/^\s*#{1,6}\s/.test(s)||/^\s*>\s?/.test(s)||/^\s*[-*]\s+/.test(s)||/^\s*\d+\.\s+/.test(s)||/^\s*([-*_])(\s*\1){2,}\s*$/.test(s)||/^\s*\|/.test(s)||/^\s*<\/?[^<>]+>/.test(s);};
-  while(i<L.length){
-    var ln=L[i];
-    if(/^```/.test(ln)){ var b=[]; i++; while(i<L.length&&!/^```/.test(L[i])){b.push(L[i]);i++;} i++; out.push("<pre><code>"+escc(b.join("\n"))+"</code></pre>"); continue; }
-    if(/^\s*\|/.test(ln)&&i+1<L.length&&/^\s*\|?[\s:|-]*-[\s:|-]*\|?\s*$/.test(L[i+1])){
-      var head=ln, rows=[]; i+=2;
-      while(i<L.length&&/^\s*\|/.test(L[i])&&L[i].trim()!==""){rows.push(L[i]);i++;}
-      var cells=function(r){r=r.trim().replace(/^\|/,"").replace(/\|$/,"");return r.split("|").map(function(c){return c.trim();});};
-      var th=cells(head).map(function(c){return "<th>"+inline(c)+"</th>";}).join("");
-      var tb=rows.map(function(r){return "<tr>"+cells(r).map(function(c){return "<td>"+inline(c)+"</td>";}).join("")+"</tr>";}).join("");
-      out.push("<table><thead><tr>"+th+"</tr></thead><tbody>"+tb+"</tbody></table>"); continue;
-    }
-    if(/^\s*([-*_])(\s*\1){2,}\s*$/.test(ln)){ out.push("<hr/>"); i++; continue; }
-    var tag=ln.match(/^\s*<(\/?)([^<>\/][^<>]*)>\s*(.*)$/);  // 行首伪标签(如 <工作要点> / <example> 描述)→ 当小节标题
-    if(tag){ if(tag[1]){i++;continue;} var nm=tag[2], rest=tag[3].trim(), ex=/^example$/i.test(nm);
-      out.push('<div class="ptag'+(ex?' ptag-ex':'')+'">'+inline(ex?'示例':nm)+(rest?'<span class="ptag-sub">'+inline(rest)+'</span>':'')+"</div>"); i++; continue; }
-    var h=ln.match(/^\s*(#{1,6})\s+(.*)$/);
-    if(h){ var lv=Math.min(h[1].length+2,6); out.push("<h"+lv+">"+inline(h[2])+"</h"+lv+">"); i++; continue; }
-    if(/^\s*>\s?/.test(ln)){ var q=[]; while(i<L.length&&/^\s*>\s?/.test(L[i])){q.push(inline(L[i].replace(/^\s*>\s?/,"")));i++;} out.push("<blockquote>"+q.join("<br/>")+"</blockquote>"); continue; }
-    if(/^\s*[-*]\s+/.test(ln)){ var ul=[]; while(i<L.length&&/^\s*[-*]\s+/.test(L[i])){ul.push("<li>"+inline(L[i].replace(/^\s*[-*]\s+/,""))+"</li>");i++;} out.push("<ul>"+ul.join("")+"</ul>"); continue; }
-    if(/^\s*\d+\.\s+/.test(ln)){ var ol=[]; while(i<L.length&&/^\s*\d+\.\s+/.test(L[i])){ol.push("<li>"+inline(L[i].replace(/^\s*\d+\.\s+/,""))+"</li>");i++;} out.push("<ol>"+ol.join("")+"</ol>"); continue; }
-    if(ln.trim()===""){ i++; continue; }
-    var p=[]; while(i<L.length&&L[i].trim()!==""&&!isStruct(L[i])){p.push(inline(L[i]));i++;} out.push("<p>"+p.join("<br/>")+"</p>");
-  }
-  return out.join("\n");
-}
-
-function Ribbon({onOpen}){
-  return <div className="ribbon">
-    <div className="rcap">这套系统怎么「从帖子拆解知识」——点任一步看它的提示词</div>
-    <div className="rsteps">{STEPS.map((s,i)=><React.Fragment key={s.key}>
-      {i>0&&<span className="rarrow">→</span>}
-      <div className={"rstep"+(s.src?"":" auto")} onClick={()=>onOpen(s.key)}>
-        <div className="rtop"><span className="rn">{i+1}</span><span className="rlab">{s.label}</span></div>
-        <div className="rdesc">{s.desc}</div>
-        <div className="rbtn">{s.src?"📄 看提示词":"⚙️ 程序自动"}</div>
-      </div></React.Fragment>)}</div>
-  </div>;
-}
-
-function ScopeChip({x,onScope,showType}){
-  return <span className={"sv s-"+x.scope_type} onClick={()=>onScope(x)}>{showType&&<span className="k">{SC_CN[x.scope_type]||x.scope_type}</span>}{x.value}<span className={"mk "+(x.link==="复用"?"mk-reuse":"mk-new")}>{x.link==="复用"?"复":"新"}</span></span>;
-}
-function KScopes({list,onScope}){
-  if(!list||!list.length) return null;
-  return <div className="kscopes"><span className="lab">作用域(5 棵树):</span>
-    {list.map((x,i)=><ScopeChip key={i} x={{...x}} onScope={onScope} showType={true}/>)}</div>;
-}
-
-function HowTable({k,onScope,onPrompt,onSource}){
-  const steps=k.steps||[];
-  const scOf=(s,t)=>(s.作用域||[]).filter(x=>x.scope_type===t);
-  return <div className="twrap"><table className="proc">
-    <thead>
-      <tr><th className="c-idx" rowSpan="2">#</th>
-        <th className="g-frame" colSpan="5" onClick={()=>onPrompt("frame")}>② 拆框架 + 轻标签 ▸ 提示词</th>
-        <th className="g-scope" colSpan="5" onClick={()=>onPrompt("scope")}>③ 作用域 ▸ 提示词</th></tr>
-      <tr><th className="c-intent">输入</th><th className="c-cstage">创作<br/>阶段</th><th className="c-act">动作</th><th className="c-dir">方法</th><th className="c-out">产出</th>
-        {SCOPES.map(([kk,cn])=><th key={kk} className={"c-scope s-"+kk}>{cn}</th>)}</tr>
-    </thead>
-    <tbody>{steps.map((s,i)=><tr className="step" key={i}>
-      <td className="idx">{i+1}</td>
-      <td className="intent"><span className="in-txt">{s.input}</span>{s.出处&&s.出处.length>0&&<span className="srcbtn" title={"看原文出处 "+s.出处.join(" ")} onClick={()=>onSource(s.出处)}>🔍</span>}</td>
-      <td className="cstage">{s.创作阶段&&<span className="cstage-chip">{s.创作阶段}</span>}</td>
-      <td className="act">{s.动作&&<span className="act-chip">{s.动作}</span>}</td>
-      <td className="dir"><span className="dir-txt">{s.directive}</span></td>
-      <td className="out"><span className="out-txt">{s.output}</span></td>
-      {SCOPES.map(([kk])=><td key={kk} className={"scope s-"+kk}>{scOf(s,kk).map((x,j)=><ScopeChip key={j} x={x} onScope={onScope}/>)}</td>)}
-    </tr>)}</tbody>
-  </table></div>;
-}
-function KSection({b}){
-  const items=b.条目||[];
-  const isKey=b.形式==="取舍";
-  return <div className="ksec">
-    <div className="ksec-h">{b.小标题&&<span className="ksec-t">{b.小标题}</span>}{b.形式&&<span className={"ksec-f"+(isKey?" key":"")} title={"原标签:"+b.形式}>{isKey?"💡 ":""}{plainForm(b.形式)}</span>}</div>
-    {b.内容&&<div className="ksec-c">{b.内容}</div>}
-    {items.length>0&&<table className="elem"><tbody>{items.map((c,i)=><tr key={i}>
-      <td className="el">{c.词||c.要素}</td><td>{c.说明}{c.选择线索&&<div className="cue"><b>👉 什么时候用:</b>{c.选择线索}</div>}</td></tr>)}</tbody></table>}
-  </div>;
-}
-function WhatCard({k,onScope,onGloss}){
-  return <div>
-    {k.界定&&<div className="def">{k.kind&&<span className={"kindb kind-"+k.kind} title="点开「名词说明」看区别" onClick={()=>onGloss&&onGloss()}>{k.kind==="选项"?"🎯 可选·挑着用":"🧩 组成·都要用"}</span>}界定:{k.界定}</div>}
-    {(k.主体||[]).map((b,i)=><KSection key={i} b={b}/>)}
-    <KScopes list={k.作用域} onScope={onScope}/>
-  </div>;
-}
-function WhyCard({k,onScope}){
-  return <div>
-    {k.主张&&<div className="why-row"><span className="why-lab wl-claim">主张</span><span className="why-txt">{k.主张}</span></div>}
-    {(k.支撑||[]).map((b,i)=><KSection key={i} b={b}/>)}
-    <KScopes list={k.作用域} onScope={onScope}/>
-  </div>;
-}
-
-function KnowledgeCard({k,idx,onScope,onPrompt,onJson,onSource,payload,how_titles,onGloss}){
-  const par=k.parent;
-  return <div className="kcard" id={"k-"+k.id}>
-    <div className="khead">
-      <span className="kno">第{idx+1}颗</span>
-      <span className={"ktype ty-"+k.type}>{TYPECN[k.type]}</span>
-      <span className="ktitle">{k.title}</span>
-      {k.出处&&k.出处.length>0&&<span className="kref" title={"看原文出处 "+k.出处.join(" ")} onClick={()=>onSource(k.出处)}>🔍 出处 {k.出处.join(" ")}</span>}
-      {par&&<span className="kref" onClick={()=>{var e=document.getElementById("k-"+par.how_id);if(e)e.scrollIntoView({behavior:"smooth",block:"center"});}}>↑ 出自「{how_titles[par.how_id]||par.how_id}」第{par.step}步</span>}
-      {(k.业务阶段||[]).map((b,i)=><span key={i} className="kbiz">业务阶段:{b}</span>)}
-      <span className="kacts">{payload&&<button className="lbtn" onClick={()=>onJson(payload)}>⚙️ 入库 payload</button>}</span>
-    </div>
-    <div className="kbody">
-      {k.type==="how"&&<HowTable k={k} onScope={onScope} onPrompt={onPrompt} onSource={onSource}/>}
-      {k.type==="what"&&<WhatCard k={k} onScope={onScope} onGloss={onGloss}/>}
-      {k.type==="why"&&<WhyCard k={k} onScope={onScope}/>}
-    </div>
-  </div>;
-}
-
-function App(){
-  const [items,setItems]=useState([]);
-  const [sel,setSel]=useState(0);
-  const [scope,setScope]=useState(null);
-  const [pm,setPm]=useState(null);
-  const [json,setJson]=useState(null);
-  const [zoom,setZoom]=useState(null);
-  const [src,setSrc]=useState(null);
-  const [hl,setHl]=useState(false);
-  const [gloss,setGloss]=useState(false);
-  useEffect(()=>{Promise.all([j("/frameworks_v2.json"),j("/payloads_v2.json").catch(()=>[])]).then(([f,pl])=>{
-    setItems((f.posts||[]).map(p=>({...p,payloads:(pl||[]).filter(x=>(x.source||{}).id===(p.source_id||("xhs_"+p.post_id)))})));});},[]);
-  useEffect(()=>{document.body.classList.toggle("hl",hl);},[hl]);
-  function openPrompt(key){
-    const st=STEPMAP[key]; if(!st) return;
-    if(!st.src){ setPm({label:st.label,why:st.why,text:"(这一步是程序自动完成的,没有提示词。)"}); return; }
-    setPm({label:st.label,why:st.why,text:"加载中…"});
-    Promise.all(st.src.map(u=>fetch(u,{cache:"no-store"}).then(r=>r.ok?r.text():"(未找到 "+u+")").catch(()=>"(加载失败 "+u+")")))
-      .then(txts=>setPm({label:st.label,why:st.why,text:txts.join("\n\n──────\n\n")}));
-  }
-  if(!items.length) return <div className="empty">加载中…</div>;
-  const it=items[sel];
-  const ks=it.knowledges||[];
-  const how_titles={}; ks.forEach(k=>{if(k.type==="how")how_titles[k.id]=k.title;});
-  const payloadOf=k=>(it.payloads||[]).find(p=>p.title===k.title);
-  const media=it.media||{}; const imgs=media.images||[]; const videoUrl=media.video_url;
-  const cardsById={}; (it.cards||[]).forEach(c=>cardsById[c.index]=c);
-  const openSource=list=>{var cs=(list||[]).map(s=>{var m=String(s).match(/\d+/);return m?cardsById[parseInt(m[0])]:null;}).filter(Boolean);if(cs.length)setSrc({cards:cs});};
-  const fmtT=s=>{s=Math.floor(s||0);return Math.floor(s/60)+":"+String(s%60).padStart(2,"0");};
-  return <div className="app">
-    <header className="top">
-      <h1>创作知识的解构 <span className="v2tag">v2 · 决策落点版(How 输入→方法→产出 / What 选项+选择线索 / Why 必带取舍)</span></h1>
-      <div className="picker"><span className="lab">帖子:</span>
-        {items.map((x,i)=><div key={i} className={"pill"+(sel===i?" on":"")} onClick={()=>{setSel(i);setScope(null);}}>{x.title.slice(0,16)}<span className="n">{(x.knowledges||[]).length}颗</span></div>)}
-      </div>
-    </header>
-    <div className="scroll">
-      <Ribbon onOpen={openPrompt}/>
-      <details className="src"><summary>原帖:{it.title}(这一帖的原料)· {it.platform}{videoUrl?" · 视频":""}</summary>
-        <div className="srcbody"><a href={it.url} target="_blank" rel="noreferrer">{it.url}</a>
-          {videoUrl
-            ? <div style={{marginTop:8}}><video src={videoUrl} controls style={{maxWidth:"380px",maxHeight:"320px",borderRadius:"6px",border:"1px solid #e2e8f0"}}/></div>
-            : <div className="srcimgs">{imgs.map((u,i)=><img key={i} src={u} onClick={()=>setZoom(u)} onError={e=>e.target.style.display='none'}/>)}</div>}
-        </div>
-      </details>
-      <div className="barhint" style={{display:"flex",gap:8,alignItems:"center"}}>
-        <span>这一帖拆出 <b>{ks.length}</b> 颗知识(how 工序表 / what 构成卡 / why 论点卡);组件颗标「出自某 how 第 N 步」可点跳。</span>
-        <button className="lbtn glossbtn" onClick={()=>setGloss(true)} style={{marginLeft:"auto"}}>❓ 名词说明</button>
-        <button className={"lbtn"+(hl?" on":"")} onClick={()=>setHl(!hl)}>高亮「新值」</button>
-      </div>
-      {ks.length===0 && <div className="kcard"><div className="kbody" style={{padding:"20px 16px",color:"#9ca3af",fontSize:"13px"}}>🚫 这帖<b style={{color:"#6b7280"}}>没有可提取的创作知识</b>(纯作品 / 展示 / 无关)——① 读懂时 <code>is_empty=true</code>,后面拆颗/归类/入库已自动跳过。</div></div>}
-      {ks.map((k,i)=><KnowledgeCard key={i} k={k} idx={i} onScope={setScope} onPrompt={openPrompt} onJson={setJson} onSource={openSource} payload={payloadOf(k)} how_titles={how_titles} onGloss={()=>setGloss(true)}/>)}
-    </div>
-    {scope&&<div><div className="ov" onClick={()=>setScope(null)}></div>
-      <div className="drawer"><h2>作用域回扣详情<span className="x" onClick={()=>setScope(null)}>×</span></h2>
-        <div className="dc">
-          <div className="row"><b>提取候选值</b>:{scope.candidate||scope.value}</div>
-          <div className="row"><b>判定</b>:<span className={"verdict "+(scope.link==="复用"?"v-reuse":"v-new")}>{scope.link==="复用"?"复用现有节点":"新建(树里没有)"}</span> = 最近邻 {scope.score}</div>
-          <div className="row"><b>最终入库值</b>:{scope.value}</div>
-          <h3 style={{margin:"12px 0 6px",fontSize:12.5,color:"#475569"}}>分类树最近邻 top-{(scope.top||[]).length}(火山余弦)</h3>
-          {(scope.top||[]).map((h,i)=><div className="nn" key={i}><span className="sc">{h.score}</span><span className="nm">{h.name}</span><div className="pth">{h.path}</div></div>)}
-          {(!scope.top||!scope.top.length)&&<div style={{color:"#9ca3af"}}>无最近邻</div>}
-        </div></div></div>}
-    {pm&&<div className="modal" onClick={()=>setPm(null)}><div className="mbox" onClick={e=>e.stopPropagation()}>
-      <h2>📄 {pm.label} · 这一步的提示词<span className="x" onClick={()=>setPm(null)}>×</span></h2>
-      <div className="body">
-        <div className="pmwhy"><b>为什么这么做:</b>{pm.why}</div>
-        {pm.text==="加载中…"?<pre>{pm.text}</pre>:<div className="md" dangerouslySetInnerHTML={{__html:mdToHtml(pm.text)}}/>}</div></div></div>}
-    {json&&<div className="modal" onClick={()=>setJson(null)}><div className="mbox" onClick={e=>e.stopPropagation()}>
-      <h2>⚙️ ingest payload(给机器看)<span className="x" onClick={()=>setJson(null)}>×</span></h2>
-      <div className="body"><pre>{JSON.stringify(json,null,2)}</pre></div></div></div>}
-    {src&&<div className="modal" onClick={()=>setSrc(null)}><div className="mbox" onClick={e=>e.stopPropagation()}>
-      <h2>🔍 原文出处(① 读到的卡片)<span className="x" onClick={()=>setSrc(null)}>×</span></h2>
-      <div className="body">{src.cards.map((c,i)=><div className="srccard" key={i}>
-        <div className="ci">卡片{c.index}{c.start!=null?(" · "+fmtT(c.start)+"–"+fmtT(c.end)):""}</div>
-        {c.image_url&&<img src={c.image_url} onClick={()=>setZoom(c.image_url)} onError={e=>e.target.style.display='none'}/>}
-        {c.video_url&&<video src={c.video_url+(c.start!=null?("#t="+Math.floor(c.start)+","+Math.floor(c.end)):"")} controls/>}
-        {c.content?<div className="srcread">① 在这张卡读到的:{c.content}</div>:<div style={{color:"#9ca3af",fontSize:"12px",marginTop:5}}>(这张卡没读到要点)</div>}
-      </div>)}</div></div></div>}
-    {gloss&&<div className="modal" onClick={()=>setGloss(false)}><div className="mbox" onClick={e=>e.stopPropagation()}>
-      <h2>❓ 名词说明 · 用大白话讲清楚<span className="x" onClick={()=>setGloss(false)}>×</span></h2>
-      <div className="body"><div className="md" dangerouslySetInnerHTML={{__html:mdToHtml(GLOSSARY)}}/></div></div></div>}
-    {zoom&&<div className="lb" onClick={()=>setZoom(null)}><img src={zoom}/></div>}
-  </div>;
-}
-ReactDOM.createRoot(document.getElementById("root")).render(<App/>);
-</script>
-<script>
-(function(){var src=document.getElementById("app-src").textContent;
- var out=Babel.transform(src,{presets:[["react",{runtime:"classic"}]]}).code;(0,eval)(out);})();
-</script>
-</body>
-</html>

File diff suppressed because it is too large
+ 224 - 360
web/payloads.json


+ 0 - 1066
web/payloads_v2.json

@@ -1,1066 +0,0 @@
-[
-  {
-    "source": {
-      "id": "xhs_699308fa0000000016009697",
-      "source_type": "post",
-      "title": "真正能爆的选题,往往是你写完后感觉羞耻的",
-      "author": "方圆的增长飞轮",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/699308fa0000000016009697"
-      }
-    },
-    "title": "爆款选题的“撕裂共识”挖掘法",
-    "content": "目标:通过撕裂大众共识产出一个具有爆发潜力的选题\n步骤1\n  输入:赛道内的爆款内容或大号共识\n  方法:列出赛道大号反复强调的“圣经句”(正确共识),并反问:什么情况下,一个人严格按这句话做,反而越做越差?寻找共识失灵的瞬间。\n  产出:← 圣经句的失灵场景\n步骤2\n  输入:← 圣经句的失灵场景\n  方法:将裂缝撕开,把这个“正确答案不好使”的真实反馈转化为选题。确保选题通过“情绪审核”,即发出前你会感到犹豫或羞耻。\n  产出:具有冒犯感/羞耻感的爆款选题",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "how工序"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "共识失灵场景"
-      },
-      {
-        "scope_type": "form",
-        "value": "逆向提问"
-      },
-      {
-        "scope_type": "effect",
-        "value": "认知挑战"
-      },
-      {
-        "scope_type": "substance",
-        "value": "撕裂感选题"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "冒犯感"
-      },
-      {
-        "scope_type": "intent",
-        "value": "爆款"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "选题"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "定向"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "构思"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "共识反向推导"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "痛点挖掘"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_699308fa0000000016009697",
-      "source_type": "post",
-      "title": "真正能爆的选题,往往是你写完后感觉羞耻的",
-      "author": "方圆的增长飞轮",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/699308fa0000000016009697"
-      }
-    },
-    "title": "评论区“但是”选题法",
-    "content": "目标:从用户真实反馈中直接获取经过验证的选题\n步骤1\n  输入:竞品的爆款视频及其评论区\n  方法:在竞品爆款视频评论区中寻找关键词“但是”。重点关注那些符合“道理我都懂,但是……”逻辑的评论。例:『内容为王我懂,但是我现在天天投流也没量。』\n  产出:用户内心真实的抵触点/痛点\n步骤2\n  输入:← 用户内心真实的抵触点/痛点\n  方法:直接将这个“但是”后的内容转化为选题,帮观众说出他们想说但没人说的话。\n  产出:源于市场真实需求的选题",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "how工序"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "用户抵触点"
-      },
-      {
-        "scope_type": "form",
-        "value": "关键词"
-      },
-      {
-        "scope_type": "effect",
-        "value": "痛点"
-      },
-      {
-        "scope_type": "substance",
-        "value": "市场需求选题"
-      },
-      {
-        "scope_type": "effect",
-        "value": "情感共鸣"
-      },
-      {
-        "scope_type": "intent",
-        "value": "转发"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "选题"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "定向"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "构思"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "评论区调研"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "需求转化"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_699308fa0000000016009697",
-      "source_type": "post",
-      "title": "真正能爆的选题,往往是你写完后感觉羞耻的",
-      "author": "方圆的增长飞轮",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/699308fa0000000016009697"
-      }
-    },
-    "title": "选题潜力潜力自测指标",
-    "content": "界定:通过创作者的情绪反馈来判断选题是否具备爆款潜力。(选项型)\n【情绪自测对照】(对照)\n  - 正确但无感:发出前觉得挑不出毛病,内心毫无波动。(选用:对应“平平”的选题,极大概率不会点击和转发。)\n  - 羞耻与犹豫:怕别人觉得在装、怕太直白、怕冒犯。觉得“不好意思”。(选用:对应“爆款”潜力,说明踩到了大众神经或社交礼仪封存的痛点。)",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "指标自测"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "犹豫羞耻感"
-      },
-      {
-        "scope_type": "effect",
-        "value": "潜力评估"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "选题"
-      },
-      {
-        "key": "出自",
-        "type": "str",
-        "value": "爆款选题的“撕裂共识”挖掘法 第2步"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_699308fa0000000016009697",
-      "source_type": "post",
-      "title": "真正能爆的选题,往往是你写完后感觉羞耻的",
-      "author": "方圆的增长飞轮",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/699308fa0000000016009697"
-      }
-    },
-    "title": "选题的“撕裂共识”原理",
-    "content": "主张:普通的选题在加固一个信念,而爆款在撕裂一个信念。\n【传播机制】(机制)\n  爆款通常是对某种“正确共识”的冒犯。没有情绪触发就没有转发,创作者感到安全没风险,观众通常就没感觉。\n【对创作的取舍】(取舍)\n  应舍弃一味追求“政治正确”或“专业理性”的干货逻辑。这种逻辑只通过了“大脑审核”而忽略了“情绪审核”。创作时该侧重去刻画那些“真实但平时大家不敢说出口”的内容,主动寻找或制造与大众既定共识的对抗感。",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "why原理"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "撕裂共识原理"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "情绪触发"
-      },
-      {
-        "scope_type": "effect",
-        "value": "传播机制"
-      },
-      {
-        "scope_type": "intent",
-        "value": "社交货币"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "灵感"
-      },
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "选题"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_698481e1000000000a02a7c1",
-      "source_type": "post",
-      "title": "7种编剧常用的叙事结构,写剧不用愁!",
-      "author": "Irvin是个编剧(接稿版)",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/698481e1000000000a02a7c1"
-      }
-    },
-    "title": "7种编剧常用叙事结构清单",
-    "content": "界定:编剧创作中用于组织情节发展、安排时间线与视角的七种经典逻辑框架。(选项型)\n【叙事结构选项】(清单)\n  - 三幕式结构:最基础的线性叙事。分为:第一幕(开端)交代背景、人设及冲突触发;第二幕(发展)是主体,核心冲突升级,经历人物成长与阻碍;第三幕(高潮与结局)矛盾爆发并最终解决。(选用:适合追求严谨线性逻辑、标准商业电影叙事的创作。)\n  - 英雄之旅:核心是“平凡人到英雄的蜕变”。包含:启程(离开舒适区)、考验(认知世界、对抗反派)、归来(战胜危机获得收获)三个阶段。(选用:适合强调主角个人成长、动作冒险或励志类题材。)\n  - 非线性结构:打破时间先后顺序。利用闪回、倒叙、多视角等方式,根据主题刻意调整时间线,制造悬念。(选用:适合需要通过时间线错位解构主题或增加悬疑感的创作。)\n  - 环形结构:首尾呼应形成闭环。分为非循环类(场景台词呼应,产生宿命感)和带循环类(重复经历事件直到打破循环)。(选用:适合表达宿命论、轮回感或需要强调首尾逻辑闭合的故事。)\n  - 多线叙事:多条独立故事线并行推进,在某个节点交汇。(选用:适合群像戏,用于丰富故事维度或展现宏大全局。)\n  - 嵌套式结构:故事里套故事(戏中戏、梦中梦)。外层故事作为引子,内外层形成呼应或推动关系。(选用:用于拓展想象空间,探讨现实与虚构/梦境的界限。)\n  - 反结构:抛弃传统线性逻辑与核心冲突,情节由碎片化片段拼接而成。注重氛围、情绪和人性探讨,可能没有完整结局。(选用:适合意识流、艺术片或强情绪表达、非传统冲突驱动的创作。)",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "叙事结构"
-      },
-      {
-        "scope_type": "form",
-        "value": "分类清单"
-      },
-      {
-        "scope_type": "effect",
-        "value": "情节组织"
-      },
-      {
-        "scope_type": "intent",
-        "value": "创作框架"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_67e2e39b0000000003028ff0",
-      "source_type": "post",
-      "title": "剧本创作:理解前提、人物、冲突",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/67e2e39b0000000003028ff0"
-      }
-    },
-    "title": "剧本故事构建工序",
-    "content": "目标:将灵感转化为包含前提、人物与冲突的剧本结构\n步骤1\n  输入:创作灵感\n  方法:明确前提(即剧本目标),公式为:作者立场+人物+冲突+结论。例:『节俭导致浪费』,其中节俭是立场,浪费是结论。\n  产出:故事前提\n步骤2\n  输入:← s1产出\n  方法:依据前提构建人物。从生理(性别/年龄/体貌等)、社会(阶层/职业等)、心理(道德/志向等)三维度融合,并确保人物具备将奋斗进行到底的意志力。\n  产出:三维度人物设定\n步骤3\n  输入:← s2产出\n  方法:通过主使人物与对立人物的意志碰撞发现冲突。确保冲突从简单起步,通过攻击—反击实现缓慢升级。\n  产出:升级的冲突路径\n步骤4\n  输入:← s3产出\n  方法:选择包含决定点的切入点进入故事。通过小的冲突(过渡)改变人物状态,直至危机(转折点)爆发产生高潮与结局。\n  产出:完整的剧本结构设计",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "how工序"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "剧本前提"
-      },
-      {
-        "scope_type": "form",
-        "value": "命题公式"
-      },
-      {
-        "scope_type": "effect",
-        "value": "创作导向"
-      },
-      {
-        "scope_type": "substance",
-        "value": "人物塑造"
-      },
-      {
-        "scope_type": "form",
-        "value": "三维建模"
-      },
-      {
-        "scope_type": "effect",
-        "value": "叙事驱动力"
-      },
-      {
-        "scope_type": "substance",
-        "value": "戏剧冲突"
-      },
-      {
-        "scope_type": "effect",
-        "value": "节奏升级"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "紧张感"
-      },
-      {
-        "scope_type": "substance",
-        "value": "情节结构"
-      },
-      {
-        "scope_type": "form",
-        "value": "起承转合"
-      },
-      {
-        "scope_type": "intent",
-        "value": "逻辑自洽"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "定向"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "构思"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "结构"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "确立前提"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "人物建模"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "设计冲突"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "布局场景结构"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_67e2e39b0000000003028ff0",
-      "source_type": "post",
-      "title": "剧本创作:理解前提、人物、冲突",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/67e2e39b0000000003028ff0"
-      }
-    },
-    "title": "人物构建的三维度模型",
-    "content": "界定:人物是其生理特征与环境在特定时刻影响的总和,需从内到外完整拆解。(构成型)\n【生理维度】\n  - 生理因素:包含性别、年龄、体貌、遗传等特征。\n【社会维度】\n  - 社会环境:包含阶层、职业、教育、家庭等背景。\n【心理维度】\n  - 心理特质:包含道德标准、志向、挫折、性格、态度等。",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "人物特质"
-      },
-      {
-        "scope_type": "form",
-        "value": "三维度模型"
-      },
-      {
-        "scope_type": "effect",
-        "value": "真实感"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      },
-      {
-        "key": "出自",
-        "type": "str",
-        "value": "剧本故事构建工序 第2步"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_67e2e39b0000000003028ff0",
-      "source_type": "post",
-      "title": "剧本创作:理解前提、人物、冲突",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/67e2e39b0000000003028ff0"
-      }
-    },
-    "title": "戏剧冲突的四种类型",
-    "content": "界定:根据意志与阻碍力碰撞的呈现状态对冲突进行分类。(选项型)\n【冲突形态分类】\n  - 静态冲突:内部无可见的发展进度。(选用:常表现为僵局或停顿状态。)\n  - 跳跃冲突:强迫人物做出与其性格不相符的突发行动。(选用:需要剧烈的情节转折时使用。)\n  - 缓慢升级冲突:逻辑清晰地递增紧张感。(选用:追求剧本扎实逻辑和真实情感共鸣时作为首选。)\n  - 预示冲突:通过坚定的对手与不妥协的张力表现。(选用:用于建立长期威胁或势均力敌的对峙感。)",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "冲突形态"
-      },
-      {
-        "scope_type": "effect",
-        "value": "叙理逻辑"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "情感共鸣"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      },
-      {
-        "key": "出自",
-        "type": "str",
-        "value": "剧本故事构建工序 第3步"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_67e2e39b0000000003028ff0",
-      "source_type": "post",
-      "title": "剧本创作:理解前提、人物、冲突",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/67e2e39b0000000003028ff0"
-      }
-    },
-    "title": "意志力与冲突平衡原理",
-    "content": "主张:冲突的质量取决于对抗双方意志的平衡与强韧度。\n【对抗机制】(机制)\n  主使人物(主角)与对立人物必须实力相当、意志平衡。人物必须有足够的意志力将奋斗进行到底,否则冲突将提前瓦解。\n【创作取舍】(取舍)\n  在设定人物时,应当侧重赋予其明确的驱动力和对抗强度,避免因一方过于软弱而导致故事动力过早消失。",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "why原理"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "人物意志力"
-      },
-      {
-        "scope_type": "effect",
-        "value": "对抗机制"
-      },
-      {
-        "scope_type": "intent",
-        "value": "故事动力"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_680659e8000000001a007a11",
-      "source_type": "post",
-      "title": "故事设计原理拆解学习",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/680659e8000000001a007a11"
-      }
-    },
-    "title": "场景分析五步程序",
-    "content": "目标:通过系统分析确定场景的冲突、动作与转折效果\n步骤1\n  输入:原始剧本/剧集场景\n  方法:确定冲突,明确场景目标与对抗力量\n  产出:场景核心冲突点\n步骤2\n  输入:← s1产出\n  方法:标注开篇价值,判断是正向还是负向状态\n  产出:场景起始价值状态\n步骤3\n  输入:← s2产出\n  方法:将场景分解为节拍,观察角色间的动作/反应交流\n  产出:节拍序列\n步骤4\n  输入:← s3产出\n  方法:标注结尾价值并与开篇价值进行比较,看是否有变化\n  产出:价值转变结果\n步骤5\n  输入:← s4产出\n  方法:概述节拍并标注出转折点发生的具体位置\n  产出:完整的场景分析报告",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "how工序"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "剧本冲突"
-      },
-      {
-        "scope_type": "effect",
-        "value": "场景目标设定"
-      },
-      {
-        "scope_type": "substance",
-        "value": "价值状态"
-      },
-      {
-        "scope_type": "effect",
-        "value": "起始点标注"
-      },
-      {
-        "scope_type": "substance",
-        "value": "叙事节拍"
-      },
-      {
-        "scope_type": "form",
-        "value": "动作反应序列"
-      },
-      {
-        "scope_type": "effect",
-        "value": "价值转变"
-      },
-      {
-        "scope_type": "intent",
-        "value": "逻辑"
-      },
-      {
-        "scope_type": "form",
-        "value": "场景分析报告"
-      },
-      {
-        "scope_type": "effect",
-        "value": "转折点"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "打磨"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "冲突拆解"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "状态标注"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "结构拆解"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "效果复核"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "综合复盘"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_680659e8000000001a007a11",
-      "source_type": "post",
-      "title": "故事设计原理拆解学习",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/680659e8000000001a007a11"
-      }
-    },
-    "title": "故事弧线的五部分构成",
-    "content": "界定:构成故事叙事完整弧线的五个核心阶段。(构成型)\n【叙事要素清单】(清单)\n  - 阐述:交代背景人设\n  - 激励事件:诱发事件,分为随机型和有因型即主角抉择\n  - 进展纠葛:上升动作\n  - 危机/高潮:情节突转与问题解决\n  - 结局:下降动作,展示高潮影响及为次情节收口",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "叙事弧线"
-      },
-      {
-        "scope_type": "form",
-        "value": "五段式结构"
-      },
-      {
-        "scope_type": "effect",
-        "value": "情节推进"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      },
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "选题"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_680659e8000000001a007a11",
-      "source_type": "post",
-      "title": "故事设计原理拆解学习",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/680659e8000000001a007a11"
-      }
-    },
-    "title": "激励事件的选择类型",
-    "content": "界定:打破故事平衡并捕获好奇心的诱发事件分类。(选项型)\n【发生形式】(分类)\n  - 随机型:偶然发生的事件(选用:用于表现命运的无常或外部环境的剧烈变动)\n  - 有因型:由主角主动抉择导致(选用:用于强调主角性格特征或主动性动机)\n【构思逻辑】(对策)\n  关注发生在主角身上最坏或最好的事情如何发生逆转。",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "激励事件"
-      },
-      {
-        "scope_type": "effect",
-        "value": "好奇心激发"
-      },
-      {
-        "scope_type": "intent",
-        "value": "人物塑造"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      },
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "灵感"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_680659e8000000001a007a11",
-      "source_type": "post",
-      "title": "故事设计原理拆解学习",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/680659e8000000001a007a11"
-      }
-    },
-    "title": "场景设计四要素",
-    "content": "界定:构成一个有效场景必须具备的四个关键设计点。(构成型)\n【设计维度】(清单)\n  - 转折点:产生惊奇、增强好奇心、见识新方向\n  - 伏笔/分晓:知识的层层铺垫与传达\n  - 情感转变:通过核心情感即快感与痛感的动态交替,打破回报递减定理\n  - 选择:必须是两难之择,如两善取其一或两恶取其轻,通过三角关系构建连锁冲突",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "场景设计"
-      },
-      {
-        "scope_type": "effect",
-        "value": "情感波幅"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "惊奇感"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_680659e8000000001a007a11",
-      "source_type": "post",
-      "title": "故事设计原理拆解学习",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/680659e8000000001a007a11"
-      }
-    },
-    "title": "情感触发原理",
-    "content": "主张:观众的情感共鸣并非随机,而是建立在逻辑认知之上。\n【触发前提】(依据)\n  情感触发必须满足三个前提:移情于人物、知道人物想要什么、明白利害攸关的价值。\n【对创作的取舍】(取舍)\n  所以在描写情感冲突前,必须先花篇幅建立人物欲望和丢失该东西的代价,否则单纯的情绪宣泄无法让观众产生共鸣。",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "why原理"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "情感触发"
-      },
-      {
-        "scope_type": "effect",
-        "value": "观众移情"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "情感共鸣"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_680659e8000000001a007a11",
-      "source_type": "post",
-      "title": "故事设计原理拆解学习",
-      "author": "拾意",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/680659e8000000001a007a11"
-      }
-    },
-    "title": "冲突的分类原则",
-    "content": "主张:冲突的复杂性决定了故事的厚度。\n【冲突层次】(依据)\n  冲突分为三个层面:内心冲突、个人冲突、个人与外界环境的冲突。\n【对创作的取舍】(取舍)\n  应追求复杂型冲突,即让主角同时面对所有三个层面的对抗力量,避免单一维度的线性对抗,使故事更具进展纠葛的张力。",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "why原理"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "冲突层次"
-      },
-      {
-        "scope_type": "effect",
-        "value": "叙事张力"
-      },
-      {
-        "scope_type": "intent",
-        "value": "故事厚度"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_67e4bdf50000000006028a59",
-      "source_type": "post",
-      "title": "只要学会这几样,写短视频脚本真的不难❗️",
-      "author": "海狸教自媒体运营",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/67e4bdf50000000006028a59"
-      }
-    },
-    "title": "短视频脚本创作全流程",
-    "content": "目标:按部就班完成一份细节完善的视频脚本\n步骤1\n  输入:创作意向/原始灵感\n  方法:明确视频的核心主题,并将其转化为具体的标题。\n  产出:确定选题(标题)\n步骤2\n  输入:← s1产出\n  方法:围绕选题搭建基础骨架,需涵盖人物(主体)、场景(环境)、事件(情节)三大核心要素。\n  产出:脚本框架\n步骤3\n  输入:← s2产出\n  方法:将框架细化为镜头动作。包含分配镜号、明确视频画面描述(可搭配五种景别交替、多角度拍摄)、编写视频文案及注译、规划字幕音效策略。长视频注意开头10-15秒设计,短视频需在3-5秒内呈现主题。\n  产出:细节完善的脚本实稿",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "how工序"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "选题方向"
-      },
-      {
-        "scope_type": "intent",
-        "value": "创作"
-      },
-      {
-        "scope_type": "form",
-        "value": "脚本框架"
-      },
-      {
-        "scope_type": "substance",
-        "value": "叙事要素"
-      },
-      {
-        "scope_type": "form",
-        "value": "分镜脚本"
-      },
-      {
-        "scope_type": "effect",
-        "value": "节奏掌控"
-      },
-      {
-        "scope_type": "intent",
-        "value": "完播率"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "定向"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "构思"
-      },
-      {
-        "key": "创作阶段",
-        "type": "str",
-        "value": "打磨"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "确定选题"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "搭建框架"
-      },
-      {
-        "key": "动作",
-        "type": "str",
-        "value": "细节完善"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_67e4bdf50000000006028a59",
-      "source_type": "post",
-      "title": "只要学会这几样,写短视频脚本真的不难❗️",
-      "author": "海狸教自媒体运营",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/67e4bdf50000000006028a59"
-      }
-    },
-    "title": "短视频脚本构思逻辑与黄金结构",
-    "content": "界定:脚本内容的叙事组织方式与段落分布规律。(构成型)\n【黄金三段式结构】(清单)\n  - 引子:视觉冲击或意想不到的镜头,作为开头噱头引起兴趣。\n  - 内容主题:中间部分的论述,通过起伏的故事线把握叙事节奏。\n  - 结尾:总结全篇,包含印象点、情感升华或行动引导(CTA)。\n【内容切入策略】(清单)\n  - 开门见山:直接点名主题。\n  - 制造起伏:通过提出疑问、方案解决或故事讲述制造波折。\n  - 截取痛点:选取能引起受众共鸣的情境。",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "form",
-        "value": "三段式结构"
-      },
-      {
-        "scope_type": "effect",
-        "value": "共鸣激发"
-      },
-      {
-        "scope_type": "intent",
-        "value": "行动引导"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_67e4bdf50000000006028a59",
-      "source_type": "post",
-      "title": "只要学会这几样,写短视频脚本真的不难❗️",
-      "author": "海狸教自媒体运营",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/67e4bdf50000000006028a59"
-      }
-    },
-    "title": "Vlog脚本创作五大公式",
-    "content": "界定:针对Vlog题材的标准化内容组合公式。(选项型)\n【常用公式清单】(清单)\n  - 引起共鸣公式:人物 + 状态 + 情感宣泄(选用:适用于希望与观众建立深层情感链接,表达态度而非单纯记录时使用。)\n  - 引发好奇公式:通过反直觉或悬念设置引起观众持续观看。(选用:适用于有反差感或强结果支撑的内容。)\n  - 干货输出公式:直给知识或方法论,解决具体问题。(选用:适用于科普、教程或纯利他向内容。)",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "Vlog内容"
-      },
-      {
-        "scope_type": "form",
-        "value": "内容公式"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "信任感"
-      },
-      {
-        "scope_type": "effect",
-        "value": "悬念设置"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      }
-    ]
-  },
-  {
-    "source": {
-      "id": "xhs_67e4bdf50000000006028a59",
-      "source_type": "post",
-      "title": "只要学会这几样,写短视频脚本真的不难❗️",
-      "author": "海狸教自媒体运营",
-      "source_metadata": {
-        "platform": "xiaohongshu",
-        "url": "https://www.xiaohongshu.com/explore/67e4bdf50000000006028a59"
-      }
-    },
-    "title": "常用拍摄构图知识清单",
-    "content": "界定:在短视频拍摄阶段用于组织画面元素的视觉方法论。(选项型)\n【构图法分类】(清单)\n  - 水平线构图:画面表现平稳。(选用:追求画面稳定感和开阔感时使用。)\n  - 对角线构图:线条斜跨画面。(选用:需要增强画面动感或引导观众视线时使用。)\n  - 中心构图:主体位于正中央。(选用:主体单一且需要高度突出时使用。)\n  - 框式构图:利用前景形成框架。(选用:制造神秘感、窥视感或纵深感时使用。)\n  - 九宫格/三分法构图:主体落在交叉点或分割线上。(选用:通用的画面排列方式,用于简化画面、使主体位置自然。)",
-    "dim_creations": [
-      "创作"
-    ],
-    "dim_attributes": [
-      "what构成"
-    ],
-    "scopes": [
-      {
-        "scope_type": "substance",
-        "value": "拍摄构图"
-      },
-      {
-        "scope_type": "effect",
-        "value": "视觉引导"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "稳定感"
-      },
-      {
-        "scope_type": "feeling",
-        "value": "纵深感"
-      }
-    ],
-    "custom_ext": [
-      {
-        "key": "业务阶段",
-        "type": "str",
-        "value": "脚本"
-      }
-    ]
-  }
-]

Some files were not shown because too many files changed in this diff