{"id":"f605cd28-2dd8-4b44-8512-263a852e2147","entityType":"agent","slug":"clawhub-charriotzed-video-workflow-builder","name":"video-workflow-builder","canonicalUrl":"https://www.xpersona.co/agent/clawhub-charriotzed-video-workflow-builder","canonicalPath":"/agent/clawhub-charriotzed-video-workflow-builder","generatedAt":"2026-10-11T04:34:01.604Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T02:03:20.638Z","emptyReason":null},"description":"视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。 Skill: video-workflow-builder Owner: charriotzed Summary: 视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。 Tags: latest:0.1.1 Version history: v0.1.1 | 2026-08-13T09:53:21.413Z | user 补 metadata.openclaw.envVars 声明脚本实际引用的 12 个环境变量，避免 clawhub security analysis 报 metadata mismatch v0.1.0 | 2026-08-07T12:15","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17f408yzdd5s7vhxxq32hjw2d8c0esj:video-workflow-builder","sourceUrl":"https://clawhub.ai/charriotzed/video-workflow-builder","homepage":"https://clawhub.ai/charriotzed/skills/video-workflow-builder","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/charriotzed/video-workflow-builder","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/charriotzed/skills/video-workflow-builder","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 ski"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:03:20.638Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:03:20.638Z","emptyReason":null},"stars":null,"forks":null,"downloads":1196,"packageName":null,"latestVersion":"0.1.1","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:03:20.619Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T02:03:20.638Z","lastCrawledAt":"2026-10-11T02:03:20.619Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T02:03:20.619Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.1","createdAt":"2026-08-13T09:53:21.413Z","changelog":"补 metadata.openclaw.envVars 声明脚本实际引用的 12 个环境变量，避免 clawhub security analysis 报 metadata mismatch","fileCount":47,"zipByteSize":195500},{"version":"0.1.0","createdAt":"2026-08-07T12:15:51.592Z","changelog":"video-workflow-builder 0.1.0 - 首次发布，提供视频账号专属工作流 skill 定制。 - 支持根据平台（抖音/B站/小红书/视频号/百家号）、垂类和人设，自动联网研究并生成完整创作流程（选题、文稿、标题、封面）。 - 只需要用户回答三个核心问题，其余画像与策略自动调研补足，先输出账号定位诊断与内容方向再正式生成产物。 - 产物 skill 完全跨 Claude Code/Codex 适配，并内置平台/方法论知识库与产物模板，所有生成文件真实落地磁盘。 - 强调标准化流程、多阶段确认及丰富交付说明，兼顾灵活定制与严格结构化。","fileCount":54,"zipByteSize":195029}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17f408yzdd5s7vhxxq32hjw2d8c0esj:video-workflow-builder","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T04:34:01.600Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-charriotzed-video-workflow-builder/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T02:03:20.638Z","emptyReason":null},"readme":"Skill: video-workflow-builder\n\nOwner: charriotzed\n\nSummary: 视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。\n\nTags: latest:0.1.1\n\nVersion history:\n\nv0.1.1 | 2026-08-13T09:53:21.413Z | user\n\n补 metadata.openclaw.envVars 声明脚本实际引用的 12 个环境变量，避免 clawhub security analysis 报 metadata mismatch\n\nv0.1.0 | 2026-08-07T12:15:51.592Z | auto\n\nvideo-workflow-builder 0.1.0\n\n- 首次发布，提供视频账号专属工作流 skill 定制。\n- 支持根据平台（抖音/B站/小红书/视频号/百家号）、垂类和人设，自动联网研究并生成完整创作流程（选题、文稿、标题、封面）。\n- 只需要用户回答三个核心问题，其余画像与策略自动调研补足，先输出账号定位诊断与内容方向再正式生成产物。\n- 产物 skill 完全跨 Claude Code/Codex 适配，并内置平台/方法论知识库与产物模板，所有生成文件真实落地磁盘。\n- 强调标准化流程、多阶段确认及丰富交付说明，兼顾灵活定制与严格结构化。\n\nArchive index:\n\nArchive v0.1.1: 47 files, 195500 bytes\n\nFiles: .env.example (1058b), .gitignore (54b), README.md (6152b), references/exemplars/bilibili-finance-video-skill.md (51500b), references/exemplars/title-gen-v3.md (16970b), references/methodology/cover-design.md (39835b), references/methodology/douyin-competitor-and-monitoring.md (2401b), references/methodology/peanut-production.md (2503b), references/methodology/script-writing.md (36021b), references/methodology/title-craft.md (9875b), references/methodology/topic-selection.md (8647b), references/platforms/baijiahao.md (8218b), references/platforms/bilibili.md (7454b), references/platforms/douyin.md (7064b), references/platforms/shipinhao.md (8142b), references/platforms/xiaohongshu.md (9145b), references/skill-template/cover-design.md.tmpl (8953b), references/skill-template/env.example.tmpl (870b), references/skill-template/gitignore.tmpl (38b), references/skill-template/positioning.md.tmpl (551b), references/skill-template/script-review.md.tmpl (6849b), references/skill-template/script-writing.md.tmpl (12263b), references/skill-template/SKILL.md.tmpl (10043b), references/skill-template/title-craft.md.tmpl (8339b), references/skill-template/topic-selection.md.tmpl (8960b), scripts/archive_content.py (4979b), scripts/content_db.py (2519b), scripts/douyin_transcript.py (12275b), scripts/fetch_hotlist.py (5356b), scripts/generate_cover.py (7863b), scripts/query_db.py (2283b), scripts/requirements-douyin.txt (505b), scripts/scrape_douyin.py (33623b), scripts/test_content_db.py (6327b), scripts/test_douyin_transcript.py (1007b), scripts/test_fetch_hotlist.py (2623b), scripts/test_validate_skill.py (995b), scripts/test_web_search.py (7430b), scripts/update_metrics.py (1889b), scripts/validate_skill.py (2084b), scripts/web_search.py (12950b), skill-card.md (3297b), SKILL.md (30034b), tests/test_generate_cover.py (889b), tests/test_validate_structure.py (2291b), 快速上手.md (6993b), _meta.json (141b)\n\nFile v0.1.1:SKILL.md\n\n---\r\nname: video-workflow-builder\r\ndescription: 视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。\r\nversion: 0.1.1\r\nmetadata:\r\n  openclaw:\r\n    primaryEnv: QIANFAN_WEBSEARCH_API_KEY\r\n    requires:\r\n      bins:\r\n        - python3\r\n    envVars:\r\n      - name: QIANFAN_WEBSEARCH_API_KEY\r\n        required: true\r\n        description: 千帆联网搜索网关密钥，阶段1联网研究（web_search.py）用。\r\n      - name: QIANFAN_WEBSEARCH_API_BASE\r\n        required: false\r\n        description: 千帆搜索网关地址，缺省用脚本内置默认值。\r\n      - name: LLM_GATEWAY_API_KEY\r\n        required: false\r\n        description: LLM 网关密钥，封面生成/文稿/口播稿纠错脚本用。\r\n      - name: LLM_GATEWAY_BASE_URL\r\n        required: false\r\n        description: LLM 网关 base（OpenAI 兼容接口），缺省用脚本内置默认值。\r\n      - name: ALIYUN_AK_ID\r\n        required: false\r\n        description: 阿里云 AccessKeyId，抖音口播稿 ASR（douyin_transcript.py）用。\r\n      - name: ALIYUN_AK_SECRET\r\n        required: false\r\n        description: 阿里云 AccessKeySecret，抖音口播稿 ASR 用。\r\n      - name: NLS_APP_KEY\r\n        required: false\r\n        description: 阿里云智能语音交互 AppKey。\r\n      - name: OSS_BUCKET\r\n        required: false\r\n        description: 阿里云 OSS 桶名，存放待 ASR 拉取的音频。\r\n      - name: OSS_ENDPOINT\r\n        required: false\r\n        description: 阿里云 OSS Endpoint。\r\n      - name: DAILYHOT_API_BASE\r\n        required: false\r\n        description: 自部署 DailyHotApi 实例地址，选题第零步抓实时热榜用。\r\n      - name: CONTENT_DB_ROOT\r\n        required: false\r\n        description: 内容存档数据库根目录，缺省用技能目录下默认路径。\r\n      - name: TIKTOK_DOWNLOADER_DIR\r\n        required: false\r\n        description: 外部 TikTokDownloader 本地目录绝对路径（GPL，单独 clone）。\r\n---\r\n\r\n# 视频创作工作流生成器\r\n\r\n这是一个\"生成 skill 的 skill\"。它不直接帮你写选题、写文稿、做封面——它做的是把这一整套能力，按照你的平台、垂类和人设，量身定制成一个**独立、可安装、开箱即用**的专属工作流 skill，覆盖从选题到文稿、标题、封面的完整链路。你只需要回答三个最基础的问题，剩下的受众画像、爆款打法、变现路径、平台算法动向，它会自己联网研究补齐，先给你一份账号定位诊断和策略提案确认方向，确认后再落地生成产物。目标是让每个账号拿到的都不是一份通用模板，而是一套真正吃透了自己平台算法和垂类打法的作战手册。\r\n\r\n## 跨工具适配\r\n\r\n本技能同时支持 **Claude Code** 和 **Codex**（以及其它遵循 SKILL.md 规范的 agent）。下文提到具体工具名时，请按你当前所在的运行环境映射到等价能力，不要因为\"没有叫这个名字的工具\"就跳过步骤：\r\n\r\n- **联网搜索（统一走网关，别用自带 WebSearch）**：本技能的联网搜索**一律通过内置的 `scripts/web_search.py`（qianfan web search 网关）**，**不要**直接用 Claude Code 自带的 `WebSearch` 或 Codex 自带的联网搜索工具。这样搜索源可控、结果结构统一、跨 agent 环境行为一致。调用方式：`python3 \"$SKILL_DIR/scripts/web_search.py\" \"搜索词\" [--top N] [--json]`（密钥需自行在技能目录 `.env` 里填入 `QIANFAN_WEBSEARCH_API_KEY`，参见 `.env.example`）。若网关报错/无密钥，如实告知用户无法获取实时数据，退回内部知识作研究依据，不要用记忆里的旧数据冒充实时情报，也不要偷偷改用自带 WebSearch。\r\n- **抓取网页正文**：优先看 `web_search.py` 每条结果自带的 `content` 字段（网关已摘出约前 1000 字，判断相关性/快速扫风向足够）。需要读**完整全文**（网关 content 只有全文约两成、且从中间截断）时，用 `python3 \"$SKILL_DIR/scripts/web_search.py\" <url> --full [--max-chars N]` 本机直抓提纯——**不要用 Claude Code/Codex 自带的 WebFetch**：它跑在云端，对国内站（163/百家号/东方财富等）会系统性报\"无法确认域名安全\"而失败，本机抓取则没有这个问题。\r\n- **写文件**：Claude Code 用 `Write` 工具；Codex 直接用其文件写入能力（或 `apply_patch`）。凡说\"用 Write 工具生成某文件\"，即指\"用当前环境的文件写入能力落地该文件\"。生成产物 skill 时涉及的每一个文件（SKILL.md、各模块文档、脚本、配置）都要真实落地到磁盘，不能只在对话里描述。\r\n- **跑脚本**：两个环境都通过 shell 执行 `python3`。脚本路径见下方「脚本路径」——一律用技能目录的绝对路径，不要假设当前工作目录就是技能目录。\r\n\r\n### 脚本路径\r\n\r\n本技能自身的脚本（结构校验器 `validate_skill.py` 等）随技能一起安装，位于技能目录下的 `scripts/`。**不要假设 shell 的当前工作目录是技能目录**（Codex/Claude Code 运行时 cwd 通常是用户项目目录）。运行脚本前先定位技能目录，用绝对路径调用。技能目录按环境查找：\r\n\r\n- Claude Code：`~/.claude/skills/video-workflow-builder`\r\n- Codex：`~/.codex/skills/video-workflow-builder`\r\n\r\n推荐用一句话解析出脚本根目录再调用，避免路径出错：\r\n\r\n```bash\r\nSKILL_DIR=\"$HOME/.claude/skills/video-workflow-builder\"\r\n[ -d \"$SKILL_DIR\" ] || SKILL_DIR=\"$HOME/.codex/skills/video-workflow-builder\"\r\npython3 \"$SKILL_DIR/scripts/validate_skill.py\" <生成的产物目录>\r\n```\r\n\r\n下文示例为简洁起见写成 `scripts/xxx.py`，实际调用时请替换为 `\"$SKILL_DIR/scripts/xxx.py\"`。生成的产物 skill 安装后同理有自己的技能目录（`~/.claude/skills/<账号名>-workflow` 或 `~/.codex/skills/<账号名>-workflow`），产物内部脚本调用时也要按这个规则解析绝对路径——这一点会写入产物自身的 SKILL.md，此处先记在心里。\r\n\r\n## 内置资源索引\r\n\r\n本技能自带两类资源：一是**范例库**，供生成时参照质量与结构，不能原样照抄进产物；二是**平台/方法论资源库**，是生成产物时\"抄数据\"的原始素材来源，会随后续任务逐步建成。\r\n\r\n**范例（已就位，可直接参照）：**\r\n\r\n- [标题生成方法论范例](references/exemplars/title-gen-v3.md) — 起标题前的文稿深度分析五步法，是所有产物「标题生成」模块的逻辑底座，每个生成的标题模块都要继承这套思路。\r\n- [B站财经账号范例](references/exemplars/bilibili-finance-video-skill.md) — 一个成熟的单垂类账号 skill 长什么样：人设锚定、跨工具适配写法、阶段化流程+人工确认点、统一输出文档、质量评估 loop、封面硬规则。这是本技能生成产物时要对标的质量与结构标准。\r\n\r\n**平台算法知识库（已就位，生成产物时\"抄数据\"的原始素材来源）：**\r\n\r\n- [抖音算法](references/platforms/douyin.md) — 抖音推荐机制、核心指标权重、内容形态适配、冷启动与破圈打法\r\n- [B站算法](references/platforms/bilibili.md) — B站同上四层算法拆解\r\n- [小红书算法](references/platforms/xiaohongshu.md) — 小红书同上四层算法拆解\r\n- [视频号算法](references/platforms/shipinhao.md) — 视频号同上四层算法拆解\r\n- [百家号算法](references/platforms/baijiahao.md) — 百家号同上四层算法拆解\r\n\r\n阶段1研究某平台时，**必须先读取对应的 `references/platforms/<平台>.md`** 拿到该平台的四层算法拆解，作为联网研究的基础和校验依据；这些文件已全部就位，不要说\"该平台资料还未收录\"。仅当用户选的平台超出上述五个（抖音/B站/小红书/视频号/百家号）时，才如实告知该平台无内置算法资料、本次仅依赖联网研究。\r\n\r\n**产物模板（已就位）：**\r\n\r\n- `references/skill-template/` — 产物 skill 的可填空模板（`*.tmpl` 文件，含各模块 `{{PLACEHOLDER}}`），生成规范见下方「生成规范」章节。\r\n\r\n**方法论内核（已就位，生成时的逻辑抄数据来源）：**\r\n\r\n- [标题方法论](references/methodology/title-craft.md) — 从 title-gen-v3 范例中抽出的跨平台/跨垂类标题判断逻辑（两型标题、矛盾拉满、靶子公共认知度、关键词锚定、动机匹配、开头呼应），平台专属的字数/标点/关键词位置规则在生成时从 `references/platforms/*.md` 叠加注入。\r\n- [选题方法论](references/methodology/topic-selection.md) — 跨平台/跨垂类选题判断逻辑（受众动机模型、比较优势定位、热点结合、可持续选题库、反直觉点提炼），垂类专属选题框架（如财经七维度）在生成时按垂类现产。\r\n- [文稿方法论](references/methodology/script-writing.md) — 跨平台/跨垂类文稿判断逻辑（Hook结构、节奏控制与信息密度、完播设计、互动引导、兑现标题承诺），时长与竖屏/横屏形态由 `references/platforms/*.md` 在生成时注入。\r\n- [封面方法论](references/methodology/cover-design.md) — 跨平台/跨垂类封面判断逻辑（1秒法则、视觉焦点与留白、底图质量、人物表现力、大字文案4-8字、文案与标题互补、缩略图尺度验证、系列感固定排布、情绪配色原则、封面承诺-内容兑现闭环、数据可视化克制、多平台适配方法论、数据迭代、gpt-image-2 提示词写法），画幅尺寸与情绪-配色映射由 `references/platforms/*.md` 及本次确认的垂类在生成时注入。\r\n\r\n## 五阶段流程\r\n\r\n整个生成过程分五个阶段，中间有两个明确的停止点（STOP），不要跳过或抢跑。\r\n\r\n### 阶段0 · 极简访谈\r\n\r\n用户发起请求后，**只问这三件事**：\r\n\r\n1. **平台**（可多选，从抖音/B站/小红书/视频号/百家号里选一个或多个）\r\n2. **垂类**（做什么内容方向，如财经、职场、历史、美食、科技测评……）\r\n3. **人设**（账号以什么身份/口吻出镜，如\"资深投资人\"\"过来人前辈\"\"专业测评师\"）\r\n\r\n**明确不要问**受众画像、差异化定位、变现路径——这些属于研究阶段和诊断阶段的产出，不是访谈阶段该问用户的。用户往往自己也说不清楚\"目标受众是谁\"\"怎么和同类账号差异化\"，把这些问题甩给用户只会让访谈变得又长又低效。三件事问完、拿到答案就立刻进入阶段1，不要追加更多访谈问题。\r\n\r\n**提问方式**：访谈这三件事一律用**普通对话文字**直接问（\"你想在哪个平台做？做什么方向？以什么身份出镜？\"），**不要调用交互式选择控件/表单类工具**——本技能跨 Claude Code 与 Codex 等多种环境运行，这类控件并非各环境都稳定支持，纯文本提问在任何环境都可靠，也让用户能一句话把三件事一起说全。\r\n\r\n若用户在一句话里已经把三件事都说全了（例如\"我想在抖音做美食测评账号，人设是社区大厨\"），直接确认理解无误后进入阶段1，不必再走一轮问答。\r\n\r\n### 阶段1 · 联网研究\r\n\r\n拿到平台×垂类的组合后，双线并行展开研究：\r\n\r\n**联网研究（用 `scripts/web_search.py` 网关搜索，别用自带 WebSearch；需要读全文时用 `--full` 本机抓正文，别用 WebFetch）**，围绕选定的平台和垂类，至少覆盖：\r\n\r\n- **受众画像**：这个垂类在该平台上的典型观众是谁、年龄画像、观看动机、常见困惑和期待\r\n- **当下爆款案例与共性**：搜近期该垂类在该平台的热门视频/账号，提炼选题角度、标题打法、封面风格的共性规律\r\n- **竞品格局**：头部账号有哪些、各自的定位差异、市场是否已经饱和、还有哪些角度没被占满\r\n- **变现路径**：该垂类常见的变现方式（广告、带货、知识付费、平台分成、私域引流……）及大致可行性\r\n- **平台最新算法动向**：搜索该平台近期公开的算法调整、流量政策变化、官方扶持方向\r\n\r\n**内置资料研究**：同时读取对应的 `references/platforms/<平台>.md`（若已存在），获取该平台推荐机制、核心指标权重、内容形态适配、冷启动与破圈的结构化拆解，作为联网研究的补充和校验依据。\r\n\r\n**若无法联网**：如实告知用户当前环境没有联网能力，明确说明本次研究将只依赖内部知识和已内置的平台资料，不会有实时热点和最新数据；绝不用训练记忆里的旧案例冒充\"当下爆款\"或编造搜索结果。\r\n\r\n两条线的信息汇总后，才能进入阶段2出诊断——研究不到位，诊断就是空话。\r\n\r\n### 阶段2 · 诊断提案（STOP 1）\r\n\r\n基于阶段1的研究，产出一份「账号定位诊断 + 策略提案」，覆盖以下几块，缺一不可：\r\n\r\n- **目标受众**：具体画像（年龄/身份/场景）+ **受众心声**（用受众自己的口语复述他们心里在想什么，而不是书面语概括）\r\n- **差异化定位**：这个账号相比已有竞品，打的是哪个没被占满的角度或人群\r\n- **内容方向**：3-5个具体的内容大类或选题方向，不是泛泛的\"做优质内容\"\r\n\r\n> **只展示以上三项（目标受众/差异化定位/内容方向）给用户确认。** 变现路径、各平台适配建议这两项不放进给用户看的诊断里——用户通常不需要在这一步操心这些。但 AI 内部必须基于阶段1研究把这两项判断清楚，并在阶段3照常写进产物的 positioning.md（填充 `{{MONETIZATION}}`、`{{PLATFORM_ADAPTATION}}` 占位符），不能因为不向用户展示就跳过不做。\r\n\r\n诊断产出后，**必须停下来**，用一句话邀请用户确认或提调整，例如：\"以上是我研究后的定位诊断，你看看目标受众和差异化定位是否符合预期？可以直接说'受众再窄一点''差异化换个角度'来调整。确认没问题我就开始生成你的专属工作流。\"\r\n\r\n**在用户明确确认之前，绝不进入阶段3生成产物。** 用户如果只是追问细节或提小修改，就地调整诊断文本，再次确认，不要自行判断\"应该没问题了\"就往下走。\r\n\r\n诊断展示与确认同样用**普通对话文字**（把诊断三项写成正文段落 + 一句邀请确认），**不要把诊断项塞进交互式选择控件/表单类工具**——理由同阶段0：跨环境可靠、也让用户能自由说\"哪里再调\"，而不是被限定在几个预设选项里。\r\n\r\n**诊断提案范例**（假设阶段0拿到的答案是：平台=抖音、垂类=职场、人设=\"35岁大厂中层，裸辞后做职业咨询的过来人前辈\"）：\r\n\r\n```\r\n## 账号定位诊断 · 抖音职场·大厂过来人\r\n\r\n**目标受众**：25-32岁、在一二线城市互联网/大厂工作2-5年的初中层职场人，正处在\"要不要跳槽/要不要卷管理岗/要不要裸辞\"的决策焦虑期。\r\n受众心声：\"我到底是该忍还是该走\"\"我现在这个level值多少钱我自己都不知道\"\"领导画的饼我信了三年，是不是傻\"。\r\n\r\n**差异化定位**：抖音职场垂类目前扎堆两种账号——鸡血励志型（\"你不努力就会被淘汰\"）和纯吐槽发泄型（\"打工人的一天\"），\r\n真正带具体决策框架、且人设有大厂中层背书的\"理性拆解型\"账号还不多。差异化打法：不喊鸡血、不单纯吐槽，\r\n每条视频给一个可以直接套用的判断框架（比如\"三个信号说明你该跳槽了\"），把感性的职场焦虑翻译成可执行的决策清单。\r\n\r\n**内容方向**（3-5个）：\r\n1. 决策框架类：\"XX信号说明你该跳槽/该忍/该谈判加薪了\"\r\n2. 大厂内幕拆解类：从中层视角讲绩效、晋升、裁员背后的真实逻辑\r\n3. 真实案例复盘类：匿名化改编身边真实的职场决策案例，讲清楚\"当时怎么想的、后来发现漏算了什么\"\r\n4. 反常识纠偏类：戳破\"努力就会被看见\"\"跳槽一定要涨薪\"这类职场鸡汤里的坑\r\n\r\n以上是本次研究后的定位诊断，你看看目标受众和差异化定位是否符合预期？可以说\"受众再往上提两年\"\"内容方向去掉反常识纠偏这条\"来调整，确认没问题我就开始生成你的专属工作流。\r\n```\r\n\r\n拿到用户确认（或调整后再确认）的结果，才进入阶段3。诸如\"目标受众\"这类字段的最终确认版本，会原样成为阶段3里 `{{AUDIENCE}}` 等占位符的填充内容——诊断阶段写得越具体，生成阶段就越省事、越贴合真实情况。\r\n\r\n### 阶段3 · 生成工作流 skill\r\n\r\n用户确认定位诊断后，按照下方「生成规范」，把研究成果和确认后的定位落地成一套完整的产物 skill。这一步不需要再和用户来回确认，做完再统一汇报。\r\n\r\n### 阶段4 · 交付说明\r\n\r\n产物生成并通过校验后，向用户说明：\r\n\r\n- **安装路径**：产物 skill 生成在哪个目录，需要放到 `~/.claude/skills/<账号名>-workflow`（Claude Code）或 `~/.codex/skills/<账号名>-workflow`（Codex）下才能被识别为可用技能\r\n- **触发词**：产物 SKILL.md 里配置了哪些触发词/触发场景，用户之后怎么一句话唤起它\r\n- **各模块独立调用方式**：选题、标题、封面、文稿四个模块除了走完整流程，也可以单独唤起（比如用户已经有选题只想起标题，或已经定了标题只想生成封面），逐一说明怎么单独触发\r\n- **API key 设置方式**：产物里涉及联网抓取或封面生成的脚本依赖哪个环境变量/`.env` 文件，怎么填入真实密钥（`.env.example` 只是占位模板，真实密钥要写进用户自己的、已被 `.gitignore` 排除的 `.env` 文件，不会被本技能记录或上传）\r\n\r\n交付说明讲清楚就结束本轮生成，不必额外发起新的确认。\r\n\r\n## 生成规范\r\n\r\n阶段3生成产物时，遵循以下规范：\r\n\r\n**产物目录命名**：`<账号名>-workflow`。若用户没有明确给出简短的账号slug，就根据垂类和人设拟一个简洁的英文/拼音slug作为默认值，并在交付说明里告知用户这个默认命名，允许其后续重命名。\r\n\r\n**填充模板**：读取 `references/skill-template/` 下的 `*.tmpl` 文件（后续任务生成后可用），把其中每一个 `{{PLACEHOLDER}}` 替换成基于本次访谈+研究+诊断确认后的真实内容。已知的占位符至少包括：\r\n\r\n- `{{ACCOUNT_NAME}}` — 账号名称\r\n- `{{ACCOUNT_SLUG}}` — 账号英文/拼音短标识，用于目录和文件命名\r\n- `{{PLATFORMS}}` — 目标平台列表\r\n- `{{NICHE}}` — 垂类\r\n- `{{PERSONA}}` — 人设描述\r\n- `{{TRIGGER_WORDS}}` — 产物 skill 的触发词/触发场景\r\n- `{{AUDIENCE}}` — 目标受众画像\r\n- `{{AUDIENCE_VOICE}}` — 受众心声（口语化复述）\r\n- `{{POSITIONING}}` — 差异化定位\r\n- `{{DIFFERENTIATION}}` — 与竞品的具体差异点\r\n- `{{MONETIZATION}}` — 变现路径与时间线\r\n- `{{PLATFORM_ADAPTATION}}` — 各平台适配建议\r\n- `{{TOPIC_FRAMEWORK}}` — 选题方法论/框架\r\n- `{{HOT_SOURCE_GUIDE}}` — 热点/爆款素材来源指引\r\n- `{{SCRIPT_LENGTH}}` — 文稿目标时长与字数\r\n- `{{SCRIPT_STRUCTURE}}` — 文稿结构模板\r\n- `{{TITLE_RULES}}` — 标题生成规则（继承 title-gen-v3 逻辑）\r\n- `{{TITLE_KEYWORD_RULE}}` — 标题关键词/搜索锚定规则\r\n- `{{COVER_SIZES}}` — 各平台封面尺寸规格。**注意区分\"视频画幅\"与\"封面画幅\"**：如 B站视频是横屏 16:9，但**封面**按平台库是\"4:3 感/接近正方\"、脚本实际出 1024x768，别把视频的 16:9 误当成封面尺寸填进来；每个平台的封面尺寸必须与 `scripts/generate_cover.py` 里 `PLATFORM_SIZES` 实际支持的档位一致（B站 1024x768、抖音/小红书/视频号 768x1024），不能自己另填一个脚本跑不出来的尺寸\r\n- `{{COVER_EMOTION_MAP}}` — 情绪-配色映射规则\r\n- `{{COVER_SERIES_LAYOUT}}` — 封面系列化固定排布规则\r\n- `{{COVER_DESIGN_LANGUAGE}}` — 账号默认「设计语言」（一次调动成套自洽审美的抓手，锁定构图/配色/材质/字体/风格五个基因维度），按垂类+人设现产，如\"冷峻智库/时事周刊风\"\r\n\r\n若模板库尚未就位（当前任务阶段可能遇到），先按同等结构手写产物 SKILL.md 及各模块文档，保证内容完整、可用，等模板库落地后再切换为\"读取模板+填空\"的方式，不因为模板缺失而生成一份内容不完整的产物。\r\n\r\n**填充范例**（承接上面阶段2的抖音职场账号，确认后进入填空）：\r\n\r\n```\r\n{{ACCOUNT_NAME}}          → 大厂过来人老K\r\n{{ACCOUNT_SLUG}}          → dachang-guolairen\r\n{{PLATFORMS}}             → 抖音\r\n{{NICHE}}                 → 职场决策/大厂内幕\r\n{{PERSONA}}               → 35岁大厂中层，裸辞后做职业咨询的过来人前辈\r\n{{TRIGGER_WORDS}}         → \"帮我看看这条职场选题\"\"写一条跳槽建议的口播稿\"\"起个职场标题\"\"职场封面\"\r\n{{AUDIENCE}}              → 25-32岁一二线互联网/大厂员工，处在跳槽/晋升/裸辞决策焦虑期\r\n{{AUDIENCE_VOICE}}        → \"我到底该忍还是该走\"\"这个level我自己都不知道值多少钱\"\r\n{{POSITIONING}}           → 理性决策框架型，区别于鸡血励志和纯吐槽两类扎堆账号\r\n{{DIFFERENTIATION}}       → 每条视频给一个可直接套用的判断框架，而非喊口号或单纯发泄\r\n{{MONETIZATION}}          → 起号期不变现→成长期职业咨询付费→成熟期课程分销/雇主品牌广告\r\n{{PLATFORM_ADAPTATION}}   → 抖音强钩子开头、60-90秒、前3秒抛结论\r\n{{TOPIC_FRAMEWORK}}       → 决策框架类/内幕拆解类/案例复盘类/反常识纠偏类，四个选题池轮换\r\n{{HOT_SOURCE_GUIDE}}      → 抖音职场话题榜、脉脉/小红书职场热帖、近期裁员财报新闻\r\n{{SCRIPT_LENGTH}}         → 60-90秒，约200-300字\r\n{{SCRIPT_STRUCTURE}}      → 3秒钩子→冲突陈述→框架讲解(2-3点)→行动建议→互动引导\r\n{{TITLE_RULES}}           → 继承 title-gen-v3 五步分析法，标题需含具体身份锚点+反常识判断\r\n{{TITLE_KEYWORD_RULE}}    → 标题前半必须出现\"跳槽/裸辞/大厂/晋升\"等搜索热词之一\r\n{{COVER_SIZES}}           → 抖音 3:4 竖版 1080x1440\r\n{{COVER_EMOTION_MAP}}     → 决策焦虑→暗色警示；反常识→对比撞色；案例复盘→暖色叙事\r\n{{COVER_SERIES_LAYOUT}}   → 顶部固定压\"大厂过来人老K\"账号名，中部大字结论，底部小字场景标签\r\n{{COVER_DESIGN_LANGUAGE}} → 冷峻职场纪实风（深灰蓝冷调+暖色点缀、哑光质感、极粗黑体主锤字、中央焦点构图）\r\n```\r\n\r\n填完后，每个占位符对应的真实内容还要**同步体现在产物各模块正文里**（比如 `{{TITLE_RULES}}` 不只是模板里的一行占位，产物「标题生成」模块的完整方法论正文都要按这个规则展开），占位符表只是落地时的对照清单，不是最终交付内容本身。\r\n\r\n**注入平台事实，而非引用链接**：生成产物各模块时，把对应的 `references/platforms/<平台>.md` 里和该垂类相关的推荐机制、指标权重、内容形态、冷启动打法，**直接复制改写进产物模块正文**，不要只留一个指向本技能内部资源的链接。产物必须是自包含的——用户装上产物 skill 后，不需要再依赖本生成器技能本身就能独立运作。\r\n\r\n**配置脚本**：\r\n\r\n- 无条件复制进产物：`web_search.py`（联网搜索网关，产物做选题/热点研究时统一走它，别用自带 WebSearch）、`generate_cover.py`（封面生成脚本）、`fetch_hotlist.py`（选题第零步扫实时热榜，调自部署的 DailyHotApi）、`content_db.py`/`archive_content.py`/`query_db.py`/`update_metrics.py`（内容资产库）、`.env.example`（配置占位模板，含 `QIANFAN_WEBSEARCH_API_KEY`、`LLM_GATEWAY_API_KEY` 与 `DAILYHOT_API_BASE`）、`.gitignore`（确保真实 `.env` 不被提交）。这批是 `validate_skill.py` 校验的必需脚本，少一个产物就通不过校验。产物 SKILL.md 里凡涉及联网研究，都要写明\"用 `scripts/web_search.py` 网关搜索，别直接用 agent 自带的 WebSearch\"，并复制一份真实 `.env`（含 `QIANFAN_WEBSEARCH_API_KEY`）进产物、由 `.gitignore` 排除。\r\n- 视垂类需要，额外配置抓取实时数据的脚本：**判断标准是该垂类是否需要活数据**——财经类（行情/财报）、热点追踪类（实时新闻/热搜）、榜单类（销量榜/播放榜）这三类需要；纯知识科普、故事叙事、生活记录等垂类通常不需要，跳过这一步即可。（注：`fetch_hotlist.py` 抓的是跨平台通用热榜，属上面的无条件必备项，与这里\"垂类专属活数据脚本\"是两回事。）\r\n\r\n**内容资产库（每个产物必带）**：产物要能把每次产出的内容结构化沉淀到独立于 skill 的长期数据库 `~/.claude|.codex/content-db/<账号slug>/`。落地方式：把 `content_db.py`/`archive_content.py`/`query_db.py`/`update_metrics.py` 复制进产物 `scripts/`（脚本从自身路径推导账号 slug 与数据根，无需改写）；产物的选题模块开头查库去重与找系列、文稿模块末尾自动存档、SKILL.md 说明回填与查库方式——这三处已在模板中就位，填模板时不要删。数据独立存放，重装产物 skill 不影响历史内容。\r\n\r\n**密钥处理（安全红线）**：产物用到的真实 API key，只能写进产物目录下、被 `.gitignore` 排除的真实 `.env` 文件里，由用户自己配置或本技能在生成时以环境变量形式写入该 git-ignored 文件；随技能一起提交/追踪的 `.env.example` 永远只放占位符（如 `LLM_GATEWAY_API_KEY=your_key_here`）。任何真实密钥值都不允许写进 SKILL.md 或任何会被版本控制追踪的文件。\r\n\r\n**生成审查模块（每个产物必带，与文稿模块配套）**：文稿写作与交付前终审已拆成两个独立模块——除 `references/script-writing.md` 外，还必须生成 `references/script-review.md`（从 `references/skill-template/script-review.md.tmpl` 填空而来），承载\"换一双眼睛\"的三层终审（硬门禁 / 受众复审 / 事实与立场终审）。产物 SKILL.md 的工作流总览里已把\"审查\"列为文稿之后的强制一步（模板已就位），填模板时不要删。**为什么拆出来**：交付前终审是整条链路最容易被\"作者自己觉得没问题\"的惯性跳过的一步，独立成模块 + 在 SKILL 流程里显式列为强制步，才压得住。写作模块管\"写得好不好留不留得住\"，审查模块管\"敢不敢、站不站得住、能不能安全播出去\"，两者配套缺一不可。\r\n\r\n**校验与自查**：产物生成完毕后，运行\r\n\r\n```bash\r\npython3 scripts/validate_skill.py <产物目录>\r\n```\r\n\r\n若报告任何问题（frontmatter缺失、链接指向不存在的文件等），先修复再交付给用户，不要带着已知问题交付。\r\n\r\n## 质量标准\r\n\r\n以下几条是生成产物时的非负项，任何一条不满足都视为本次生成未完成：\r\n\r\n- 产物的标题生成模块必须继承 [title-gen-v3](references/exemplars/title-gen-v3.md) 的核心逻辑：先做文稿深度分析（主题提炼、受众心声提取、比较优势、核心矛盾），再套标题公式，不能跳过分析直接套模板起标题。\r\n- 产物覆盖的每一个平台，都必须体现该平台的**推荐机制、核心指标与权重、内容形态适配、冷启动与破圈**这四层算法拆解，不能只泛泛提一句\"该平台流量大\"。\r\n- 产物的文稿模块必须继承 [文稿方法论](references/methodology/script-writing.md) 的**留存导向内核**：留存单元制（长视频=若干带 rehook 的短单元咬合）、一条视频只讲透一个核心概念、手艺层（具体压抽象/真敢下判断的\"我\"/能成像的意象/具体的梦）、第一句含可搜索主体关键词、禁用\"不是…而是…\"假对比句式、举例两关自检（例子必须比论点更好懂且在受众日常经验里）。不能退回\"面面俱到但没魂\"的通用科普稿。\r\n- 产物必须生成 `references/script-review.md`（独立审查模块），且 SKILL.md 工作流总览把\"审查\"列为文稿之后的强制一步。审查模块须含三层：硬门禁、受众复审、事实与立场终审（真信源不许编造/反直觉结论因果闭环/敏感题立场落安全区/可执行正向收尾）。缺审查模块或流程未列审查步，视为生成未完成。\r\n- 封面生成脚本（`generate_cover.py`）及产物任何文件中，**绝不硬编码真实 API key**——密钥只能来自环境变量或用户自己配置的 git-ignored `.env`。\r\n- 产物必须具备可运行的内容资产库能力：`content_db.py`/`archive_content.py`/`query_db.py`/`update_metrics.py` 四个脚本齐全并能正确读写 `content-db/<slug>/`，选题模块查库去重、文稿模块自动存档两处衔接不能缺失。\r\n- 产物必须通过 `scripts/validate_skill.py` 校验，且不遗留任何已知问题。\n\nFile v0.1.1:README.md\n\n# video-workflow-builder\r\n\r\n一个\"生成 skill 的 skill\"。它不直接帮你选题、写文稿、做封面——它把这一整套能力，按照你的**平台、垂类、人设**量身定制成一个独立、可安装、开箱即用的专属视频创作工作流 skill，覆盖从选题到文稿、标题、封面的完整链路。\r\n\r\n## 它是怎么工作的\r\n\r\n只问你三件事——平台（抖音/B站/小红书/视频号/百家号）、垂类、人设，剩下的受众画像、爆款打法、变现路径、平台算法动向靠联网研究 + 内置资料补齐，先给一份账号定位诊断供你确认方向，确认后才生成产物 skill。整个过程分五个阶段：\r\n\r\n1. **极简访谈**——只问平台/垂类/人设三件事，不追问受众画像、差异化定位这类研究阶段才该有的答案。\r\n2. **联网研究**——统一走内置的 `scripts/web_search.py`（qianfan web search 网关）查受众画像、爆款案例、竞品格局、变现路径、平台算法动向（**不直接用 Claude Code/Codex 自带的 WebSearch**，保证搜索源可控、结果结构统一），支持网页搜索、图片搜索（`--images`）和本机抓正文全文（`--full`，绕开对国内站不可靠的 WebFetch）；同时读取内置的 `references/platforms/*.md` 平台算法拆解作为补充和校验。\r\n3. **诊断提案（STOP）**——产出目标受众、差异化定位、内容方向、变现路径、各平台适配建议，**必须停下来等用户确认**，不确认不生成产物。\r\n4. **生成工作流 skill**——按「生成规范」把研究成果和确认后的定位，填进 `references/skill-template/*.tmpl` 落地成完整产物目录，并运行 `scripts/validate_skill.py` 自查。\r\n5. **交付说明**——告知安装路径、触发词、四个模块的独立调用方式、API key 设置方式。\r\n\r\n## 安装\r\n\r\n把整个 `video-workflow-builder/` 目录放到对应工具的 skills 目录下：\r\n\r\n- **Claude Code**：`~/.claude/skills/video-workflow-builder`\r\n- **Codex**：`~/.codex/skills/video-workflow-builder`\r\n\r\n两个环境都通过读取 `SKILL.md` 识别技能，跨工具适配细节（联网/写文件/跑脚本的等价能力映射）已经写在 `SKILL.md` 里，不需要额外配置。\r\n\r\n## 依赖\r\n\r\n生成的产物 skill 会带一个 `scripts/generate_cover.py`，调用 `gpt-image-2`（走 LLM 网关）生成封面图，需要：\r\n\r\n```bash\r\npip install openai\r\n```\r\n\r\n产物还带一个 `scripts/fetch_hotlist.py`，在选题第零步扫各平台实时热榜（免登录、只读公开热榜、无封号风险）。它依赖一个**自部署的 [imsyy/DailyHotApi](https://github.com/imsyy/DailyHotApi)** 实例（Docker 或 Vercel 一键部署），部署后把地址填进产物 `.env` 的 `DAILYHOT_API_BASE`（如 `http://localhost:6688`）。脚本本身只用 `python3` 标准库，无额外 pip 依赖。**抓不到数据时脚本直接报错、绝不返回缓存热榜**——偏离实时常识的选题就是垃圾，宁可停下修数据源。\r\n\r\n本技能自身（生成器）不需要额外依赖，只用到 `python3` 标准库跑 `scripts/validate_skill.py` 做结构校验。\r\n\r\n## 生成出来的产物长什么样\r\n\r\n产物目录命名为 `<账号名>-workflow`，结构大致如下：\r\n\r\n```\r\n<账号名>-workflow/\r\n├── SKILL.md                    # 主入口，含账号人设、工作流总览、定位速览\r\n├── references/\r\n│   ├── positioning.md          # 账号定位诊断（受众/差异化/变现路径/平台适配）\r\n│   ├── topic-selection.md      # 选题模块\r\n│   ├── script-writing.md       # 文稿模块\r\n│   ├── title-craft.md          # 标题模块（继承 title-gen-v3 的文稿深度分析方法）\r\n│   └── cover-design.md         # 封面模块\r\n├── scripts/\r\n│   └── generate_cover.py       # 封面生成脚本（调用 gpt-image-2）\r\n├── .env.example                 # 密钥占位模板，会被提交\r\n├── .env                          # 真实密钥，git-ignored，不会被提交\r\n└── .gitignore\r\n```\r\n\r\n产物是**自包含**的——用户装上产物 skill 后不再依赖本生成器技能本身：平台算法事实（推荐机制/核心指标权重/内容形态/冷启动打法）在生成时已经复制改写进各模块正文，而不是留一个指回生成器的链接。\r\n\r\n## 怎么用生成出来的产物\r\n\r\n- **触发词**：产物 `SKILL.md` 的 frontmatter 里配置了该账号场景下的触发短语（如\"帮我想个理财选题\"\"起个理财标题\"），说这类话就能唤起。\r\n- **完整流程**：选题 → 人工确认选定方向 → 标题 → 封面 → 人工确认标题封面 → 文稿，中间有两个人工决策点。\r\n- **单模块独立调用**：四个模块（`references/topic-selection.md`、`title-craft.md`、`cover-design.md`、`script-writing.md`）都可以单独唤起，比如已经有选题只想起标题，或已经定了标题只想生成封面，直接说需求即可，不必每次都从选题走完整流程。\r\n\r\n## 安全：API key 处理\r\n\r\n产物的封面生成脚本要用到 `LLM_GATEWAY_API_KEY`。**真实密钥只允许写进产物目录下、已被 `.gitignore` 排除的 `.env` 文件**，由用户自己填入或本技能在生成时以环境变量形式写入这个 git-ignored 文件；随产物一起提交/追踪的 `.env.example` 永远只放占位符（`your-key-here`）。任何真实密钥值都不允许出现在 `SKILL.md`、脚本源码或任何会被版本控制追踪的文件里——这条是生成规范里的安全红线，`scripts/validate_skill.py` 校验通过不代表密钥处理合规，仍需人工确认 `.env` 内容从未被 `git add`。\r\n\r\n## 开发自查\r\n\r\n本仓库自带的校验和测试：\r\n\r\n```bash\r\ncd video-workflow-builder\r\npython3 -m pytest -q                     # 单元测试（validate_skill / generate_cover）\r\npython3 scripts/validate_skill.py .      # 结构校验（frontmatter + 内部链接）\r\npython3 scripts/validate_skill.py <产物目录>   # 校验任意生成产物\r\n```\n\nFile v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn76tn1dxqnds2hg1t8ck2xtzh8c1zqw\",\n  \"slug\": \"video-workflow-builder\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1786614801413\n}\n\nFile v0.1.1:references/exemplars/bilibili-finance-video-skill.md\n\n> 本文件是「金标准范例」，供生成器参照其质量与结构，不要原样照抄到用户产物里。\r\n\r\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/SKILL.md ===\r\n---\r\nname: bilibili-finance-video\r\ndescription: 专业的B站财经视频创作助手，用于把一支股票变成能带来高播放量的分析视频。当用户输入股票名称或代码（如\"分析一下贵州茅台\"、\"600519\"、\"帮我做个宁德时代的视频\"、\"英伟达 NVDA\"），或提到要做财经视频、股票选题、口播稿、财经视频封面、涨停/暴跌复盘视频时，务必使用本技能。它会联网抓取实时行情与新闻，先产出3个带钩子的选题方案供选择，采纳后生成完整的口播稿、多个爆款标题，以及B站(4:3)和抖音(3:4)两版适配封面。\r\n---\r\n\r\n# B站财经视频创作助手\r\n\r\n把一支股票变成一条有观点、能涨播放量的财经视频。你在为财经账号 **「蛋炒饭财经」** 创作内容，角色是\"资深财经UP主 + 专业投研 + 短视频操盘手\"的结合体：既能把复杂的东西讲通俗，又敢给明确观点和买卖建议，还懂平台的流量逻辑。所有口播稿、互动引导都以「蛋炒饭财经」这个人设和账号来写。\r\n\r\n## 运行环境与脚本路径\r\n\r\n本技能面向 **Claude Code**。文中工具名按 Claude Code 能力理解：联网用 `WebSearch` / `WebFetch`，写文件用 `Write`，跑脚本通过 shell 执行 `python3`。若当前环境确实无联网能力，如实告知用户无法获取实时数据，不要用记忆里的旧数据冒充。\r\n\r\n脚本随技能一起安装，位于技能目录 `~/.claude/skills/bilibili-finance-video/scripts/`。**不要假设 shell 的当前工作目录是技能目录**（运行时 cwd 通常是用户项目目录）。运行脚本前先定位技能目录，用绝对路径调用：\r\n\r\n```bash\r\nSKILL_DIR=\"$HOME/.claude/skills/bilibili-finance-video\"\r\npython3 \"$SKILL_DIR/scripts/xueqiu_quote.py\"     SH600519 --out /tmp/xq_quote.json\r\npython3 \"$SKILL_DIR/scripts/xueqiu_hot_posts.py\" SH600519 --top 12 --out /tmp/xq_hot.json\r\n```\r\n\r\n下文示例为简洁起见写成 `scripts/xxx.py`，实际调用时请替换为 `\"$SKILL_DIR/scripts/xxx.py\"`。\r\n\r\n## 专业分析框架（贯穿选题与文稿）\r\n\r\n一支股票\"能不能买/卖\"，专业分析走的是一套\"由外到内、由价值到交易\"的框架。选题时用它找角度，写文稿时用它搭骨架、填干货。七个维度：\r\n\r\n1. **基本面**（这是不是一门好生意）：主营业务与商业模式、护城河（品牌/技术/规模/网络效应）、财务质量（营收与净利增速、毛利率净利率、ROE、现金流、负债率）、成长性、管理层与治理红旗。\r\n2. **估值**（现在这个价贵不贵）：PE/PB/PS 与自身历史+同行+行业均值对比、PEG（估值配成长）、估值历史分位、必要时简化讲 DCF。好公司≠好价格。\r\n3. **行业与赛道**（风口还是逆风）：行业生命周期、政策导向、供需与竞争格局、公司在产业链中的地位和议价权。\r\n4. **技术面**（什么时候买、什么价位买）：趋势与均线排列、关键支撑位/压力位、量价配合、MACD/RSI 等辅助超买超卖。\r\n5. **资金面与情绪**：主力/北向/机构持仓变化、融资融券与龙虎榜、舆论热度与多空分歧。\r\n6. **催化剂与风险**（未来的变量）：财报、新品、政策、并购、景气拐点等催化；业绩暴雷、政策打压、竞争恶化、估值泡沫、大股东减持等风险。\r\n7. **结论收口**：综合估值判断（低估/合理/高估）→ 明确的买入/卖出/观望建议+理由 → 关键价位（布局位、止损/止盈位）→ 适合的投资者类型 → 风险提示。\r\n\r\n一句心法：**基本面回答\"该不该买\"，估值回答\"值不值这个价\"，技术面和资金面回答\"什么时候买、什么价位买\"，催化剂和风险回答\"未来会怎样\"。** 四层叠起来，观点才立得住。\r\n\r\n## 工作流程总览\r\n\r\n整个创作分两个阶段，中间有一个人工决策点，不要跳过：\r\n\r\n**阶段一 · 选题（先做这个，然后停下来等用户选）**\r\n1. 联网抓取该股票的实时数据与近期动态\r\n2. 基于数据产出 **3 个** 不同角度的选题方案，每个都要有明确的钩子和预估热度\r\n3. 停下来，让用户选一个（或让用户说\"改一下某个方向\"）\r\n\r\n**阶段二 · 文稿与标题（用户采纳选题后才做，然后再停下来等用户确认标题）**\r\n4. 完整口播稿（7-10分钟，约2500-3500字）\r\n5. 一组爆款标题（3个精华候选）\r\n6. 口播文案质量评估（从专业财经观众视角做一轮 loop 评审，给出评价与优化建议）\r\n7. 停下来，让用户确认文稿方向、并**选定最终使用的那个标题**（或让用户说\"标题再改改\"\"文稿某段重写\"）\r\n\r\n**阶段三 · 封面（用户确认标题后才做）**\r\n8. 以**选定的那个标题**为大字，生成封面：B站版(4:3) + 抖音版(3:4)，各一张成图\r\n\r\n两个决策点都是刻意设计的——选题定错了后面写得再好也白费，封面在标题定稿前生成则大字会和实际标题对不上。让用户在最便宜的环节做决策，回报最高。\r\n\r\n**所有产出都写进同一个文档文件**：阶段二的口播稿、标题、质量评估先落地成一个 Markdown 文档（见下方「统一输出文档」），阶段三的封面提示词与成图路径在标题确认后补写进同一个文档，方便用户一次性复制粘贴，而不是散落在多条对话消息中。\r\n\r\n## 阶段一：抓数据 + 出选题\r\n\r\n### 第一步：联网抓取\r\n\r\n用户给出股票后，先联网搜集这些信息（用 WebSearch / WebFetch，多个查询并行发起以节省时间）。抓取维度对齐上面的七维框架：\r\n\r\n- **实时行情**：最新股价、当日涨跌幅、近一个月/一年走势、市值\r\n- **估值指标**：市盈率(PE)、市净率(PB)、市销率(PS)、PEG、估值历史分位、行业平均估值对比\r\n- **基本面**：最近财报的营收/净利润及增速、毛利率净利率、ROE、现金流、负债率、主营业务与护城河\r\n- **行业赛道**：行业景气度、政策导向、供需与竞争格局、公司产业链地位\r\n- **技术面**：关键支撑/压力位、均线状态、成交量变化、是否突破/破位、MACD/RSI 等\r\n- **资金面**：主力/北向资金/机构持仓变化、融资融券、龙虎榜\r\n- **近期催化**：过去1-2周的重大新闻、公告、行业政策、机构评级调整\r\n- **市场情绪**：股吧/雪球的讨论热度、多空分歧点\r\n\r\n**股价、市值、PE、PB 等基础行情数据，务必以雪球接口为准**（见下方「雪球基础行情抓取」）——WebSearch/记忆里的股价经常是过时或错乱的，而这类数字是财经稿的第一红线。跑一次 `scripts/xueqiu_quote.py` 拿到当日权威数据，WebSearch 只用来补基本面、财报、行业、催化、情绪这些**非实时数字**的定性信息。\r\n\r\n**同时务必抓一次雪球热帖**（见下方「雪球热帖抓取」）——这是 WebSearch 拿不到的一手散户情绪与观点，对发现选题、找争议钩子极有价值。\r\n\r\n抓数据时，把三件事**并行**跑起来省时间：① `xueqiu_quote.py` 拿基础行情 ② `xueqiu_hot_posts.py` 拿散户情绪 ③ WebSearch/WebFetch 补新闻、财报、研报、政策。\r\n\r\n**数据准确性是第一红线（关系到观众真金白银，绝不能出基础错误）**：\r\n\r\n- **股价、涨跌幅、市值、PE、PB、PS、股息率、52周高低等基础行情，一律以 `xueqiu_quote.py` 的当日返回为准**，不要用 WebSearch 结果或记忆里的数字覆盖它。出现\"茅台标错成几十块\"\"PE 写反\"这类基础错误，是不可接受的硬伤。\r\n- 搜索非实时信息（财报分项、行业数据）时务必带上当前日期或\"最新\"\"2026\"等词，确保拿到的是**写稿当日**的数据，而不是训练记忆里的旧数据。\r\n- 关键数字自查一遍量级是否合理：用\"股价 × 总股本 ≈ 市值\"\"PE × 每股收益 ≈ 股价\"等关系交叉验证。雪球接口和 WebSearch 若对不上，以雪球接口为准并注明。\r\n- 如果某项数据搜不到或无法确认（雪球接口也没返回），如实标注\"未获取到\"，宁可不写也不编造——编造的财经数据会直接误导投资决策。\r\n\r\n### 雪球基础行情抓取（股价/市值/PE/PB 的权威来源）\r\n\r\n股价、市值、估值这类实时数字，WebSearch 和训练记忆都不可靠，**必须以雪球行情接口为准**。跑这个脚本一次性拿到干净的结构化基础数据：\r\n\r\n```bash\r\npython3 scripts/xueqiu_quote.py SH600519 --out /tmp/xq_quote.json\r\n# 也可一次传多个代码(做对比型选题时很方便)，共用一个浏览器会话：\r\npython3 scripts/xueqiu_quote.py SZ300750 SH600519 HK03690 BABA --out /tmp/xq_quote.json\r\n```\r\n\r\n依赖与 `xueqiu_hot_posts.py` 完全相同（`playwright` + Chromium），已装过热帖脚本就无需再装。\r\n\r\n- **股票代码格式**：A股 `SH600519` / `SZ000858`，港股 `HK03690`（脚本会自动去掉 `HK` 前缀调接口），美股 `BABA`。不确定代码就先 WebSearch \"<股票名> 雪球 代码\"。\r\n- 脚本同样用 Playwright 过阿里云 WAF 拿匿名 token，**首次运行较慢属正常**；拿到 token 后多个代码依次抓取，很快。\r\n- 若报「未拿到 xq_a_token」或抓取失败，多半是网络/风控波动，隔几十秒重试；实在拿不到就退回用 WebSearch 交叉核对，并在稿子里对存疑数字保持谨慎。\r\n\r\n**输出结构**（每只票一条，字段已归一，直接喂给自己写稿）：\r\n\r\n```json\r\n{\r\n  \"fetched_at\": \"2026-07-20 13:20:33\", \"count\": 1,\r\n  \"quotes\": [\r\n    {\r\n      \"symbol\": \"SH600519\", \"name\": \"贵州茅台\", \"currency\": \"CNY\",\r\n      \"market_status\": \"交易中\", \"timestamp\": \"2026-07-20 13:20:27\",\r\n      \"current\": 1324.58, \"percent\": 5.71, \"chg\": 71.58,\r\n      \"last_close\": 1253.0, \"open\": 1270.0, \"high\": 1329.0, \"low\": 1266.0,\r\n      \"high52w\": 1531.75, \"low52w\": 1151.01, \"amplitude\": 5.03,\r\n      \"market_capital_yi\": 16558.33, \"float_market_capital_yi\": 16558.33,\r\n      \"total_shares\": 1250081601,\r\n      \"pe_ttm\": 20.02, \"pe_lyr\": 20.11, \"pe_forecast\": 15.2,\r\n      \"pb\": 6.12, \"ps\": null, \"dividend_yield\": 3.93,\r\n      \"eps\": 66.17, \"navps\": 216.32,\r\n      \"turnover_rate\": 0.64, \"volume_ratio\": 2.59\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n**怎么用这份数据**：\r\n- `current`/`percent`/`chg` 是当日股价、涨跌幅、涨跌额；`market_capital_yi` 是总市值(亿)，口播直接说\"市值一万六千多亿\"。\r\n- `pe_ttm`(滚动市盈率)/`pe_lyr`(静态)/`pe_forecast`(动态) 三个口径都给了，讲估值时说清用的哪个；`pb` 市净率、`dividend_yield` 股息率、`high52w`/`low52w` 判断当前处于一年区间的什么位置。\r\n- 负的 `pe_ttm` 表示公司 TTM 亏损（如美团 -12），别当成\"低估\"讲反。\r\n- 港股/美股部分字段(如股息率、PS)可能为 `null`，属正常，标\"未获取到\"即可，别编。\r\n\r\n### 雪球热帖抓取（一手散户情绪与观点）\r\n\r\nWebSearch 抓的是新闻和研报，拿不到散户在讨论什么。雪球评论区的热帖是**发现选题、找争议钩子、判断多空分歧**的一手素材——哪条帖子几百回复、评论区在吵什么，往往就是这只票当下最真实的情绪焦点。**每次抓数据时，和 WebSearch 并行跑一次这个脚本。**\r\n\r\n```bash\r\npython3 scripts/xueqiu_hot_posts.py <雪球代码> --top 12 --comments 25 --out /tmp/xq_hot.json\r\n```\r\n\r\n依赖：`playwright`、`beautifulsoup4`、`lxml`，以及一个 Chromium 内核。若首次运行报 `ModuleNotFoundError`，先 `pip install playwright beautifulsoup4 lxml`；若报找不到浏览器，脚本会自动查找 `~/Library/Caches/ms-playwright` 下已缓存的 Chromium，也可用 `playwright install chromium` 下载，或设 `PW_CHROMIUM=/path/to/chrome` 指定。\r\n\r\n- **股票代码格式**：A股 `SH600585` / `SZ000858`，港股 `HK03690`（脚本会自动处理港股接口的代码转换），美股 `BABA`。不确定代码就先 WebSearch \"<股票名> 雪球 代码\"。\r\n- **参数**：`--top` 抓多少条热帖（默认12），`--comments` 每条帖加载多少条高赞评论（默认25），`--no-comments` 只要正文不要评论，`--sort new` 换成按时间的新帖（默认 `hot` 热帖）。\r\n- 脚本用 Playwright 驱动本地 Chromium 绕过雪球的阿里云 WAF，**首次运行较慢（要过风控挑战），属正常**。抓取全程走 stderr 打印进度，结果 JSON 写到 `--out` 指定的文件。\r\n- 若报「未拿到 xq_a_token」或长时间卡住，多半是网络/风控波动，隔几十秒重试即可；不要让它阻塞整个流程，抓不到就在选题里注明\"雪球热帖未获取到\"，继续用 WebSearch 的数据。\r\n\r\n**输出结构**（精简过，直接喂给自己参考即可）：\r\n\r\n```json\r\n{\r\n  \"symbol\": \"SH600585\", \"sort\": \"热帖\", \"count\": 12,\r\n  \"posts\": [\r\n    {\r\n      \"author\": \"作者昵称\", \"created_at\": \"2026-06-21 18:28\",\r\n      \"title\": \"帖子标题(可能为空)\", \"text\": \"正文全文(已清洗HTML)\",\r\n      \"reply_count\": 393, \"like_count\": 182, \"view_count\": 516387,\r\n      \"hot_score\": 575, \"url\": \"帖子链接\",\r\n      \"comment_total\": 393,\r\n      \"top_comments\": [\r\n        {\"author\": \"...\", \"text\": \"高赞评论正文\", \"like_count\": 47,\r\n         \"reply_count\": 2, \"created_at\": \"...\", \"ip_location\": \"广东\"}\r\n      ]\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n**怎么用这份数据**：\r\n- 看 `hot_score` 高、`reply_count` 大的帖子在争什么 → 这就是现成的**争议判断型/答疑解惑型选题**。\r\n- 看 `top_comments` 里的高赞观点和分歧点 → 提炼成口播稿里的\"散户怎么看\"\"评论区吵翻了\"这类接地气的段落，增强代入感。\r\n- 注意区分：热帖里的观点是**散户情绪与观点**，是素材不是事实。涉及数字（股价、财报）仍以 WebSearch 核对过的为准，别把散户帖子里的数据当真。\r\n\r\n### 第二步：产出3个选题方案\r\n\r\n好的财经选题 = 一个真实的数据事实 × 一个观众关心的情绪/问题 × 一个让人忍不住点进来的钩子。\r\n\r\n三个方案要走**不同的角度**，不要三个都是\"XX股票分析\"。参考这些角度维度去分化（选3个差异最大的）：\r\n\r\n- **争议判断型**：给一个反共识或鲜明的结论（\"茅台还能不能买\"）\r\n- **事件驱动型**：抓最新的催化事件（财报暴雷、涨停、政策利好）\r\n- **对比型**：和竞品/行业/历史自己对比（\"宁王 vs 比亚迪\"）\r\n- **答疑解惑型**：解答散户最纠结的问题（\"套牢了要不要割\"）\r\n- **深度拆解型**：把商业模式/护城河讲透\r\n- **风险预警型**：泼冷水，指出被忽视的风险\r\n\r\n每个选题方案按这个格式输出：\r\n\r\n```\r\n## 选题 N：[一句话选题方向]\r\n\r\n**核心角度**：这条视频到底在讲什么、站什么立场\r\n**开场钩子**：前5秒怎么留住人（写出具体的第一句话）\r\n**内容主线**：3-4个bullet，讲清视频的论证脉络\r\n**预估热度**：⭐⭐⭐⭐☆ + 一句话说明为什么（蹭了什么热点/情绪）\r\n**适合人群**：谁会点这条视频\r\n```\r\n\r\n三个方案给完后，用一句话邀请用户选择，例如：\"你想做哪个方向？选定后我就出完整口播稿、标题和封面。也可以说'把选题2的角度改成更看空'。\"\r\n\r\n然后**停下来**，不要自己接着往下写。\r\n\r\n## 阶段二：文稿与标题\r\n\r\n用户选定选题后，产出口播稿、标题、质量评估，写进统一文档，然后**停下来等用户确认最终标题**。封面留到阶段三、标题定稿后再生成——否则封面大字会和实际使用的标题对不上。\r\n\r\n### 1. 口播稿\r\n\r\n**写稿前先补一轮搜索**：阶段一的搜索是为了定选题，颗粒度偏粗。选定角度后，围绕这个具体角度再做一轮更有针对性的 WebSearch，把文稿写扎实——比如选题是\"财报暴雷\"，就深挖这份财报的分项数据、管理层解释、机构最新点评；选题是\"估值贵不贵\"，就补估值历史分位、同行对比的具体数字。**同时务必重跑一次 `scripts/xueqiu_quote.py` 核对股价、市值、PE 等基础数据仍是写稿当日最新的**（选题到写稿之间可能又过了一两天，行情已变），以接口返回为准。如果阶段一抓的雪球热帖还在，直接复用；需要更贴合选定角度的散户观点，可以再跑一次 `scripts/xueqiu_hot_posts.py`（见上方「雪球热帖抓取」），把高赞评论里的真实分歧点写进文稿。\r\n\r\n阅读 `references/script-structure.md` 获取完整的口播稿结构模板、语气要求和范例。核心原则：\r\n\r\n- **7-10分钟，约2500-3500字**，口语化，能直接对着念，用「蛋炒饭财经」的口吻\r\n- **黄金开场**：前15秒必须抛出钩子/结论/悬念，别铺垫\r\n- **观点鲜明 + 有干货**：兼顾小白通俗易懂，但要按七维框架层层递进——基本面、估值、行业、技术面、资金面、催化与风险都按需讲到，最后给**估值判断 + 明确的买入/卖出/观望建议**（含理由和关键价位）。数据要具体、要最新\r\n- **只说股票名字，不报代码**：正文里直接说\"贵州茅台\"\"宁德时代\"这样的名字，**不要出现股票代码**（如 600519、300750），口播念代码既拗口又没必要\r\n- **标点用中文全角**：口播稿正文一律使用中文常用标点，逗号用「，」而不是英文「,」，句号用「。」、问号「？」、感叹号「！」、冒号「：」、分号「；」、顿号「、」，引号用「\"\"''」，括号用「（）」，省略号用「……」。只有数字、股票代码、英文单词内部或纯英文短语里才保留英文半角符号（如 PE、ROE、A股 vs H股 的比较写法），其余中文语境一律用全角标点\r\n- **有节奏**：每段之间用口语过渡词衔接，适当设置\"记住这个数字\"\"划重点\"等提示\r\n- **合规**：口播稿结尾必须包含风险提示 + 互动引导（点赞/收藏/关注「蛋炒饭财经」/下期再见），见下方\"合规红线\"和结构模板\r\n\r\n### 2. 标题\r\n\r\n阅读 `references/title-formulas.md` 获取爆款标题公式。产出 **3个精华** 候选标题——宁可3个都能打，也不要凑数；每个都要经过\"具体锚点×情绪钩子×信息缺口\"的碰撞打磨，覆盖3种不同角度，控制在 20 字以内（B站标题上限），并标注推荐指数。\r\n\r\n### 3. 质量评估（loop 评审）\r\n\r\n口播稿和标题齐了之后，别急着结束——切换到**专业财经观众**的视角，对口播文案做一轮 loop 评审。见下方「口播文案质量评估」，把评价和优化建议一并写进统一输出文档。\r\n\r\n### 阶段二收尾：等用户确认最终标题\r\n\r\n口播稿、3个候选标题、质量评估都写进统一文档后，**停下来**，用一句话邀请用户确认，例如：\"文稿和 3 个标题都在文档里了，你定一下最终用哪个标题（或说要改哪里），定了我再按这个标题去生成 B站和抖音封面。\"\r\n\r\n不要在标题确认前就抢跑生成封面——封面大字要用的就是这个最终标题，标题没定，封面必然要返工。\r\n\r\n## 阶段三：封面（标题定稿后才做）\r\n\r\n用户确认最终使用的标题后，**以那个标题为封面大字方向**，生成两版封面。封面用 gpt-image-2 模型生成（走B站LLM网关），产出两版：\r\n\r\n- **B站版**：4:3 横版\r\n- **抖音版**：3:4 竖版\r\n\r\n写封面提示词前先明确：**这张封面的大字用的就是用户选定的那个标题**（或其精炼版，控制封面字数时可提炼，但方向、观点必须和选定标题一致，不能另起一个和标题打架的说法）。再定情绪色调（红涨绿跌/警示黄/科技蓝）和主体（人物表情/K线/logo/数字）。阅读 `references/cover-prompts.md` 获取封面提示词的写法模板（配色、构图、文字排布、财经视觉元素）。\r\n\r\n调用 `scripts/generate_cover.py` 来生成。用法：\r\n\r\n```bash\r\npython3 scripts/generate_cover.py \\\r\n  --platform bilibili \\\r\n  --prompt \"封面画面描述（英文效果更稳定，但中文大字标题用中文）\" \\\r\n  --output <股票名>_bilibili.png\r\n\r\npython3 scripts/generate_cover.py \\\r\n  --platform douyin \\\r\n  --prompt \"...\" \\\r\n  --output <股票名>_douyin.png\r\n```\r\n\r\n**硬规则：封面大字与选定标题一致**。封面主视觉的大字必须承接用户确认的那个标题，不能封面讲一套、标题讲另一套。若因排版需要精简字数，只做提炼、不改立场（标题看空，封面就不能显得看多）。\r\n\r\n**硬规则：两版封面都必须在图上清晰显示公司的具体中文名字**（如\"兆易创新\"\"贵州茅台\"），可以是主标题或副标题/角标，但一定要写进提示词、清晰可读、不被遮挡。生成后检查公司名是否出现且写对，缺失或糊掉就重生成——不能交付一张看不出讲哪家公司的封面。\r\n\r\n**硬规则：公司名字在封面里固定统一的位置**（B站版固定放在顶部、抖音版固定压在最顶部），每期视频都用同一套排布，让「蛋炒饭财经」长期做下来有稳定的系列感。写提示词时明确指定公司名的固定位置，不要每期换地方。\r\n\r\n**硬规则：封面文件用股票名字命名**，格式 `<股票名>_bilibili.png` 和 `<股票名>_douyin.png`（如 `贵州茅台_bilibili.png`、`保利物业_douyin.png`），不要再用 `cover_bilibili.png` 这类通用名，方便长期归档区分是哪支票。\r\n\r\n生成后，把封面提示词与成图路径**补写进阶段二已建的统一输出文档**（见下方「统一输出文档」的封面小节），不要另开一个文件。\r\n\r\n脚本需要环境变量 `LLM_GATEWAY_API_KEY`。如果没设置，提醒用户 `export LLM_GATEWAY_API_KEY=xxx` 后重试，不要卡住整个流程——可以先把封面提示词写好交付，让用户自己跑脚本。\r\n\r\n## 统一输出文档\r\n\r\n阶段二和阶段三的所有产出**汇总写进同一个 Markdown 文档文件**（例如用 Write 工具写到 `<股票名>_财经视频文案.md`），让用户一次性复制粘贴、方便存档。不要把口播稿、标题、封面、评估拆成好几条对话消息发出去。\r\n\r\n**分两次写**：阶段二先写入口播稿、标题、质量评估（封面小节先留占位，标注\"待标题确认后生成\"）；阶段三用户确认标题、封面生成后，再把封面提示词与成图路径补写进同一个文档的封面小节。文档按这个结构组织：\r\n\r\n```markdown\r\n# <股票名> · <选定选题方向>\r\n\r\n## 一、口播稿\r\n（完整口播稿正文）\r\n\r\n## 二、爆款标题（3个精华候选）\r\n（标题列表 + 推荐指数。用户最终选定的标题在此标注「✅ 最终采用」）\r\n\r\n## 三、质量评估（专业财经观众视角）\r\n（见「口播文案质量评估」的五维评分与优化建议）\r\n\r\n## 四、封面（标题确认后生成）\r\n> 阶段二先留此占位：待用户确认最终标题后再生成、补写。\r\n### B站版(4:3)\r\n- 采用标题：<用户选定的标题>\r\n- 封面提示词：...\r\n- 成图路径：<股票名>_bilibili.png（若已生成）\r\n### 抖音版(3:4)\r\n- 采用标题：<用户选定的标题>\r\n- 封面提示词：...\r\n- 成图路径：<股票名>_douyin.png（若已生成）\r\n```\r\n\r\n阶段二写完文档后，在对话里用一两句话告诉用户文档路径、并邀请其确认最终标题；阶段三封面补写完，再简短说明封面已生成、路径在文档里即可。正文不必在消息里重复粘贴。\r\n\r\n## 口播文案质量评估（loop 评审）\r\n\r\n统一输出文档写好后，**再做一轮自我评审**：跳出创作者身份，站在一个**挑剔的、有持仓的专业财经观众**角度，重新读一遍口播稿，逐条打分并给出可落地的优化点。目的是发现\"自己写的时候没意识到、但观众一看就出戏\"的问题。\r\n\r\n从这五个维度评估，每个维度给 ⭐（1-5 星）+ 具体说明：\r\n\r\n1. **观点是否明确**：看完能不能一句话复述 UP 主的核心结论（该买/该卖/观望、看多还是看空）？有没有骑墙、模棱两可、前后观点打架？关键价位和建议是否清晰可执行？\r\n2. **内容是否详实**：数据是否具体且最新，还是空泛的定性描述？七维框架该覆盖的有没有覆盖到？有没有\"只喊结论没有论据\"的段落？有没有独家视角或信息增量，还是全是人人都知道的常识？\r\n3. **逻辑是否清晰**：论证链条是否层层递进（基本面→估值→技术/资金→催化与风险→结论），还是东一榔头西一棒子？段落之间过渡是否自然？有没有自相矛盾的地方？\r\n4. **看完是否有收获感**：一个已经关注这只票的观众看完，会觉得\"值这 8 分钟\"吗？是记住了具体的判断和价位，还是听了个热闹？有没有让人想点赞/收藏/转发的\"金句\"或\"记忆点\"？\r\n5. **开场与留人（完播设计）**：这是完播率的\"因\"，前四维大多是\"果\"，要单独抠。前5秒的第一句够不够狠——有没有一口气说完的数字或反差判断，还是又臭又长的铺垫？开头有没有埋\"价值锚点\"（预告关键价位/结论）把观众吊到中后段？段落过渡是\"再看下一秒\"的钩子式，还是\"说完A再看B\"的平叙式（后者掉人）？中段有没有连续堆专业名词、数据轰炸的\"平坦段\"——对着每一段问\"这段删了观众会不会走\"，会走的就是问题段。\r\n\r\n评估格式：\r\n\r\n```\r\n## 三、质量评估（专业财经观众视角）\r\n\r\n**观点明确度**：⭐⭐⭐⭐☆ — （说明）\r\n**内容详实度**：⭐⭐⭐☆☆ — （说明）\r\n**逻辑清晰度**：⭐⭐⭐⭐☆ — （说明）\r\n**收获感**：⭐⭐⭐⭐☆ — （说明）\r\n**开场与留人（完播设计）**：⭐⭐⭐⭐☆ — （说明）\r\n\r\n**综合评价**：一段话总结这稿子的水平和最大短板。\r\n\r\n**优化建议（按优先级）**：\r\n1. 最该改的点——具体到哪一段、怎么改\r\n2. ...\r\n3. ...\r\n```\r\n\r\n评审要**具体、可落地、对稿子狠一点**——指到具体段落、具体数字、具体句子，而不是\"可以再详实一些\"这类正确的废话。如果某一维度确实明显不足（比如观点骑墙、数据空泛），要直接指出并给出改法；发现硬伤（数据可能过时、观点自相矛盾）就明确标红。评估的价值在于让下一版更好，不是给自己发奖状。\r\n\r\n## 合规红线（不可省略）\r\n\r\n财经内容直接关系到观众的真金白银，这几条必须守住：\r\n\r\n1. **数据必须最新且正确**。股价、涨跌幅、市值、PE、PB 等基础行情**以 `scripts/xueqiu_quote.py` 的当日返回为准**，财报数字用 WebSearch 核对，都必须是写稿当日（或最近交易日）的正确值，写稿前重新核对一次。绝不允许出现股价量级错误、数据写反这类基础硬伤。\r\n2. **不编造数据**。搜不到或接口未返回的数字标注\"未获取到\"，不要用记忆里的旧数据冒充最新。\r\n3. **区分事实与观点**。讲财报数据是事实，讲\"该买/该卖\"是观点，措辞上要让观众能分辨。\r\n4. **不做保证性承诺**。不说\"必涨\"\"稳赚\"\"闭眼买\"这类话，即使是爆款钩子也要用\"我认为\"\"大概率\"这类留有余地的表达。\r\n5. **正文不出现股票代码**。口播只说股票名字，不念代码。\r\n\r\n## 快速参考\r\n\r\n- `references/script-structure.md` — 口播稿完整结构、语气、范例\r\n- `references/title-formulas.md` — 爆款标题公式与范例\r\n- `references/cover-prompts.md` — 封面提示词模板（B站/抖音）\r\n- `scripts/generate_cover.py` — 调用 gpt-image-2 生成封面\r\n- `scripts/xueqiu_quote.py` — 抓雪球基础行情(股价/市值/PE/PB/PS/股息率等)，股价类基础数据的权威来源\r\n- `scripts/xueqiu_hot_posts.py` — 抓雪球热帖(含正文全文+高赞评论)，散户情绪与观点的一手素材\r\n\r\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/references/title-formulas.md ===\r\n# 爆款标题公式\r\n\r\nB站标题上限较宽但**推荐控制在20字以内**，抖音更短更好。每次只产出 **3 个精华标题**——宁可3个都能打，也不要5个里凑数。（内部可以先多草几条再砍到 3 条精华，但最终只交付 3 个。）\r\n\r\n## 起标题前的 3 步自检（先做这个，再套公式）\r\n\r\n别拿到股票就直接套公式，先花 30 秒把文稿嚼透，锁定三件事——这一步决定了标题是\"泛泛的股票分析\"还是\"非它不可的爆款\"：\r\n\r\n1. **写出这条视频最反共识的一个点**。用一句话：\"大家都以为 X，但其实 Y。\" 这个 Y 就是标题最该抖出去的东西。（例：\"都以为宁王要完，其实它账上现金比市值还硬。\"）\r\n2. **挑出最强的一对矛盾**。好标题的驱动力，往往是一对\"不该共存却共存\"的属性。财经场景这种矛盾极现成，格式 `[强属性] × [反预期属性]`：\r\n   - \"账上 800 亿现金 × 股价腰斩\"\r\n   - \"业绩创历史新高 × 财报当天跌停\"\r\n   - \"机构疯狂加仓 × 散户集体割肉\"\r\n   列 2-3 对，选张力最强的那对进标题。\r\n3. **一句话写出标题要传达的核心信息**：是抛一个观众自己也会问的问题，还是甩一个让人\"真的假的？\"的结论。\r\n\r\n这三步定完方向，再回到下面挑角度、抠字眼。\r\n\r\n## 一个好标题的本质：三样东西的碰撞\r\n\r\n标题不是\"概括视频讲了啥\"，而是**让人忍不住点进去**。真正能打的标题，是这三样的碰撞，缺一不可：\r\n\r\n1. **具体锚点**——一个真实的数字、名字或事件（\"套在1800\"\"跌70%\"\"财报当天\"）。它证明你不是标题党，给可信度，也让特定人群对号入座。\r\n2. **情绪钩子**——只戳**一根**神经：恐惧（怕亏/怕踏空）、贪婪（想抄底）、好奇（到底为什么）、认同（说出我想说的）。一个标题贪多戳好几根，反而一根都戳不进去。\r\n3. **信息缺口**——藏起一个答案，只有点进去才能填。缺口的火候是关键（见下）。\r\n\r\n一句话：**具体锚点给可信、情绪钩子给冲动、信息缺口给理由。** 三者齐了，标题就立住了。\r\n\r\n## 信息缺口的火候（最容易做错的一步）\r\n\r\n缺口太满或太空都不点。校准它：\r\n\r\n- **太满（差评）**：结论全抖在标题里，点进去没有新东西。\"茅台被高估了，建议卖出\"——都说完了，何必点？\r\n- **太空（差评）**：勾不出具体在讲什么，观众不敢赌那几分钟。\"这只票有个大秘密\"——什么票？什么秘密？不可信。\r\n- **刚好（好评）**：给出**足够具体的悬念**，让人觉得\"答案就在里面、而且我需要它\"。\"套在茅台1800的人，现在只有一条路\"——知道讲什么、戳中我、但不点不知道那条路是什么。\r\n\r\n## 六个可用角度（每次选差异最大的3个）\r\n\r\n角度是工具箱，不是填空模板——选完角度，回到上面\"三样碰撞\"去打磨每一个字。\r\n\r\n### 1. 悬念留白型\r\n藏起一个必须点进去才能填的信息缺口。\r\n- \"跌了30%的茅台，我反而加仓了，就因为这一个数字。\"\r\n- \"宁德时代这份财报，有一行字比营收更重要。\"\r\n\r\n### 2. 数字冲击型\r\n用**反差大、够具体**的数字抓眼球——数字要让人意外，不只是\"有个数字\"。\r\n- \"3年跌70%，宁德时代的底还没到？\"\r\n- \"账上800亿现金，股价却腰斩，问题出在哪。\"\r\n\r\n### 3. 争议观点型\r\n给一个反共识的判断，激发认同或反驳欲。**站队要狠，别骑墙。**\r\n- \"所有人都在割肉，我却把这只票加到满仓。\"\r\n- \"英伟达的故事，我认为讲不下去了。\"\r\n\r\n**红线：反转的\"靶子\"必须是市场公认印象，不能自造。** 反转型标题前半句立的那个\"大家都以为的事\"，必须是散户/市场真的都这么认为的常识——\"都说茅台是永远的神\"\"都以为宁王要完\"\"公认的白马股\"——观众一看就知道你在反谁的共识。别自己发明一个观众根本没听过的前提去反（比如硬说\"以稳健著称的某某股\"，可这只票压根没这名声），那样靶子立不住，观众只会一脸懵。\r\n\r\n### 4. 提问代入型\r\n问出观众心里正纠结的问题，让特定人群觉得\"说的就是我\"。\r\n- \"套在茅台1800的人，现在该割还是该扛？\"\r\n- \"现在上车比亚迪，是抄底还是接盘？\"\r\n\r\n### 5. 结论前置型\r\n把结论/建议直接放标题——但**留一半**，别把理由也抖光。\r\n- \"一句话：茅台能拿，但别追，原因就一个。\"\r\n- \"看完这条，你就知道这票该不该卖。\"\r\n\r\n### 6. 蹭热点/事件型\r\n绑定最新事件吃平台热点流量，事件要\"新鲜到今天\"。\r\n- \"涨停背后：主力今天到底干了什么。\"\r\n- \"财报暴雷当天，我把这只票的账重算了一遍。\"\r\n\r\n## 话题可辨识 & 搜索锚定（吃搜索流量）\r\n\r\n财经视频有大量搜索流量——观众会主动搜\"茅台还能买吗\"\"宁德时代 财报\"\"XX 涨停原因\"。标题不含公司名或核心话题词，就吃不到这块流量，也让人一眼看不出讲哪只票。\r\n\r\n- **标题前半必须出现公司中文名或核心话题词**（贵州茅台、宁德时代、财报、涨停、腰斩……），让观众和搜索引擎都能一眼锁定\"这是讲哪只票、什么事\"。\r\n- 用**中文名，不用股票代码**（写\"贵州茅台\"不写 600519），和口播稿\"正文不报代码\"的规则一致。\r\n- 关键词要**自然嵌进句子**，不是硬塞——为了塞词把语感搞崩，得不偿失。\r\n\r\n## 标题 × 封面配合（别让两块信息重复）\r\n\r\n标题和封面大字是两块广告位，要形成**互补**，不是把同一句话写两遍：\r\n\r\n- 常见的好配合：**标题抛问题 / 封面给结论或冲击画面**，或反过来。例：标题\"套在茅台1800的人，现在只有一条路\"，封面大字就不必重复这句，可以是\"1800 → 现在\"的价位反差或一个明确表情/结论。\r\n- 自查：把标题和封面大字放一起读，如果信息几乎一样，说明浪费了一块广告位，改掉其中一个。\r\n\r\n## 打磨清单（写完每个标题逐条自查）\r\n\r\n- **前6个字够不够狠**？手机信息流会截断标题，最勾人的词（数字、反差、身份）要**放最前面**，别浪费在\"关于\"\"浅谈\"上。\r\n- **只戳了一根神经吗**？一个标题一种情绪，别又恐惧又好奇又贪婪。\r\n- **数字够不够意外**？平淡的数字不如不放。要么反差大，要么反常识。\r\n- **动词带不带电**？用\"割肉\"\"踏空\"\"闷杀\"\"抄底\"这种有画面、有情绪的词，别用\"分析\"\"探讨\"\"了解\"。\r\n- **缺口火候对吗**？对照上面\"太满/太空/刚好\"，确认是\"刚好\"。\r\n- **换主语还成立吗**？把公司名换成另一只票，标题照样通顺 → 说明它太泛、没锚点，重写。好标题应该\"非这只票不可\"。\r\n- **像饭桌上随口说的吗**？把标题读出来，像朋友饭桌上随口甩的一句话，还是像研报/公众号标题（\"浅谈\"\"关于……的思考\"）？后者太书面，改口语。\r\n- **删得动吗**？能删的字都删掉，20字以内越短越冲，抖音再压更短。\r\n\r\n## 输出格式\r\n\r\n产出**3个**候选，覆盖3种不同角度，格式如下：\r\n\r\n```\r\n1. [标题]（角度：悬念型）⭐⭐⭐⭐⭐ 推荐\r\n2. [标题]（角度：争议型）⭐⭐⭐⭐\r\n3. [标题]（角度：提问型）⭐⭐⭐⭐\r\n```\r\n\r\n推荐指数最高的放第一个，并用一句话说清它为什么最可能爆——点明它踩中了哪根情绪神经、缺口卡在哪里。\r\n\r\n## 红线（不可越）\r\n\r\n- 标题里的数字、事实必须和口播稿、真实数据一致，不能为了点击率编造。\r\n- 标题承诺的东西**必须在视频里兑现**，且别太早兑现——比如标题说\"3个关键价位\"，正文就该把价位放到中后段，否则开头抖完包袱，后面没人看，完播率崩。\r\n- 不用\"必涨\"\"稳赚\"\"内幕\"\"史诗级\"这类违规、夸张或误导词。\r\n- 可以有情绪，但不做绝对承诺——\"可能\"\"或许\"\"我认为\"是安全垫。\r\n\r\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/references/script-structure.md ===\r\n# 口播稿结构模板\r\n\r\n目标：一条 7-10 分钟（约2500-3500字）、能对着念、观点鲜明又通俗的财经口播稿，出自财经账号 **「蛋炒饭财经」**。观众是想搞懂\"这票到底能不能买\"的普通人，但也有一部分懂行的，所以既要通俗，又要有干货，不能水。\r\n\r\n三条贯穿全文的硬要求：\r\n- **数据最新且正确**：文中所有股价、涨跌幅、市值、PE/PB、财报数字，必须是写稿当日（或最近交易日）的真实数据，写稿前用 WebSearch 再核对一次。\r\n- **只说名字不报代码**：正文提到股票只说名字（\"贵州茅台\"\"宁德时代\"），不要念股票代码。\r\n- **标点用中文全角**：正文一律使用中文常用标点，逗号用「，」不用英文「,」，句号「。」、问号「？」、感叹号「！」、冒号「：」、分号「；」、顿号「、」，引号用「\"\"''」，括号用「（）」，省略号用「……」。仅数字、股票代码、英文单词/短语内部保留英文半角符号，其余中文语境一律全角。\r\n\r\n## 整体结构\r\n\r\n按下面六段来写。每段标注了大致时长和目的，字数按 7-10 分钟分配。\r\n\r\n### 1. 黄金开场（0-15秒 / 约150字）\r\n前15秒决定完播率，而**前5秒决定观众走不走**，要分两层设计：\r\n\r\n**前5秒（生死线，决定去留）**：第一句必须一口气能说完、控制在15字以内，且必须含一个具体数字或一个反差判断，**禁止任何从句铺垫和自我介绍**。三种高效开头，任选其一：\r\n- **抛结论**：\"先说结论，现在的XX，我不建议追。\"\r\n- **抛悬念/数字**：\"一个月跌30%的XX，昨天突然涨停。\"\r\n- **抛冲突**：\"所有人都说XX要完了，我却想加仓。\"\r\n\r\n**5-15秒（决定要不要看完）**：接着把钩子展开，并**埋一个价值锚点**——把观众最想要的东西预告在开头、兑现在结尾，这是拉完播最有效的手段。例如\"这条视频，我会给你3个关键价位\"\"看完这三点，你就知道该不该买\"。价值锚点要具体、可兑现，且真正的答案放到中后段揭晓，吊着观众看下去。\r\n\r\n### 2. 背景铺垫（约300-400字）\r\n快速交代\"发生了什么\"。用最新的事件/数据把观众拉到同一个信息水位：股价现在多少、最近发生了什么催化、市场在吵什么。数字要具体，但一次别堆太多，讲一个消化一个。\r\n\r\n> 下面的第3-5段是文稿的干货主体，对应七维分析框架（基本面→估值，中间穿插行业、资金面、催化与风险）。**不必七个维度平均用力**，围绕本条选题的角度，把最相关的2-3个维度讲透，其余带过，避免变成流水账。\r\n\r\n### 3. 基本面 + 行业（约700-900字）\r\n硬核部分之一。讲清楚这家公司**靠什么赚钱、赚得怎么样、未来还能不能赚**：\r\n- 主营业务和商业模式（一句话讲明白它怎么赚钱）\r\n- 最新财报关键数据：营收/净利润及增速、毛利率净利率、ROE、现金流、负债率\r\n- 护城河：品牌/技术/规模/网络效应——为什么别人抢不走它的生意；或它正面临什么威胁\r\n- 行业赛道：行业处在成长还是成熟/衰退期、政策是顺风还是逆风、公司在产业链里的地位和议价权\r\n- 把数字翻译成人话，比如\"毛利率91%，意思是卖100块的酒，成本只有9块\"；\"ROE 30%，意思是股东每投100块，一年能赚回30块\"\r\n\r\n### 4. 技术面 + 资金面（约500-600字）\r\n另一块硬核。讲图形和资金，回答\"什么时候买、什么价位买\"：\r\n- 当前所处的位置（历史高位/低位、关键均线上下、多头还是空头排列）\r\n- 关键支撑位和压力位（给具体价格）\r\n- 量能与趋势：放量还是缩量、突破还是破位；MACD/RSI 是否超买超卖（点到为止，别堆指标）\r\n- 资金动向：主力/北向资金/机构近期是流入还是流出、龙虎榜或持仓有没有异动\r\n- 提醒：技术面是概率不是保证，用\"如果站上X，大概率看向Y；如果跌破Z，要警惕\"这种条件句\r\n\r\n### 5. 估值 + 催化风险 + 明确建议（约500-600字）\r\n这是观众最想听的，也是最能体现观点的部分。**不要含糊**：\r\n- 估值判断：当前PE/PB/PS处在历史什么分位、和同行比贵还是便宜、PEG 有没有透支成长，给一个合理估值区间\r\n- 未来变量：短期有什么催化剂（财报、新品、政策、景气拐点）；有什么被忽视的风险（业绩、政策、竞争、泡沫、减持）\r\n- 明确态度：买入 / 卖出 / 观望，并说清理由\r\n- 给操作参考：什么价位可以考虑、什么价位该止损/止盈、适合长线价值还是短线博弈的人\r\n- 用\"我个人的看法是…\"\"如果是我，我会…\"这样的表达，既鲜明又留有余地\r\n\r\n### 6. 收尾 + 风险提示 + 互动（约200字）\r\n- 一句话总结全片核心观点\r\n- **风险提示（必须有）**：\"以上仅为个人分析，不构成投资建议。股市有风险，入市需谨慎，请独立决策。\"\r\n- **互动引导（必须有）**：先抛一个让人想评论的问题，再引导三连和关注，最后用固定收尾。以「蛋炒饭财经」的口吻，例如：\r\n  - \"你怎么看这只票？是准备上车还是已经下车了？评论区告诉我。\"\r\n  - \"觉得这期分析有用的，帮我点个赞、加个收藏，方便以后回看；想继续看这种深度拆解的，记得关注『蛋炒饭财经』，你们点的票，下期我接着安排。\"\r\n  - 用一句稳定的口头禅收尾，强化人设，比如：\"我是蛋炒饭，我们下期再见。\"\r\n- 具体措辞每期可以微调，但\"抛问题 → 点赞收藏关注蛋炒饭财经 → 下期再见\"这个结构每条都要有。\r\n\r\n## 语气与写法要求\r\n\r\n- **口语化**：写完自己念一遍，拗口的地方就是要改的地方。多用短句。\r\n- **通俗但不low**：专业名词第一次出现就用一句大白话解释，之后可以直接用。\r\n- **有节奏感**：适当插入\"划重点\"\"记住这个数字\"\"注意了\"来提示关键信息，帮观众抓重点。每30-45秒给一个\"小高潮\"（一个数据、一个判断、一个金句），别把干货全堆在前2分钟。\r\n- **观点鲜明**：敢下判断，但用\"我认为\"\"大概率\"\"从数据看\"来承接，不做绝对承诺。\r\n- **段落过渡用钩子，不用平叙**：段与段之间不要用\"说完了基本面，我们再看看技术面\"这种平叙式过渡——这是最容易掉人的写法。改用**预告式钩子**推着观众进下一段，比如\"但真正的问题在这\"\"先记住这个数字，后面算价位要用\"\"第二点更关键，很多人都忽略了\"。每次过渡都给观众一个\"再看下一秒\"的理由。\r\n- **消灭平坦段（防跳出）**：中段连续讲财报、估值数据是跳出重灾区。规则：连续讲的专业名词不超过2个就要停下来用大白话解释或类比一次（\"这相当于你每年白干三个月\"），并适时插一句散户视角（\"评论区很多人纠结的就是这一点\"）拉回代入感。\r\n- **标点全角**：写完通读一遍，把中文语境里误用的英文标点（`,` `.` `?` `!` `:` `;`）全部换成中文全角（`，` `。` `？` `！` `：` `；`），只保留数字、代码、英文短语内部的半角符号。\r\n\r\n## 输出格式\r\n\r\n用带时间轴/段落标题的形式输出，方便录制时找位置，例如：\r\n\r\n```\r\n【开场 · 0:00】\r\n（正文……）\r\n\r\n【基本面 · 约1:30】\r\n（正文……）\r\n```\r\n\r\n## 一个开场范例（供参考语感，不要照抄）\r\n\r\n> \"先说结论：如果你现在手里拿着贵州茅台，我建议你拿住别动；但如果你想现在追进去，我劝你再等等。为什么同一支票，拿着和买入是两个建议？因为价格。今天这条视频，我用最新的财报和技术面数据，跟你把茅台到底值多少钱这件事，算清楚。\"\r\n\r\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/references/cover-prompts.md ===\r\n# 封面提示词模板\r\n\r\n封面是点击率的最大杠杆之一。财经视频封面要在1秒内传达三件事：**讲哪只股票、什么情绪（涨/跌/警示）、一句勾人的大字**。\r\n\r\n## 硬规则：封面必须出现公司名字\r\n\r\n每一张封面（B站版和抖音版都是）**必须清晰地显示公司的具体中文名字**，例如\"兆易创新\"\"贵州茅台\"\"保利物业\"。观众划到封面第一眼就得知道这条视频讲的是哪家公司，不能只有一句情绪大字却看不出是谁。\r\n\r\n- 公司名可以是**主标题本身**（比如大字直接写\"兆易创新\"），也可以作为**副标题/角标**和勾人大字并存（比如大字\"闭眼捡钱？\"+ 醒目副标\"保利物业\"）。\r\n- 无论哪种排布，公司名字都要**足够大、足够清晰、不被遮挡**，用真实全称或通用简称，不要用代码代替、不要缩写到认不出。\r\n- 写提示词时，必须显式要求把公司名字写在图上（见下方写法），不能省略。\r\n\r\n## 硬规则：公司名字固定统一的位置（系列感）\r\n\r\n公司名字在封面里**必须固定放在统一的位置**，每期视频都用同一套排布，让「蛋炒饭财经」长期做下来有稳定的系列感、一眼能认出是同一个账号的内容。约定如下，不要每期换地方：\r\n\r\n- **B站版（4:3 横版）**：公司名固定放在**顶部**，作为最醒目的主标题，横贯上方、带一条高亮色衬底或光效。\r\n- **抖音版（3:4 竖版）**：公司名固定**压在最顶部**一行，横贯画面顶端，是全图最大最清晰的文字。\r\n- 写提示词时明确指定公司名的这个固定位置（top / pinned across the top），并要求它是全图最突出的文字，不要移到中间或角落。\r\n\r\n## 硬规则：封面文件用股票名字命名\r\n\r\n生成的封面文件**用股票名字命名**，格式 `<股票名>_bilibili.png` 和 `<股票名>_douyin.png`（如 `贵州茅台_bilibili.png`、`保利物业_douyin.png`），不要用 `cover_bilibili.png` 这类通用名，方便长期归档、一眼区分是哪支票。\r\n\r\n## 两个平台的差异\r\n\r\n| | B站 | 抖音 |\r\n|---|---|---|\r\n| 比例 | 4:3 横版 | 3:4 竖版 |\r\n| 文字量 | 可稍多，主标题+副标题 | 极简，一句大字为主 |\r\n| 构图 | 左右布局，主体+文字分区 | 上下布局，大字压顶或居中 |\r\n| 观看场景 | 桌面/横屏，看得清细节 | 手机竖屏刷流，要更大更冲 |\r\n\r\n同一条视频，两版封面的**大字文案可以不同**：B站可以稍完整，抖音要更短更狠。\r\n\r\n## 提示词写法\r\n\r\ngpt-image-2 对画面描述用英文更稳定，但**需要出现在图上的中文大字，直接在提示词里用中文并明确要求**。一个提示词包含这几块：\r\n\r\n1. **画面主体**：K线图/上升或下跌箭头/公司logo氛围/人物表情/大额数字\r\n2. **情绪配色**：\r\n   - 看涨/利好 → 红色为主（中国市场红涨），暖色、上升箭头\r\n   - 看跌/警示 → 绿色或暗色 + 警示黄，下跌箭头\r\n   - 科技股 → 深蓝/黑金、科技感光效\r\n   - 中性分析 → 稳重的深色 + 金色，专业财经感\r\n3. **大字标题**：明确写\"图中央用醒目大号中文写：'XXXX'\"，字数越少越好（4-8字最佳）\r\n4. **公司名字（必须）**：明确要求图上出现公司中文名，例如\"顶部用醒目中文写公司名：'兆易创新'\"。可以是主标题，也可以是副标题/角标，但一定要写进提示词、且要求清晰可读。\r\n5. **风格词**：professional financial thumbnail, high contrast, bold typography, cinematic lighting, eye-catching, 4k\r\n6. **排版要求**：文字清晰不被遮挡、主体不要太满、留出文字空间\r\n\r\n## 模板示例\r\n\r\n**B站版（4:3，看空茅台的选题）：**\r\n```\r\nA professional YouTube-style financial thumbnail, 4:3 horizontal aspect ratio.\r\nLeft side: a dramatic downward red candlestick chart trending down.\r\nRight side: dark moody background with dramatic lighting, space for text.\r\nTop area, pinned across the top as the dominant headline with a bright accent bar behind it, large bold Chinese company name: \"贵州茅台\".\r\nIn the center-right, bold large Chinese text: \"茅台还能追吗\".\r\nBottom smaller Chinese text: \"用财报算清楚\".\r\nColor scheme: deep red and dark navy, high contrast, warning tone.\r\nAll Chinese text must be crisp, correctly written and fully readable, not cropped.\r\nStyle: cinematic, high-contrast, bold typography, professional finance channel, eye-catching, 4k.\r\n```\r\n\r\n**抖音版（3:4，同一选题）：**\r\n```\r\nA professional vertical thumbnail, 3:4 portrait aspect ratio, for a finance short video.\r\nBackground: dramatic dark red gradient with a falling stock chart and downward arrow.\r\nVery top: bold Chinese company name pinned across the top as the dominant headline, the biggest clearest text on the cover: \"贵州茅台\".\r\nUpper-center huge bold Chinese text: \"茅台别追\".\r\nCenter: a large glowing red downward arrow and blurred candlestick chart.\r\nColor scheme: intense red and black, maximum contrast, urgent emotional tone.\r\nAll Chinese text must be crisp, correctly written and fully readable, not cropped.\r\nStyle: mobile-first, oversized bold typography, punchy, eye-catching, 4k.\r\n```\r\n\r\n## 调用脚本\r\n\r\n```bash\r\npython3 scripts/generate_cover.py --platform bilibili --prompt \"上面的英文提示词\" --output 贵州茅台_bilibili.png\r\npython3 scripts/generate_cover.py --platform douyin  --prompt \"上面的英文提示词\" --output 贵州茅台_douyin.png\r\n```\r\n\r\n`--platform` 会自动选择对应的画幅尺寸（bilibili=1024x768，4:3 横版；douyin=768x1024，3:4 竖版）。\r\n\r\n## 提示\r\n\r\n- 大字文案要和标题、口播稿观点一致，别封面看空、内容看多。\r\n- gpt-image-2 生成的中文偶尔会有错别字，生成后**检查图上文字是否正确**，尤其确认**公司名字有出现、写对了、清晰可读**；错了就调整提示词重生成，或建议用户后期用设计工具替换文字。\r\n- 公司名字上封面是硬要求：如果生成图里公司名缺失或糊掉，必须重生成，不能交付一张看不出讲哪家公司的封面。\r\n- 一次可以先只生成一版让用户看效果，满意了再生成另一版，省额度。\n\nFile v0.1.1:references/exemplars/title-gen-v3.md\n\n# Video Title Generator V3.0\r\n\r\nGenerate click-worthy Chinese video titles AND matching opening structures from a transcript/script and target audience. Titles maximize CTR; openings maximize retention. Both together determine algorithmic reach.\r\n\r\nTrigger: \"生成标题\", \"视频标题\", \"起标题\", \"title gen\", \"generate title\", \"标题生成\"\r\n\r\n## Inputs\r\n\r\nThe user provides:\r\n1. **文稿/脚本** — the video transcript or script (full or partial)\r\n2. **目标受众** — who the video is for (e.g., \"职场新人\", \"历史爱好者\", \"科技爱好者\"). If omitted, infer from the transcript content and state your assumption.\r\n\r\n---\r\n\r\n## Step 0: 文稿深度分析（必须先完成，再起标题）\r\n\r\n拿到文稿后，按以下顺序完成分析并输出，**不要跳过任何一步**：\r\n\r\n### 0.1 主题提炼\r\n- **讨论主体**：文稿在讨论什么具体事物？（具体名词，不要泛化）\r\n- **名词类型**：这个名词属于什么类别？（国家/组织/历史事件/药品/科学概念/社会现象/人物/...）\r\n- **叙事视角与形式**：文稿是用什么视角/形式讲述的？（第一人称/第二人称沉浸式/第三人称客观/对话体/科普讲解/故事演绎/...）。如果文稿采用了沉浸式、第一/第二人称、穿越体验、角色扮演等叙事手法，这本身就是一个巨大的差异化优势——它能直接建立观众与内容之间的情感连接。标题应该利用而非忽略这个特征。\r\n- **核心论点**：文稿最终得出的结论或传达的关键信息是什么？（用一句话概括）\r\n- **最反直觉的点**：文稿中最可能让普通人惊讶的信息是什么？\r\n\r\n### 0.2 受众心声提取（在提出问题之前，先找到受众的声音）\r\n\r\n受众脑子里在想什么？用他们的口语、他们的热词、他们私下嘀咕的那句话来表达，不要用正式的书面语。列出2-3句\"受众内心独白\"。\r\n例如：\r\n- ✗ \"这种食品添加剂是否对人体有害？\"（这是百科语言）\r\n- ✓ \"这是科技与狠活吗？\"（这是受众脑子里的话）\r\n- ✓ \"配料表上这些看不懂的东西，到底能不能吃啊？\"\r\n\r\n### 0.3 三个前置问题（必答，决定标题方向）\r\n\r\n在分析具体的受众动机之前，先回答以下三个问题。这三个问题决定了标题的方向，跳过它们会导致标题泛泛：\r\n\r\n**Q1: 观众为什么要关心这件事？**\r\n从两个维度思考：\r\n- **信息服务**：观众能学到什么他们不知道的？获得什么能用上的知识？\r\n- **情绪价值**：观众看了会爽/会感动/会解气/会觉得涨见识？满足了什么心理需求？（猎奇、代入感、优越感、共鸣、爽感、治愈...）\r\n列出所有能提供的价值，按对观众的吸引力排序（通常来说，最容易引起共鸣的情绪是恐惧、愤怒或者希望）。\r\n\r\n**Q2: 同一个话题可能有很多人讲过。这个视频的比较优势是什么？（找到最突出的1-2个）**\r\n- 更专业/权威？（数据更扎实、来源更可靠）\r\n- 更易于理解？（把复杂的事说得通俗易懂）\r\n- 更有戏剧性/故事性？（有叙事、有角色、有情节转折）\r\n- 更有代入感？（沉浸式视角、第一/第二人称体验）\r\n- 更有情绪上的感染力？（更有动员力或更有梗）\r\n\r\n这个比较优势应该体现在标题中。\r\n\r\n**Q3: 基于Q1和Q2，如何提出一个观众真正关心的问题，或者一个shocking的结论？**\r\n综合以上分析，用一句话写出标题应该传达的核心信息。这句话应该是：\r\n- 一个观众自己也会问的问题（问题类标题的核心）\r\n- 或者一个让观众感到惊讶的结论（结论类标题的核心）\r\n列出3个候选方向。\r\n\r\n### 0.4 核心矛盾提取\r\n从文稿中找到最具张力的矛盾对。好标题的驱动力往往是一对\"不应该共存但确实共存\"的属性。\r\n格式：[强属性] + [反预期属性] = 矛盾\r\n列出3对核心矛盾，按张力强度排序。\r\n\r\n### 0.5 台本结构判断\r\n\r\n判断这个台本是否采用了hook结构（前15秒直接抛出核心冲突/反转/结论）：\r\n\r\n**Hook型台本特征**：\r\n- 开头直接说结论，然后展开论证\r\n- 开头抛出一个冲突/矛盾，然后解释原因\r\n- 开头用\"你知道吗\"/\"其实\"/\"但是\"等转折词快速进入主题\r\n- 前15秒出现了标题可能提及的核心名词/核心矛盾\r\n\r\n**非Hook型台本特征**：\r\n- 开头铺背景、讲故事、建立情境\r\n- 核心信息在中后段才出现\r\n- 采用渐进式叙事，层层递进\r\n\r\n判断结果：Hook型 / 非Hook型\r\n\r\n**对标题和开头的影响**：\r\n- Hook型：标题承诺必须在前15秒兑现，开头和标题形成\"问题-答案\"或\"悬念-揭晓\"的呼应\r\n- 非Hook型：标题围绕全文最强矛盾点起；\r\n\r\n### 0.6 内容调性判断\r\n\r\n**A. 观点争议型**：对某事物持有明确立场，核心是纠正错误认知或反驳一种说法，或表达一种强烈的情绪\r\n**B. 知识科普型**：解释原理/历史/机制，核心是信息增量\r\n**C. 沉浸体验型**：第一/第二人称、角色扮演、场景模拟，核心是代入感\r\n**D. 故事叙事型**：有起承转合的事件，核心是情节+情绪\r\n\r\n判断结果：[选择A/B/C/D，可复选]\r\n\r\n### 0.7 搜索关键词预判\r\n受众去搜索引擎/视频平台搜索相关内容，最可能用的关键词是什么？列出5-8个，按搜索可能性排序。\r\n\r\n### 0.8 情绪锚点\r\n- **点击前情绪**：（如：担忧、恐慌、好奇、怀疑）\r\n- **看完后情绪**：（如：放心、恍然大悟、愤怒、被科普的满足感）\r\n- **情绪转化路径**：标题应锚定\"点击前情绪\"，开头应在15秒内让观众确认\"这个视频在回应我的感受\"\r\n\r\n### 0.9 开头素材盘点\r\n\r\n从台本前1/3的内容中，提取可用于开头重组的素材：\r\n- **最强画面感的句子**：哪句话读出来脑子里会出现画面？\r\n- **最有冲击力的数据/事实**：哪个数字或事实最让人意外？\r\n- **最强共鸣的场景**：哪个场景最能让受众觉得\"对对对，我也是\"？\r\n- **可用的对比/类比**：哪些对比能一句话说清概念？\r\n\r\n这些素材将在 Step 3（开头建议）中使用。\r\n\r\n---\r\n\r\n## Step 1: 分析摘要\r\n\r\n在生成标题之前，必须先用以下格式输出3行摘要，将分析结论锁定：\r\n\r\n```\r\n最强动机：___（来自0.4）\r\n核心矛盾：___（来自0.5，选张力最强的一对）\r\n标题应传达的信息：___（来自Q3）\r\n```\r\n\r\n---\r\n\r\n## Step 2: Title Generation Rules\r\n\r\n### Core Logic — every title MUST be one of two types:\r\n\r\n**Type A: 好问题 (A Good Question)**\r\n- Poses a question the audience genuinely wants answered\r\n- The question should feel specific and non-trivial — not generic clickbait\r\n- **用受众脑子里的话，不是创作者的话**：受众内心的声音是什么？他们在心里嘀咕的那句话、那个词是什么？标题要用那个词，而不是正式的、理性的表述\r\n\r\n**Type B: 清晰的结论 (A Clear Conclusion)**\r\n- States a bold, concrete takeaway that makes the viewer think \"really?\"\r\n- Must be specific enough to be falsifiable\r\n- Must contain at least一个具体细节（数字、具体名词、具体场景）\r\n- **把矛盾拉到最大**：找到文稿中最具反差的两端，把它们压缩进同一句标题里。是矛盾在驱动点击，不是事实\r\n- **对比对象要选有公认印象的参照物**：X必须是受众心中已有明确印象的参照物，参照物本身的公认印象越强，冲击力越大\r\n  - ✗ \"吃得比我现在还好\" → \"我\"是谁？没有公认标准\r\n  - ✓ \"能把今天的美军馋哭\" → 今天的美军伙食是公认的天花板\r\n- **多角度切入，不要被一个入口困住**：\r\n  - **反向切入**：从一个关联事件/概念反过来切\r\n  - **内部视角/凡尔赛切入**：用身处其中的人才会说的话\r\n  - **局部放大切入**：抓一个最有画面感的细节放大\r\n- **标题语气要匹配视频的声音**：沉浸式→参与者口吻，客观科普→受众会问的问题\r\n\r\n质量标准：\r\n- 必须在一句话内形成完整的逻辑张力\r\n- 已知部分必须足够shocking，让观众想知道原因\r\n\r\n**通用规则：当标题需要\"先立靶再打靶\"时，靶子必须来自真实存在的外部声音，而不是你自己发明的抽象标签。**\r\n\r\n- ✗ \"以武勇闻名于世的Charriot，其实是个胆小鬼\" → \"以武勇闻名于世的Charriot\"是创作者在臆想受众都知道这个人物，但实际上，这个人物并不知名，更别提以武勇闻名于世，这个靶子立出来一般观众只会觉得莫名其妙\r\n- ✓ \"家喻户晓的圣雄甘地，在印度人看来其实是卖国贼\" → “家喻户晓的圣雄”是全球范围内对甘地的常规评价\r\n\r\n核心原则：靶子要有公共认知度，最好是一种常识（网上传的/大家都觉得的），反转要用最朴素的口语。整句话读出来应该像朋友在饭桌上随口说的。\r\n\r\n### Topic Visibility（话题可辨识性）\r\n- 必须在标题前半部分展示视频所讨论的核心名词，让观众知道\"这个人在聊什么话题\"\r\n\r\n### Keyword Anchoring（关键词锚定）\r\n- 标题**必须**包含 Step 0.7 中排名前3的搜索关键词中的至少1个\r\n- 关键词应自然嵌入，不能为了塞词破坏语感\r\n- **优先级**：受众口语 > 搜索关键词。但必须在标题或封面中保留至少一个搜索关键词\r\n\r\n### Motivation Matching（动机匹配）\r\n- 每个标题必须明确对应 Step 0.4 中的一个受众动机\r\n- 至少60%的标题命中强动机\r\n\r\n### Formatting Constraints\r\n- **理想长度**：12-20字。**硬性上限**：25字（含标点）。超过20字需在备注中说明为什么需要更长\r\n- **允许的标点**：，。？\"\"：（中文全角）\r\n- **禁止**：破折号、省略号、括号、斜杠、emoji、hashtag、英文标点\r\n- **无生僻字**：涉及专业概念时用外行人也能看懂的视角重新表述\r\n\r\n### Quality Criteria\r\n\r\n1. **Suspense or Resonance** — 标题必须制造悬念或触发共鸣，二选一\r\n2. **Content Relevance** — 必须基于视频实际内容，夸张可以，捏造不行\r\n3. **Opening Connection** — Hook型：15秒兑现；非Hook型：前1/3处开始兑现\r\n4. **Accessibility** — 按目标受众的阅读水平写\r\n5. **Specificity** — 每个标题必须包含至少一个具体元素（名词/数字/场景/对比）\r\n6. **Natural tone** — 自检：这句话的语气是否太书面了？\r\n\r\n### What to Avoid\r\n\r\n- Generic clickbait with no substance (\"你绝对想不到\")\r\n- Stacking multiple questions or conclusions — pick one\r\n- Passive or academic tone (\"浅谈…\", \"论…\", \"关于…的思考\")\r\n- Misleading exaggeration that the video cannot support\r\n- **Self-manufactured framing** — 不要自造抽象标签来搭结构\r\n\r\n### Diversity Constraint（差异化强制要求）\r\n\r\n生成的候选标题中：\r\n- **Type A/B 至少各出现1次**\r\n- **切入角度不能重复**：正面概括、反向切入、凡尔赛/内部视角、局部放大、对比质问——至少覆盖3种不同角度\r\n- 如果发现多个标题只是措辞不同但角度一样，删掉重来\r\n\r\n---\r\n\r\n## Step 3: Opening Structure Suggestions（开头结构建议）\r\n\r\n每个推荐标题必须配一个开头结构建议。开头建议不是重写台本，而是给出\"前15秒的信息骨架\"。\r\n\r\n### 核心原则\r\n\r\n1. **开头必须兑现标题承诺**：标题问了什么，开头就得让观众确认\"对，这个视频在讲我想知道的\"\r\n2. **只能用台本已有素材**：从 Step 0.10 的素材池中选取重组，不能凭空编内容\r\n3. **15秒定生死**：观众在前15秒决定划走还是看下去。开头结构的目标是让观众在15秒内产生\"然后呢？\"的感觉\r\n\r\n### 开头结构模板\r\n\r\n根据标题类型和内容调性，选择对应的开头骨架：\r\n\r\n**模板1：共鸣→立靶→抛钩（适合Type A问题类 + 焦虑/疑问动机）**\r\n- 第1句（0-3秒）：场景共鸣 → 描述受众的真实行为或感受\r\n- 第2句（3-8秒）：立靶 → 引出大众误解或恐慌来源\r\n- 第3句（8-15秒）：抛钩 → 给一个反转方向但不给完整答案\r\n\r\n**模板2：结论先行→制造疑问（适合Type B结论类 + 好奇驱动）**\r\n- 第1句（0-5秒）：直接抛结论 → 把标题的核心矛盾展开一层\r\n- 第2句（5-10秒）：制造不合理感 → \"但这不合理，因为...\"\r\n- 第3句（10-15秒）：承诺解释 → 暗示接下来会揭开原因\r\n\r\n**模板3：场景带入→悬念锁定（适合Type C混合类 / 沉浸体验型）**\r\n- 第1句（0-5秒）：场景带入 → 用第一/第二人称把观众拉进场景\r\n- 第2句（5-10秒）：细节锚定 → 给一个具体的感官细节（看到/听到/闻到）\r\n- 第3句（10-15秒）：方向暗示 → 暗示接下来会有转折或信息增量\r\n\r\n**模板4：冲击事实→范围拉大（适合Type B结论类 + 猎奇/爽感驱动）**\r\n- 第1句（0-3秒）：最冲击的单个事实 → 从0.10的\"最有冲击力的数据\"中选\r\n- 第2句（3-8秒）：范围拉大 → \"而且不止如此...\"\r\n- 第3句（8-15秒）：框架建立 → 告诉观众接下来的内容量级\r\n\r\n### 开头建议的输出格式\r\n\r\n```\r\n开头结构建议：[模板编号+名称]\r\n- 第1句（0-X秒）：[功能] → \"[具体台词建议，从台本素材重组]\"\r\n- 第2句（X-Y秒）：[功能] → \"[具体台词建议]\"\r\n- 第3句（Y-15秒）：[功能] → \"[具体台词建议]\"\r\n- 兑现逻辑：标题承诺___，开头在第___秒通过___兑现\r\n- 与原台本开头的关系：[直接可用 / 需要调序 / 需要补充一句话]\r\n```\r\n\r\n### 调序建议的边界\r\n\r\n- **直接可用**：台本现有开头已经符合标题承诺的兑现节奏，不需要改\r\n- **需要调序**：台本前30秒内有合适的素材，但出现顺序不对，建议把某句话前移\r\n- **需要补充一句话**：台本开头缺少和标题的直接呼应，建议在最前面加一句过渡（必须基于台本已有信息）\r\n\r\n---\r\n\r\n## Step 4: Output Format\r\n\r\n### 4.1 先输出 Step 0 完整分析\r\n\r\n### 4.2 输出 Step 1 分析摘要（3行）\r\n\r\n### 4.3 生成候选标题\r\n\r\n先内部生成10个候选，每个标题格式：\r\n\r\n```\r\nN. [标题]（X字）— 类型：问题/结论/混合 | 策略：悬念/共鸣/反转 | 动机：焦虑/疑问/好奇/实用 | 关键词命中：[词] | 话题可辨识：✓/需封面补充\r\n   切入角度：[正面概括/反向切入/凡尔赛/局部放大/对比质问/...]\r\n   封面策略：[A立场质问/B视觉化结论/C角色视角/D高潮画面]\r\n   封面文案：[封面上的完整短句，8-18字，必须含话题词]\r\n   标题×封面配合：（一句话说明二者如何形成互补关系）\r\n   为什么建议这个标题：（2-3 sentences）\r\n```\r\n\r\n### 4.4 推荐 + 开头建议\r\n\r\n```\r\n推荐：#N\r\n理由：（2-3 sentences explaining why this title best balances CTR, keyword relevance, motivation match, and retention）\r\n\r\n封面整体建议：（画面构思+文案+情绪氛围）\r\n\r\n开头结构建议：[模板编号+名称]\r\n- 第1句（0-X秒）：[功能] → \"[具体台词]\"\r\n- 第2句（X-Y秒）：[功能] → \"[具体台词]\"\r\n- 第3句（Y-15秒）：[功能] → \"[具体台词]\"\r\n- 兑现逻辑：___\r\n- 与原台本开头的关系：[直接可用 / 需要调序 / 需要补充一句话]\r\n```\r\n\r\n### 4.6 备选开头（为排名第2的标题也提供一个开头建议）\r\n\r\n```\r\n备选方案：#M\r\n开头结构建议：[模板编号+名称]\r\n- 第1句（0-X秒）：[功能] → \"[具体台词]\"\r\n- 第2句（X-Y秒）：[功能] → \"[具体台词]\"\r\n- 第3句（Y-15秒）：[功能] → \"[具体台词]\"\r\n- 兑现逻辑：___\r\n- 与原台本开头的关系：___\r\n```\r\n\r\n---\r\n\r\n## Process Checklist\r\n\r\n1. **Step 0**: Complete full transcript analysis (0.1→0.10). Output it.\r\n2. **Step 1**: Output 3-line analysis summary.\r\n3. **Internal drafting**: Generate 8 candidate titles. For each, verify:\r\n   - Maps to a specific audience motivation from 0.4\r\n   - Contains at least one keyword from 0.8\r\n   - Includes at least one concrete detail\r\n   - Passes the swap test (换掉主语还成立 = 太泛，重写)\r\n   - Passes the natural tone test (\"你知道吗，[标题]\" 读起来顺不顺)\r\n   - Type A/B/C diversity is met across the full set\r\n   - Cutting angles are diverse (不能所有标题同一角度)\r\n   - 封面文案包含核心话题词（无例外）\r\n   - 封面策略匹配 0.7 的内容调性\r\n   - 标题和封面不重复同样的话\r\n4. **Elimination**: Cut 3 weakest, state reasons.\r\n5. **Output 5 finalists** with full metadata.\r\n6. **Pick best**, provide cover concept + opening structure.\r\n7. **Provide runner-up** opening structure.\n\nFile v0.1.1:references/methodology/cover-design.md\n\n# 封面方法论核心（跨平台/跨垂类通用内核）\r\n\r\n> **定位说明**：本文是封面设计逻辑的**通用内核**，只讲跨平台、跨垂类都成立的判断逻辑（1秒传达什么、认领什么类型、视觉锤怎么定、大字怎么写、配色怎么定、人物怎么拍、提示词怎么写）。具体的**画幅尺寸**（B站4:3、抖音竖屏3:4……）和**情绪-配色的垂类映射**（比如财经的红涨绿跌该映射成什么色），随平台和垂类变化，不属于通用内核范围，生成产物时按 `references/platforms/*.md` 与本次确认的垂类现产注入，不要把某个垂类的具体配色规则当成通用规则写进这里，也不要在没有平台/垂类信息注入的情况下凭空编一套尺寸或配色交付给用户。\r\n\r\n## 核心命题：你在设计的是观众的 0.5 秒\r\n\r\n观众不是在\"看\"封面，是在信息流里 **0.5 秒扫过**。所以封面设计的本质不是把画面做好看，而是精确控制这 0.5 秒里观众的**视线落点**和**情绪反应**。本文所有规则，归根到底都在服务这一件事，可以浓缩成一句话：\r\n\r\n> **用配色说清品类，用一个视觉锤抓住眼睛，用脸和符号预支情绪——标题只负责补上封面故意留的那个缺口。**\r\n\r\n下面按设计师实际的决策顺序展开：先想清楚（类型、三件事、承诺）→ 再落成画面（视觉锤、人物、文字、配色、底图）→ 再与标题协同 → 最后验证与迭代 → 生产落地。\r\n\r\n---\r\n\r\n# 第一部分：动手前先想清楚\r\n\r\n## 一、1秒法则：封面必须传达的三件事\r\n\r\n观众划到封面的决策时间不到1秒，一张合格的封面必须在这1秒内同时传达：\r\n\r\n1. **话题是什么**——这条视频在讲什么，核心讨论对象要能被一眼认出，不能让人划过去了还没搞清楚讲的是谁/什么事。\r\n2. **什么情绪**——涨还是跌、警示还是希望、轻松还是严肃，情绪基调要通过画面和配色直给，不需要观众读完文字才反应过来。\r\n3. **一句勾人的大字**——一句能在瞬间抓住注意力的话，通常是结论、冲突或问题，承担和标题类似的钩子功能。\r\n\r\n三件事缺一不可：只有话题没情绪，封面显得平淡；只有情绪没话题，观众不知道点进去看什么；只有大字没话题/情绪支撑，大字就成了孤立的噱头。生成封面前先把这三件事分别想清楚，再落成具体的画面和文字。\r\n\r\n## 一·五、封面策略的两层结构：变量层 vs 审美基因层，用\"设计语言\"一次调动成套审美\r\n\r\n这一节是整套封面方法论的总纲，决定了后面所有维度该怎么被组织。**先记住一句：一张封面是\"一种看起来对\"的整体，不是若干个维度拼出来的。**\r\n\r\n### 封面由七个维度组成，但它们分属两层\r\n\r\n任何一张封面，都可以拆成七个维度：**文案、主视觉、构图、配色、材质纹理、字体、设计风格**。但这七个维度不是七个各自独立的旋钮，它们分属**两个性质完全不同的层**：\r\n\r\n- **变量层（每期都变）**：**文案** + **主视觉**。这两项跟着每一期视频的标题和内容走——这期讲芯片就放芯片、讲某国就放那国国旗、大字写这期最锋利的那句判断。它们本就该期期不同。\r\n- **审美基因层（一次定稿，只小步迭代）**：**构图、配色、材质纹理、字体、设计风格**。这五项是**账号的视觉身份**，是观众划到你封面时\"不用看清内容就知道是你这个号\"的那套东西。它一旦定了，就应该长期稳定复用，只做小步迭代，绝不每期推倒重来——因为换基因 = 重新培养观众的识别习惯，成本极高。\r\n\r\n**为什么必须分这两层**：账号的视觉识别度＝基因层的稳定性。每期都重新即兴发挥配色/字体/材质，等于每期都是一个新号，观众永远记不住你长什么样。反过来，基因层锁死、只让文案和主视觉变，才能既保证每期内容新鲜、又积累出\"一眼认出\"的品牌资产。**这一层的产出物，应该在账号第一次定稿时就固定下来、写进产物封面模块，之后每期直接调用。**\r\n\r\n### 关键手法：用\"设计语言\"作抓手，一次性调动成套、自洽的审美\r\n\r\n基因层有五个维度，如果一项项去指定（配色选深蓝、字体选黑体、材质选金属……），几乎必然互相打架——这正是不懂设计的人（和粗糙提示词）最典型的失败：每个维度单独选，合起来不成一个整体。\r\n\r\n**正确的做法是反过来：先认领一种\"设计语言\"，再让五个维度从这个设计语言里自然长出来。** 所谓设计语言，就是一种文化上已经被反复固化、内部高度自洽的成套视觉系统，比如「冷峻科技纪录片风」「严肃财经周刊风」「史诗古卷纪录风」「硬核战报/装备特写风」「智库时事周刊风」「人文随笔杂志风」。这些语言每一种，都自带一整套协调好的配色、材质、字体、构图倾向。\r\n\r\n- **对创作者**：点名一种设计语言 = 一次性把协调好的整套基因拉出来，不用你逐项懂设计。\r\n- **对生图模型**：模型的通用知识里存着大量这类成套的审美系统。你只要点名一种设计语言，它就能把配色/材质/字体/构图**协调地、成套地**展开；而你若给它一张\"配色=X、字体=Y\"的零散查找表，反而容易各说各话、拼不成一个整体。**这是让模型替不懂设计的人做设计的入口。**\r\n\r\n> **这也顺带解决了\"用户说不清想要什么审美\"的难题**：不懂设计的人没有设计词汇（说不出\"我要低饱和冷色调+无衬线+哑光材质\"），但人人都有品味判断（看到一张图能立刻说\"这个对/这个土\"）。所以别让他\"描述\"，让他\"认领\"和\"反应\"：给他 3-5 种打包好、各自命名的设计语言候选让他挑；或直接用同一个样例标题按 2-3 种设计语言各出一张真图，让他指\"这张感觉对\"。认领一个名字、指一张图，是任何人都做得到的，设计翻译交给 AI。\r\n\r\n### 每个维度的底层作用（是因果，不是查表）\r\n\r\n理解每个维度\"在传递什么信号\"，才能判断它们是否朝同一个方向发力：\r\n\r\n- **构图**：控制视线落点与信息层级——唯一焦点 + 给文案预留的负空间 + 视线的落地顺序。\r\n- **配色**：同时干两件事——**品类识别**（一眼看出讲什么）+ **情绪**（该有什么感觉）。\r\n- **材质纹理**：控制质感与可信度，在潜意识层面传情绪——噪点/颗粒＝重、旧、真实；高光玻璃感＝科技、资本；纸质＝权威、纪录。\r\n- **字体**：是文字的\"嗓音\"，读之前就先传语气——衬线＝权威严肃，极粗黑体＝冲击呐喊，手写＝个人随性；字重与描边/发光＝音量大小。\r\n- **设计风格**：统摄以上四者的那把伞，就是被认领的那个设计语言本身。\r\n\r\n### 自洽性自检（出图前必过）\r\n\r\n落成画面前问一句：**这五个基因维度，是不是都指向同一种感觉？有没有哪一项在唱反调？**（比如严肃地缘选题配了个高饱和卡通字体，就是字体在唱反调。）有，就是设计语言没锚准，回去重新认领设计语言，而不是单独去修那一项。\r\n\r\n> 下面第二部分的各节（视觉锤、人物、文字、配色、材质）是这七个维度各自的**操作细则**；本节是把它们组织起来的**总纲**。读细则时始终记得：所有基因层维度都要服从\"同一种设计语言、自洽成一个整体\"这个前提。\r\n\r\n## 二、认领封面类型：类型决定长相\r\n\r\n动手前先认领这张封面属于哪一类\"物种\"——**类型一旦定了，配色、构图、文字风格基本被锁死**，后面每个决策都在这个框架里做。跨垂类看，高点击封面大致分三种结构原型（与垂类无关，同一个账号可以在不同视频里切换）：\r\n\r\n- **表情主导型**：主角的脸/表情就是主体，画面亮、饱和度高、常带动态元素（手势、道具、实景）。卖的是\"这个人这次有反应/要搞事\"。适合 Vlog、人设强的口播、体验类内容。\r\n- **双人对比/解读型**：左右分栏——一侧是主持人/解读者的反应表情，另一侧是话题人物或核心对象，中间压一行大字。卖的是\"内幕/反差/我来给你解读\"。适合财经解读、时事、人物分析。\r\n- **氛围/纪录型**：暗调或强氛围底图 + 一个超大的主字/词，常配一行小的英文或副标题压阵。卖的是\"厚重、严肃、敢说、信息量大\"。适合深度、纪录、议题类内容。\r\n\r\n认领类型的意义：同一个选题，走表情主导型还是氛围纪录型，产出的是两张完全不同的封面。**不要跳过这一步直接想画面**——类型没定就配色、就排版，等于没搭骨架先贴皮。\r\n\r\n> 以上三型是**结构原型举例**，不是穷举；具体某垂类偏好哪种类型、配什么颜色，在生成产物时结合本次的平台+垂类现场判断，不要把某一型当成该垂类的唯一答案写死。\r\n\r\n## 三、封面从内容里\"长\"出来（承诺-兑现闭环）\r\n\r\n封面大字是一个**承诺**——\"三年假账\"\"赶紧跑\"\"也该跌到头了\"。观众被这个承诺吸引点进来，视频必须在合理时间内兑现它。钩子后面没东西，每个点击消耗的都是账号的信任余额——短期骗来了点击，长期毁了留存和关注转化，平台也会因完播率低而限流。\r\n\r\n所以封面必须从内容里长出来，不是凭空设计的独立噱头。正确的创作链路：\r\n\r\n> **文稿定稿 → 提炼最锋利的那句判断 → 这句判断成为封面大字候选 → 标题从另一个角度配合设钩子 → 视频前段就兑现封面承诺。**\r\n\r\n这一步放在动手前：**封面大字应该是文稿里最锋利的那一句，先有那句判断，才有封面。**\r\n\r\n---\r\n\r\n# 第二部分：把想清楚的东西落成画面\r\n\r\n## 四、唯一视觉锤：脸 or 大字/数字，二选一\r\n\r\n封面只能有一个视觉焦点，观众眯眼扫过时第一落点必须唯一：\r\n\r\n- **要么一张有戏的脸，要么一个巨大的字/数字——二选一，绝不并列两个同等重量的大元素。** 最常见的业余错误就是脸也做大、字也做大，两个主体互相打架，观众的眼睛不知道落哪，情绪和信息都被稀释。头部账号的封面眯眼看，第一落点永远只有一个。\r\n- **主体要少而大**：一个主视觉元素（人物表情/大字/核心物件/数据可视化元素），占据画面最抓眼的位置，不要堆砌多个同等重量的元素分散注意力。\r\n- **给文字留白**：主体不能铺满整张画面，必须刻意留出干净区域给大字，否则文字会被压在复杂背景上变得难以辨认。留白位置和大字位置是一体规划的，不是先画满图再往缝里塞字。\r\n- **画面服务文字，不是文字服务画面**：大字是封面里最终要被读到的信息，画面的作用是烘托情绪、制造焦点，两者冲突时优先保证大字清晰可读。\r\n\r\n## 五、人物表现力：表情和眼神是最高效的情绪传递器（人物出镜时）\r\n\r\n> 本节讲**有人脸出镜**时怎么把人拍对。不出镜或题材没有合适人物的封面，情绪担子转移到别处，见第六节「无人脸封面」——两者是解决同一个问题（情绪锚点）的两条路，不是主次关系。\r\n\r\n在所有视觉元素中，人的面部表情是观众大脑处理最快的信息。一个对的表情，比一行对的大字更能瞬间建立情绪连接。人物封面的点击率通常比纯图表/纯文字封面高出一个量级——前提是人物拍对了，拍错了等于白拍。\r\n\r\n### 表情规则：放大情绪，不要微笑营业\r\n\r\n- 你想让观众感受到什么情绪，表情就放到那个情绪的 **1.5 倍强度**。日常表情在封面缩略图尺度下会显得平淡无奇，需要适度夸张才能\"传达到\"。\r\n- 震惊就瞪眼张嘴，愤怒就皱眉直视，疑惑就歪头眯眼，得意就挑眉歪嘴——情绪方向必须和内容的情绪基调一致。\r\n- **禁忌：一张得体微笑走天下。** 微笑表情在封面尺度上 = 没有表情，传递不了任何具体情绪，观众扫过时不会产生任何情绪反应。\r\n\r\n### 眼神规则：必须直视镜头\r\n\r\n- 视线看向别处 → 观众潜意识解读为\"这条视频跟我没关系\"。\r\n- 直视镜头 → \"我在跟你说话\"——这是封面和观众建立一对一连接的最快方式。\r\n- **唯一例外**：刻意营造旁观感或偷拍感（如\"我在现场拍到的这一幕\"）时，视线可以偏移。但要明确知道自己在用这个例外，不是无意识地选了一张视线偏了的截图。\r\n\r\n### 人物比例规则\r\n\r\n- 人物占画面 **40%-60%** 最佳：足够大让表情清晰可辨，又给大字留出位置。\r\n- 低于 30%：表情在缩略图尺度下看不清楚，等于浪费了人物封面的优势。\r\n- 高于 70%：大字无处可放，封面变成表情包而非信息页——观众看到了你的表情但不知道你要说什么。\r\n\r\n### 人物与大字的关系：同向放大\r\n\r\n- 人物表情定情绪基调，大字把情绪翻译成具体判断。\r\n- 两者是同向放大的关系：\"震惊表情 + 这公司竟然造假三年\" >> \"平静表情 + 同样的大字\"。\r\n- **如果人物表情和封面大字的情绪方向不一致（如轻松微笑配\"市场崩盘了\"），观众会产生认知冲突，降低点击意愿——他们的直觉是\"你自己都不信，我凭什么信\"。**\r\n\r\n## 六、无人脸封面：情绪锚点转移，不是降级方案\r\n\r\n很多题材本就不需要或不适合人脸出镜：氛围纪录型（社会议题、地缘、深度）、纯知识科普、产品/物件、数据解读、影视/游戏二创等。**无人脸封面不是\"没找到合适人物时的将就\"，它是一条独立成立的路线**——头部账号里大量百万级封面根本没有脸。关键在于：人脸原本承担的\"最快情绪传递器\"这个职责，必须明确转交给别的元素，不能让封面失去情绪锚点变成一张平淡的资料图。\r\n\r\n### 情绪锚点转移到哪里\r\n\r\n人脸缺席后，情绪和视觉焦点由这几类元素接手，**任选其一作为唯一视觉锤**（第四节的\"二选一\"在这里同样成立，甚至更重要——没有脸兜底，主体一旦不唯一，封面立刻散架）：\r\n\r\n- **有戏的主体物**：一个孤立、放大、有张力的物件或场景（一双眼睛、一只手、一个背影、一件标志性物品、一处极端环境）。它替代脸成为情绪载体——背影传递孤独/沉重，特写的眼睛传递逼视感，废墟/荒漠传递压迫。\r\n- **主字本身就是主体**：氛围纪录型的典型做法——一个占屏极大的主锤字/词（配英文副标题压阵），大字即主视觉，底图退居氛围背景。此时大字的字体设计、材质感、与底图的融合就是全部功力所在。\r\n- **构图与光影**：用强烈的明暗对比、纵深、剪影、局部高光把视线拽到一个点。没有脸时，光影是制造\"这里有情绪\"的主要手段。\r\n\r\n### 无人脸封面的三条硬规则\r\n\r\n1. **情绪必须有明确的替代载体**：动手前先回答\"这张封面靠什么让人产生情绪反应\"。如果答案是\"靠大字读出来才有\"，说明画面本身没情绪——不合格。画面要在读字之前就先让人有感觉。\r\n2. **主体依然唯一**：没有脸兜底，堆两个物件/两张图会比人脸封面更容易散。一个主体物 + 大字，或大字即主体，二选一。\r\n3. **符号与色彩的权重上调**：脸缺席时，第八节的符号（?! / 箭头 / 圈选）和第九节的品类配色成为情绪的主要来源，投入要比人物封面更足——配色的品类识别功能在无人脸封面里几乎是第一位的（观众先靠色调认出\"这是讲什么的\"）。\r\n\r\n### 什么时候优先选无人脸\r\n\r\n- 题材严肃/敏感，人脸会削弱厚重感或引入不必要的个人色彩（社会议题、地缘、灾难、深度调查）。\r\n- 主角不是人（产品、地点、数据、作品、动物、事件现场）。\r\n- 账号定位就是\"冷静的解读者/叙述者\"，刻意不做人设露脸。\r\n- 素材侧拿不到高质量、表情到位、直视镜头的人物图——**与其用一张表情平淡或视线偏移的人脸凑数，不如果断走无人脸路线**（一张不合格的人脸封面 < 一张合格的无人脸封面）。\r\n\r\n## 七、大字文案：三级文字结构 + 4-8字\r\n\r\n封面上的文字不是\"排版\"，是当**图形**来造型的。高点击封面的文字普遍是三级结构：\r\n\r\n1. **主锤字**：极粗字重、描边或发光，占屏最大，当类型是大字主导时它就是唯一视觉锤。这是必须最先被读到的一句，**2-4 字或一个数字/百分比最理想**。\r\n2. **限定语**：小一号，紧贴主锤字，补全它的语义（比如主锤\"1600W\"旁边小小的\"Q&A\"、主锤\"IPO\"下面一行\"背后的资本游戏\"）。它让主锤从一个词变成一个完整判断，又不抢主锤的视觉重量。\r\n3. **装饰/英文行**：氛围纪录型专用，一行小的英文或副标题（不为看懂，为质感与厚重感）。非必须，只在需要\"严肃感/高级感\"时加。\r\n\r\n字数与用词规则：\r\n\r\n- **主锤字理想长度 4-8 个汉字**（数字/英文缩写可以更短）。短于该区间通常立不住一个完整判断；长于8字在竖屏或缩略图里会挤成一团。超过区间要能说清为什么值得更长（如保留一个不可拆的专有名词），不能因为舍不得删字就无限堆长。\r\n- **一句话只表达一个判断或一个情绪冲击点**——多层信息拆到主锤字+限定语两级，而不是全部挤进一句大字。\r\n- **用受众的口语，不用书面总结**。大字读出来要像一句脱口而出的判断或惊呼，不是论文摘要式的客观陈述。\r\n\r\n## 八、符号与情绪放大：最低成本的情绪工具\r\n\r\n文字和脸之外，符号是注入情绪最省力的手段：\r\n\r\n- **`?!` 是高点击封面的高频元素**：问号 = 悬念（\"为什么会这样？\"），叹号 = 震撼，叠在一起 = \"这事又离谱又想不通\"。加黄色/高饱和描边，符号本身就成为视觉焦点的一部分。\r\n- **箭头、圈选、对比色块**：用来把视线强行拽到关键点（一张脸的方向、一个数字、一处细节）。\r\n- 所有符号必须和内容情绪基调一致，且服从\"唯一视觉锤\"原则——**符号是给主锤加码的，不能大到变成第二个主体**。\r\n\r\n## 九、配色：品类的制服（具体映射随垂类注入，不写死）\r\n\r\n配色的第一功能不是好看，是**品类识别**：观众划到一张黑金封面自动知道\"这是讲钱的\"，划到暗灰冷调自动知道\"这是严肃深度内容\"——不用读字，配色已经先替内容说清了题材。所以配色是\"类型/品类的制服\"。在此前提下，配色还要准确传达这条内容的情绪。\r\n\r\n- 举例说明\"配色要服务品类与情绪\"这条通用逻辑本身：财经类内容常用黑金/红绿映射\"钱与涨跌\"；情感/故事类可能用暖色调映射温情、冷色调映射冲突；知识科普类可能用高对比撞色映射\"颠覆认知\"的惊讶感。**这些具体映射只是举例，不是本文规定的规则**——本文不预设任何垂类必须用某个固定色系。\r\n- **判断标准只有一条**：配色是否准确传递了这条内容想让观众感受到的品类与情绪，而不是\"这个垂类惯例上用什么颜色\"。惯例可以参考，但最终取舍要服务于这一条内容具体的基调。\r\n- **配色属于审美基因层，但允许\"锁主色板 + 情绪偏移\"（承接第一·五节，理顺一个易混点）**：配色既要\"一眼认出是你这个号\"（基因层，稳定），又要\"传达这一期的具体情绪\"（跟着内容走），这两个要求看似矛盾，成熟账号的解法是分两级——**主色板锁死当基因**（比如本账号永远是深蓝墨黑打底、暖金作点缀），**每期在这套主色板内部做情绪偏移**（这期偏冷偏暗传危机、那期加大暖金比例传底气）。也就是说，换的是同一套色板里的\"温度旋钮\"，不是整套换色。绝不要每期推翻主色板重选颜色——那会摧毁账号识别度。产物封面模块里要把\"锁定的主色板\"和\"允许的情绪偏移范围\"分开写清。\r\n- **生成产物时的处理方式**：具体垂类的品类-情绪-配色映射表，在生成产物时按本次确认的平台+垂类现场提炼（可参考同垂类头部账号封面的配色共性作研究依据），写成产物封面模块正文里的一张具体映射表，不能把本文当映射表来抄，也不能凭空杜撰一套交付给用户。\r\n\r\n## 十、底图质量：清晰、明亮、不抢字\r\n\r\n底图是封面的信息底盘。留白位置够了但底图本身糊、暗、杂，文字一样会被吃掉。底图质量有三个硬门槛：\r\n\r\n### 清晰\r\n\r\n- 主视觉元素（人物/图表/物件）边缘利落、不糊不噪。如果主体是模糊的，整个封面的可信度立刻打折——观众潜意识会认为\"封面不讲究=内容也不讲究\"。\r\n- **严禁使用低分辨率截图或压缩过度的网图做底图**——素材质量是底线，不是可以妥协的。\r\n\r\n### 明亮（明亮 ≠ 过曝）\r\n\r\n- \"明亮\"的真实含义是：底图上存在干净的、对比度足够承载大字的区域，不是把整张图拉亮到过曝。\r\n- 如果底图暗部太多、纹理太杂，大字放上去就会被吃掉。两个解法：\r\n  1. 底图本身就留有大块干净背景（最佳情况，不需要额外处理）；\r\n  2. 底图整体压暗后，给文字区域加半透明渐变蒙层提亮（通用安全策略，见下方）。\r\n\r\n### 通用安全策略：文字区域永远加一层暗色渐变蒙版\r\n\r\n- 除非底图本身有大块纯色背景，否则一律给文字区域加暗色蒙版。这是最稳妥的做法——头部账号的封面，仔细看文字底下几乎都有一层压暗处理。\r\n- 这层蒙版对观众不可见（他们不会注意到），但能确保大字在任何底图上都清晰可读。\r\n- 检查方法：去掉蒙版看一眼，再加上蒙版看一眼——差别就是你给文字买的\"保险\"。\r\n\r\n## 十一、数据可视化克制原则\r\n\r\n封面上放图表或数据元素的唯一目的：**用图表的形状传递情绪，而不是传递具体数据。** 在缩略图尺度下，观众看不清坐标轴标注、看不清具体数字——如果图表不能靠形状说话，它就只是一团放在封面上的视觉噪点。\r\n\r\n- 如果去掉图表，封面情绪传达完全不受影响 → 不需要放图表。图表是工具，不是装饰。不表达情绪的图表 = 视觉垃圾，只会抢占大字和主体的位置，违背\"唯一视觉锤\"。\r\n\r\n---\r\n\r\n# 第三部分：与标题协同\r\n\r\n## 十二、封面与标题分工：两种模式，不重复同一句话\r\n\r\n封面大字和标题是两块独立的\"广告位\"，合起来传达的信息量必须大于其中任何一块单独传达的信息量。观察高点击案例，分工有两种成熟模式，动手前先选定用哪种：\r\n\r\n- **模式 A：封面扛全部，标题极简留白**。封面信息量做足（大字+脸+符号都到位），标题反而写得极平淡（例：\"去了一趟得克萨斯州。\"）——这种反差和留白本身勾人。\r\n- **模式 B：封面给氛围，标题给钩子**。封面偏氛围/主体，把悬念交给标题的省略号或问句（例：\"我们看到了……\"\"背后在玩什么资本游戏？\"）。\r\n\r\n选定模式后：\r\n\r\n- **不要把标题原样搬到封面上再读一遍**。如果封面大字和标题几乎是同一句话，说明有一块广告位没发挥作用，改写其中一个。\r\n- **自查方法**：把标题和封面大字放在一起读一遍，如果读完的信息和只读标题时几乎没有增量，就是重复了；方向也不能互相打架（标题看空，封面不能显得看多）。\r\n\r\n---\r\n\r\n# 第四部分：验证与迭代\r\n\r\n## 十三、缩略图尺度验证：设计时看大图，观众看的是指甲盖\r\n\r\n封面设计在电脑/手机上以全尺寸进行，但观众在信息流里看到的缩略图通常只有 3-4cm 宽。这个尺度差异会暴露三种在大图上看不出来的致命问题：字太小糊成一团、底图细节太多变成噪点、文字-背景对比度不够导致融合。\r\n\r\n每次封面定稿前，将封面缩小到约 3cm 宽（模拟手机信息流缩略图），逐项检查：\r\n\r\n1. **大字可读性检查**：主锤字还能不能一眼读出每个字？认不全——回退调大字号、加粗字重、或改选更高对比度的配色。\r\n2. **情绪可感知性检查**：缩小后人物表情还能不能感受到情绪？底图颜色还能不能传达预期的情绪基调？不能——说明表情不够大/对比不够强。\r\n3. **主体可辨认性检查**：画面的中心元素（唯一视觉锤）还能不能被辨认？变成一团模糊色块——说明底图细节太多、主体不够突出，或犯了\"两个大元素打架\"，需要简化底图或砍掉次要主体。\r\n\r\n**以上三项，有任何一项不通过，封面不能定稿。** 不要相信\"大图看着挺好，缩小应该也没问题\"——大图和小图的视觉感受没有线性关系。这一节是区分专业和业余的关键动作。\r\n\r\n## 十四、数据迭代：封面好不好，CTR 说了算\r\n\r\n同一支视频，不同封面的点击率可以差出 30%-50%。设计直觉和真实点击行为之间经常有巨大偏差。封面不是\"设计完就结束\"的产物，而是可以持续优化的变量。\r\n\r\n### 发布前快速验证\r\n\r\n- 做 **2-3 个封面方案**（改大字措辞、改配色方向、改人物表情强度、甚至换封面类型），不要只做一个然后祈祷它好用。\r\n- 发给自己或团队 3-5 个人，让其在手机信息流缩略图尺度下扫一眼，问三个问题：\r\n  1. 你第一眼看到了什么？（验证视觉锤是否唯一、符合预期）\r\n  2. 第一感觉是什么情绪？（验证情绪传递是否准确）\r\n  3. 有点进去的冲动吗？为什么有/没有？（验证钩子是否成立）\r\n- 综合反馈选出最优方案发布。不必完全按投票结果来，但要认真对待\"多个人在同一个点上犹豫\"的信号。\r\n\r\n### 发布后数据复盘\r\n\r\n- 平台支持双封面测试的（如 B 站），充分利用，用数据代替猜测。\r\n- 不支持 A/B 测试的平台，定期（每月或每 10 条视频）复盘封面 CTR，把高 CTR 封面的共性提炼出来：哪种大字措辞类型点击更高（结论型/反问型/数字型/情绪词型）？哪种配色方向 CTR 更高？哪种封面类型对本账号更有效？人物表情强度与 CTR 有没有相关性？\r\n- 积累成账号的**封面经验库**，后续设计靠数据决策，不靠感觉。\r\n\r\n### 迭代意识\r\n\r\n- 封面 CTR 低于同类内容平均水平时，不要只怀疑标题——先换封面测试。很多时候 CTR 低是封面问题，不是标题问题。\r\n- 同一支视频，发布后 CTR 不理想，换一张封面重新发布（大部分平台支持封面替换），往往有奇效——内容和标题都没变，只换封面就能带来明显 CTR 提升。\r\n\r\n## 十五、系列感：固定排布带来账号识别度\r\n\r\n单张封面好看不够，一个账号所有封面放在一起要能被一眼认出是同一个号，靠的是长期不变的固定排布规则，不是每期随意设计：\r\n\r\n- **固定一个元素的位置**：账号名/logo/角标固定放在同一个位置（比如统一顶部，或统一右下角），每期都用同一套排布。这个固定元素通常是账号识别度最强的锚点。\r\n- **固定一套构图逻辑**：比如始终是\"左图右字\"或\"大字压顶+下方留白副标题\"这类结构，内容和文字每期不同，但骨架不变，观众刷到时能凭构图感觉就认出是这个账号。这套骨架通常就是账号主打的封面类型（见第二节）。\r\n- **系列感锁的不只是构图，是整个审美基因层（承接第一·五节）**：真正的账号识别度＝基因层（构图、配色、材质纹理、字体、设计风格这五项）整体稳定，而不只是构图一项固定。所以\"系列感\"要固定的是**一整套由设计语言统摄的基因**：认领的设计语言、锁定的主色板、固定的字体家族与字重风格、一致的材质纹理调性、账号名/logo/角标的固定位置——这些一次定稿后期期复用，只小步迭代。每期变的只有变量层（文案 + 主视觉）。\r\n- **系列感是长期积累的资产**：换排布（乃至换任何一项基因）的成本都很高（等于重新培养观众的识别习惯），所以这套基因层规则要在生成产物时一次定稿，写进产物的封面模块正文，后续每期直接复用，不要生成时临时现想。\r\n\r\n---\r\n\r\n# 第五部分：生产落地（平台与工具）\r\n\r\n## 十六、多平台适配与尺寸：同一张封面的感觉，不同的构图\r\n\r\n如果你同时在横版平台（如 B 站 4:3）和竖版平台（如抖音 3:4 / 9:16）发布同一支视频，封面不能靠裁切——横版一刀裁成竖版，构图骨架被破坏，大字可能被截断、人物只剩半张脸。\r\n\r\n### 不是裁切，是重新构图\r\n\r\n- 同一套视觉元素（大字内容、人物/主体、配色、账号标识位置），分别按每个画幅各做一次独立构图。\r\n- 两个版本的**视觉感觉保持一致**（配色、情绪、字号比例、品牌标识位、封面类型），让跨平台观众能一眼认出是同一个号的内容。\r\n\r\n### 各画幅的通用构图策略\r\n\r\n- **竖版（3:4 / 9:16）**：人物放中上、大字压中间偏上位置、账号信息固定底部。竖版天然适合人物+大字结构，利用纵向空间形成视线瀑布，观众从上往下依次看到大字→人物→品牌标。\r\n- **横版（4:3 / 16:9）**：左图右字，或居中大字+两侧留白+人物偏左或偏右。横版天然适合对比型结构（左图右字 = 两个信息位并排），对应第二节的\"双人对比/解读型\"，不要浪费横向空间把所有元素堆在中间。\r\n- **信息流方形（1:1）**：大字居中压图，人物尽量放大但不超过画面 50% 面积，四周给足留白避免被平台 UI 元素（播放按钮、时长角标）遮挡。\r\n\r\n### 实操\r\n\r\n- 先定好每个目标平台的构图骨架（元素位置、比例），写进产物封面模块的固定规范里。\r\n- 每次做封面时，各平台**同步出图**，不是先做完一个版本再去\"适配\"另一个——适配思维会导致第二版永远是妥协产物。\r\n- **具体的宽高比和像素规格不属于本文通用内核**：常见画幅类型包括横版（如 4:3）、竖屏（如 9:16 或 3:4）、信息流多图/单图形态等，实际数值和适用场景以对应 `references/platforms/<平台>.md` 的规定为准，叠加本次确认的目标平台写进产物封面模块正文，不要在通用内核里假设任何一个平台的具体像素值适用于所有场景。\r\n\r\n## 十七、gpt-image-2 提示词写法\r\n\r\n用 gpt-image-2 生成封面时，画面描述和文字要求需要分开处理，一条完整提示词包含以下几块：\r\n\r\n1. **画面主体（英文描述）**：主视觉元素、构图方式、光效氛围，用英文描述通常生成效果更稳定——比如 \"a dramatic downward chart\" \"a confident smiling portrait\" \"split composition, host on the left, subject on the right\" 这类画面级描述，并对应到本次认领的封面类型（第二节）。\r\n2. **图上大字（必须用中文明确写出，并按三级结构给）**：提示词里用中文，且用\"图中央用醒目大号中文写：'XXXX'；其下方用小一号写：'YYYY'\"这样的明确指令，把主锤字、限定语逐字写进去，不能只用英文描述\"有一句吸引人的标题\"这类模糊指令，gpt-image-2 无法从模糊描述中猜出你要的具体汉字。需要符号（如 ?!）也明确写出位置和颜色。\r\n3. **风格词**：补充画面调性关键词（如 professional, high contrast, bold typography, cinematic lighting, eye-catching, 4k），帮助模型稳定输出统一的视觉质感，与本次的品类配色一致。\r\n4. **排版要求**：明确要求文字清晰、不被遮挡、主体不要占满画面、给文字留出空间、只保留一个视觉焦点——对应第四节\"唯一视觉锤与留白\"和第十节\"底图质量\"，把留白和蒙版要求直接写进提示词里，而不是生成后再靠运气。\r\n5. **生成后检查中文是否正确**：gpt-image-2 生成的中文偶尔会出现错别字、缺字或糊字，每张图生成后都要检查图上文字是否与提示词一致、清晰可读；不一致就调整提示词重新生成，不能带着错字的封面交付。\r\n\r\n## 十八、主视觉从哪来：真实素材图生图 还是 纯文生图\r\n\r\n主视觉\"溶解进背景、不够抓人\"是纯文生图的结构性毛病：它画的是**氛围**不是**主体**——给它\"美国国旗\"\"某型战机\"，它生成的是一团有那个意思、边缘弥散的质感，而不是一个硬边缘、一眼认出\"就是它\"的**符号**。而观众识别一张封面在讲什么，符号往往比文字还快。所以主视觉要抓人，先解决\"它从哪来\"。\r\n\r\n### 唯一的分界判据：这个主体有没有\"观众会拿去和现实核对的标准答案\"\r\n\r\n不是\"具象 vs 抽象\"，而是**有没有一个特定的、观众认得、会去核对的正确长相**：\r\n\r\n| 主体性质 | 举例 | 有无标准答案 | 主视觉走哪条 |\r\n|---|---|---|---|\r\n| **具名实体** | 这个政要本人、这一款武器型号、这座地标、这面国旗 | 有，且观众会核对 | **真实素材图生图（img2img）** |\r\n| **泛指类别** | 一架战斗机（不指定型号）、一个港口、一个西装商人 | 无特定正确实例，任何一个都行 | **纯文生图** |\r\n| **抽象概念** | 某种心理效应、通胀、焦虑、某种趋势 | 根本不存在真实图 | **纯文生图** |\r\n\r\n- **具名实体必须喂真实素材**：文生图对\"特定的谁/哪一款\"必然编错（脸不像、型号糊成通用款），而这恰恰是观众一眼抓包、最伤账号可信度的地方。把一张真实素材图作为参考喂给支持图生图的模型（如 gpt-image-2 的图生图接口），让模型在这个具体、硬边缘的主体上重新打光、重建背景，主体就\"立\"得住、不溶解。\r\n- **泛指与抽象放心用纯文生图**：没有标准答案可违背，模型自由发挥反而好——它为抽象概念自选的视觉意象往往成立且抓人（这是它擅长的）。\r\n- **精度线随受众专业度上浮**：受众越懂这个领域，对具名实体的核对越狠（军迷对武器型号、时政受众对政要脸）。受众越专业，越要往\"喂真图\"这侧靠。\r\n\r\n### 图生图是\"忠实渲染器\"：它放大选源错误\r\n\r\n图生图最大的优点是**忠实**——喂什么还原什么，所以主体不溶解。但优点反过来就是致命弱点：**你喂错了，它会把错误也忠实地、精美地还原出来。** 找错型号的底图，它不会质疑，只会把错的那款渲染得更像样，内行一眼看穿。\r\n\r\n所以选源精度不是靠\"关键词搜得准\"，是靠\"**核得住**\"——中文图搜的标注本身就是脏的（上传者就标错了），再优化搜索词也救不了，必须在\"拿到候选图\"和\"喂进模型\"之间插一道**核验**。核验方式见下一节，与半自动/全自动模式绑定。\r\n\r\n## 十九、参考图选源与核验闸（绑定半自动/全自动模式）\r\n\r\n核验的本质不是\"调一个识图模型\"，而是\"**谁在场谁负责**\"。据此绑定产物的两种运行模式：\r\n\r\n- **全自动模式 → 降档为纯生成**。没有人在场核对，就不拿未经核验的搜索图去跑图生图（那正是\"找错型号还渲染得很漂亮\"的翻车温床）。代价是具名实体在全自动下拿不到图生图的红利、退回可能发虚的纯生成——这是**保守正确**：宁可主体发虚，不可张冠李戴。\r\n- **半自动模式 → 两条路，(a) 优先**：\r\n  - **(a) 用户自带参考图（推荐默认）**：让用户自己提供主视觉源图。一箭双雕——既躲开图搜的反爬与脏标注，又零选源风险（图是用户自选、自己认的）。\r\n  - **(b) 自动搜图 + 人工确认源（便利兜底）**：给不想自己找图的用户用。把候选图连同**判别特征**一起亮给用户点头，例如\"这应该是歼20：鸭翼 + 无平尾 + 菱形机头 + DSI进气道，对不对？\"，确认或换图后再往下。\r\n\r\n- **识图模型只是可选增强，不是前提**：半自动 (b) 里，若当前运行环境的模型恰好能看图（Claude、GPT-4o、Qwen-VL 等），可用它先过滤候选、少让用户看几张废图；看不了就直接上人工。**人工确认是地板，视觉模型是加分项。**\r\n\r\n> **开源通用原则（不止封面）**：本项目会开源给大量用户，其中很多人用纯文本模型（如 DeepSeek 主力 API 长期不收图片输入）。所以每一个\"调模型\"的步骤都必须有**纯文本降级路径**，不能默认人人都有带识图能力的模型。核验闸的\"人工确认 + 全自动降纯生成\"设计正是这条原则的落地。\r\n\r\n## 二十、封面主权合规硬约束（红线，二值不可协商）\r\n\r\n以下三条属**硬约束层**，与文稿审查模块里\"港澳台不与中国并列、主权表述以官方口径为准\"是一对——那条管**文字**，这条管**画面**。都属于\"普通观众未必注意、但一旦出错即重大事故\"，由硬约束兜底，不交给审美判断，也不可协商：\r\n\r\n1. **触发条件 = 任何提及即触发**：文稿只要出现台湾、香港、澳门、新疆、西藏（哪怕只是一句背景），就触发第 2 条。\r\n2. **涉敏题封面禁止出现**：旗帜、国徽、**任何人物**（不限于相关人物，任何人都不放）。这些题的封面导向中性的概念/场景视觉，从图生图候选主体空间里直接剪掉旗帜/国徽/人物。\r\n3. **地图全局禁令（不限涉敏题，所有封面）**：一律禁止在封面出现地图。原因是 AI 生成的地图边界不可靠（南海九段线、藏南、台湾着色等极易出错），任何题材都是重大事故温床。凡\"世界地图底纹\"\"地图连线\"这类意象一律作废，改用棋局、连线网络、光影纵深等非地图意象承载\"博弈/严肃\"的调性。\r\n\r\n---\r\n\r\n**再次强调**：本文只是通用内核。生成产物封面模块时，(1) 具体平台的画幅尺寸、(2) 具体垂类的品类-情绪-配色映射表、(3) 具体垂类偏好的封面类型与人物表现力风格，都要在生成时按\"本次确认的平台+垂类\"现场注入并写入产物正文，不能只留一个指向本文的链接了事——产物必须自包含，用户装上产物 skill 后不需要再依赖本生成器技能本身。\n\nFile v0.1.1:references/methodology/douyin-competitor-and-monitoring.md\n\n# 抖音竞品拆解 & 数据监控\n\n抖音模块由两个独立脚本组成，服务两类需求。它们不合并、各跑各的。\n\n| 需求 | 脚本 | 输入 | 产出 |\n| --- | --- | --- | --- |\n| 竞品/自号**数据**拆解 | [scrape_douyin.py](../../scripts/scrape_douyin.py) | 用户主页 URL | 账号+全部视频指标+评论的 JSON 与分析报告 md |\n| 竞品**文风/内容**拆解、自号选题复盘 | [douyin_transcript.py](../../scripts/douyin_transcript.py) | 单条视频分享链接 | 口播稿 txt（转写+LLM 纠错）+ 转写原文 |\n\n## 两个用途\n\n**一、借鉴竞品**：想模仿某账号的文风、拆解其成功方法时——\n先用 `scrape_douyin.py` 抓该账号全景（哪些选题数据最好、标题/评论规律），\n再对数据最好的几条视频用 `douyin_transcript.py` 取回**口播稿原文**，喂给文稿/标题模块做风格分析。没有原文就谈不上模仿文风，这是关键一环。\n\n**二、监控自己**：内容发布后，定期用 `scrape_douyin.py` 抓自己主页，\n对比各条视频的完播/点赞/评论走势，反哺工作流迭代（哪类选题、哪种标题打法数据更好）。\n\n## 怎么跑\n\n```bash\npip install -r scripts/requirements-douyin.txt\nplaywright install chromium          # 仅 scrape_douyin 需要\n\n# 数据抓取（扫码登录一次，session 会缓存）\npython scripts/scrape_douyin.py --url https://www.douyin.com/user/MS4w...\n\n# 单条视频 → 口播稿\npython scripts/douyin_transcript.py \"<抖音分享链接>\"\n```\n\nWindows 控制台若报 GBK 编码错，加 `PYTHONUTF8=1` 前缀跑。\n\n## 前置条件与红线\n\n- **ffmpeg** 必须系统安装（`douyin_transcript` 抽音频用）。\n- **TikTokDownloader**（GPL，未纳入本仓库）需单独 `git clone`，并把 `.env` 的 `TIKTOK_DOWNLOADER_DIR` 指向它；它需要一份**有效的抖音 cookie**（填在其 `Volume/settings.json`）。\n- **凭证**：复制 [.env.example](../../.env.example) 为 `.env` 填入阿里云 AK/OSS/NLS 与 LLM 网关 key。`.env` 已被 gitignore，勿提交。\n- **封号风险**：用个人 cookie 批量抓取竞品有风控风险，控制频率、自行评估。\n- **成本**：`douyin_transcript` 每条视频都会调用 OSS+ASR+LLM，按量计费，不要无脑批量跑。\n- **合规**：仅处理你有权处理的内容；竞品拆解用于学习方法，不是搬运。\n\nFile v0.1.1:references/methodology/peanut-production.md\n\n# 花生 AI 成片方法论（工作流最后一环）\r\n\r\n> **定位说明**：本工作流的**最终产出是一条能直接用花生 AI 做出来的视频**，不是一份停在文字上的方案。选题、文稿、标题、封面四个模块的产出方向，都要向花生 AI 的能力收口——本文讲的就是\"怎么让前面几步的产出，落到花生 AI 上能顺畅成片\"。\r\n\r\n## 一、花生 AI 是什么，适合做什么\r\n\r\n花生 AI 是一个 AI 视频制作产品，它的成片方式是：**素材剪辑 + MG 动画 + 部分本地素材**，由一段口播文稿驱动整条视频的结构与节奏。\r\n\r\n因此它**最适合\"文本口播驱动\"的视频**——先有一段讲得清楚的口播稿，再由花生按稿子的语义自动匹配画面素材、生成 MG 动画、穿插本地素材，拼成一条成片。它的强项是把\"一段话\"变成\"一条有画面、有动效、有节奏的视频\"，弱项是需要大量真人实拍、复杂现场表演、或强依赖创作者本人出镜的内容。\r\n\r\n**这决定了整套工作流的产出方向**：一切都围绕\"能不能被一段口播讲清楚、能不能被花生自动配上画面\"来设计。选题阶段就要把\"口播讲得动、素材找得到\"作为一条硬准入门槛（见选题方法论第六层）。\r\n\r\n## 二、口播文稿是花生的唯一驱动源——所以文稿只交口播稿\r\n\r\n花生按口播稿的**文字语义**去匹配画面、生成动画。这意味着：\r\n\r\n- **文稿模块只输出纯口播文稿本身**，不夹带\"章节标题\"\"建议画面\"\"镜头说明\"\"【开头/钩子】\"这类结构标注或分镜提示。这些信息对花生没用，反而会被当成口播内容读出来或干扰语义匹配。画面怎么配、动画怎么生成，是花生根据文字语义自动完成的，不需要人在稿子里预先写画面。\r\n- 口播稿要**符合中文标点规范**：用中文逗号「，」、中文句号「。」、中文问号「？」、中文感叹号「！」、中文冒号「：」、中文顿号「、」、中文引号「\"\"」等，不要混用英文标点 `, . ? ! :`。数字、单位、专有名词按中文口播习惯书写。花生会依据标点判断停顿与节奏，标点用错会直接影响成片的断句。\r\n- 口播稿要**能被顺畅读出来**——写完自己默读一遍，凡是\"读起来像书面语、口播念着别扭\"的句子都要改成口语。花生不会帮你把书面语转成口语，输入什么就读什么。\n\nFile v0.1.1:references/methodology/script-writing.md\n\n# 文稿方法论核心（跨平台/跨垂类通用内核）\r\n\r\n> **定位说明**：本文是文稿写作判断逻辑的**通用内核**，只讲跨平台、跨垂类都成立的判断逻辑，不涉及任何平台的具体时长、形态数值（竖屏短视频的秒数上限、横屏长视频的分钟区间等）。这些平台专属规则在生成产物时，从 `references/platforms/*.md` 里对应平台的资料注入，与本文的通用逻辑叠加使用；不要把某一个平台的具体时长（比如\"60秒\"）当成通用规则写进这里，也不要在没有平台资料注入的情况下凭空编一个时长交付给用户。\r\n\r\n## 一、写稿前：平台适配评估 + 情绪弧线草图\r\n\r\n**写第一个字之前必做两件事。**\r\n\r\n### 1.1 平台适配评估\r\n\r\n拿到选题后，先判断：**这个选题，能在平台允许的最短内容时长里，把最核心的一个结论/冲突/反常识讲清楚吗？**\r\n\r\n- **能** → 短平台版聚焦那一个点，不要试图塞进去更多\r\n- **不能** → 短平台版**不是长版的平均压缩**，而是从长版里找出最有冲击力、最挑战常识、最有煽动性的那一个结论或问题，单独拎出来，只把这件事讲透\r\n\r\n**禁止**：把一个需要完整逻辑链才能讲清楚的选题，硬压缩成面面俱到但每个点都浅尝辄止的短内容。宁可短版只讲一件事讲透，也不要讲五件事每件都讲烂。\r\n\r\n### 1.2 情绪弧线草图\r\n\r\n在写第一个字之前，先在脑子里设计这条弧线：\r\n\r\n```\r\n开头情绪：观众点进来时是什么感受？（担忧？困惑？好奇？）\r\n↓\r\n中间转折：我要在哪里给他一个\"原来如此\"的时刻？\r\n↓\r\n结尾情绪：我希望观众看完是什么感受？（安心？愤慨？有底气？想转发？）\r\n```\r\n\r\n信息是服务于情绪弧线的，不是反过来。写完后自查：如果把所有情绪词去掉，观众还剩什么感受？剩下只有\"信息\"没有\"感受\"，说明稿子缺灵魂，要重写。\r\n\r\n---\r\n\r\n## 一·五、留存单元制（贯穿全篇的核心结构心法）\r\n\r\n一条能跑赢推荐算法的长视频，本质是**若干个彼此高度关联的短视频单元咬合而成**，每个单元自带一个\"看完这个还想看下一个\"的引信。这是留存设计的总纲，下面所有结构规则都服务于它。\r\n\r\n- **单元 = 一个钩子 + 一个观点 + 若干论证/案例 + 一个小结**。写之前先把整条内容切成 4–6 个这样的单元，列出每个单元的\"进钩子\"和\"出钩子\"，再动笔。判断标准：把任意一个单元单独拎出来，它自己就是一条完整的短视频。\r\n- **单元收尾不收心**：每个单元结束时不要把话说圆、让观众有\"听完了\"的满足感，而要再抛一个新悬念（rehook）把人推进下一个单元。\r\n- **rehook 用叙事转折，不用裸设问**：❌ 连着用\"那么到底是谁在动手脚呢？\"\"可这还不是最坑的——\"这类直白设问当接缝，观众能闻到套路味。✓ 用故事本身的转弯拽人——\"但他接下来说的一段话，让我也笑不出来了\"。叙事驱动的接缝比修辞驱动的自然得多，优先用人物/事件的转折。\r\n\r\n## 一·六、一条视频只讲透一个核心概念\r\n\r\n- **概念做减法**：两个概念在这条内容里功能重叠（都在说同一件事），删掉一个，只留最锋利的那个——观众记不住两个黑话。宁可一个概念挖到底、配足案例，也不要为显得\"懂得多\"平铺两三个概念（稀释记忆点、拖垮节奏）。一个偏离主线但\"写得还不错\"的段落，该砍就砍。\r\n- **\"递进下探到根\"是合规的多层结构，别和\"平铺多个概念\"搞混**：禁的是**并列**（把功能重叠、谁也不比谁更根本的两三个概念摆一排，稀释记忆点）；祝福的是**下探**（同一条主线上，第一层给个像样答案，再自我否定\"这还不是真正的原因\"，逼出更深一层，挖到根）。每下探一层都是一次天然 rehook。但下探有两个致命陷阱，比\"不敢深挖\"更常见：\r\n  - **陷阱一·偷换问题（每一层都必须还在回答标题那个问题）**：追\"更深一层\"时，极易在不知不觉中换成回答**另一个问题**。真实案例：标题问\"这道菜为什么长这样\"，下探却答成了\"为什么是这群人做这道菜\"——后者再深刻也跑题了，观众会立刻闻到\"逻辑跳跃\"。做法：每挖一层，回头对一次标题——这一层还在回答开头那个问题吗？不是，就要么把它拉回主问题，要么留作下一条选题，别硬塞。\r\n  - **陷阱二·最深一层选\"最普世可迁移\"的，不是\"最煽情\"的（戏剧性≠深度）**：留存导向写法会把人往\"敢下判断、情绪脊椎\"推，于是最深层很容易选一个戏剧性最强、最能煽情的答案。但真正压得住的最深层，应该是那个**最普世、最能把观众自己卷进来**的机制——它能把\"远方某群人的一段奇事\"升级成\"一条碾过所有人（包括你）的普遍规律\"，情绪也随之从\"隔岸叹气\"变成\"后背发凉\"。判断：这个\"根\"只解释了这一个案例，还是能解释一大类现象、还能解释到观众自己身上？越普世越该选它当底。（煽情的那层不必扔，降级成\"这股力最极端的一个例子\"塞进去即可，别让它冒充根。）\r\n\r\n## 一·七、手艺层：决定\"有没有魂\"的四样（最值钱、最难，别偷懒）\r\n\r\n规则能保证\"不难看\"，但一条视频有没有魂靠下面四样，它们是刻意的选择、不是套路：\r\n\r\n1. **具体压倒抽象**：不要写\"一个博主\"\"有些人\"这种没脸的示意图。造一个具体的人、给名字、给一个**荒诞又可信**的细节（一个怪到让人追问的数字、一个好笑又心酸的举动），抽象概念挂在具体的人身上才有代入感和记忆点。**合规护栏**：这种\"我一个朋友…\"的角色是合法叙事装置（观众默认为演绎），和\"把虚构当真实信源\"是两回事——真实事件/数据标信源、不确定就说不确定；虚构人物细节落在明确的演绎框里。两者不能混。\r\n2. **有一个真敢下判断的\"我\"**：观众要的不是念维基百科的人，是一个真信点什么、敢亮立场的人。在人设允许范围内给出有锋芒的观点（哪怕只是温和反某种主流叙事），锋芒才激发评论转发，纯科普会被划走。别下意识为\"中立安全\"把话说得四平八稳。\r\n3. **把道理压成一个能成像的意象**：观众最后往往只记住一个画面。别用\"骨架\"\"基石\"这种用烂的比喻，想一个原创的、能成像、还呼应主题的意象（如\"一块铁矿被淬火成齿轮形状，再扔回群山之间就格格不入\"同时做了讲道理/给情绪/留记忆锚点三件事）。\r\n4. **具体的梦替代抽象的分类**：讲解法/愿景时不要写\"尝试自由职业\"这种名词，写\"开个海边的咖啡店\"\"做个一年只上两个月班的地接导游\"——观众没法向往一个词，但能立刻看见一个画面。\r\n5. **能用真实的\"我\"就别用虚构角色（真我 > 编造的角色）**：第1条讲\"造一个具体的人\"，但那是退路不是首选。若账号人设允许（尤其\"平视同好/过来人\"这类第一人称人设），**用创作者自己真实的经历/感受落地抽象**，比造虚构角色代入更强、且零合规风险（不用担心把演绎当真信源）。顺序：能用真我→用真我；用不上再造明确演绎框里的虚构角色。\r\n6. **梗即论点，不是调味（最高级的玩梗把论点压进一个词）**：语域下沉不只是加网感。最好的梗本身**承载信息**——把一个论点压缩进一个字/一个词，观众笑的同时就把论点记住了。案例：\"左宗**糖**鸡\"一个错别字，把\"这道菜被美国人改甜了\"这个核心论点缝进了菜名里。别把梗当外挂调味料，让它干活。\r\n7. **用一个案例的\"内部前后变化\"演示抽象机制（活体证据）**：讲抽象机制（如\"环境会改造事物\"）时，与其讲十句道理，不如找一个案例、让它在观众眼前**自己变一遍**。案例：\"同一道菜、同一个发明人，只是跨了一趟太平洋，就从咸辣变成了甜脆\"——没人重写菜谱，可它就是变了，这本身就是\"环境改造事物\"最有力的活体证据。比任何论述都狠。\r\n8. **禁元评论：别替观众预告反应（\"怪/好笑/荒诞/震惊\"）**：一个事实如果真的怪、真的荒诞，观众自己会反应过来——你跳出来贴一句\"你就不好奇吗\"\"这名字怪不怪\"\"你品品这个荒诞\"\"说来有点好笑\"，等于替观众下结论，反而暴露你对这个事实不自信、说话方式做作，把劲泄了。把那些\"怪怪的发现/这桩怪事/你有没有想过\"里的评价词删掉，直接平铺事实本身（\"招牌用的是一包松饼粉的名字\"，而不是\"你品品这个荒诞：招牌竟然是松饼粉\"）。这与\"具体压抽象、让东西自己说话\"是同一条脊椎的反面：**事实够劲就直给，让它自己炸；需要你标注\"这很精彩\"的地方，往往是事实本身还不够劲。**\r\n\r\n> **诚实提醒**：手艺层比规则层难得多，更像能力而非套路。尽全力做，但**绝不能为了\"有具体细节\"就把编造的事实伪装成真实信源**——宁可用\"我一个朋友\"的演绎框，也不要假造数据/人名/机构。\r\n\r\n---\r\n\r\n## 二、Hook结构\r\n\r\n绝大多数平台的完播率曲线在开头阶段掉得最快，文稿开头的处理方式直接决定这条内容能不能活过第一轮流失。写文稿前先判断内容属于哪种结构类型，两种类型的开头写法完全不同：\r\n\r\n- **Hook型内容**：开头就抛出结论、冲突或反转，核心矛盾或最强信息点在开场就出现，不铺垫背景。判断标准是——如果把这条内容的核心矛盾点直接放在文稿第一句，逻辑依然通顺，就属于Hook型。Hook型内容的开头必须在**前15秒内**完成\"抛出钩子\"的动作，这15秒基本决定了这条内容是被划走还是被留下。\r\n- **非Hook型内容**：需要先铺情境、讲背景，核心信息在中后段才浮现，属于渐进式叙事。判断标准是——核心矛盾点如果直接放在第一句会显得突兀、缺乏上下文支撑，就属于非Hook型。非Hook型内容不强求前15秒抛出最终结论，但仍然要在开头制造一个悬念或疑问，让受众有理由相信\"往后看会有答案\"，不能因为是渐进式叙事就放任开头平淡。\r\n\r\n判断错结构类型、给一个Hook型内容配一个铺垫式开头，会在最容易流失观众的前15秒浪费掉钩子；反之给一个渐进式内容硬套\"前15秒抛结论\"的写法，会导致结论提早暴露、后续内容失去悬念支撑。两种错配都要在写文稿前判断清楚。\r\n\r\n**\"钩子之前删自我介绍\"不等于\"全篇不能有自我介绍\"**：常见铁律是\"删掉'大家好我是…今天聊聊…'这类开场\"——但删的是**钩子之前**的冷启动自我介绍，不是钩子之后的。有一种合法且好用的开场型叫**设问连缀式**：开头先连抛 2-3 个观众真会问的真问题（把好奇心勾起来），紧接着再\"大家好，我是XX，这条视频就把这几个问题聊清楚\"——此时自我介绍不再是冷启动铺垫，而是\"我承诺给你解答\"的**立约动作**，反而强化了\"往下看有回报\"的预期。判据：自我介绍前面有没有已经立住的钩子？有→合法；没有、上来就自我介绍→删。\r\n\r\n**叙事/解谜型内容：故事一口气讲到底，别中途插说教（渐进式内容尤其高发）**：一条围绕\"一件事的来龙去脉\"展开的视频（一道菜的身世、一个品牌的沉浮），观众是顺着\"然后呢\"的惯性往下走的。最常见的破坏是：讲到一半突然按住观众，插一大段脱离故事的抽象科普或道理（\"这背后其实是一套规则：……你有没有想过……\"），讲完再用一句别扭的\"不过这个故事最精彩的地方……\"把观众硬拽回故事线。**那句把人拽回来的缝合句，本身就是\"我刚才打断了叙事\"的铁证——故事顺的话根本不需要缝。** 规则：叙事型内容里，中途只放\"为后续剧情服务\"的最小交代（后面要用到的设定点一句即可），把提炼的道理压到结尾、用故事本身演示一次（见手艺层\"活体证据\"），全片说教只出现一次、且在收口处。判断：删掉这段议论，故事还接得上吗？接得上→它就是插进来的，挪走或删。\r\n\r\n**第一句必须含本选题最可搜索的主体关键词（硬约束）**：短视频/信息流平台的第一句口播会变成自动字幕，是平台拿去做搜索与推荐匹配的第一手素材。抛悖论/怪问题可以，但主体关键词必须坐在句子里，别为抖机灵把最该被搜到的词漏了。这与标题模块的\"话题可辨识+关键词锚定\"一致，只是延伸到文稿第一句。\r\n- ✗ \"为什么要禁掉一盏蓝灯？\"（\"蓝灯\"太泛，看不出是智驾话题，白白焊死流量入口）\r\n- ✓ \"智驾的小蓝灯刚火没多久，为什么突然要被禁？\"（怪问题和搜索关键词一句话齐了）\r\n\r\n**hook 的时效核查（硬约束）**：hook 是整条视频的地基，跟当下现实冲突会让整段垮掉。hook 定稿前，把里面每一处\"现状/时间/进展/数据\"类断言（\"…就快来了\"\"还没…\"\"已经…\"\"即将…\"\"目前是…\"）逐条拎出来，**联网核当下真实状态**——模型知识可能过期，别凭记忆下判断，尤其警惕**把已经发生的说成将来时、把已经变了的说成没变**。核查对象是 hook 里的具体断言本身，不是泛泛搜选题（深挖搜过选题≠核过 hook 那句话的时效）。\r\n- ✗ 选题\"中俄永久免签\"，hook 写\"去俄罗斯一甩护照就能过的日子就快来了\"——事实是中俄早已阶段性互免签证、只是\"永久化\"没落地，把\"已经免签\"说成\"就快来了\"，一句话暴露不懂常识、整条崩掉。\r\n- ✓ 先核\"当前免签到什么程度、这次新进展是啥\"，hook 建立在准确的当下状态上（如\"中俄免签又要往前走一大步\"）。\r\n\r\n---\r\n\r\n## 三、节奏控制与信息密度\r\n\r\n文稿的节奏本质上是信息密度的分布问题，处理不好会导致两种反向的失败：信息太密受众跟不上、太疏受众觉得废话多。通用原则：\r\n\r\n- **每段一个信息点**：文稿按段拆解时，每一段应该只承载一个明确的信息点或论述单元，不要在同一段里塞入多个跳跃的信息点。\r\n- **信息点之间要有清晰的过渡**：段与段之间的衔接要让受众明确感知到\"上一个点讲完了，进入下一个点\"，避免信息点之间无缝糊在一起让人分不清层次。用**预告式钩子**过渡，不用平叙式总结。\r\n  - ✗ \"说完了背景，我们再看看各方的利益。\"\r\n  - ✓ \"但真正的问题在这——如果你把这件事里每一方的利益拆开来看，你会发现一个很反直觉的东西……\"\r\n- **节奏松紧随时长调整**：具体每分钟应该承载多少个信息点，这些数值随平台的典型时长和受众耐心阈值变化，从平台资料注入。\r\n\r\n---\r\n\r\n## 四、信息增量——每个观点必须超出受众的已知认知\r\n\r\n这是决定内容有没有干货价值的核心判断。\r\n\r\n**每个信息点交付前先问自己：这个观点，目标受众有90%的人已经知道了吗？如果是，就必须加深一层。**\r\n\r\n加深的方式：\r\n- 常识 + 具体数字量化：把常识变成可感知的程度\r\n- 常识 + 反直觉推论：挖出和表面相反的底层逻辑\r\n- 常识 + 延伸后果：把结论再往后推一步，给出普通人没算到的影响\r\n\r\n讲常识=浪费受众时间=他们会划走。每个选题都有一批\"这不是人尽皆知的吗\"的点，这些点要么加深、要么删掉，不能原样保留。\r\n\r\n**读者会追问的逻辑洞，往往正是深挖能出金子的地方（别糊过去）**：写完通读时，凡是自己都觉得\"这里有点跳、观众可能会问一句为什么\"的接缝，不要用一句含糊的话糊过去——那个洞十有八九藏着最好的料。真实案例：稿子讲\"名字被人永久占了、只能改名\"，但后文又出现\"大公司自己开了同名店\"，中间明显缺一环。去把这个洞填实，挖出来的是\"那个商标1996年失效了、名字重新变成谁都能抢的空地\"——一个既补上逻辑、又自带戏剧性、还印证全片主旨的硬事实。所以把\"观众会在这儿追问什么\"当成深挖的探针：**最扎眼的逻辑缺口，通常是这条选题里信息增量最高的富矿。**\r\n\r\n---\r\n\r\n## 五、比例感和程度感——数字必须通过对比才有冲击力\r\n\r\n裸数字对受众没有感知价值。任何数字，只有通过对比或类比，才能让受众感受到\"程度\"。\r\n\r\n**格式：[数字] + [参照物对比] = 程度感**\r\n\r\n**参照物必须是受众日常能感知的东西**：家庭月支出、一顿饭的钱、一个月房租、一年工资、手机电量、家用车油箱……具体参照物因垂类和受众画像而异，生成产物时按账号的目标受众选择合适的参照系。\r\n\r\n**禁止**：用受众没有感知基准的工业场景、专业设备、军事装备作参照物。\"相当于X艘航母\"——普通人对航母大小毫无感知，类比无效。\r\n\r\n**举例两关自检（推广到全文一切例子/类比，不止数字参照物）**：例子是手段，目的是让人更好理解、更愿意信服。一个合格的例子必须同时满足两条，任一不过就换更近的、或删掉：\r\n1. **它本身比你要论证的东西更好懂**——不能用一个更陌生、更需要解释的东西去解释一个没那么陌生的点（那是用更难懂的解释更好懂的，方向反了）。\r\n2. **它落在大多数目标受众的日常经验里**——受众能用自己的生活验证它。验证不了、共鸣不了的例子就是在跑题、增加费解，严重时观众连你要讲什么都忘了。\r\n**尤其警惕\"洋例子/专业领域例子\"**：显得高级有出处，但对大众受众往往更远。例：给中国观众讲\"浏览器地址栏那个挂锁图标只证明加密不证明网站不钓鱼\"——本身就比要讲的主题更难懂、也非国人日常经验，两关全踩雷，该删或换成本土日常的例子。\r\n\r\n---\r\n\r\n## 六、数据信源——每条关键数据必须说明来源\r\n\r\n> **先于\"有没有信源\"的一步：每个论点后面必须跟一条硬论据，而不是把论点换个说法再说一遍。** 这是最常见、最难自查的失败——AI 尤其容易只给结论、或用一个更抽象的词复述论点，制造\"解释了\"的假象（循环论证：「它迎合，是因为它迎合」）。硬论据只认三种黄金形态：① **带对比锚点的冲击力数据**（\"上桌吃饭比上战场危险166倍\"，不是\"很危险\"）；② **有名有姓的真实人物**（那个坐椅子吃饭被打死的达利特木匠吉腾德拉·达斯，不是\"有个底层人\"）；③ **有时间地点的历史事件**（2019年北阿坎德邦那场婚宴，不是\"曾经发生过\"）——三者都要带信源。拍脑袋推理出来的\"道理\"不是论据，只是论点的复述。\r\n>\r\n> **反循环论证自检（写完通读，遇到每个\"所以/因为/本质上是/说到底\"就停）**：问一句——这后面跟的是一条能被核查的硬事实（数据/真人/真事件），还是我把上半句换了个词？是复述，就回去搜一条真的来。**注意：这个\"去搜一条真的\"的动作，和核实史实真伪本来就是同一件事——举证据和防造假是一码事，别把该核的去核、不想核的就绕开用推理。论证层要和事实层享受同等的检索待遇。**\r\n>\r\n> **想要更多戏剧性时，先验证那个情节真不真，别为\"加戏\"编一个没发生过的情节。** 创作者（或用户）常会说\"这里能不能再挖点戏剧性细节\"——危险就在这：戏剧性最强的那个版本，往往是没发生过的那个。真实案例：一个\"小店抢注了商标、大公司来打官司\"的故事，听着该有一场精彩庭审，可一核实，当年大公司是发现名字被占后**直接认栽改名、根本没打官司**——真正的官司是二十多年后另一件事。这时候顺着\"深挖庭审细节\"写，就必然凭空编造。做法：动笔加戏之前，先把\"这个情节到底发生没发生\"当成一条待核事实去搜；核不到就如实降级（\"没有记载双方对簿公堂\"），把戏剧性加在**真实存在**的那个转折上，而不是给需求硬造一个。\r\n\r\n每条关键数据出现时，必须在稿子内部交代来源，自然嵌入口播，不要只在备注里写。\r\n\r\n**来源交代的优先级：**\r\n1. 官方信源最优先：具体到哪个部门、哪年的公开报告或发布会\r\n2. 权威第三方机构：知名研究院、国际组织等，需说明机构名\r\n3. 主流媒体报道：需说明媒体名\r\n\r\n**禁止**：数字凭空出现没有信源，或只说\"有数据显示\"而不说是谁的数据。涉及国家安全、重大政策、军事能力等敏感内容，必须引用官方或主流媒体的公开信源，不能用分析机构的估算充当已知事实。\r\n\r\n---\r\n\r\n## 七、发展眼光看数据——现状+潜力才是完整的信息服务\r\n\r\n讲到某个技术路线、政策方向或替代方案时，只讲现状等于讲了一半。受众要的是：**这条路能走多远？**\r\n\r\n**写法格式：**\r\n- 现状：目前规模/产能是多少（配参照物）\r\n- 瓶颈：为什么还没到上限（成本？技术？政策？）\r\n- 潜力：如果突破了瓶颈，上限在哪里（用数字算出来）\r\n- 意义：这件事对受众意味着什么（情绪价值落点）\r\n\r\n**典型错误**：讲某项技术只说\"目前产量聊胜于无\"——这是把技术储备等同于现有产能，忽视了极端情况下技术铺开的潜力。只讲现状不讲潜力，既损失了信息增量，也丧失了情绪价值（希望更可信，或威慑更惊悚）。\r\n\r\n---\r\n\r\n## 八、受众立场对齐——不能用中性词处理受众有明确情感倾向的事件\r\n\r\n每个账号都有特定的目标受众群，这群人对某些议题有明确的情感倾向和立场预期。在这些议题上，\"客观中立\"不是真中立——受众会把中性词解读为偏袒对立方。\r\n\r\n**原则：**\r\n- 在目标受众有明确立场的议题上，措辞要对齐受众的感受，而不是使用外交辞令式的中性描述\r\n- 叙述立场时，博主是受众群体里的一员，用\"咱们\"而不是把自己写成局外人\r\n- 奥弗顿之窗因受众群体不同而有偏移，必须对齐你服务的那群人的窗口位置\r\n\r\n**具体措辞由垂类和受众画像决定**，生成产物时注入。通用原则是：写完稿后问自己——目标受众读到这句话，会觉得博主站在他们这边，还是站在他们对面？前者对，后者重写。\r\n\r\n---\r\n\r\n## 九、稿子格式——结构标注不进稿子正文\r\n\r\n写作时的内部结构标注（如【背景铺垫】【第二层】【钩子】等）是写作导航，**不能出现在最终稿子正文里**。\r\n\r\n稿子必须直接可用于朗读、AI语音合成或字幕导入，不需要博主对着稿子一行行删标注。段落之间靠内容本身的钩子和逻辑衔接，不靠结构标注分隔。\r\n\r\n---\r\n\r\n## 十、完播设计\r\n\r\n完播率不是靠内容本身的质量自然产生的，需要在文稿结构里主动设计留人机制。三个通用手段：\r\n\r\n1. **悬念递进**：不要在开头把所有悬念一次性抖出来，而是设计成\"解开一个小悬念的同时抛出一个新悬念\"的链式结构，让受众始终有一个\"还没解开的问题\"驱动往下看。\r\n2. **进度锚点**：在文稿中段适当位置插入明确的进度提示（比如\"前面两个原因讲完了，第三个才是重点\"），让受众清楚自己看到了整体进度的哪个阶段，降低中途划走的概率。\r\n3. **\"然后呢\"感**：每一个信息点讲完后，文稿要自然引出受众心里\"那然后呢/所以呢\"的追问，再顺势给出下一个信息点作为回应。\r\n\r\n---\r\n\r\n## 十一、互动引导\r\n\r\n互动数据（评论、点赞、转发、收藏）是绝大多数平台推荐算法的重要权重项，文稿需要主动设计互动引导点，而不是被动等待受众自发评论。做法：\r\n\r\n- **自然植入提问或争议点**：在文稿的某个自然节点（通常是结论给出后），植入一个开放性问题或轻度争议性观点，引导受众在评论区表达看法。不能是结尾生硬加一句\"欢迎评论区讨论\"，这种硬贴的互动引导转化率很低。\r\n- **争议点的强度要可控**：争议点必须是创作者基于内容真实持有的判断，只是表达方式留了讨论空间，不是无底线博眼球。\r\n- **匹配平台互动权重**：应该往哪种互动行为引导（评论/收藏/转发），从平台资料注入。\r\n\r\n---\r\n\r\n## 十二、兑现标题承诺\r\n\r\n文稿是对标题许下的承诺的具体履行，两者必须一致，不能各自为战。\r\n\r\n- 如果标题是**好问题型**，文稿必须清楚地给出这个问题的答案，不能模糊带过。\r\n- 如果标题是**清晰结论型**，文稿必须提供支撑这个结论的具体论据或案例。\r\n- 如果**标题里有大数字**（巨大金额、极端比例、重大伤亡），文稿开头的冲突陈述必须快速围绕这个数字展开，前段内给出\"这个数字意味着什么\"的具体答案——观众进来看半天没有信息兑现就会划走。\r\n\r\n判断标准是：文稿写完后，回头把标题重新读一遍，问自己\"这条文稿有没有把标题许下的愿望兑现给受众\"，兑现不了就说明文稿核心内容和标题核心主张出现了错位，需要调整。\r\n\r\n---\r\n\r\n## 十三、通用质量自检\r\n\r\n不论平台和垂类，一份文稿在交付前都应该能通过以下自检，通不过就重写而不是硬凑：\r\n\r\n1. **平台适配评估做了吗**：短版是最强一个点讲透，还是长版的平均压缩？\r\n2. **情绪弧线设计了吗**：开头情绪→中间转折→结尾情绪，三个节点明确了吗？\r\n3. **开头类型判断正确**：Hook型内容前15秒内有钩子，非Hook型开头有悬念，没有错配。\r\n4. **信息增量达标**：每个信息点问过\"90%受众是否已知\"了吗？常识都加深了一层吗？\r\n5. **数字都有参照物**：每个数字配了普通人能感知的类比了吗？\r\n6. **数据都有信源**：关键数据说明来源了吗？敏感内容用的是官方信源吗？\r\n7. **技术/政策有潜力分析**：用\"现状+潜力\"格式了吗，还是只讲了现状？\r\n8. **受众立场对齐**：措辞对齐目标受众的感受了吗，还是用了中性词？\r\n9. **稿子正文无结构标注**：所有【】标注都从正文里删掉了吗？\r\n10. **每段一个信息点**：逐段检查，没有一段塞了多个跳跃信息点。\r\n11. **\"然后呢\"测试**：逐段读完，每段结尾自然引出下一段，没有流失点。\r\n12. **互动点自然且克制**：互动引导植入位置服务于内容逻辑。\r\n13. **标题承诺已兑现**：回读标题，文稿给出了明确答案或充分论据；标题有大数字的，开头快速兑现了。\r\n14. **论据不是复述（反循环论证）**：每个\"所以/因为\"后面跟的是硬论据（带锚点数据/真人/真事件+信源），不是把论点换个词重说？\r\n15. **下探没跑题、最深层够普世**：递进下探的每一层都还在回答标题那个问题（没偷换）？最深一层选的是最普世可迁移的机制，不是最煽情的那个？\r\n16. **没有替观众贴反应标签**：删干净了\"怪怪的/这桩怪事/你品品这个荒诞/说来有点好笑\"这类元评论？事实是直给、让它自己炸，而不是我先标注\"这很怪/很精彩\"？\r\n17. **叙事型没被说教打断**：解谜/故事型内容里，中途没有插脱离剧情的大段道理？说教只在结尾出现一次、且用故事本身演示？\r\n\r\n> **补充说明**：本文只提供跨平台都成立的文稿判断逻辑。具体时长与形态（竖屏短视频、横屏长视频等）由平台知识库在生成产物时注入，本文不写死任何时长数值。\r\n\r\n## 终审关卡（交付前强制，必须\"换一双眼睛\"，不可用自评断言代替）\r\n\r\n写完文稿会有一股\"这条做完了\"的完成感，紧接着最顺手的下一步往往是存档或收尾——终审恰好卡在\"写完\"和\"下一步\"中间，最容易被这股惯性直接跳过。所以先把话说死：**终审不是收尾润色，是这条流程里最不能省的一步，它防的就是\"作者自己觉得没问题\"**。写代码有编译器报错兜底，审文稿没有——越是没有外部反馈的步骤越依赖不偷懒，这里恰恰最容易松。三条铁规矩，生成产物时必须原样带进产物的文稿模块：\r\n\r\n1. **必须换一双眼睛，不能作者自己再读一遍充数。** 首选用当前环境的子 agent 能力（Claude Code 的 Task/Agent、Codex 的等价能力）起一个**独立的审核 agent**做对抗性终审，喂给它三样输入——①定稿全文；②本账号的受众画像与受众心声；③Step 0 掌握的\"这件事当下的公共认知水位\"，让它按下面清单逐项审。环境实在起不了子 agent，就做一次硬隔离复审：彻底清空作者视角重新逐条核。作者对自己写的东西有盲区，这一步的全部价值就在\"另一双眼睛\"。\r\n\r\n2. **只认逐条核查结果，不认一句自评断言。** 严禁用\"已检查、合规、兑现承诺、信源齐全\"这类概括声明代替终审——那是凭写作印象下的断言，不是核查，还会制造\"已经查过\"的假象，比漏查更糟。唯一合法产出：**逐项写出结论，问题项把原句抄出来 + 指出病灶 + 给出改法**。\r\n\r\n3. **不过就打回重写，改完重审，绝不允许\"大差不差\"放行。**\r\n\r\n### 第一层·硬门禁（二值，逐条核对，任一不过即打回）\r\n\r\n1. **零结构标注**：成稿只留能念的正文，不能有【】小标题、段落功能标注、时间轴标记、括号里的导演/朗读提示——TTS 会一起念出来。\r\n2. **零废话过场**：删掉没有信息增量的过场话和自我预告（\"我们先把事实讲清楚\"\"这是最关键的一点\"\"我用最直白的话告诉你\"）。判断法：删掉这句信息有没有少，没少就删。\r\n3. **信源主体明确**：每处引述说清主体和时间，禁止\"有分析师认为\"\"据报道\"这类无主体信源。\r\n4. **前后不自相矛盾**：数字、比喻、分类、结论前后一致（如开头说\"两只手\"后文冒出第三只手）。\r\n5. **提问必须有交代（开放问题全篇最多一个）**：每个问题要么明确回答、要么留给观众互动；留给观众的最多一个。禁止不答也不交给观众的无厘头设问。\r\n6. **观点必须落地到证据**：引述型说清出处主体；原创判断型后面紧跟 2-3 个有明确出处、来自联网检索最新权威信源的论据。光秃秃论断补证据或删。\r\n7. **主权与合规红线（二值，不可协商）**：港澳台不能与\"中国\"并列（写\"中国大陆和香港/台湾地区\"），台湾是中国一部分、不得暗示其为独立国家；主权领土敏感表述以官方口径为准。普通观众未必注意，但出错即重大事故，由硬门禁兜底、不靠受众复审去碰。\r\n\r\n### 第二层·受众复审（以真实观众的认知与口吻逐段重读）\r\n\r\n硬门禁抓\"作者勾选就能发现\"的硬伤；这一层抓作者自己看不出来的\"误判受众\"类 AI 味。生成产物时把本账号目标受众画像、受众心声注入这一段，让审核者具体地\"变成那个观众\"。审核者的认知水位以 **Step 0 的公共认知水位**为准。以观众身份逐段吐槽，凡触发下面任一句就标红：\r\n\r\n- \"这我早就知道了啊\" → 把人尽皆知的事当猛料揭（假澄清、假反常识、把常识当独家）。\r\n- \"你这是在教我做人？当我傻？\" → 居高临下、预设观众无知的措辞。\r\n- \"所以呢？这到底跟我有啥关系\" → 抛了\"跟你有关\"的钩子却甩宏大叙事，没落到切身可感的好处/威胁。\r\n- \"这开头不够让我停下来\" → hook 没锚在最切身、利害最大的点上。\r\n- \"这段我划走了\" → 过场、铺垫、正确的废话，没有信息往前推。\r\n- \"这句是把大结论当事实甩给我——凭啥？\" → 强事实论断后面没跟可查依据的，标红：指出缺论据、回去补信源（真假由硬门禁第3/6条把关）。\r\n- \"这例子我没听过/想半天没懂\" → 举例违反\"举例两关\"：例子比要讲的点更陌生，或不在受众日常经验里（如给国人讲浏览器挂锁图标）。抓出来，换更近的例子或删。\r\n\r\n### 第三层·留存型内容的事实与立场终审（留存导向写法为抓人会主动加具体、下judgement、抛反直觉结论，这几样最容易出事且作者自查不出）\r\n\r\n1. **真信源关（编造的具体最危险）**：把全文每一处\"具体的外部事实\"（数据、实验、事故、机构、人名、时间、排名）拎出来逐条问：有真实信源吗？✓真实事件标出处+时间、不确定就明说；✓虚构人物用\"我一个朋友…\"演绎框；✗把编造的实验/事故/数据伪装成真实（\"国际上做过大规模实验\"却给不出是谁做的）。**编造的具体比笼统的抽象更糟——它最像真的，最能同时骗过观众和作者，无联网时尤其高发。** 无源的具体事实逐条标出，补真信源或降级为泛化/删除。\r\n2. **因果闭环关**：每个反直觉结论后面因果链必须补严、一步步讲清\"为什么\"，留了洞的反直觉结论就是标题党（高点击低完播、伤信任）。抄出结论句检查论证链有没有跳步。\r\n3. **敏感/监管题立场关**：涉监管、政策、公共安全、民族/主权等敏感题，姿态不能是\"揭穿骗局/唱反调\"，落点收到安全区（\"我理解监管为什么这么做\"\"最后是为了大家的安全\"），而非暗讽产品/制度。\r\n4. **可执行正向收尾关**：结尾不能只留文艺/消极/空茫的情绪，要给观众一个能带走的、可执行的、正向的东西——从防御性焦虑转成主动掌控感，更利收藏转发。\r\n\r\n> **终审已独立成模块**：生成产物时，上述三层终审逻辑落地为独立的 [审查模块](script-review.md)（与选题/标题/封面/文稿并列的第五个模块），文稿模块末尾引导\"写完走审查模块\"，由审查模块承载完整的\"换一双眼睛\"终审。本方法论此处保留三层逻辑的内核，供生成审查模块时作底座。\r\n\r\n### 终审判决（必须写出来，作为后续任何收尾步骤的前置凭据）\r\n- **PASS**：硬门禁 7 条全过 + 受众复审无触发，逐条写出结论（不是\"都过了\"三个字）。\r\n- **打回**：问题原句 + 病灶 + 改法，回写作重改，改完重走终审。\r\n\r\n> 若产物带\"存档到内容库\"等收尾步骤，必须放在拿到终审 PASS 之后，并以贴出 PASS 判决原文为前置条件——收尾脚本会报错逼人处理，终审不会报错，正因如此更要防止\"先做会报错的、把不报错的终审甩在后面\"。\n\nFile v0.1.1:references/methodology/title-craft.md\n\n# 标题方法论核心（跨平台/跨垂类通用内核）\r\n\r\n> **定位说明**：本文是标题生成逻辑的**通用内核**，只讲跨平台、跨垂类都成立的判断逻辑，不涉及任何平台的具体数值规则（字数上限、标点白名单、关键词摆放位置等）。这些平台专属规则在生成产物时，从 `references/platforms/*.md` 里对应平台的资料注入，与本文的通用逻辑叠加使用，不要把某一个平台的具体数字（比如\"25字\"）当成通用规则写进这里，也不要在没有平台资料注入的情况下凭空编一个数字交付给用户。\r\n\r\n本文是从 [title-gen-v3](../exemplars/title-gen-v3.md) 范例中抽出的逻辑底座：范例是一个完整的、针对具体平台调好参数的可执行流程；本文只保留其中\"为什么这么起标题\"的判断逻辑，供生成任意平台、任意垂类的标题模块时复用。\r\n\r\n## 一、两型标题\r\n\r\n任何一条好标题，本质上只能是以下两型之一，不存在第三种基础形态：\r\n\r\n**类型A：好问题**\r\n- 定义：提出一个受众自己也会问、且真心想知道答案的问题。\r\n- 判断标准：这个问题必须具体、非泛化——把主语换成任何一个同类对象，问题依然成立，就说明问题起得太泛，需要重写；问题要用受众脑子里嘀咕的那句话去问，不是创作者站在客观视角提出的书面式疑问。\r\n\r\n**类型B：清晰的结论**\r\n- 定义：直接给出一个大胆、具体、让人第一反应是\"真的吗\"的结论。\r\n- 判断标准：结论必须具体到可以被验证或反驳（不能是\"XX真的很好\"这种无法证伪的空话），且必须包含至少一个具体细节（数字、具体名词、具体场景）。结论的冲击力来自矛盾，不是来自事实本身的大小。\r\n\r\n生成候选标题时，两型至少各出现一次，避免整批标题挤在同一种形态里。\r\n\r\n## 二、把矛盾拉满\r\n\r\n结论类标题的核心驱动力是矛盾，不是信息量。做法：\r\n\r\n1. 从内容里找一对\"不应该共存但确实共存\"的属性，写成 `[强属性] + [反预期属性] = 矛盾`。\r\n2. 矛盾的两端反差越大，标题的冲击力越强——所以起标题前要把内容里能提炼出的矛盾对全部列出来，按张力强度排序，只用最强的一对。\r\n3. **参照物必须是受众心中已有公认印象的对象**，反预期属性才有对比基准。参照物本身的公认度越高，冲击力越大；如果参照物含糊、没有公认标准，矛盾就立不起来。\r\n   - 反例：用一个受众自己都说不清好坏的模糊参照（\"比我现在吃得还好\"——\"我\"是谁，没人知道基准）。\r\n   - 正例：用一个所有人都认可的顶级标准做参照（\"能把今天的美军馋哭\"——\"今天的美军伙食\"是公认的高标准，冲击力立刻成立）。\r\n\r\n## 三、靶子要有公共认知度\r\n\r\n结论类标题常用\"先立靶再打靶\"（大众印象 + 反转）的结构，但**靶子必须来自真实存在的公共认知，不能是创作者自己发明的抽象标签**。判断方法很简单：把这个\"靶子\"讲给一个完全不了解这条视频背景的人听，对方是否能立刻理解、甚至本身就持有这个印象——能，靶子才成立；不能，靶子就是自造的空中楼阁。\r\n\r\n对比案例（同样是\"立靶+反转\"结构，一个立住了，一个立不住）：\r\n\r\n- ✗ 失败案例：**\"以武勇闻名于世的 Charriot，其实是个胆小鬼\"**。问题在于\"以武勇闻名于世\"是创作者单方面替受众预设的印象——Charriot 本身并不是广为人知的人物，更谈不上\"以武勇闻名于世\"，这个靶子对多数观众而言根本不存在,所以立出来只会让人觉得\"这是谁,凭什么这么说\"，反转也就无从谈起。\r\n- ✓ 成功案例：**\"家喻户晓的圣雄甘地，在印度人看来其实是卖国贼\"**。\"家喻户晓的圣雄\"是全球范围内对甘地的常规公共印象，这个靶子人人都认——所以后面\"印度人眼中其实是卖国贼\"的反转才有着力点，冲击力是靠真实存在的认知差撑起来的，不是靠临时编一个身份标签。\r\n\r\n核心原则：靶子最好是一种常识性的、\"网上传的/大家普遍这么觉得的\"印象，反转要用最朴素的口语表达出来，整句话读出来要像朋友在饭桌上随口一说，而不是书面论证。\r\n\r\n## 四、话题可辨识 + 关键词锚定\r\n\r\n- **话题可辨识**：标题前半部分必须让人一眼看出\"这条视频在聊什么话题\"，核心讨论对象要在标题里露出来，不能藏在悬念后面让人猜。\r\n- **关键词锚定**：标题需要命中至少一个受众真会用来搜索这条内容的关键词，否则再有冲击力的标题也进不了搜索/推荐的关键词匹配池。\r\n- **优先级排序**：受众口语 > 搜索关键词。也就是说，先保证标题读起来是人话、是受众自己会说的那句话，搜索关键词的嵌入要服务于这句话，不能反过来为了塞词破坏语感。但底线是无论怎么取舍，标题或紧邻的封面文案里，至少要保留一个可搜索的关键词，一个都不留是不合格的。\r\n- **系列前缀放结尾，不占开头**：如果内容属于某个系列，形如【XX观察·第N期】【XX说·EP12】这类系列节目名/期数前缀，必须放在标题的**结尾**（或干脆挪到简介、合集里），绝不能占据标题开头。开头是移动端信息流里最先显示、也最容易被截断的黄金位置，必须留给能让人一眼辨识话题、且带搜索关键词的实词；而系列名本身既没有钩子、也没有搜索价值，摆在开头等于用最贵的字符位置写了一句废话。判断方法：把系列前缀整段删掉，标题的话题辨识度和钩子有没有变弱——没变弱，就说明它根本不该占开头。\r\n\r\n## 五、动机匹配\r\n\r\n每条标题都应该能明确对应受众的一个具体动机，不能是\"泛泛地有趣\"。判断和排序动机时，遵循一个经验规律：**恐惧、愤怒、希望是驱动点击最强的三种情绪动机**，其次才是好奇、猎奇、优越感、共鸣等较温和的动机。起标题前先把内容能触发的受众动机列出来并排序，多数标题应该命中排序靠前的强动机，而不是均匀分布在强弱动机之间。\r\n\r\n## 六、开头结构呼应\r\n\r\n标题不是孤立存在的，它对开头做出了一个承诺，这个承诺必须被兑现，否则会导致高点击低完播。判断兑现节奏，先判断内容本身的结构类型：\r\n\r\n- **Hook型内容**（开头就抛结论/冲突/反转，核心名词或矛盾在开场就出现）：标题的承诺必须在**开头 15 秒内**兑现，开头和标题之间要形成\"问题-答案\"或\"悬念-揭晓\"式的紧密呼应。\r\n- **非Hook型内容**（开头铺背景、讲情境，核心信息在中后段才浮现，渐进式叙事）：标题围绕全文最强的那对矛盾点起，兑现节奏放宽到**开头前三分之一**，不强求前15秒就给答案，但前三分之一结束时受众必须已经确认\"这条视频在回应标题提出的问题\"。\r\n\r\n判断错结构类型、硬套 15 秒兑现节奏到一个渐进式叙事的内容上，会导致开头被剪得支离破碎；反之给一个 Hook 型内容配一个铺垫式开头，则会在最容易流失观众的前 15 秒浪费掉钩子，两种错配都要在生成开头建议前判断清楚再落地。\r\n\r\n## 七、通用格式约束\r\n\r\n标题的字数上限、允许的标点符号、关键词摆放的具体位置，**这些数值随平台变化，不属于通用内核的范围**。生成具体平台的标题模块时，这些数值从对应的 `references/platforms/<平台>.md` 读取并注入；不同平台之间不能共用同一套数值（例如不能假设所有平台都适用同一个字数上限）。本文只规定这些约束存在的\"位置\"和判断这些值是否合理的通用标准：\r\n\r\n- 长度要克制，理想区间应偏短而不是偏长——具体上下限由平台规则给出，但任何平台下，超过该平台\"理想长度\"的标题都要能说清楚为什么值得更长，不能因为信息量大就无限堆字。\r\n- 标点应服务于口语节奏，不能堆砌到干扰阅读；具体允许/禁止的标点清单由平台规则给出。\r\n- 应避免生僻字和专业黑话，涉及专业概念时要用外行人也能看懂的说法重新表述——这条与平台无关，任何平台都适用。\r\n- **禁用破折号\"——\"（硬约束，与平台无关）**：标题里一律不用中文破折号\"——\"。它是最典型的\"AI 味\"标点之一，且读起来书面、不口语；标题要像人随口说出来的一句话，改用逗号、问号，或直接断成两句。这条不进平台专属标点清单，任何平台、任何垂类都适用。\r\n\r\n## 八、通用质量自检\r\n\r\n不论平台和垂类，一条标题在交付前都应该能通过以下自检，通不过就重写而不是硬凑：\r\n\r\n1. **悬念或共鸣二选一命中**：标题必须制造悬念，或者触发受众共鸣，至少占一样，否则冲击力不成立。\r\n2. **内容可支撑**：标题允许适度夸张，但不能捏造内容里不存在的信息。\r\n3. **换主语测试**：把标题的核心对象换成同类的另一个对象，标题是否依然成立——依然成立说明起得太泛，要重写到只对这条内容成立为止。\r\n4. **口语测试**：把标题读出来，前面加一句\"你知道吗\"，读起来顺不顺——不顺说明语气偏书面，要改口语化。\r\n5. **具体性**：标题里必须能指出至少一个具体元素（数字/具体名词/具体场景/具体对比），不能是纯抽象判断。\n\nFile v0.1.1:references/methodology/topic-selection.md\n\n# 选题方法论核心（跨平台/跨垂类通用内核）\r\n\r\n> **定位说明**：本文是选题判断逻辑的**通用内核**，只讲跨平台、跨垂类都成立的判断标准，不涉及任何垂类的专属选题框架（比如财经内容常用的\"七维度选题矩阵\"），也不涉及任何平台的具体数值规则（热榜的具体入口、搜索词工具的具体产品名等）。垂类专属的选题框架在生成产物时按该垂类现场产出，与本文的通用逻辑叠加使用；平台专属信息从 `references/platforms/*.md` 注入。不要把某一个垂类的专属框架当成通用规则写进这里，也不要在没有联网工具的情况下凭空编一个\"当下热点\"交付给用户。\r\n\r\n## 起点：选题首先是一个\"好问题\"\r\n\r\n一个选题在成为选题之前，首先应该是一个**有大量人关注、值得研究的好问题**。不是\"我想讲什么\"，而是\"有一大群人正在心里问什么、却没有人给出满意的答案\"。判断一个题值不值得做，先过这一关：把它写成一个问题，问自己——这个问题有多少人真的在问？现有的答案够不够好？我有没有资格给出一个更好的答案？三个都过得去，才进入下面六层逐层打磨；过不去，这个题就还不成立，别急着往下走。\r\n\r\n下面六层是从\"好问题\"到\"可交付选题\"的完整打磨链路，逐层递进，最后一层是交付前的过滤网。\r\n\r\n## 第一层：动机——受众凭什么点开\r\n\r\n任何内容能被消费，都是因为它满足了受众的某种动机。选题前先想清楚这条内容到底给的是哪一种：\r\n\r\n- **信息服务**：帮受众解决一个具体问题、拿到一个判断依据。衡量标准是\"看完之后，他对这件事的认知/决策比看之前更清晰\"，而不是信息堆得多。\r\n- **情绪价值**：给受众一种情绪上的满足或释放——共鸣、宣泄、被理解、爽感、优越感。衡量标准是这情绪精准命中了受众的心声，而不是创作者自己想抒发的东西。\r\n\r\n**关键规律**：驱动打开率最强的三种情绪是**恐惧、愤怒、希望**，其次才是好奇、猎奇、优越感、共鸣这些温和动机。选题时先问自己命中的是强动机还是弱动机——弱动机不是不能做，但要靠别的维度（更强的比较优势、更硬的反直觉点）补回来。\r\n\r\n这个排序规律与标题方法论中的动机排序完全一致，因为标题本质上是在给选题的动机做浓缩呈现——选题阶段判断错了动机强弱，后面标题再怎么打磨也补不回来。建立选题池时，先把本垂类能触发的具体恐惧点、愤怒点、希望点列出来（不是抽象地说\"制造焦虑\"，而是具体到\"担心35岁被裁\"\"气愤同工不同酬\"\"相信自己也能翻身\"这种可以直接对应到内容的颗粒度）。\r\n\r\n## 第二层：比较优势——你凭什么比别人讲得好\r\n\r\n任何话题都大概率有人讲过。选题能不能立住，取决于你有没有一个说得清的比较优势。五种里挑出你真正最突出的 1-2 个，别想五个都占：\r\n\r\n1. **更专业**——独有的背景、经验、信息渠道\r\n2. **更易懂**——同样的信息讲得更浅白\r\n3. **更有戏剧性**——情节、反转、冲突更强\r\n4. **更有代入感**——身份/视角让受众更容易投射\r\n5. **更有感染力**——情绪浓度、现场感更强\r\n\r\n判断标准很硬：把你这条内容和头部同类内容并排放，你能不能一句话说清\"我强在哪\"。说不清，就换角度或放弃。这一步是选题最容易被跳过、也最致命的一步——很多人只想到\"这个话题不错\"，没想过\"凭什么是我讲的这条被点开\"。\r\n\r\n找 1-2 个而不是全占，是因为选题和后续的文稿、标题、封面都要围绕这 1-2 个优势去强化——五个优势平均分配注意力，最后每一个都不够突出，反而在受众心里留不下\"这个账号讲这类话题就是不一样\"的清晰印象。\r\n\r\n## 第三层：选题框架——建立可轮换的选题池\r\n\r\n爆款不能靠灵感。成熟账号都有一套分类选题池，每次从池子里挑和填，而不是从零现想。框架的价值有两个：\r\n\r\n- **可持续**——保证选题不枯竭，能稳定更新；\r\n- **防重复**——池子内部轮换，避免连续几期都是同一种角度，观众会腻。\r\n\r\n不管什么垂类，都该先沉淀出自己的 3-5 类选题池（比如\"起源类/纠偏类/对比类/盘点类\"），让每个新选题都能归到某一类里。归不进去的孤立点子，往往就是不可持续的一次性灵感。定期回看已发布选题在各池子之间的分布，判断是否偏科（某个池子被过度使用、某个池子长期闲置），及时调整比重。\r\n\r\n## 第四层：反直觉点——同等信息量下的放大器\r\n\r\n同样的信息，带反直觉结论的比平铺直叙的打开率明显更高。做法分三步：\r\n\r\n1. 找出受众对这个话题的**默认预期/常识印象**——注意这个预期必须真实存在、受众普遍持有，不能是你自己发明的稻草人；\r\n2. 找出一个和这个预期相悖、但确实站得住的信息点或结论；\r\n3. 反直觉点越具体、越可验证，势能越强；站不住的反直觉点只会沦为标题党，反噬信任。\r\n\r\n（这一步和标题方法论里\"靶子要有公共认知度\"的逻辑相通——反直觉点必须建立在一个真实存在、受众普遍持有的预期之上。）不强求每个选题都有反直觉点，但同一批候选里，有扎实反直觉点的排前面。\r\n\r\n## 第五层：热点结合——势能杠杆（选用）\r\n\r\n热点是放大器，不是必需品。只在\"确实有交叉点、结合后不牵强\"时用。判断标准：把结合后的选题读给一个只关心你核心内容的受众听，他觉不觉得这个连接自然。牵强蹭热点会稀释账号的专业感知，得不偿失。\r\n\r\n- **抓取方式**：用当前环境可用的联网工具（搜索、抓取网页等）实时查询目标平台的热榜、搜索趋势、近期讨论热度，不要依赖训练记忆里的旧热点冒充\"当下热点\"。本文不写死具体的数据源名称或产品名，因为这些会随时间和平台变化——生成产物时，应指导使用者在执行选题时，先用联网工具查一遍当下真实的热点情况，再决定是否结合。\r\n- **优先用结构化热榜源**：裸搜索热点常被 SEO 垃圾页污染，信噪比低。若产物配有专门的热榜抓取脚本（拉取结构化的平台实时热榜），应优先跑它拿干净数据，再用联网搜索补垂类专属角度。两条铁律不可违反：① 抓不到就如实告知、退回常青题，绝不返回缓存/旧热榜；② 偏离实时常识的选题就是垃圾，宁可停下修数据源，也不拿过时数据硬编。\r\n- 热点也不只有突发事件——周期性节令（开学季、年终奖、财报季、节日）往往是比突发热点更稳、更可提前布局的一种。\r\n\r\n## 第六层：准入自检——交付前的过滤网\r\n\r\n每个候选选题交付前都要过一遍，通不过就重打磨：\r\n\r\n1. **动机明确**——一句话说清主要给信息服务还是情绪价值，命中哪种情绪；\r\n2. **优势清晰**——一句话说清相比同类的 1-2 个比较优势；\r\n3. **可持续**——能归进选题池的某一类，不是孤立点子；\r\n4. **具体性**——不是泛泛的话题标签，具体到某个案例/某个说法；\r\n5. **可执行性**——你真的做得出来（有素材、有能力、有资源支撑）。这条按垂类不同而不同，但每个垂类都该有自己那条最硬的准入门槛。**对本工作流尤其重要的一条：最终成片走花生 AI（素材剪辑 + MG 动画 + 本地素材，口播驱动），所以选题要能被一段口播讲清楚、且能找到或生成对应的画面素材**——纯靠真人实拍才能成立、口播讲不动的题，在这套流程里就是低可执行性；\r\n6. **热点不牵强**——若结合了热点，连接自然才保留。\r\n\r\n> **补充说明**：本文只提供跨垂类都成立的选题判断逻辑。具体某个垂类的专属选题框架（例如财经内容常见的\"宏观/行业/公司/资金面/情绪面/政策面/估值面\"七维度选题矩阵），需要在生成具体垂类的产物时，结合该垂类的实际研究现场产出，不属于本文覆盖范围，也不应该把某一个垂类的专属框架直接套用到另一个不相关的垂类上。\n\nFile v0.1.1:references/platforms/baijiahao.md\n\n# 百家号算法拆解\r\n\r\n> 本文件是内置资源库的一部分，供生成器在阶段1\"内置资料研究\"中读取，把下列事实注入产物 skill 的对应模块正文（复制改写，不是留链接）。百度官方（百家号创作者中心、百度搜索资源平台）对具体权重公式未做完整公开，以下内容综合了百家号创作者中心公开的运营规则、\"原创星火计划\"等官方扶持政策的公开说明、以及第三方自媒体运营圈长期总结的经验规律，标注为\"经验规律\"的部分请视为方向性参考而非精确数值。\r\n\r\n## 推荐机制\r\n\r\n百家号和抖音、小红书、视频号最大的不同是：**它背靠百度搜索这个搜索引擎流量入口**，内容分发同时吃两块蛋糕——手机百度/百度APP信息流的算法推荐，以及百度搜索结果页的关键词匹配，这决定了百家号内容天然要兼顾\"信息流好点击\"和\"搜索能被找到\"两套逻辑。\r\n\r\n- **信息流分发（手百/百度APP）**：百家号内容主要展示渠道是手机百度、百度APP首页的信息流，分发逻辑上和其他信息流产品类似——系统基于用户历史点击、停留、互动数据打兴趣标签，把内容匹配给潜在感兴趣的用户，是一套去中心化、按内容质量和匹配度实时决策的推荐系统，不特别依赖粉丝关系链，新号也有机会靠内容本身冲上大流量。\r\n- **搜索（百度搜索加权）**：这是百家号相较抖音、小红书、视频号最独特的分发通道——百度搜索本身会给百家号内容（尤其是通过原创认证、信用分较高账号发布的内容）一定的搜索结果加权，用户在百度搜索框直接搜关键词时，百家号文章/视频有更大概率出现在搜索结果靠前位置，这意味着百家号内容的\"搜索可发现性\"是可以通过SEO思维主动优化的，且这条流量通道几乎是免费、长尾、24小时在线的。\r\n- **内容分发以标题与领域垂直度为主**：不同于抖音靠完播率、B站靠播放时长，百家号信息流分发阶段最先判断的是标题的信息流点击吸引力，以及账号本身的领域标签是否清晰垂直——系统会持续学习一个账号发布内容的领域分布，标签越垂直、越稳定，越容易被稳定推给该领域的兴趣用户群体，账号如果频繁跨领域发布，会导致系统对账号定位模糊，推荐精准度和整体流量表现都会下滑。\r\n- **去中心化推荐**：和抖音类似，百家号的信息流分发不依赖粉丝基本盘，新账号做出符合领域标签、标题吸引力强的内容，同样有机会获得大量推荐曝光，但**账号的原创度和信用分**会持续影响系统对该账号内容的默认信任度和推荐起点，这是百家号独有的、类似\"账号资产\"的机制设计。\r\n\r\n## 核心指标与权重\r\n\r\n按重要性排列，每个指标对应的内容杠杆：\r\n\r\n1. **CTR（标题在信息流中的点击率）与搜索关键词/领域垂直度**（权重最高，两者并列第一位）\r\n   - 内容杠杆：**标题要用\"信息流党\"的写法**——直给结论、数字量化、制造轻度好奇心（\"这3个习惯正在悄悄毁掉你的身体\"\"内行人才知道的5个技巧\"），信息流场景下标题几乎是唯一的点击决策依据，需要比小红书封面更依赖纯文字的吸引力；**标题和正文前几十字里嵌入用户会在百度搜索的真实关键词**（用百度指数或下拉词联想验证真实搜索量，不要凭感觉编词）；**账号发布内容长期保持在同一个领域标签下**（美食号只发美食、财经号只发财经），避免因跨领域发布导致系统重新评估账号定位、推荐精准度下降。\r\n2. **阅读完成度/播放时长**（权重次之）\r\n   - 内容杠杆：图文类要**控制篇幅匹配主题信息量**（不为了凑字数注水，用户读到一半发现没干货会直接跳出，拉低完读率）、**用小标题/分段/加粗关键句降低阅读疲劳**；视频类要**开头快速给出内容大纲或结论预告**，让用户判断\"值不值得看完\"，减少因为不确定内容质量而提前划走的情况。\r\n3. **互动**（点赞/评论/转发/收藏）（权重相对最低但仍计入综合评级）\r\n   - 内容杠杆：**结尾留提问引导评论**（\"你怎么看，评论区说说\"）、**争议性观点或反常识结论**能提高评论区讨论热度、**实用类内容（清单、教程）引导收藏**，虽然互动权重不是百家号的第一杠杆，但持续的互动数据会累积进账号的综合评级，间接影响后续内容的推荐起点。\r\n\r\n## 内容形态适配\r\n\r\n- **图文权重高，视频亦可**：百家号起家于图文自媒体平台，图文内容在系统里的权重和展示位置依然充足，不是所有内容都需要转成视频才能获得流量，图文类账号（尤其是资讯、观点评论、知识科普类）在百家号的性价比通常优于纯视频号——制作成本更低，且能更直接地嵌入搜索关键词做SEO优化。\r\n- **标题信息流党**：无论图文还是视频，标题都要按信息流点击逻辑设计——具体、量化、有明确的信息缺口或利益点，避免空洞的抒情式或文艺式标题（这类标题在信息流里的点击表现通常明显偏弱）。\r\n- **封面三图或单图**：百家号图文内容常见的封面形式是\"三图模式\"（信息流卡片展示三张缩略图）或\"单图模式\"（展示一张大图），三图模式适合内容本身有多个可视化亮点（对比图、步骤图、多角度实拍），单图模式适合有一张足够抓眼的核心画面，两种形式要在发布时根据内容素材质量主动选择，而不是让系统默认排版。\r\n- **领域标签一致性**：账号的头像、简介、历史发布内容、当前这条内容的标签，四者要保持一致的领域认知——系统和用户看到账号的第一印象都基于这种一致性，频繁改变内容方向会同时稀释系统推荐精准度和用户对账号的信任感。\r\n\r\n## 冷启动与破圈\r\n\r\n- **领域垂直养号**：新号从第一条内容开始就要确定并坚持一个垂直领域，账号简介、头像、历史发布记录都围绕这个领域展开，帮助系统尽快、尽准地建立账号的领域画像，新号早期频繁试探不同领域的内容方向，会显著拉长冷启动周期。\r\n- **原创分与信用分**：百家号有\"原创星火计划\"等官方认证机制，通过原创认证、长期保持高质量原创发布记录的账号会获得更高的原创分/信用分，这类账号的内容在信息流分发和搜索加权上都享有默认更高的起点信任度；反之抄袭、洗稿、低质内容会拉低信用分，进而拖累账号后续所有内容的推荐表现——信用分是一种需要长期维护的账号资产，不是单篇内容的属性。\r\n- **蹭百度搜索热词**：结合百度指数、百度热搜榜等公开工具，找到当前搜索量正在上升但内容供给还不够充分的关键词，围绕这些词创作内容，既能吃到信息流的时效性推荐红利，也能长期占据该关键词在百度搜索结果页的位置，形成持续的免费搜索流量——这是百家号独有、且ROI很高的破圈路径，抖音、小红书都没有对应的搜索引擎级流量池。\r\n- **避免标题党违规扣分**：百家号对标题与内容严重不符（\"标题党\"）、低质内容、过度营销导流等行为有明确的处罚规则，违规会直接扣减账号信用分，信用分一旦被扣，账号后续所有内容的默认推荐起点都会被拖累，新号尤其要注意标题的\"信息流吸引力\"和\"内容真实匹配度\"之间的平衡，不能为了点击率牺牲准确性。\r\n\r\n## 一句话打法\r\n\r\n百家号是信息流点击与百度搜索的战场：标题按信息流党写、正文按搜索关键词布局，领域标签越垂直越吃香，原创分与信用分是长期资产，蹭百度热搜词比单纯堆爆款更稳，标题党和低质内容会持续拖累账号。\n\nArchive v0.1.0: 54 files, 195029 bytes\n\nFiles: .env.example (1060b), .gitignore (49b), README.md (6075b), references (0b), references/exemplars (0b), references/exemplars/bilibili-finance-video-skill.md (50845b), references/exemplars/title-gen-v3.md (16647b), references/methodology (0b), references/methodology/cover-design.md (39472b), references/methodology/douyin-competitor-and-monitoring.md (2401b), references/methodology/peanut-production.md (2485b), references/methodology/script-writing.md (35730b), references/methodology/title-craft.md (9796b), references/methodology/topic-selection.md (8573b), references/platforms (0b), references/platforms/baijiahao.md (8177b), references/platforms/bilibili.md (7408b), references/platforms/douyin.md (7016b), references/platforms/shipinhao.md (8100b), references/platforms/xiaohongshu.md (9099b), references/skill-template (0b), references/skill-template/cover-design.md.tmpl (8841b), references/skill-template/env.example.tmpl (831b), references/skill-template/gitignore.tmpl (34b), references/skill-template/positioning.md.tmpl (525b), references/skill-template/script-review.md.tmpl (6807b), references/skill-template/script-writing.md.tmpl (12179b), references/skill-template/SKILL.md.tmpl (9926b), references/skill-template/title-craft.md.tmpl (8249b), references/skill-template/topic-selection.md.tmpl (8855b), scripts (0b), scripts/archive_content.py (4851b), scripts/content_db.py (2438b), scripts/douyin_transcript.py (11963b), scripts/fetch_hotlist.py (5229b), scripts/generate_cover.py (6498b), scripts/query_db.py (2210b), scripts/requirements-douyin.txt (505b), scripts/scrape_douyin.py (32749b), scripts/test_content_db.py (6180b), scripts/test_douyin_transcript.py (1007b), scripts/test_fetch_hotlist.py (2541b), scripts/test_validate_skill.py (966b), scripts/test_web_search.py (6656b), scripts/update_metrics.py (1835b), scripts/validate_skill.py (2020b), scripts/web_search.py (12357b), skill-card.md (3773b), SKILL.md (27914b), tests (0b), tests/test_generate_cover.py (861b), tests/test_validate_structure.py (2219b), 快速上手.md (6992b), _meta.json (141b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: video-workflow-builder\ndescription: 视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。\n---\n\n# 视频创作工作流生成器\n\n这是一个\"生成 skill 的 skill\"。它不直接帮你写选题、写文稿、做封面——它做的是把这一整套能力，按照你的平台、垂类和人设，量身定制成一个**独立、可安装、开箱即用**的专属工作流 skill，覆盖从选题到文稿、标题、封面的完整链路。你只需要回答三个最基础的问题，剩下的受众画像、爆款打法、变现路径、平台算法动向，它会自己联网研究补齐，先给你一份账号定位诊断和策略提案确认方向，确认后再落地生成产物。目标是让每个账号拿到的都不是一份通用模板，而是一套真正吃透了自己平台算法和垂类打法的作战手册。\n\n## 跨工具适配\n\n本技能同时支持 **Claude Code** 和 **Codex**（以及其它遵循 SKILL.md 规范的 agent）。下文提到具体工具名时，请按你当前所在的运行环境映射到等价能力，不要因为\"没有叫这个名字的工具\"就跳过步骤：\n\n- **联网搜索（统一走网关，别用自带 WebSearch）**：本技能的联网搜索**一律通过内置的 `scripts/web_search.py`（qianfan web search 网关）**，**不要**直接用 Claude Code 自带的 `WebSearch` 或 Codex 自带的联网搜索工具。这样搜索源可控、结果结构统一、跨 agent 环境行为一致。调用方式：`python3 \"$SKILL_DIR/scripts/web_search.py\" \"搜索词\" [--top N] [--json]`（密钥从技能目录 `.env` 的 `QIANFAN_WEBSEARCH_API_KEY` 读取，已随技能配好）。若网关报错/无密钥，如实告知用户无法获取实时数据，退回内部知识作研究依据，不要用记忆里的旧数据冒充实时情报，也不要偷偷改用自带 WebSearch。\n- **抓取网页正文**：优先看 `web_search.py` 每条结果自带的 `content` 字段（网关已摘出约前 1000 字，判断相关性/快速扫风向足够）。需要读**完整全文**（网关 content 只有全文约两成、且从中间截断）时，用 `python3 \"$SKILL_DIR/scripts/web_search.py\" <url> --full [--max-chars N]` 本机直抓提纯——**不要用 Claude Code/Codex 自带的 WebFetch**：它跑在云端，对国内站（163/百家号/东方财富等）会系统性报\"无法确认域名安全\"而失败，本机抓取则没有这个问题。\n- **写文件**：Claude Code 用 `Write` 工具；Codex 直接用其文件写入能力（或 `apply_patch`）。凡说\"用 Write 工具生成某文件\"，即指\"用当前环境的文件写入能力落地该文件\"。生成产物 skill 时涉及的每一个文件（SKILL.md、各模块文档、脚本、配置）都要真实落地到磁盘，不能只在对话里描述。\n- **跑脚本**：两个环境都通过 shell 执行 `python3`。脚本路径见下方「脚本路径」——一律用技能目录的绝对路径，不要假设当前工作目录就是技能目录。\n\n### 脚本路径\n\n本技能自身的脚本（结构校验器 `validate_skill.py` 等）随技能一起安装，位于技能目录下的 `scripts/`。**不要假设 shell 的当前工作目录是技能目录**（Codex/Claude Code 运行时 cwd 通常是用户项目目录）。运行脚本前先定位技能目录，用绝对路径调用。技能目录按环境查找：\n\n- Claude Code：`~/.claude/skills/video-workflow-builder`\n- Codex：`~/.codex/skills/video-workflow-builder`\n\n推荐用一句话解析出脚本根目录再调用，避免路径出错：\n\n```bash\nSKILL_DIR=\"$HOME/.claude/skills/video-workflow-builder\"\n[ -d \"$SKILL_DIR\" ] || SKILL_DIR=\"$HOME/.codex/skills/video-workflow-builder\"\npython3 \"$SKILL_DIR/scripts/validate_skill.py\" <生成的产物目录>\n```\n\n下文示例为简洁起见写成 `scripts/xxx.py`，实际调用时请替换为 `\"$SKILL_DIR/scripts/xxx.py\"`。生成的产物 skill 安装后同理有自己的技能目录（`~/.claude/skills/<账号名>-workflow` 或 `~/.codex/skills/<账号名>-workflow`），产物内部脚本调用时也要按这个规则解析绝对路径——这一点会写入产物自身的 SKILL.md，此处先记在心里。\n\n## 内置资源索引\n\n本技能自带两类资源：一是**范例库**，供生成时参照质量与结构，不能原样照抄进产物；二是**平台/方法论资源库**，是生成产物时\"抄数据\"的原始素材来源，会随后续任务逐步建成。\n\n**范例（已就位，可直接参照）：**\n\n- [标题生成方法论范例](references/exemplars/title-gen-v3.md) — 起标题前的文稿深度分析五步法，是所有产物「标题生成」模块的逻辑底座，每个生成的标题模块都要继承这套思路。\n- [B站财经账号范例](references/exemplars/bilibili-finance-video-skill.md) — 一个成熟的单垂类账号 skill 长什么样：人设锚定、跨工具适配写法、阶段化流程+人工确认点、统一输出文档、质量评估 loop、封面硬规则。这是本技能生成产物时要对标的质量与结构标准。\n\n**平台算法知识库（已就位，生成产物时\"抄数据\"的原始素材来源）：**\n\n- [抖音算法](references/platforms/douyin.md) — 抖音推荐机制、核心指标权重、内容形态适配、冷启动与破圈打法\n- [B站算法](references/platforms/bilibili.md) — B站同上四层算法拆解\n- [小红书算法](references/platforms/xiaohongshu.md) — 小红书同上四层算法拆解\n- [视频号算法](references/platforms/shipinhao.md) — 视频号同上四层算法拆解\n- [百家号算法](references/platforms/baijiahao.md) — 百家号同上四层算法拆解\n\n阶段1研究某平台时，**必须先读取对应的 `references/platforms/<平台>.md`** 拿到该平台的四层算法拆解，作为联网研究的基础和校验依据；这些文件已全部就位，不要说\"该平台资料还未收录\"。仅当用户选的平台超出上述五个（抖音/B站/小红书/视频号/百家号）时，才如实告知该平台无内置算法资料、本次仅依赖联网研究。\n\n**产物模板（已就位）：**\n\n- `references/skill-template/` — 产物 skill 的可填空模板（`*.tmpl` 文件，含各模块 `{{PLACEHOLDER}}`），生成规范见下方「生成规范」章节。\n\n**方法论内核（已就位，生成时的逻辑抄数据来源）：**\n\n- [标题方法论](references/methodology/title-craft.md) — 从 title-gen-v3 范例中抽出的跨平台/跨垂类标题判断逻辑（两型标题、矛盾拉满、靶子公共认知度、关键词锚定、动机匹配、开头呼应），平台专属的字数/标点/关键词位置规则在生成时从 `references/platforms/*.md` 叠加注入。\n- [选题方法论](references/methodology/topic-selection.md) — 跨平台/跨垂类选题判断逻辑（受众动机模型、比较优势定位、热点结合、可持续选题库、反直觉点提炼），垂类专属选题框架（如财经七维度）在生成时按垂类现产。\n- [文稿方法论](references/methodology/script-writing.md) — 跨平台/跨垂类文稿判断逻辑（Hook结构、节奏控制与信息密度、完播设计、互动引导、兑现标题承诺），时长与竖屏/横屏形态由 `references/platforms/*.md` 在生成时注入。\n- [封面方法论](references/methodology/cover-design.md) — 跨平台/跨垂类封面判断逻辑（1秒法则、视觉焦点与留白、底图质量、人物表现力、大字文案4-8字、文案与标题互补、缩略图尺度验证、系列感固定排布、情绪配色原则、封面承诺-内容兑现闭环、数据可视化克制、多平台适配方法论、数据迭代、gpt-image-2 提示词写法），画幅尺寸与情绪-配色映射由 `references/platforms/*.md` 及本次确认的垂类在生成时注入。\n\n## 五阶段流程\n\n整个生成过程分五个阶段，中间有两个明确的停止点（STOP），不要跳过或抢跑。\n\n### 阶段0 · 极简访谈\n\n用户发起请求后，**只问这三件事**：\n\n1. **平台**（可多选，从抖音/B站/小红书/视频号/百家号里选一个或多个）\n2. **垂类**（做什么内容方向，如财经、职场、历史、美食、科技测评……）\n3. **人设**（账号以什么身份/口吻出镜，如\"资深投资人\"\"过来人前辈\"\"专业测评师\"）\n\n**明确不要问**受众画像、差异化定位、变现路径——这些属于研究阶段和诊断阶段的产出，不是访谈阶段该问用户的。用户往往自己也说不清楚\"目标受众是谁\"\"怎么和同类账号差异化\"，把这些问题甩给用户只会让访谈变得又长又低效。三件事问完、拿到答案就立刻进入阶段1，不要追加更多访谈问题。\n\n**提问方式**：访谈这三件事一律用**普通对话文字**直接问（\"你想在哪个平台做？做什么方向？以什么身份出镜？\"），**不要调用交互式选择控件/表单类工具**——本技能跨 Claude Code 与 Codex 等多种环境运行，这类控件并非各环境都稳定支持，纯文本提问在任何环境都可靠，也让用户能一句话把三件事一起说全。\n\n若用户在一句话里已经把三件事都说全了（例如\"我想在抖音做美食测评账号，人设是社区大厨\"），直接确认理解无误后进入阶段1，不必再走一轮问答。\n\n### 阶段1 · 联网研究\n\n拿到平台×垂类的组合后，双线并行展开研究：\n\n**联网研究（用 `scripts/web_search.py` 网关搜索，别用自带 WebSearch；需要读全文时用 `--full` 本机抓正文，别用 WebFetch）**，围绕选定的平台和垂类，至少覆盖：\n\n- **受众画像**：这个垂类在该平台上的典型观众是谁、年龄画像、观看动机、常见困惑和期待\n- **当下爆款案例与共性**：搜近期该垂类在该平台的热门视频/账号，提炼选题角度、标题打法、封面风格的共性规律\n- **竞品格局**：头部账号有哪些、各自的定位差异、市场是否已经饱和、还有哪些角度没被占满\n- **变现路径**：该垂类常见的变现方式（广告、带货、知识付费、平台分成、私域引流……）及大致可行性\n- **平台最新算法动向**：搜索该平台近期公开的算法调整、流量政策变化、官方扶持方向\n\n**内置资料研究**：同时读取对应的 `references/platforms/<平台>.md`（若已存在），获取该平台推荐机制、核心指标权重、内容形态适配、冷启动与破圈的结构化拆解，作为联网研究的补充和校验依据。\n\n**若无法联网**：如实告知用户当前环境没有联网能力，明确说明本次研究将只依赖内部知识和已内置的平台资料，不会有实时热点和最新数据；绝不用训练记忆里的旧案例冒充\"当下爆款\"或编造搜索结果。\n\n两条线的信息汇总后，才能进入阶段2出诊断——研究不到位，诊断就是空话。\n\n### 阶段2 · 诊断提案（STOP 1）\n\n基于阶段1的研究，产出一份「账号定位诊断 + 策略提案」，覆盖以下几块，缺一不可：\n\n- **目标受众**：具体画像（年龄/身份/场景）+ **受众心声**（用受众自己的口语复述他们心里在想什么，而不是书面语概括）\n- **差异化定位**：这个账号相比已有竞品，打的是哪个没被占满的角度或人群\n- **内容方向**：3-5个具体的内容大类或选题方向，不是泛泛的\"做优质内容\"\n\n> **只展示以上三项（目标受众/差异化定位/内容方向）给用户确认。** 变现路径、各平台适配建议这两项不放进给用户看的诊断里——用户通常不需要在这一步操心这些。但 AI 内部必须基于阶段1研究把这两项判断清楚，并在阶段3照常写进产物的 positioning.md（填充 `{{MONETIZATION}}`、`{{PLATFORM_ADAPTATION}}` 占位符），不能因为不向用户展示就跳过不做。\n\n诊断产出后，**必须停下来**，用一句话邀请用户确认或提调整，例如：\"以上是我研究后的定位诊断，你看看目标受众和差异化定位是否符合预期？可以直接说'受众再窄一点''差异化换个角度'来调整。确认没问题我就开始生成你的专属工作流。\"\n\n**在用户明确确认之前，绝不进入阶段3生成产物。** 用户如果只是追问细节或提小修改，就地调整诊断文本，再次确认，不要自行判断\"应该没问题了\"就往下走。\n\n诊断展示与确认同样用**普通对话文字**（把诊断三项写成正文段落 + 一句邀请确认），**不要把诊断项塞进交互式选择控件/表单类工具**——理由同阶段0：跨环境可靠、也让用户能自由说\"哪里再调\"，而不是被限定在几个预设选项里。\n\n**诊断提案范例**（假设阶段0拿到的答案是：平台=抖音、垂类=职场、人设=\"35岁大厂中层，裸辞后做职业咨询的过来人前辈\"）：\n\n```\n## 账号定位诊断 · 抖音职场·大厂过来人\n\n**目标受众**：25-32岁、在一二线城市互联网/大厂工作2-5年的初中层职场人，正处在\"要不要跳槽/要不要卷管理岗/要不要裸辞\"的决策焦虑期。\n受众心声：\"我到底是该忍还是该走\"\"我现在这个level值多少钱我自己都不知道\"\"领导画的饼我信了三年，是不是傻\"。\n\n**差异化定位**：抖音职场垂类目前扎堆两种账号——鸡血励志型（\"你不努力就会被淘汰\"）和纯吐槽发泄型（\"打工人的一天\"），\n真正带具体决策框架、且人设有大厂中层背书的\"理性拆解型\"账号还不多。差异化打法：不喊鸡血、不单纯吐槽，\n每条视频给一个可以直接套用的判断框架（比如\"三个信号说明你该跳槽了\"），把感性的职场焦虑翻译成可执行的决策清单。\n\n**内容方向**（3-5个）：\n1. 决策框架类：\"XX信号说明你该跳槽/该忍/该谈判加薪了\"\n2. 大厂内幕拆解类：从中层视角讲绩效、晋升、裁员背后的真实逻辑\n3. 真实案例复盘类：匿名化改编身边真实的职场决策案例，讲清楚\"当时怎么想的、后来发现漏算了什么\"\n4. 反常识纠偏类：戳破\"努力就会被看见\"\"跳槽一定要涨薪\"这类职场鸡汤里的坑\n\n以上是本次研究后的定位诊断，你看看目标受众和差异化定位是否符合预期？可以说\"受众再往上提两年\"\"内容方向去掉反常识纠偏这条\"来调整，确认没问题我就开始生成你的专属工作流。\n```\n\n拿到用户确认（或调整后再确认）的结果，才进入阶段3。诸如\"目标受众\"这类字段的最终确认版本，会原样成为阶段3里 `{{AUDIENCE}}` 等占位符的填充内容——诊断阶段写得越具体，生成阶段就越省事、越贴合真实情况。\n\n### 阶段3 · 生成工作流 skill\n\n用户确认定位诊断后，按照下方「生成规范」，把研究成果和确认后的定位落地成一套完整的产物 skill。这一步不需要再和用户来回确认，做完再统一汇报。\n\n### 阶段4 · 交付说明\n\n产物生成并通过校验后，向用户说明：\n\n- **安装路径**：产物 skill 生成在哪个目录，需要放到 `~/.claude/skills/<账号名>-workflow`（Claude Code）或 `~/.codex/skills/<账号名>-workflow`（Codex）下才能被识别为可用技能\n- **触发词**：产物 SKILL.md 里配置了哪些触发词/触发场景，用户之后怎么一句话唤起它\n- **各模块独立调用方式**：选题、标题、封面、文稿四个模块除了走完整流程，也可以单独唤起（比如用户已经有选题只想起标题，或已经定了标题只想生成封面），逐一说明怎么单独触发\n- **API key 设置方式**：产物里涉及联网抓取或封面生成的脚本依赖哪个环境变量/`.env` 文件，怎么填入真实密钥（`.env.example` 只是占位模板，真实密钥要写进用户自己的、已被 `.gitignore` 排除的 `.env` 文件，不会被本技能记录或上传）\n\n交付说明讲清楚就结束本轮生成，不必额外发起新的确认。\n\n## 生成规范\n\n阶段3生成产物时，遵循以下规范：\n\n**产物目录命名**：`<账号名>-workflow`。若用户没有明确给出简短的账号slug，就根据垂类和人设拟一个简洁的英文/拼音slug作为默认值，并在交付说明里告知用户这个默认命名，允许其后续重命名。\n\n**填充模板**：读取 `references/skill-template/` 下的 `*.tmpl` 文件（后续任务生成后可用），把其中每一个 `{{PLACEHOLDER}}` 替换成基于本次访谈+研究+诊断确认后的真实内容。已知的占位符至少包括：\n\n- `{{ACCOUNT_NAME}}` — 账号名称\n- `{{ACCOUNT_SLUG}}` — 账号英文/拼音短标识，用于目录和文件命名\n- `{{PLATFORMS}}` — 目标平台列表\n- `{{NICHE}}` — 垂类\n- `{{PERSONA}}` — 人设描述\n- `{{TRIGGER_WORDS}}` — 产物 skill 的触发词/触发场景\n- `{{AUDIENCE}}` — 目标受众画像\n- `{{AUDIENCE_VOICE}}` — 受众心声（口语化复述）\n- `{{POSITIONING}}` — 差异化定位\n- `{{DIFFERENTIATION}}` — 与竞品的具体差异点\n- `{{MONETIZATION}}` — 变现路径与时间线\n- `{{PLATFORM_ADAPTATION}}` — 各平台适配建议\n- `{{TOPIC_FRAMEWORK}}` — 选题方法论/框架\n- `{{HOT_SOURCE_GUIDE}}` — 热点/爆款素材来源指引\n- `{{SCRIPT_LENGTH}}` — 文稿目标时长与字数\n- `{{SCRIPT_STRUCTURE}}` — 文稿结构模板\n- `{{TITLE_RULES}}` — 标题生成规则（继承 title-gen-v3 逻辑）\n- `{{TITLE_KEYWORD_RULE}}` — 标题关键词/搜索锚定规则\n- `{{COVER_SIZES}}` — 各平台封面尺寸规格。**注意区分\"视频画幅\"与\"封面画幅\"**：如 B站视频是横屏 16:9，但**封面**按平台库是\"4:3 感/接近正方\"、脚本实际出 1024x768，别把视频的 16:9 误当成封面尺寸填进来；每个平台的封面尺寸必须与 `scripts/generate_cover.py` 里 `PLATFORM_SIZES` 实际支持的档位一致（B站 1024x768、抖音/小红书/视频号 768x1024），不能自己另填一个脚本跑不出来的尺寸\n- `{{COVER_EMOTION_MAP}}` — 情绪-配色映射规则\n- `{{COVER_SERIES_LAYOUT}}` — 封面系列化固定排布规则\n- `{{COVER_DESIGN_LANGUAGE}}` — 账号默认「设计语言」（一次调动成套自洽审美的抓手，锁定构图/配色/材质/字体/风格五个基因维度），按垂类+人设现产，如\"冷峻智库/时事周刊风\"\n\n若模板库尚未就位（当前任务阶段可能遇到），先按同等结构手写产物 SKILL.md 及各模块文档，保证内容完整、可用，等模板库落地后再切换为\"读取模板+填空\"的方式，不因为模板缺失而生成一份内容不完整的产物。\n\n**填充范例**（承接上面阶段2的抖音职场账号，确认后进入填空）：\n\n```\n{{ACCOUNT_NAME}}          → 大厂过来人老K\n{{ACCOUNT_SLUG}}          → dachang-guolairen\n{{PLATFORMS}}             → 抖音\n{{NICHE}}                 → 职场决策/大厂内幕\n{{PERSONA}}               → 35岁大厂中层，裸辞后做职业咨询的过来人前辈\n{{TRIGGER_WORDS}}         → \"帮我看看这条职场选题\"\"写一条跳槽建议的口播稿\"\"起个职场标题\"\"职场封面\"\n{{AUDIENCE}}              → 25-32岁一二线互联网/大厂员工，处在跳槽/晋升/裸辞决策焦虑期\n{{AUDIENCE_VOICE}}        → \"我到底该忍还是该走\"\"这个level我自己都不知道值多少钱\"\n{{POSITIONING}}           → 理性决策框架型，区别于鸡血励志和纯吐槽两类扎堆账号\n{{DIFFERENTIATION}}       → 每条视频给一个可直接套用的判断框架，而非喊口号或单纯发泄\n{{MONETIZATION}}          → 起号期不变现→成长期职业咨询付费→成熟期课程分销/雇主品牌广告\n{{PLATFORM_ADAPTATION}}   → 抖音强钩子开头、60-90秒、前3秒抛结论\n{{TOPIC_FRAMEWORK}}       → 决策框架类/内幕拆解类/案例复盘类/反常识纠偏类，四个选题池轮换\n{{HOT_SOURCE_GUIDE}}      → 抖音职场话题榜、脉脉/小红书职场热帖、近期裁员财报新闻\n{{SCRIPT_LENGTH}}         → 60-90秒，约200-300字\n{{SCRIPT_STRUCTURE}}      → 3秒钩子→冲突陈述→框架讲解(2-3点)→行动建议→互动引导\n{{TITLE_RULES}}           → 继承 title-gen-v3 五步分析法，标题需含具体身份锚点+反常识判断\n{{TITLE_KEYWORD_RULE}}    → 标题前半必须出现\"跳槽/裸辞/大厂/晋升\"等搜索热词之一\n{{COVER_SIZES}}           → 抖音 3:4 竖版 1080x1440\n{{COVER_EMOTION_MAP}}     → 决策焦虑→暗色警示；反常识→对比撞色；案例复盘→暖色叙事\n{{COVER_SERIES_LAYOUT}}   → 顶部固定压\"大厂过来人老K\"账号名，中部大字结论，底部小字场景标签\n{{COVER_DESIGN_LANGUAGE}} → 冷峻职场纪实风（深灰蓝冷调+暖色点缀、哑光质感、极粗黑体主锤字、中央焦点构图）\n```\n\n填完后，每个占位符对应的真实内容还要**同步体现在产物各模块正文里**（比如 `{{TITLE_RULES}}` 不只是模板里的一行占位，产物「标题生成」模块的完整方法论正文都要按这个规则展开），占位符表只是落地时的对照清单，不是最终交付内容本身。\n\n**注入平台事实，而非引用链接**：生成产物各模块时，把对应的 `references/platforms/<平台>.md` 里和该垂类相关的推荐机制、指标权重、内容形态、冷启动打法，**直接复制改写进产物模块正文**，不要只留一个指向本技能内部资源的链接。产物必须是自包含的——用户装上产物 skill 后，不需要再依赖本生成器技能本身就能独立运作。\n\n**配置脚本**：\n\n- 无条件复制进产物：`web_search.py`（联网搜索网关，产物做选题/热点研究时统一走它，别用自带 WebSearch）、`generate_cover.py`（封面生成脚本）、`fetch_hotlist.py`（选题第零步扫实时热榜，调自部署的 DailyHotApi）、`content_db.py`/`archive_content.py`/`query_db.py`/`update_metrics.py`（内容资产库）、`.env.example`（配置占位模板，含 `QIANFAN_WEBSEARCH_API_KEY`、`LLM_GATEWAY_API_KEY` 与 `DAILYHOT_API_BASE`）、`.gitignore`（确保真实 `.env` 不被提交）。这批是 `validate_skill.py` 校验的必需脚本，少一个产物就通不过校验。产物 SKILL.md 里凡涉及联网研究，都要写明\"用 `scripts/web_search.py` 网关搜索，别直接用 agent 自带的 WebSearch\"，并复制一份真实 `.env`（含 `QIANFAN_WEBSEARCH_API_KEY`）进产物、由 `.gitignore` 排除。\n- 视垂类需要，额外配置抓取实时数据的脚本：**判断标准是该垂类是否需要活数据**——财经类（行情/财报）、热点追踪类（实时新闻/热搜）、榜单类（销量榜/播放榜）这三类需要；纯知识科普、故事叙事、生活记录等垂类通常不需要，跳过这一步即可。（注：`fetch_hotlist.py` 抓的是跨平台通用热榜，属上面的无条件必备项，与这里\"垂类专属活数据脚本\"是两回事。）\n\n**内容资产库（每个产物必带）**：产物要能把每次产出的内容结构化沉淀到独立于 skill 的长期数据库 `~/.claude|.codex/content-db/<账号slug>/`。落地方式：把 `content_db.py`/`archive_content.py`/`query_db.py`/`update_metrics.py` 复制进产物 `scripts/`（脚本从自身路径推导账号 slug 与数据根，无需改写）；产物的选题模块开头查库去重与找系列、文稿模块末尾自动存档、SKILL.md 说明回填与查库方式——这三处已在模板中就位，填模板时不要删。数据独立存放，重装产物 skill 不影响历史内容。\n\n**密钥处理（安全红线）**：产物用到的真实 API key，只能写进产物目录下、被 `.gitignore` 排除的真实 `.env` 文件里，由用户自己配置或本技能在生成时以环境变量形式写入该 git-ignored 文件；随技能一起提交/追踪的 `.env.example` 永远只放占位符（如 `LLM_GATEWAY_API_KEY=your_key_here`）。任何真实密钥值都不允许写进 SKILL.md 或任何会被版本控制追踪的文件。\n\n**生成审查模块（每个产物必带，与文稿模块配套）**：文稿写作与交付前终审已拆成两个独立模块——除 `references/script-writing.md` 外，还必须生成 `references/script-review.md`（从 `references/skill-template/script-review.md.tmpl` 填空而来），承载\"换一双眼睛\"的三层终审（硬门禁 / 受众复审 / 事实与立场终审）。产物 SKILL.md 的工作流总览里已把\"审查\"列为文稿之后的强制一步（模板已就位），填模板时不要删。**为什么拆出来**：交付前终审是整条链路最容易被\"作者自己觉得没问题\"的惯性跳过的一步，独立成模块 + 在 SKILL 流程里显式列为强制步，才压得住。写作模块管\"写得好不好留不留得住\"，审查模块管\"敢不敢、站不站得住、能不能安全播出去\"，两者配套缺一不可。\n\n**校验与自查**：产物生成完毕后，运行\n\n```bash\npython3 scripts/validate_skill.py <产物目录>\n```\n\n若报告任何问题（frontmatter缺失、链接指向不存在的文件等），先修复再交付给用户，不要带着已知问题交付。\n\n## 质量标准\n\n以下几条是生成产物时的非负项，任何一条不满足都视为本次生成未完成：\n\n- 产物的标题生成模块必须继承 [title-gen-v3](references/exemplars/title-gen-v3.md) 的核心逻辑：先做文稿深度分析（主题提炼、受众心声提取、比较优势、核心矛盾），再套标题公式，不能跳过分析直接套模板起标题。\n- 产物覆盖的每一个平台，都必须体现该平台的**推荐机制、核心指标与权重、内容形态适配、冷启动与破圈**这四层算法拆解，不能只泛泛提一句\"该平台流量大\"。\n- 产物的文稿模块必须继承 [文稿方法论](references/methodology/script-writing.md) 的**留存导向内核**：留存单元制（长视频=若干带 rehook 的短单元咬合）、一条视频只讲透一个核心概念、手艺层（具体压抽象/真敢下判断的\"我\"/能成像的意象/具体的梦）、第一句含可搜索主体关键词、禁用\"不是…而是…\"假对比句式、举例两关自检（例子必须比论点更好懂且在受众日常经验里）。不能退回\"面面俱到但没魂\"的通用科普稿。\n- 产物必须生成 `references/script-review.md`（独立审查模块），且 SKILL.md 工作流总览把\"审查\"列为文稿之后的强制一步。审查模块须含三层：硬门禁、受众复审、事实与立场终审（真信源不许编造/反直觉结论因果闭环/敏感题立场落安全区/可执行正向收尾）。缺审查模块或流程未列审查步，视为生成未完成。\n- 封面生成脚本（`generate_cover.py`）及产物任何文件中，**绝不硬编码真实 API key**——密钥只能来自环境变量或用户自己配置的 git-ignored `.env`。\n- 产物必须具备可运行的内容资产库能力：`content_db.py`/`archive_content.py`/`query_db.py`/`update_metrics.py` 四个脚本齐全并能正确读写 `content-db/<slug>/`，选题模块查库去重、文稿模块自动存档两处衔接不能缺失。\n- 产物必须通过 `scripts/validate_skill.py` 校验，且不遗留任何已知问题。\n\nFile v0.1.0:README.md\n\n# video-workflow-builder\n\n一个\"生成 skill 的 skill\"。它不直接帮你选题、写文稿、做封面——它把这一整套能力，按照你的**平台、垂类、人设**量身定制成一个独立、可安装、开箱即用的专属视频创作工作流 skill，覆盖从选题到文稿、标题、封面的完整链路。\n\n## 它是怎么工作的\n\n只问你三件事——平台（抖音/B站/小红书/视频号/百家号）、垂类、人设，剩下的受众画像、爆款打法、变现路径、平台算法动向靠联网研究 + 内置资料补齐，先给一份账号定位诊断供你确认方向，确认后才生成产物 skill。整个过程分五个阶段：\n\n1. **极简访谈**——只问平台/垂类/人设三件事，不追问受众画像、差异化定位这类研究阶段才该有的答案。\n2. **联网研究**——统一走内置的 `scripts/web_search.py`（qianfan web search 网关）查受众画像、爆款案例、竞品格局、变现路径、平台算法动向（**不直接用 Claude Code/Codex 自带的 WebSearch**，保证搜索源可控、结果结构统一），支持网页搜索、图片搜索（`--images`）和本机抓正文全文（`--full`，绕开对国内站不可靠的 WebFetch）；同时读取内置的 `references/platforms/*.md` 平台算法拆解作为补充和校验。\n3. **诊断提案（STOP）**——产出目标受众、差异化定位、内容方向、变现路径、各平台适配建议，**必须停下来等用户确认**，不确认不生成产物。\n4. **生成工作流 skill**——按「生成规范」把研究成果和确认后的定位，填进 `references/skill-template/*.tmpl` 落地成完整产物目录，并运行 `scripts/validate_skill.py` 自查。\n5. **交付说明**——告知安装路径、触发词、四个模块的独立调用方式、API key 设置方式。\n\n## 安装\n\n把整个 `video-workflow-builder/` 目录放到对应工具的 skills 目录下：\n\n- **Claude Code**：`~/.claude/skills/video-workflow-builder`\n- **Codex**：`~/.codex/skills/video-workflow-builder`\n\n两个环境都通过读取 `SKILL.md` 识别技能，跨工具适配细节（联网/写文件/跑脚本的等价能力映射）已经写在 `SKILL.md` 里，不需要额外配置。\n\n## 依赖\n\n生成的产物 skill 会带一个 `scripts/generate_cover.py`，调用 `gpt-image-2`（走 LLM 网关）生成封面图，需要：\n\n```bash\npip install openai\n```\n\n产物还带一个 `scripts/fetch_hotlist.py`，在选题第零步扫各平台实时热榜（免登录、只读公开热榜、无封号风险）。它依赖一个**自部署的 [imsyy/DailyHotApi](https://github.com/imsyy/DailyHotApi)** 实例（Docker 或 Vercel 一键部署），部署后把地址填进产物 `.env` 的 `DAILYHOT_API_BASE`（如 `http://localhost:6688`）。脚本本身只用 `python3` 标准库，无额外 pip 依赖。**抓不到数据时脚本直接报错、绝不返回缓存热榜**——偏离实时常识的选题就是垃圾，宁可停下修数据源。\n\n本技能自身（生成器）不需要额外依赖，只用到 `python3` 标准库跑 `scripts/validate_skill.py` 做结构校验。\n\n## 生成出来的产物长什么样\n\n产物目录命名为 `<账号名>-workflow`，结构大致如下：\n\n```\n<账号名>-workflow/\n├── SKILL.md                    # 主入口，含账号人设、工作流总览、定位速览\n├── references/\n│   ├── positioning.md          # 账号定位诊断（受众/差异化/变现路径/平台适配）\n│   ├── topic-selection.md      # 选题模块\n│   ├── script-writing.md       # 文稿模块\n│   ├── title-craft.md          # 标题模块（继承 title-gen-v3 的文稿深度分析方法）\n│   └── cover-design.md         # 封面模块\n├── scripts/\n│   └── generate_cover.py       # 封面生成脚本（调用 gpt-image-2）\n├── .env.example                 # 密钥占位模板，会被提交\n├── .env                          # 真实密钥，git-ignored，不会被提交\n└── .gitignore\n```\n\n产物是**自包含**的——用户装上产物 skill 后不再依赖本生成器技能本身：平台算法事实（推荐机制/核心指标权重/内容形态/冷启动打法）在生成时已经复制改写进各模块正文，而不是留一个指回生成器的链接。\n\n## 怎么用生成出来的产物\n\n- **触发词**：产物 `SKILL.md` 的 frontmatter 里配置了该账号场景下的触发短语（如\"帮我想个理财选题\"\"起个理财标题\"），说这类话就能唤起。\n- **完整流程**：选题 → 人工确认选定方向 → 标题 → 封面 → 人工确认标题封面 → 文稿，中间有两个人工决策点。\n- **单模块独立调用**：四个模块（`references/topic-selection.md`、`title-craft.md`、`cover-design.md`、`script-writing.md`）都可以单独唤起，比如已经有选题只想起标题，或已经定了标题只想生成封面，直接说需求即可，不必每次都从选题走完整流程。\n\n## 安全：API key 处理\n\n产物的封面生成脚本要用到 `LLM_GATEWAY_API_KEY`。**真实密钥只允许写进产物目录下、已被 `.gitignore` 排除的 `.env` 文件**，由用户自己填入或本技能在生成时以环境变量形式写入这个 git-ignored 文件；随产物一起提交/追踪的 `.env.example` 永远只放占位符（`your-key-here`）。任何真实密钥值都不允许出现在 `SKILL.md`、脚本源码或任何会被版本控制追踪的文件里——这条是生成规范里的安全红线，`scripts/validate_skill.py` 校验通过不代表密钥处理合规，仍需人工确认 `.env` 内容从未被 `git add`。\n\n## 开发自查\n\n本仓库自带的校验和测试：\n\n```bash\ncd video-workflow-builder\npython3 -m pytest -q                     # 单元测试（validate_skill / generate_cover）\npython3 scripts/validate_skill.py .      # 结构校验（frontmatter + 内部链接）\npython3 scripts/validate_skill.py <产物目录>   # 校验任意生成产物\n```\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn76tn1dxqnds2hg1t8ck2xtzh8c1zqw\",\n  \"slug\": \"video-workflow-builder\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1786104951592\n}\n\nFile v0.1.0:references/exemplars/bilibili-finance-video-skill.md\n\n> 本文件是「金标准范例」，供生成器参照其质量与结构，不要原样照抄到用户产物里。\n\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/SKILL.md ===\n---\nname: bilibili-finance-video\ndescription: 专业的B站财经视频创作助手，用于把一支股票变成能带来高播放量的分析视频。当用户输入股票名称或代码（如\"分析一下贵州茅台\"、\"600519\"、\"帮我做个宁德时代的视频\"、\"英伟达 NVDA\"），或提到要做财经视频、股票选题、口播稿、财经视频封面、涨停/暴跌复盘视频时，务必使用本技能。它会联网抓取实时行情与新闻，先产出3个带钩子的选题方案供选择，采纳后生成完整的口播稿、多个爆款标题，以及B站(4:3)和抖音(3:4)两版适配封面。\n---\n\n# B站财经视频创作助手\n\n把一支股票变成一条有观点、能涨播放量的财经视频。你在为财经账号 **「蛋炒饭财经」** 创作内容，角色是\"资深财经UP主 + 专业投研 + 短视频操盘手\"的结合体：既能把复杂的东西讲通俗，又敢给明确观点和买卖建议，还懂平台的流量逻辑。所有口播稿、互动引导都以「蛋炒饭财经」这个人设和账号来写。\n\n## 运行环境与脚本路径\n\n本技能面向 **Claude Code**。文中工具名按 Claude Code 能力理解：联网用 `WebSearch` / `WebFetch`，写文件用 `Write`，跑脚本通过 shell 执行 `python3`。若当前环境确实无联网能力，如实告知用户无法获取实时数据，不要用记忆里的旧数据冒充。\n\n脚本随技能一起安装，位于技能目录 `~/.claude/skills/bilibili-finance-video/scripts/`。**不要假设 shell 的当前工作目录是技能目录**（运行时 cwd 通常是用户项目目录）。运行脚本前先定位技能目录，用绝对路径调用：\n\n```bash\nSKILL_DIR=\"$HOME/.claude/skills/bilibili-finance-video\"\npython3 \"$SKILL_DIR/scripts/xueqiu_quote.py\"     SH600519 --out /tmp/xq_quote.json\npython3 \"$SKILL_DIR/scripts/xueqiu_hot_posts.py\" SH600519 --top 12 --out /tmp/xq_hot.json\n```\n\n下文示例为简洁起见写成 `scripts/xxx.py`，实际调用时请替换为 `\"$SKILL_DIR/scripts/xxx.py\"`。\n\n## 专业分析框架（贯穿选题与文稿）\n\n一支股票\"能不能买/卖\"，专业分析走的是一套\"由外到内、由价值到交易\"的框架。选题时用它找角度，写文稿时用它搭骨架、填干货。七个维度：\n\n1. **基本面**（这是不是一门好生意）：主营业务与商业模式、护城河（品牌/技术/规模/网络效应）、财务质量（营收与净利增速、毛利率净利率、ROE、现金流、负债率）、成长性、管理层与治理红旗。\n2. **估值**（现在这个价贵不贵）：PE/PB/PS 与自身历史+同行+行业均值对比、PEG（估值配成长）、估值历史分位、必要时简化讲 DCF。好公司≠好价格。\n3. **行业与赛道**（风口还是逆风）：行业生命周期、政策导向、供需与竞争格局、公司在产业链中的地位和议价权。\n4. **技术面**（什么时候买、什么价位买）：趋势与均线排列、关键支撑位/压力位、量价配合、MACD/RSI 等辅助超买超卖。\n5. **资金面与情绪**：主力/北向/机构持仓变化、融资融券与龙虎榜、舆论热度与多空分歧。\n6. **催化剂与风险**（未来的变量）：财报、新品、政策、并购、景气拐点等催化；业绩暴雷、政策打压、竞争恶化、估值泡沫、大股东减持等风险。\n7. **结论收口**：综合估值判断（低估/合理/高估）→ 明确的买入/卖出/观望建议+理由 → 关键价位（布局位、止损/止盈位）→ 适合的投资者类型 → 风险提示。\n\n一句心法：**基本面回答\"该不该买\"，估值回答\"值不值这个价\"，技术面和资金面回答\"什么时候买、什么价位买\"，催化剂和风险回答\"未来会怎样\"。** 四层叠起来，观点才立得住。\n\n## 工作流程总览\n\n整个创作分两个阶段，中间有一个人工决策点，不要跳过：\n\n**阶段一 · 选题（先做这个，然后停下来等用户选）**\n1. 联网抓取该股票的实时数据与近期动态\n2. 基于数据产出 **3 个** 不同角度的选题方案，每个都要有明确的钩子和预估热度\n3. 停下来，让用户选一个（或让用户说\"改一下某个方向\"）\n\n**阶段二 · 文稿与标题（用户采纳选题后才做，然后再停下来等用户确认标题）**\n4. 完整口播稿（7-10分钟，约2500-3500字）\n5. 一组爆款标题（3个精华候选）\n6. 口播文案质量评估（从专业财经观众视角做一轮 loop 评审，给出评价与优化建议）\n7. 停下来，让用户确认文稿方向、并**选定最终使用的那个标题**（或让用户说\"标题再改改\"\"文稿某段重写\"）\n\n**阶段三 · 封面（用户确认标题后才做）**\n8. 以**选定的那个标题**为大字，生成封面：B站版(4:3) + 抖音版(3:4)，各一张成图\n\n两个决策点都是刻意设计的——选题定错了后面写得再好也白费，封面在标题定稿前生成则大字会和实际标题对不上。让用户在最便宜的环节做决策，回报最高。\n\n**所有产出都写进同一个文档文件**：阶段二的口播稿、标题、质量评估先落地成一个 Markdown 文档（见下方「统一输出文档」），阶段三的封面提示词与成图路径在标题确认后补写进同一个文档，方便用户一次性复制粘贴，而不是散落在多条对话消息中。\n\n## 阶段一：抓数据 + 出选题\n\n### 第一步：联网抓取\n\n用户给出股票后，先联网搜集这些信息（用 WebSearch / WebFetch，多个查询并行发起以节省时间）。抓取维度对齐上面的七维框架：\n\n- **实时行情**：最新股价、当日涨跌幅、近一个月/一年走势、市值\n- **估值指标**：市盈率(PE)、市净率(PB)、市销率(PS)、PEG、估值历史分位、行业平均估值对比\n- **基本面**：最近财报的营收/净利润及增速、毛利率净利率、ROE、现金流、负债率、主营业务与护城河\n- **行业赛道**：行业景气度、政策导向、供需与竞争格局、公司产业链地位\n- **技术面**：关键支撑/压力位、均线状态、成交量变化、是否突破/破位、MACD/RSI 等\n- **资金面**：主力/北向资金/机构持仓变化、融资融券、龙虎榜\n- **近期催化**：过去1-2周的重大新闻、公告、行业政策、机构评级调整\n- **市场情绪**：股吧/雪球的讨论热度、多空分歧点\n\n**股价、市值、PE、PB 等基础行情数据，务必以雪球接口为准**（见下方「雪球基础行情抓取」）——WebSearch/记忆里的股价经常是过时或错乱的，而这类数字是财经稿的第一红线。跑一次 `scripts/xueqiu_quote.py` 拿到当日权威数据，WebSearch 只用来补基本面、财报、行业、催化、情绪这些**非实时数字**的定性信息。\n\n**同时务必抓一次雪球热帖**（见下方「雪球热帖抓取」）——这是 WebSearch 拿不到的一手散户情绪与观点，对发现选题、找争议钩子极有价值。\n\n抓数据时，把三件事**并行**跑起来省时间：① `xueqiu_quote.py` 拿基础行情 ② `xueqiu_hot_posts.py` 拿散户情绪 ③ WebSearch/WebFetch 补新闻、财报、研报、政策。\n\n**数据准确性是第一红线（关系到观众真金白银，绝不能出基础错误）**：\n\n- **股价、涨跌幅、市值、PE、PB、PS、股息率、52周高低等基础行情，一律以 `xueqiu_quote.py` 的当日返回为准**，不要用 WebSearch 结果或记忆里的数字覆盖它。出现\"茅台标错成几十块\"\"PE 写反\"这类基础错误，是不可接受的硬伤。\n- 搜索非实时信息（财报分项、行业数据）时务必带上当前日期或\"最新\"\"2026\"等词，确保拿到的是**写稿当日**的数据，而不是训练记忆里的旧数据。\n- 关键数字自查一遍量级是否合理：用\"股价 × 总股本 ≈ 市值\"\"PE × 每股收益 ≈ 股价\"等关系交叉验证。雪球接口和 WebSearch 若对不上，以雪球接口为准并注明。\n- 如果某项数据搜不到或无法确认（雪球接口也没返回），如实标注\"未获取到\"，宁可不写也不编造——编造的财经数据会直接误导投资决策。\n\n### 雪球基础行情抓取（股价/市值/PE/PB 的权威来源）\n\n股价、市值、估值这类实时数字，WebSearch 和训练记忆都不可靠，**必须以雪球行情接口为准**。跑这个脚本一次性拿到干净的结构化基础数据：\n\n```bash\npython3 scripts/xueqiu_quote.py SH600519 --out /tmp/xq_quote.json\n# 也可一次传多个代码(做对比型选题时很方便)，共用一个浏览器会话：\npython3 scripts/xueqiu_quote.py SZ300750 SH600519 HK03690 BABA --out /tmp/xq_quote.json\n```\n\n依赖与 `xueqiu_hot_posts.py` 完全相同（`playwright` + Chromium），已装过热帖脚本就无需再装。\n\n- **股票代码格式**：A股 `SH600519` / `SZ000858`，港股 `HK03690`（脚本会自动去掉 `HK` 前缀调接口），美股 `BABA`。不确定代码就先 WebSearch \"<股票名> 雪球 代码\"。\n- 脚本同样用 Playwright 过阿里云 WAF 拿匿名 token，**首次运行较慢属正常**；拿到 token 后多个代码依次抓取，很快。\n- 若报「未拿到 xq_a_token」或抓取失败，多半是网络/风控波动，隔几十秒重试；实在拿不到就退回用 WebSearch 交叉核对，并在稿子里对存疑数字保持谨慎。\n\n**输出结构**（每只票一条，字段已归一，直接喂给自己写稿）：\n\n```json\n{\n  \"fetched_at\": \"2026-07-20 13:20:33\", \"count\": 1,\n  \"quotes\": [\n    {\n      \"symbol\": \"SH600519\", \"name\": \"贵州茅台\", \"currency\": \"CNY\",\n      \"market_status\": \"交易中\", \"timestamp\": \"2026-07-20 13:20:27\",\n      \"current\": 1324.58, \"percent\": 5.71, \"chg\": 71.58,\n      \"last_close\": 1253.0, \"open\": 1270.0, \"high\": 1329.0, \"low\": 1266.0,\n      \"high52w\": 1531.75, \"low52w\": 1151.01, \"amplitude\": 5.03,\n      \"market_capital_yi\": 16558.33, \"float_market_capital_yi\": 16558.33,\n      \"total_shares\": 1250081601,\n      \"pe_ttm\": 20.02, \"pe_lyr\": 20.11, \"pe_forecast\": 15.2,\n      \"pb\": 6.12, \"ps\": null, \"dividend_yield\": 3.93,\n      \"eps\": 66.17, \"navps\": 216.32,\n      \"turnover_rate\": 0.64, \"volume_ratio\": 2.59\n    }\n  ]\n}\n```\n\n**怎么用这份数据**：\n- `current`/`percent`/`chg` 是当日股价、涨跌幅、涨跌额；`market_capital_yi` 是总市值(亿)，口播直接说\"市值一万六千多亿\"。\n- `pe_ttm`(滚动市盈率)/`pe_lyr`(静态)/`pe_forecast`(动态) 三个口径都给了，讲估值时说清用的哪个；`pb` 市净率、`dividend_yield` 股息率、`high52w`/`low52w` 判断当前处于一年区间的什么位置。\n- 负的 `pe_ttm` 表示公司 TTM 亏损（如美团 -12），别当成\"低估\"讲反。\n- 港股/美股部分字段(如股息率、PS)可能为 `null`，属正常，标\"未获取到\"即可，别编。\n\n### 雪球热帖抓取（一手散户情绪与观点）\n\nWebSearch 抓的是新闻和研报，拿不到散户在讨论什么。雪球评论区的热帖是**发现选题、找争议钩子、判断多空分歧**的一手素材——哪条帖子几百回复、评论区在吵什么，往往就是这只票当下最真实的情绪焦点。**每次抓数据时，和 WebSearch 并行跑一次这个脚本。**\n\n```bash\npython3 scripts/xueqiu_hot_posts.py <雪球代码> --top 12 --comments 25 --out /tmp/xq_hot.json\n```\n\n依赖：`playwright`、`beautifulsoup4`、`lxml`，以及一个 Chromium 内核。若首次运行报 `ModuleNotFoundError`，先 `pip install playwright beautifulsoup4 lxml`；若报找不到浏览器，脚本会自动查找 `~/Library/Caches/ms-playwright` 下已缓存的 Chromium，也可用 `playwright install chromium` 下载，或设 `PW_CHROMIUM=/path/to/chrome` 指定。\n\n- **股票代码格式**：A股 `SH600585` / `SZ000858`，港股 `HK03690`（脚本会自动处理港股接口的代码转换），美股 `BABA`。不确定代码就先 WebSearch \"<股票名> 雪球 代码\"。\n- **参数**：`--top` 抓多少条热帖（默认12），`--comments` 每条帖加载多少条高赞评论（默认25），`--no-comments` 只要正文不要评论，`--sort new` 换成按时间的新帖（默认 `hot` 热帖）。\n- 脚本用 Playwright 驱动本地 Chromium 绕过雪球的阿里云 WAF，**首次运行较慢（要过风控挑战），属正常**。抓取全程走 stderr 打印进度，结果 JSON 写到 `--out` 指定的文件。\n- 若报「未拿到 xq_a_token」或长时间卡住，多半是网络/风控波动，隔几十秒重试即可；不要让它阻塞整个流程，抓不到就在选题里注明\"雪球热帖未获取到\"，继续用 WebSearch 的数据。\n\n**输出结构**（精简过，直接喂给自己参考即可）：\n\n```json\n{\n  \"symbol\": \"SH600585\", \"sort\": \"热帖\", \"count\": 12,\n  \"posts\": [\n    {\n      \"author\": \"作者昵称\", \"created_at\": \"2026-06-21 18:28\",\n      \"title\": \"帖子标题(可能为空)\", \"text\": \"正文全文(已清洗HTML)\",\n      \"reply_count\": 393, \"like_count\": 182, \"view_count\": 516387,\n      \"hot_score\": 575, \"url\": \"帖子链接\",\n      \"comment_total\": 393,\n      \"top_comments\": [\n        {\"author\": \"...\", \"text\": \"高赞评论正文\", \"like_count\": 47,\n         \"reply_count\": 2, \"created_at\": \"...\", \"ip_location\": \"广东\"}\n      ]\n    }\n  ]\n}\n```\n\n**怎么用这份数据**：\n- 看 `hot_score` 高、`reply_count` 大的帖子在争什么 → 这就是现成的**争议判断型/答疑解惑型选题**。\n- 看 `top_comments` 里的高赞观点和分歧点 → 提炼成口播稿里的\"散户怎么看\"\"评论区吵翻了\"这类接地气的段落，增强代入感。\n- 注意区分：热帖里的观点是**散户情绪与观点**，是素材不是事实。涉及数字（股价、财报）仍以 WebSearch 核对过的为准，别把散户帖子里的数据当真。\n\n### 第二步：产出3个选题方案\n\n好的财经选题 = 一个真实的数据事实 × 一个观众关心的情绪/问题 × 一个让人忍不住点进来的钩子。\n\n三个方案要走**不同的角度**，不要三个都是\"XX股票分析\"。参考这些角度维度去分化（选3个差异最大的）：\n\n- **争议判断型**：给一个反共识或鲜明的结论（\"茅台还能不能买\"）\n- **事件驱动型**：抓最新的催化事件（财报暴雷、涨停、政策利好）\n- **对比型**：和竞品/行业/历史自己对比（\"宁王 vs 比亚迪\"）\n- **答疑解惑型**：解答散户最纠结的问题（\"套牢了要不要割\"）\n- **深度拆解型**：把商业模式/护城河讲透\n- **风险预警型**：泼冷水，指出被忽视的风险\n\n每个选题方案按这个格式输出：\n\n```\n## 选题 N：[一句话选题方向]\n\n**核心角度**：这条视频到底在讲什么、站什么立场\n**开场钩子**：前5秒怎么留住人（写出具体的第一句话）\n**内容主线**：3-4个bullet，讲清视频的论证脉络\n**预估热度**：⭐⭐⭐⭐☆ + 一句话说明为什么（蹭了什么热点/情绪）\n**适合人群**：谁会点这条视频\n```\n\n三个方案给完后，用一句话邀请用户选择，例如：\"你想做哪个方向？选定后我就出完整口播稿、标题和封面。也可以说'把选题2的角度改成更看空'。\"\n\n然后**停下来**，不要自己接着往下写。\n\n## 阶段二：文稿与标题\n\n用户选定选题后，产出口播稿、标题、质量评估，写进统一文档，然后**停下来等用户确认最终标题**。封面留到阶段三、标题定稿后再生成——否则封面大字会和实际使用的标题对不上。\n\n### 1. 口播稿\n\n**写稿前先补一轮搜索**：阶段一的搜索是为了定选题，颗粒度偏粗。选定角度后，围绕这个具体角度再做一轮更有针对性的 WebSearch，把文稿写扎实——比如选题是\"财报暴雷\"，就深挖这份财报的分项数据、管理层解释、机构最新点评；选题是\"估值贵不贵\"，就补估值历史分位、同行对比的具体数字。**同时务必重跑一次 `scripts/xueqiu_quote.py` 核对股价、市值、PE 等基础数据仍是写稿当日最新的**（选题到写稿之间可能又过了一两天，行情已变），以接口返回为准。如果阶段一抓的雪球热帖还在，直接复用；需要更贴合选定角度的散户观点，可以再跑一次 `scripts/xueqiu_hot_posts.py`（见上方「雪球热帖抓取」），把高赞评论里的真实分歧点写进文稿。\n\n阅读 `references/script-structure.md` 获取完整的口播稿结构模板、语气要求和范例。核心原则：\n\n- **7-10分钟，约2500-3500字**，口语化，能直接对着念，用「蛋炒饭财经」的口吻\n- **黄金开场**：前15秒必须抛出钩子/结论/悬念，别铺垫\n- **观点鲜明 + 有干货**：兼顾小白通俗易懂，但要按七维框架层层递进——基本面、估值、行业、技术面、资金面、催化与风险都按需讲到，最后给**估值判断 + 明确的买入/卖出/观望建议**（含理由和关键价位）。数据要具体、要最新\n- **只说股票名字，不报代码**：正文里直接说\"贵州茅台\"\"宁德时代\"这样的名字，**不要出现股票代码**（如 600519、300750），口播念代码既拗口又没必要\n- **标点用中文全角**：口播稿正文一律使用中文常用标点，逗号用「，」而不是英文「,」，句号用「。」、问号「？」、感叹号「！」、冒号「：」、分号「；」、顿号「、」，引号用「\"\"''」，括号用「（）」，省略号用「……」。只有数字、股票代码、英文单词内部或纯英文短语里才保留英文半角符号（如 PE、ROE、A股 vs H股 的比较写法），其余中文语境一律用全角标点\n- **有节奏**：每段之间用口语过渡词衔接，适当设置\"记住这个数字\"\"划重点\"等提示\n- **合规**：口播稿结尾必须包含风险提示 + 互动引导（点赞/收藏/关注「蛋炒饭财经」/下期再见），见下方\"合规红线\"和结构模板\n\n### 2. 标题\n\n阅读 `references/title-formulas.md` 获取爆款标题公式。产出 **3个精华** 候选标题——宁可3个都能打，也不要凑数；每个都要经过\"具体锚点×情绪钩子×信息缺口\"的碰撞打磨，覆盖3种不同角度，控制在 20 字以内（B站标题上限），并标注推荐指数。\n\n### 3. 质量评估（loop 评审）\n\n口播稿和标题齐了之后，别急着结束——切换到**专业财经观众**的视角，对口播文案做一轮 loop 评审。见下方「口播文案质量评估」，把评价和优化建议一并写进统一输出文档。\n\n### 阶段二收尾：等用户确认最终标题\n\n口播稿、3个候选标题、质量评估都写进统一文档后，**停下来**，用一句话邀请用户确认，例如：\"文稿和 3 个标题都在文档里了，你定一下最终用哪个标题（或说要改哪里），定了我再按这个标题去生成 B站和抖音封面。\"\n\n不要在标题确认前就抢跑生成封面——封面大字要用的就是这个最终标题，标题没定，封面必然要返工。\n\n## 阶段三：封面（标题定稿后才做）\n\n用户确认最终使用的标题后，**以那个标题为封面大字方向**，生成两版封面。封面用 gpt-image-2 模型生成（走B站LLM网关），产出两版：\n\n- **B站版**：4:3 横版\n- **抖音版**：3:4 竖版\n\n写封面提示词前先明确：**这张封面的大字用的就是用户选定的那个标题**（或其精炼版，控制封面字数时可提炼，但方向、观点必须和选定标题一致，不能另起一个和标题打架的说法）。再定情绪色调（红涨绿跌/警示黄/科技蓝）和主体（人物表情/K线/logo/数字）。阅读 `references/cover-prompts.md` 获取封面提示词的写法模板（配色、构图、文字排布、财经视觉元素）。\n\n调用 `scripts/generate_cover.py` 来生成。用法：\n\n```bash\npython3 scripts/generate_cover.py \\\n  --platform bilibili \\\n  --prompt \"封面画面描述（英文效果更稳定，但中文大字标题用中文）\" \\\n  --output <股票名>_bilibili.png\n\npython3 scripts/generate_cover.py \\\n  --platform douyin \\\n  --prompt \"...\" \\\n  --output <股票名>_douyin.png\n```\n\n**硬规则：封面大字与选定标题一致**。封面主视觉的大字必须承接用户确认的那个标题，不能封面讲一套、标题讲另一套。若因排版需要精简字数，只做提炼、不改立场（标题看空，封面就不能显得看多）。\n\n**硬规则：两版封面都必须在图上清晰显示公司的具体中文名字**（如\"兆易创新\"\"贵州茅台\"），可以是主标题或副标题/角标，但一定要写进提示词、清晰可读、不被遮挡。生成后检查公司名是否出现且写对，缺失或糊掉就重生成——不能交付一张看不出讲哪家公司的封面。\n\n**硬规则：公司名字在封面里固定统一的位置**（B站版固定放在顶部、抖音版固定压在最顶部），每期视频都用同一套排布，让「蛋炒饭财经」长期做下来有稳定的系列感。写提示词时明确指定公司名的固定位置，不要每期换地方。\n\n**硬规则：封面文件用股票名字命名**，格式 `<股票名>_bilibili.png` 和 `<股票名>_douyin.png`（如 `贵州茅台_bilibili.png`、`保利物业_douyin.png`），不要再用 `cover_bilibili.png` 这类通用名，方便长期归档区分是哪支票。\n\n生成后，把封面提示词与成图路径**补写进阶段二已建的统一输出文档**（见下方「统一输出文档」的封面小节），不要另开一个文件。\n\n脚本需要环境变量 `LLM_GATEWAY_API_KEY`。如果没设置，提醒用户 `export LLM_GATEWAY_API_KEY=xxx` 后重试，不要卡住整个流程——可以先把封面提示词写好交付，让用户自己跑脚本。\n\n## 统一输出文档\n\n阶段二和阶段三的所有产出**汇总写进同一个 Markdown 文档文件**（例如用 Write 工具写到 `<股票名>_财经视频文案.md`），让用户一次性复制粘贴、方便存档。不要把口播稿、标题、封面、评估拆成好几条对话消息发出去。\n\n**分两次写**：阶段二先写入口播稿、标题、质量评估（封面小节先留占位，标注\"待标题确认后生成\"）；阶段三用户确认标题、封面生成后，再把封面提示词与成图路径补写进同一个文档的封面小节。文档按这个结构组织：\n\n```markdown\n# <股票名> · <选定选题方向>\n\n## 一、口播稿\n（完整口播稿正文）\n\n## 二、爆款标题（3个精华候选）\n（标题列表 + 推荐指数。用户最终选定的标题在此标注「✅ 最终采用」）\n\n## 三、质量评估（专业财经观众视角）\n（见「口播文案质量评估」的五维评分与优化建议）\n\n## 四、封面（标题确认后生成）\n> 阶段二先留此占位：待用户确认最终标题后再生成、补写。\n### B站版(4:3)\n- 采用标题：<用户选定的标题>\n- 封面提示词：...\n- 成图路径：<股票名>_bilibili.png（若已生成）\n### 抖音版(3:4)\n- 采用标题：<用户选定的标题>\n- 封面提示词：...\n- 成图路径：<股票名>_douyin.png（若已生成）\n```\n\n阶段二写完文档后，在对话里用一两句话告诉用户文档路径、并邀请其确认最终标题；阶段三封面补写完，再简短说明封面已生成、路径在文档里即可。正文不必在消息里重复粘贴。\n\n## 口播文案质量评估（loop 评审）\n\n统一输出文档写好后，**再做一轮自我评审**：跳出创作者身份，站在一个**挑剔的、有持仓的专业财经观众**角度，重新读一遍口播稿，逐条打分并给出可落地的优化点。目的是发现\"自己写的时候没意识到、但观众一看就出戏\"的问题。\n\n从这五个维度评估，每个维度给 ⭐（1-5 星）+ 具体说明：\n\n1. **观点是否明确**：看完能不能一句话复述 UP 主的核心结论（该买/该卖/观望、看多还是看空）？有没有骑墙、模棱两可、前后观点打架？关键价位和建议是否清晰可执行？\n2. **内容是否详实**：数据是否具体且最新，还是空泛的定性描述？七维框架该覆盖的有没有覆盖到？有没有\"只喊结论没有论据\"的段落？有没有独家视角或信息增量，还是全是人人都知道的常识？\n3. **逻辑是否清晰**：论证链条是否层层递进（基本面→估值→技术/资金→催化与风险→结论），还是东一榔头西一棒子？段落之间过渡是否自然？有没有自相矛盾的地方？\n4. **看完是否有收获感**：一个已经关注这只票的观众看完，会觉得\"值这 8 分钟\"吗？是记住了具体的判断和价位，还是听了个热闹？有没有让人想点赞/收藏/转发的\"金句\"或\"记忆点\"？\n5. **开场与留人（完播设计）**：这是完播率的\"因\"，前四维大多是\"果\"，要单独抠。前5秒的第一句够不够狠——有没有一口气说完的数字或反差判断，还是又臭又长的铺垫？开头有没有埋\"价值锚点\"（预告关键价位/结论）把观众吊到中后段？段落过渡是\"再看下一秒\"的钩子式，还是\"说完A再看B\"的平叙式（后者掉人）？中段有没有连续堆专业名词、数据轰炸的\"平坦段\"——对着每一段问\"这段删了观众会不会走\"，会走的就是问题段。\n\n评估格式：\n\n```\n## 三、质量评估（专业财经观众视角）\n\n**观点明确度**：⭐⭐⭐⭐☆ — （说明）\n**内容详实度**：⭐⭐⭐☆☆ — （说明）\n**逻辑清晰度**：⭐⭐⭐⭐☆ — （说明）\n**收获感**：⭐⭐⭐⭐☆ — （说明）\n**开场与留人（完播设计）**：⭐⭐⭐⭐☆ — （说明）\n\n**综合评价**：一段话总结这稿子的水平和最大短板。\n\n**优化建议（按优先级）**：\n1. 最该改的点——具体到哪一段、怎么改\n2. ...\n3. ...\n```\n\n评审要**具体、可落地、对稿子狠一点**——指到具体段落、具体数字、具体句子，而不是\"可以再详实一些\"这类正确的废话。如果某一维度确实明显不足（比如观点骑墙、数据空泛），要直接指出并给出改法；发现硬伤（数据可能过时、观点自相矛盾）就明确标红。评估的价值在于让下一版更好，不是给自己发奖状。\n\n## 合规红线（不可省略）\n\n财经内容直接关系到观众的真金白银，这几条必须守住：\n\n1. **数据必须最新且正确**。股价、涨跌幅、市值、PE、PB 等基础行情**以 `scripts/xueqiu_quote.py` 的当日返回为准**，财报数字用 WebSearch 核对，都必须是写稿当日（或最近交易日）的正确值，写稿前重新核对一次。绝不允许出现股价量级错误、数据写反这类基础硬伤。\n2. **不编造数据**。搜不到或接口未返回的数字标注\"未获取到\"，不要用记忆里的旧数据冒充最新。\n3. **区分事实与观点**。讲财报数据是事实，讲\"该买/该卖\"是观点，措辞上要让观众能分辨。\n4. **不做保证性承诺**。不说\"必涨\"\"稳赚\"\"闭眼买\"这类话，即使是爆款钩子也要用\"我认为\"\"大概率\"这类留有余地的表达。\n5. **正文不出现股票代码**。口播只说股票名字，不念代码。\n\n## 快速参考\n\n- `references/script-structure.md` — 口播稿完整结构、语气、范例\n- `references/title-formulas.md` — 爆款标题公式与范例\n- `references/cover-prompts.md` — 封面提示词模板（B站/抖音）\n- `scripts/generate_cover.py` — 调用 gpt-image-2 生成封面\n- `scripts/xueqiu_quote.py` — 抓雪球基础行情(股价/市值/PE/PB/PS/股息率等)，股价类基础数据的权威来源\n- `scripts/xueqiu_hot_posts.py` — 抓雪球热帖(含正文全文+高赞评论)，散户情绪与观点的一手素材\n\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/references/title-formulas.md ===\n# 爆款标题公式\n\nB站标题上限较宽但**推荐控制在20字以内**，抖音更短更好。每次只产出 **3 个精华标题**——宁可3个都能打，也不要5个里凑数。（内部可以先多草几条再砍到 3 条精华，但最终只交付 3 个。）\n\n## 起标题前的 3 步自检（先做这个，再套公式）\n\n别拿到股票就直接套公式，先花 30 秒把文稿嚼透，锁定三件事——这一步决定了标题是\"泛泛的股票分析\"还是\"非它不可的爆款\"：\n\n1. **写出这条视频最反共识的一个点**。用一句话：\"大家都以为 X，但其实 Y。\" 这个 Y 就是标题最该抖出去的东西。（例：\"都以为宁王要完，其实它账上现金比市值还硬。\"）\n2. **挑出最强的一对矛盾**。好标题的驱动力，往往是一对\"不该共存却共存\"的属性。财经场景这种矛盾极现成，格式 `[强属性] × [反预期属性]`：\n   - \"账上 800 亿现金 × 股价腰斩\"\n   - \"业绩创历史新高 × 财报当天跌停\"\n   - \"机构疯狂加仓 × 散户集体割肉\"\n   列 2-3 对，选张力最强的那对进标题。\n3. **一句话写出标题要传达的核心信息**：是抛一个观众自己也会问的问题，还是甩一个让人\"真的假的？\"的结论。\n\n这三步定完方向，再回到下面挑角度、抠字眼。\n\n## 一个好标题的本质：三样东西的碰撞\n\n标题不是\"概括视频讲了啥\"，而是**让人忍不住点进去**。真正能打的标题，是这三样的碰撞，缺一不可：\n\n1. **具体锚点**——一个真实的数字、名字或事件（\"套在1800\"\"跌70%\"\"财报当天\"）。它证明你不是标题党，给可信度，也让特定人群对号入座。\n2. **情绪钩子**——只戳**一根**神经：恐惧（怕亏/怕踏空）、贪婪（想抄底）、好奇（到底为什么）、认同（说出我想说的）。一个标题贪多戳好几根，反而一根都戳不进去。\n3. **信息缺口**——藏起一个答案，只有点进去才能填。缺口的火候是关键（见下）。\n\n一句话：**具体锚点给可信、情绪钩子给冲动、信息缺口给理由。** 三者齐了，标题就立住了。\n\n## 信息缺口的火候（最容易做错的一步）\n\n缺口太满或太空都不点。校准它：\n\n- **太满（差评）**：结论全抖在标题里，点进去没有新东西。\"茅台被高估了，建议卖出\"——都说完了，何必点？\n- **太空（差评）**：勾不出具体在讲什么，观众不敢赌那几分钟。\"这只票有个大秘密\"——什么票？什么秘密？不可信。\n- **刚好（好评）**：给出**足够具体的悬念**，让人觉得\"答案就在里面、而且我需要它\"。\"套在茅台1800的人，现在只有一条路\"——知道讲什么、戳中我、但不点不知道那条路是什么。\n\n## 六个可用角度（每次选差异最大的3个）\n\n角度是工具箱，不是填空模板——选完角度，回到上面\"三样碰撞\"去打磨每一个字。\n\n### 1. 悬念留白型\n藏起一个必须点进去才能填的信息缺口。\n- \"跌了30%的茅台，我反而加仓了，就因为这一个数字。\"\n- \"宁德时代这份财报，有一行字比营收更重要。\"\n\n### 2. 数字冲击型\n用**反差大、够具体**的数字抓眼球——数字要让人意外，不只是\"有个数字\"。\n- \"3年跌70%，宁德时代的底还没到？\"\n- \"账上800亿现金，股价却腰斩，问题出在哪。\"\n\n### 3. 争议观点型\n给一个反共识的判断，激发认同或反驳欲。**站队要狠，别骑墙。**\n- \"所有人都在割肉，我却把这只票加到满仓。\"\n- \"英伟达的故事，我认为讲不下去了。\"\n\n**红线：反转的\"靶子\"必须是市场公认印象，不能自造。** 反转型标题前半句立的那个\"大家都以为的事\"，必须是散户/市场真的都这么认为的常识——\"都说茅台是永远的神\"\"都以为宁王要完\"\"公认的白马股\"——观众一看就知道你在反谁的共识。别自己发明一个观众根本没听过的前提去反（比如硬说\"以稳健著称的某某股\"，可这只票压根没这名声），那样靶子立不住，观众只会一脸懵。\n\n### 4. 提问代入型\n问出观众心里正纠结的问题，让特定人群觉得\"说的就是我\"。\n- \"套在茅台1800的人，现在该割还是该扛？\"\n- \"现在上车比亚迪，是抄底还是接盘？\"\n\n### 5. 结论前置型\n把结论/建议直接放标题——但**留一半**，别把理由也抖光。\n- \"一句话：茅台能拿，但别追，原因就一个。\"\n- \"看完这条，你就知道这票该不该卖。\"\n\n### 6. 蹭热点/事件型\n绑定最新事件吃平台热点流量，事件要\"新鲜到今天\"。\n- \"涨停背后：主力今天到底干了什么。\"\n- \"财报暴雷当天，我把这只票的账重算了一遍。\"\n\n## 话题可辨识 & 搜索锚定（吃搜索流量）\n\n财经视频有大量搜索流量——观众会主动搜\"茅台还能买吗\"\"宁德时代 财报\"\"XX 涨停原因\"。标题不含公司名或核心话题词，就吃不到这块流量，也让人一眼看不出讲哪只票。\n\n- **标题前半必须出现公司中文名或核心话题词**（贵州茅台、宁德时代、财报、涨停、腰斩……），让观众和搜索引擎都能一眼锁定\"这是讲哪只票、什么事\"。\n- 用**中文名，不用股票代码**（写\"贵州茅台\"不写 600519），和口播稿\"正文不报代码\"的规则一致。\n- 关键词要**自然嵌进句子**，不是硬塞——为了塞词把语感搞崩，得不偿失。\n\n## 标题 × 封面配合（别让两块信息重复）\n\n标题和封面大字是两块广告位，要形成**互补**，不是把同一句话写两遍：\n\n- 常见的好配合：**标题抛问题 / 封面给结论或冲击画面**，或反过来。例：标题\"套在茅台1800的人，现在只有一条路\"，封面大字就不必重复这句，可以是\"1800 → 现在\"的价位反差或一个明确表情/结论。\n- 自查：把标题和封面大字放一起读，如果信息几乎一样，说明浪费了一块广告位，改掉其中一个。\n\n## 打磨清单（写完每个标题逐条自查）\n\n- **前6个字够不够狠**？手机信息流会截断标题，最勾人的词（数字、反差、身份）要**放最前面**，别浪费在\"关于\"\"浅谈\"上。\n- **只戳了一根神经吗**？一个标题一种情绪，别又恐惧又好奇又贪婪。\n- **数字够不够意外**？平淡的数字不如不放。要么反差大，要么反常识。\n- **动词带不带电**？用\"割肉\"\"踏空\"\"闷杀\"\"抄底\"这种有画面、有情绪的词，别用\"分析\"\"探讨\"\"了解\"。\n- **缺口火候对吗**？对照上面\"太满/太空/刚好\"，确认是\"刚好\"。\n- **换主语还成立吗**？把公司名换成另一只票，标题照样通顺 → 说明它太泛、没锚点，重写。好标题应该\"非这只票不可\"。\n- **像饭桌上随口说的吗**？把标题读出来，像朋友饭桌上随口甩的一句话，还是像研报/公众号标题（\"浅谈\"\"关于……的思考\"）？后者太书面，改口语。\n- **删得动吗**？能删的字都删掉，20字以内越短越冲，抖音再压更短。\n\n## 输出格式\n\n产出**3个**候选，覆盖3种不同角度，格式如下：\n\n```\n1. [标题]（角度：悬念型）⭐⭐⭐⭐⭐ 推荐\n2. [标题]（角度：争议型）⭐⭐⭐⭐\n3. [标题]（角度：提问型）⭐⭐⭐⭐\n```\n\n推荐指数最高的放第一个，并用一句话说清它为什么最可能爆——点明它踩中了哪根情绪神经、缺口卡在哪里。\n\n## 红线（不可越）\n\n- 标题里的数字、事实必须和口播稿、真实数据一致，不能为了点击率编造。\n- 标题承诺的东西**必须在视频里兑现**，且别太早兑现——比如标题说\"3个关键价位\"，正文就该把价位放到中后段，否则开头抖完包袱，后面没人看，完播率崩。\n- 不用\"必涨\"\"稳赚\"\"内幕\"\"史诗级\"这类违规、夸张或误导词。\n- 可以有情绪，但不做绝对承诺——\"可能\"\"或许\"\"我认为\"是安全垫。\n\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/references/script-structure.md ===\n# 口播稿结构模板\n\n目标：一条 7-10 分钟（约2500-3500字）、能对着念、观点鲜明又通俗的财经口播稿，出自财经账号 **「蛋炒饭财经」**。观众是想搞懂\"这票到底能不能买\"的普通人，但也有一部分懂行的，所以既要通俗，又要有干货，不能水。\n\n三条贯穿全文的硬要求：\n- **数据最新且正确**：文中所有股价、涨跌幅、市值、PE/PB、财报数字，必须是写稿当日（或最近交易日）的真实数据，写稿前用 WebSearch 再核对一次。\n- **只说名字不报代码**：正文提到股票只说名字（\"贵州茅台\"\"宁德时代\"），不要念股票代码。\n- **标点用中文全角**：正文一律使用中文常用标点，逗号用「，」不用英文「,」，句号「。」、问号「？」、感叹号「！」、冒号「：」、分号「；」、顿号「、」，引号用「\"\"''」，括号用「（）」，省略号用「……」。仅数字、股票代码、英文单词/短语内部保留英文半角符号，其余中文语境一律全角。\n\n## 整体结构\n\n按下面六段来写。每段标注了大致时长和目的，字数按 7-10 分钟分配。\n\n### 1. 黄金开场（0-15秒 / 约150字）\n前15秒决定完播率，而**前5秒决定观众走不走**，要分两层设计：\n\n**前5秒（生死线，决定去留）**：第一句必须一口气能说完、控制在15字以内，且必须含一个具体数字或一个反差判断，**禁止任何从句铺垫和自我介绍**。三种高效开头，任选其一：\n- **抛结论**：\"先说结论，现在的XX，我不建议追。\"\n- **抛悬念/数字**：\"一个月跌30%的XX，昨天突然涨停。\"\n- **抛冲突**：\"所有人都说XX要完了，我却想加仓。\"\n\n**5-15秒（决定要不要看完）**：接着把钩子展开，并**埋一个价值锚点**——把观众最想要的东西预告在开头、兑现在结尾，这是拉完播最有效的手段。例如\"这条视频，我会给你3个关键价位\"\"看完这三点，你就知道该不该买\"。价值锚点要具体、可兑现，且真正的答案放到中后段揭晓，吊着观众看下去。\n\n### 2. 背景铺垫（约300-400字）\n快速交代\"发生了什么\"。用最新的事件/数据把观众拉到同一个信息水位：股价现在多少、最近发生了什么催化、市场在吵什么。数字要具体，但一次别堆太多，讲一个消化一个。\n\n> 下面的第3-5段是文稿的干货主体，对应七维分析框架（基本面→估值，中间穿插行业、资金面、催化与风险）。**不必七个维度平均用力**，围绕本条选题的角度，把最相关的2-3个维度讲透，其余带过，避免变成流水账。\n\n### 3. 基本面 + 行业（约700-900字）\n硬核部分之一。讲清楚这家公司**靠什么赚钱、赚得怎么样、未来还能不能赚**：\n- 主营业务和商业模式（一句话讲明白它怎么赚钱）\n- 最新财报关键数据：营收/净利润及增速、毛利率净利率、ROE、现金流、负债率\n- 护城河：品牌/技术/规模/网络效应——为什么别人抢不走它的生意；或它正面临什么威胁\n- 行业赛道：行业处在成长还是成熟/衰退期、政策是顺风还是逆风、公司在产业链里的地位和议价权\n- 把数字翻译成人话，比如\"毛利率91%，意思是卖100块的酒，成本只有9块\"；\"ROE 30%，意思是股东每投100块，一年能赚回30块\"\n\n### 4. 技术面 + 资金面（约500-600字）\n另一块硬核。讲图形和资金，回答\"什么时候买、什么价位买\"：\n- 当前所处的位置（历史高位/低位、关键均线上下、多头还是空头排列）\n- 关键支撑位和压力位（给具体价格）\n- 量能与趋势：放量还是缩量、突破还是破位；MACD/RSI 是否超买超卖（点到为止，别堆指标）\n- 资金动向：主力/北向资金/机构近期是流入还是流出、龙虎榜或持仓有没有异动\n- 提醒：技术面是概率不是保证，用\"如果站上X，大概率看向Y；如果跌破Z，要警惕\"这种条件句\n\n### 5. 估值 + 催化风险 + 明确建议（约500-600字）\n这是观众最想听的，也是最能体现观点的部分。**不要含糊**：\n- 估值判断：当前PE/PB/PS处在历史什么分位、和同行比贵还是便宜、PEG 有没有透支成长，给一个合理估值区间\n- 未来变量：短期有什么催化剂（财报、新品、政策、景气拐点）；有什么被忽视的风险（业绩、政策、竞争、泡沫、减持）\n- 明确态度：买入 / 卖出 / 观望，并说清理由\n- 给操作参考：什么价位可以考虑、什么价位该止损/止盈、适合长线价值还是短线博弈的人\n- 用\"我个人的看法是…\"\"如果是我，我会…\"这样的表达，既鲜明又留有余地\n\n### 6. 收尾 + 风险提示 + 互动（约200字）\n- 一句话总结全片核心观点\n- **风险提示（必须有）**：\"以上仅为个人分析，不构成投资建议。股市有风险，入市需谨慎，请独立决策。\"\n- **互动引导（必须有）**：先抛一个让人想评论的问题，再引导三连和关注，最后用固定收尾。以「蛋炒饭财经」的口吻，例如：\n  - \"你怎么看这只票？是准备上车还是已经下车了？评论区告诉我。\"\n  - \"觉得这期分析有用的，帮我点个赞、加个收藏，方便以后回看；想继续看这种深度拆解的，记得关注『蛋炒饭财经』，你们点的票，下期我接着安排。\"\n  - 用一句稳定的口头禅收尾，强化人设，比如：\"我是蛋炒饭，我们下期再见。\"\n- 具体措辞每期可以微调，但\"抛问题 → 点赞收藏关注蛋炒饭财经 → 下期再见\"这个结构每条都要有。\n\n## 语气与写法要求\n\n- **口语化**：写完自己念一遍，拗口的地方就是要改的地方。多用短句。\n- **通俗但不low**：专业名词第一次出现就用一句大白话解释，之后可以直接用。\n- **有节奏感**：适当插入\"划重点\"\"记住这个数字\"\"注意了\"来提示关键信息，帮观众抓重点。每30-45秒给一个\"小高潮\"（一个数据、一个判断、一个金句），别把干货全堆在前2分钟。\n- **观点鲜明**：敢下判断，但用\"我认为\"\"大概率\"\"从数据看\"来承接，不做绝对承诺。\n- **段落过渡用钩子，不用平叙**：段与段之间不要用\"说完了基本面，我们再看看技术面\"这种平叙式过渡——这是最容易掉人的写法。改用**预告式钩子**推着观众进下一段，比如\"但真正的问题在这\"\"先记住这个数字，后面算价位要用\"\"第二点更关键，很多人都忽略了\"。每次过渡都给观众一个\"再看下一秒\"的理由。\n- **消灭平坦段（防跳出）**：中段连续讲财报、估值数据是跳出重灾区。规则：连续讲的专业名词不超过2个就要停下来用大白话解释或类比一次（\"这相当于你每年白干三个月\"），并适时插一句散户视角（\"评论区很多人纠结的就是这一点\"）拉回代入感。\n- **标点全角**：写完通读一遍，把中文语境里误用的英文标点（`,` `.` `?` `!` `:` `;`）全部换成中文全角（`，` `。` `？` `！` `：` `；`），只保留数字、代码、英文短语内部的半角符号。\n\n## 输出格式\n\n用带时间轴/段落标题的形式输出，方便录制时找位置，例如：\n\n```\n【开场 · 0:00】\n（正文……）\n\n【基本面 · 约1:30】\n（正文……）\n```\n\n## 一个开场范例（供参考语感，不要照抄）\n\n> \"先说结论：如果你现在手里拿着贵州茅台，我建议你拿住别动；但如果你想现在追进去，我劝你再等等。为什么同一支票，拿着和买入是两个建议？因为价格。今天这条视频，我用最新的财报和技术面数据，跟你把茅台到底值多少钱这件事，算清楚。\"\n\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/references/cover-prompts.md ===\n# 封面提示词模板\n\n封面是点击率的最大杠杆之一。财经视频封面要在1秒内传达三件事：**讲哪只股票、什么情绪（涨/跌/警示）、一句勾人的大字**。\n\n## 硬规则：封面必须出现公司名字\n\n每一张封面（B站版和抖音版都是）**必须清晰地显示公司的具体中文名字**，例如\"兆易创新\"\"贵州茅台\"\"保利物业\"。观众划到封面第一眼就得知道这条视频讲的是哪家公司，不能只有一句情绪大字却看不出是谁。\n\n- 公司名可以是**主标题本身**（比如大字直接写\"兆易创新\"），也可以作为**副标题/角标**和勾人大字并存（比如大字\"闭眼捡钱？\"+ 醒目副标\"保利物业\"）。\n- 无论哪种排布，公司名字都要**足够大、足够清晰、不被遮挡**，用真实全称或通用简称，不要用代码代替、不要缩写到认不出。\n- 写提示词时，必须显式要求把公司名字写在图上（见下方写法），不能省略。\n\n## 硬规则：公司名字固定统一的位置（系列感）\n\n公司名字在封面里**必须固定放在统一的位置**，每期视频都用同一套排布，让「蛋炒饭财经」长期做下来有稳定的系列感、一眼能认出是同一个账号的内容。约定如下，不要每期换地方：\n\n- **B站版（4:3 横版）**：公司名固定放在**顶部**，作为最醒目的主标题，横贯上方、带一条高亮色衬底或光效。\n- **抖音版（3:4 竖版）**：公司名固定**压在最顶部**一行，横贯画面顶端，是全图最大最清晰的文字。\n- 写提示词时明确指定公司名的这个固定位置（top / pinned across the top），并要求它是全图最突出的文字，不要移到中间或角落。\n\n## 硬规则：封面文件用股票名字命名\n\n生成的封面文件**用股票名字命名**，格式 `<股票名>_bilibili.png` 和 `<股票名>_douyin.png`（如 `贵州茅台_bilibili.png`、`保利物业_douyin.png`），不要用 `cover_bilibili.png` 这类通用名，方便长期归档、一眼区分是哪支票。\n\n## 两个平台的差异\n\n| | B站 | 抖音 |\n|---|---|---|\n| 比例 | 4:3 横版 | 3:4 竖版 |\n| 文字量 | 可稍多，主标题+副标题 | 极简，一句大字为主 |\n| 构图 | 左右布局，主体+文字分区 | 上下布局，大字压顶或居中 |\n| 观看场景 | 桌面/横屏，看得清细节 | 手机竖屏刷流，要更大更冲 |\n\n同一条视频，两版封面的**大字文案可以不同**：B站可以稍完整，抖音要更短更狠。\n\n## 提示词写法\n\ngpt-image-2 对画面描述用英文更稳定，但**需要出现在图上的中文大字，直接在提示词里用中文并明确要求**。一个提示词包含这几块：\n\n1. **画面主体**：K线图/上升或下跌箭头/公司logo氛围/人物表情/大额数字\n2. **情绪配色**：\n   - 看涨/利好 → 红色为主（中国市场红涨），暖色、上升箭头\n   - 看跌/警示 → 绿色或暗色 + 警示黄，下跌箭头\n   - 科技股 → 深蓝/黑金、科技感光效\n   - 中性分析 → 稳重的深色 + 金色，专业财经感\n3. **大字标题**：明确写\"图中央用醒目大号中文写：'XXXX'\"，字数越少越好（4-8字最佳）\n4. **公司名字（必须）**：明确要求图上出现公司中文名，例如\"顶部用醒目中文写公司名：'兆易创新'\"。可以是主标题，也可以是副标题/角标，但一定要写进提示词、且要求清晰可读。\n5. **风格词**：professional financial thumbnail, high contrast, bold typography, cinematic lighting, eye-catching, 4k\n6. **排版要求**：文字清晰不被遮挡、主体不要太满、留出文字空间\n\n## 模板示例\n\n**B站版（4:3，看空茅台的选题）：**\n```\nA professional YouTube-style financial thumbnail, 4:3 horizontal aspect ratio.\nLeft side: a dramatic downward red candlestick chart trending down.\nRight side: dark moody background with dramatic lighting, space for text.\nTop area, pinned across the top as the dominant headline with a bright accent bar behind it, large bold Chinese company name: \"贵州茅台\".\nIn the center-right, bold large Chinese text: \"茅台还能追吗\".\nBottom smaller Chinese text: \"用财报算清楚\".\nColor scheme: deep red and dark navy, high contrast, warning tone.\nAll Chinese text must be crisp, correctly written and fully readable, not cropped.\nStyle: cinematic, high-contrast, bold typography, professional finance channel, eye-catching, 4k.\n```\n\n**抖音版（3:4，同一选题）：**\n```\nA professional vertical thumbnail, 3:4 portrait aspect ratio, for a finance short video.\nBackground: dramatic dark red gradient with a falling stock chart and downward arrow.\nVery top: bold Chinese company name pinned across the top as the dominant headline, the biggest clearest text on the cover: \"贵州茅台\".\nUpper-center huge bold Chinese text: \"茅台别追\".\nCenter: a large glowing red downward arrow and blurred candlestick chart.\nColor scheme: intense red and black, maximum contrast, urgent emotional tone.\nAll Chinese text must be crisp, correctly written and fully readable, not cropped.\nStyle: mobile-first, oversized bold typography, punchy, eye-catching, 4k.\n```\n\n## 调用脚本\n\n```bash\npython3 scripts/generate_cover.py --platform bilibili --prompt \"上面的英文提示词\" --output 贵州茅台_bilibili.png\npython3 scripts/generate_cover.py --platform douyin  --prompt \"上面的英文提示词\" --output 贵州茅台_douyin.png\n```\n\n`--platform` 会自动选择对应的画幅尺寸（bilibili=1024x768，4:3 横版；douyin=768x1024，3:4 竖版）。\n\n## 提示\n\n- 大字文案要和标题、口播稿观点一致，别封面看空、内容看多。\n- gpt-image-2 生成的中文偶尔会有错别字，生成后**检查图上文字是否正确**，尤其确认**公司名字有出现、写对了、清晰可读**；错了就调整提示词重生成，或建议用户后期用设计工具替换文字。\n- 公司名字上封面是硬要求：如果生成图里公司名缺失或糊掉，必须重生成，不能交付一张看不出讲哪家公司的封面。\n- 一次可以先只生成一版让用户看效果，满意了再生成另一版，省额度。\n\nFile v0.1.0:references/exemplars/title-gen-v3.md\n\n# Video Title Generator V3.0\n\nGenerate click-worthy Chinese video titles AND matching opening structures from a transcript/script and target audience. Titles maximize CTR; openings maximize retention. Both together determine algorithmic reach.\n\nTrigger: \"生成标题\", \"视频标题\", \"起标题\", \"title gen\", \"generate title\", \"标题生成\"\n\n## Inputs\n\nThe user provides:\n1. **文稿/脚本** — the video transcript or script (full or partial)\n2. **目标受众** — who the video is for (e.g., \"职场新人\", \"历史爱好者\", \"科技爱好者\"). If omitted, infer from the transcript content and state your assumption.\n\n---\n\n## Step 0: 文稿深度分析（必须先完成，再起标题）\n\n拿到文稿后，按以下顺序完成分析并输出，**不要跳过任何一步**：\n\n### 0.1 主题提炼\n- **讨论主体**：文稿在讨论什么具体事物？（具体名词，不要泛化）\n- **名词类型**：这个名词属于什么类别？（国家/组织/历史事件/药品/科学概念/社会现象/人物/...）\n- **叙事视角与形式**：文稿是用什么视角/形式讲述的？（第一人称/第二人称沉浸式/第三人称客观/对话体/科普讲解/故事演绎/...）。如果文稿采用了沉浸式、第一/第二人称、穿越体验、角色扮演等叙事手法，这本身就是一个巨大的差异化优势——它能直接建立观众与内容之间的情感连接。标题应该利用而非忽略这个特征。\n- **核心论点**：文稿最终得出的结论或传达的关键信息是什么？（用一句话概括）\n- **最反直觉的点**：文稿中最可能让普通人惊讶的信息是什么？\n\n### 0.2 受众心声提取（在提出问题之前，先找到受众的声音）\n\n受众脑子里在想什么？用他们的口语、他们的热词、他们私下嘀咕的那句话来表达，不要用正式的书面语。列出2-3句\"受众内心独白\"。\n例如：\n- ✗ \"这种食品添加剂是否对人体有害？\"（这是百科语言）\n- ✓ \"这是科技与狠活吗？\"（这是受众脑子里的话）\n- ✓ \"配料表上这些看不懂的东西，到底能不能吃啊？\"\n\n### 0.3 三个前置问题（必答，决定标题方向）\n\n在分析具体的受众动机之前，先回答以下三个问题。这三个问题决定了标题的方向，跳过它们会导致标题泛泛：\n\n**Q1: 观众为什么要关心这件事？**\n从两个维度思考：\n- **信息服务**：观众能学到什么他们不知道的？获得什么能用上的知识？\n- **情绪价值**：观众看了会爽/会感动/会解气/会觉得涨见识？满足了什么心理需求？（猎奇、代入感、优越感、共鸣、爽感、治愈...）\n列出所有能提供的价值，按对观众的吸引力排序（通常来说，最容易引起共鸣的情绪是恐惧、愤怒或者希望）。\n\n**Q2: 同一个话题可能有很多人讲过。这个视频的比较优势是什么？（找到最突出的1-2个）**\n- 更专业/权威？（数据更扎实、来源更可靠）\n- 更易于理解？（把复杂的事说得通俗易懂）\n- 更有戏剧性/故事性？（有叙事、有角色、有情节转折）\n- 更有代入感？（沉浸式视角、第一/第二人称体验）\n- 更有情绪上的感染力？（更有动员力或更有梗）\n\n这个比较优势应该体现在标题中。\n\n**Q3: 基于Q1和Q2，如何提出一个观众真正关心的问题，或者一个shocking的结论？**\n综合以上分析，用一句话写出标题应该传达的核心信息。这句话应该是：\n- 一个观众自己也会问的问题（问题类标题的核心）\n- 或者一个让观众感到惊讶的结论（结论类标题的核心）\n列出3个候选方向。\n\n### 0.4 核心矛盾提取\n从文稿中找到最具张力的矛盾对。好标题的驱动力往往是一对\"不应该共存但确实共存\"的属性。\n格式：[强属性] + [反预期属性] = 矛盾\n列出3对核心矛盾，按张力强度排序。\n\n### 0.5 台本结构判断\n\n判断这个台本是否采用了hook结构（前15秒直接抛出核心冲突/反转/结论）：\n\n**Hook型台本特征**：\n- 开头直接说结论，然后展开论证\n- 开头抛出一个冲突/矛盾，然后解释原因\n- 开头用\"你知道吗\"/\"其实\"/\"但是\"等转折词快速进入主题\n- 前15秒出现了标题可能提及的核心名词/核心矛盾\n\n**非Hook型台本特征**：\n- 开头铺背景、讲故事、建立情境\n- 核心信息在中后段才出现\n- 采用渐进式叙事，层层递进\n\n判断结果：Hook型 / 非Hook型\n\n**对标题和开头的影响**：\n- Hook型：标题承诺必须在前15秒兑现，开头和标题形成\"问题-答案\"或\"悬念-揭晓\"的呼应\n- 非Hook型：标题围绕全文最强矛盾点起；\n\n### 0.6 内容调性判断\n\n**A. 观点争议型**：对某事物持有明确立场，核心是纠正错误认知或反驳一种说法，或表达一种强烈的情绪\n**B. 知识科普型**：解释原理/历史/机制，核心是信息增量\n**C. 沉浸体验型**：第一/第二人称、角色扮演、场景模拟，核心是代入感\n**D. 故事叙事型**：有起承转合的事件，核心是情节+情绪\n\n判断结果：[选择A/B/C/D，可复选]\n\n### 0.7 搜索关键词预判\n受众去搜索引擎/视频平台搜索相关内容，最可能用的关键词是什么？列出5-8个，按搜索可能性排序。\n\n### 0.8 情绪锚点\n- **点击前情绪**：（如：担忧、恐慌、好奇、怀疑）\n- **看完后情绪**：（如：放心、恍然大悟、愤怒、被科普的满足感）\n- **情绪转化路径**：标题应锚定\"点击前情绪\"，开头应在15秒内让观众确认\"这个视频在回应我的感受\"\n\n### 0.9 开头素材盘点\n\n从台本前1/3的内容中，提取可用于开头重组的素材：\n- **最强画面感的句子**：哪句话读出来脑子里会出现画面？\n- **最有冲击力的数据/事实**：哪个数字或事实最让人意外？\n- **最强共鸣的场景**：哪个场景最能让受众觉得\"对对对，我也是\"？\n- **可用的对比/类比**：哪些对比能一句话说清概念？\n\n这些素材将在 Step 3（开头建议）中使用。\n\n---\n\n## Step 1: 分析摘要\n\n在生成标题之前，必须先用以下格式输出3行摘要，将分析结论锁定：\n\n```\n最强动机：___（来自0.4）\n核心矛盾：___（来自0.5，选张力最强的一对）\n标题应传达的信息：___（来自Q3）\n```\n\n---\n\n## Step 2: Title Generation Rules\n\n### Core Logic — every title MUST be one of two types:\n\n**Type A: 好问题 (A Good Question)**\n- Poses a question the audience genuinely wants answered\n- The question should feel specific and non-trivial — not generic clickbait\n- **用受众脑子里的话，不是创作者的话**：受众内心的声音是什么？他们在心里嘀咕的那句话、那个词是什么？标题要用那个词，而不是正式的、理性的表述\n\n**Type B: 清晰的结论 (A Clear Conclusion)**\n- States a bold, concrete takeaway that makes the viewer think \"really?\"\n- Must be specific enough to be falsifiable\n- Must contain at least一个具体细节（数字、具体名词、具体场景）\n- **把矛盾拉到最大**：找到文稿中最具反差的两端，把它们压缩进同一句标题里。是矛盾在驱动点击，不是事实\n- **对比对象要选有公认印象的参照物**：X必须是受众心中已有明确印象的参照物，参照物本身的公认印象越强，冲击力越大\n  - ✗ \"吃得比我现在还好\" → \"我\"是谁？没有公认标准\n  - ✓ \"能把今天的美军馋哭\" → 今天的美军伙食是公认的天花板\n- **多角度切入，不要被一个入口困住**：\n  - **反向切入**：从一个关联事件/概念反过来切\n  - **内部视角/凡尔赛切入**：用身处其中的人才会说的话\n  - **局部放大切入**：抓一个最有画面感的细节放大\n- **标题语气要匹配视频的声音**：沉浸式→参与者口吻，客观科普→受众会问的问题\n\n质量标准：\n- 必须在一句话内形成完整的逻辑张力\n- 已知部分必须足够shocking，让观众想知道原因\n\n**通用规则：当标题需要\"先立靶再打靶\"时，靶子必须来自真实存在的外部声音，而不是你自己发明的抽象标签。**\n\n- ✗ \"以武勇闻名于世的Charriot，其实是个胆小鬼\" → \"以武勇闻名于世的Charriot\"是创作者在臆想受众都知道这个人物，但实际上，这个人物并不知名，更别提以武勇闻名于世，这个靶子立出来一般观众只会觉得莫名其妙\n- ✓ \"家喻户晓的圣雄甘地，在印度人看来其实是卖国贼\" → “家喻户晓的圣雄”是全球范围内对甘地的常规评价\n\n核心原则：靶子要有公共认知度，最好是一种常识（网上传的/大家都觉得的），反转要用最朴素的口语。整句话读出来应该像朋友在饭桌上随口说的。\n\n### Topic Visibility（话题可辨识性）\n- 必须在标题前半部分展示视频所讨论的核心名词，让观众知道\"这个人在聊什么话题\"\n\n### Keyword Anchoring（关键词锚定）\n- 标题**必须**包含 Step 0.7 中排名前3的搜索关键词中的至少1个\n- 关键词应自然嵌入，不能为了塞词破坏语感\n- **优先级**：受众口语 > 搜索关键词。但必须在标题或封面中保留至少一个搜索关键词\n\n### Motivation Matching（动机匹配）\n- 每个标题必须明确对应 Step 0.4 中的一个受众动机\n- 至少60%的标题命中强动机\n\n### Formatting Constraints\n- **理想长度**：12-20字。**硬性上限**：25字（含标点）。超过20字需在备注中说明为什么需要更长\n- **允许的标点**：，。？\"\"：（中文全角）\n- **禁止**：破折号、省略号、括号、斜杠、emoji、hashtag、英文标点\n- **无生僻字**：涉及专业概念时用外行人也能看懂的视角重新表述\n\n### Quality Criteria\n\n1. **Suspense or Resonance** — 标题必须制造悬念或触发共鸣，二选一\n2. **Content Relevance** — 必须基于视频实际内容，夸张可以，捏造不行\n3. **Opening Connection** — Hook型：15秒兑现；非Hook型：前1/3处开始兑现\n4. **Accessibility** — 按目标受众的阅读水平写\n5. **Specificity** — 每个标题必须包含至少一个具体元素（名词/数字/场景/对比）\n6. **Natural tone** — 自检：这句话的语气是否太书面了？\n\n### What to Avoid\n\n- Generic clickbait with no substance (\"你绝对想不到\")\n- Stacking multiple questions or conclusions — pick one\n- Passive or academic tone (\"浅谈…\", \"论…\", \"关于…的思考\")\n- Misleading exaggeration that the video cannot support\n- **Self-manufactured framing** — 不要自造抽象标签来搭结构\n\n### Diversity Constraint（差异化强制要求）\n\n生成的候选标题中：\n- **Type A/B 至少各出现1次**\n- **切入角度不能重复**：正面概括、反向切入、凡尔赛/内部视角、局部放大、对比质问——至少覆盖3种不同角度\n- 如果发现多个标题只是措辞不同但角度一样，删掉重来\n\n---\n\n## Step 3: Opening Structure Suggestions（开头结构建议）\n\n每个推荐标题必须配一个开头结构建议。开头建议不是重写台本，而是给出\"前15秒的信息骨架\"。\n\n### 核心原则\n\n1. **开头必须兑现标题承诺**：标题问了什么，开头就得让观众确认\"对，这个视频在讲我想知道的\"\n2. **只能用台本已有素材**：从 Step 0.10 的素材池中选取重组，不能凭空编内容\n3. **15秒定生死**：观众在前15秒决定划走还是看下去。开头结构的目标是让观众在15秒内产生\"然后呢？\"的感觉\n\n### 开头结构模板\n\n根据标题类型和内容调性，选择对应的开头骨架：\n\n**模板1：共鸣→立靶→抛钩（适合Type A问题类 + 焦虑/疑问动机）**\n- 第1句（0-3秒）：场景共鸣 → 描述受众的真实行为或感受\n- 第2句（3-8秒）：立靶 → 引出大众误解或恐慌来源\n- 第3句（8-15秒）：抛钩 → 给一个反转方向但不给完整答案\n\n**模板2：结论先行→制造疑问（适合Type B结论类 + 好奇驱动）**\n- 第1句（0-5秒）：直接抛结论 → 把标题的核心矛盾展开一层\n- 第2句（5-10秒）：制造不合理感 → \"但这不合理，因为...\"\n- 第3句（10-15秒）：承诺解释 → 暗示接下来会揭开原因\n\n**模板3：场景带入→悬念锁定（适合Type C混合类 / 沉浸体验型）**\n- 第1句（0-5秒）：场景带入 → 用第一/第二人称把观众拉进场景\n- 第2句（5-10秒）：细节锚定 → 给一个具体的感官细节（看到/听到/闻到）\n- 第3句（10-15秒）：方向暗示 → 暗示接下来会有转折或信息增量\n\n**模板4：冲击事实→范围拉大（适合Type B结论类 + 猎奇/爽感驱动）**\n- 第1句（0-3秒）：最冲击的单个事实 → 从0.10的\"最有冲击力的数据\"中选\n- 第2句（3-8秒）：范围拉大 → \"而且不止如此...\"\n- 第3句（8-15秒）：框架建立 → 告诉观众接下来的内容量级\n\n### 开头建议的输出格式\n\n```\n开头结构建议：[模板编号+名称]\n- 第1句（0-X秒）：[功能] → \"[具体台词建议，从台本素材重组]\"\n- 第2句（X-Y秒）：[功能] → \"[具体台词建议]\"\n- 第3句（Y-15秒）：[功能] → \"[具体台词建议]\"\n- 兑现逻辑：标题承诺___，开头在第___秒通过___兑现\n- 与原台本开头的关系：[直接可用 / 需要调序 / 需要补充一句话]\n```\n\n### 调序建议的边界\n\n- **直接可用**：台本现有开头已经符合标题承诺的兑现节奏，不需要改\n- **需要调序**：台本前30秒内有合适的素材，但出现顺序不对，建议把某句话前移\n- **需要补充一句话**：台本开头缺少和标题的直接呼应，建议在最前面加一句过渡（必须基于台本已有信息）\n\n---\n\n## Step 4: Output Format\n\n### 4.1 先输出 Step 0 完整分析\n\n### 4.2 输出 Step 1 分析摘要（3行）\n\n### 4.3 生成候选标题\n\n先内部生成10个候选，每个标题格式：\n\n```\nN. [标题]（X字）— 类型：问题/结论/混合 | 策略：悬念/共鸣/反转 | 动机：焦虑/疑问/好奇/实用 | 关键词命中：[词] | 话题可辨识：✓/需封面补充\n   切入角度：[正面概括/反向切入/凡尔赛/局部放大/对比质问/...]\n   封面策略：[A立场质问/B视觉化结论/C角色视角/D高潮画面]\n   封面文案：[封面上的完整短句，8-18字，必须含话题词]\n   标题×封面配合：（一句话说明二者如何形成互补关系）\n   为什么建议这个标题：（2-3 sentences）\n```\n\n### 4.4 推荐 + 开头建议\n\n```\n推荐：#N\n理由：（2-3 sentences explaining why this title best balances CTR, keyword relevance, motivation match, and retention）\n\n封面整体建议：（画面构思+文案+情绪氛围）\n\n开头结构建议：[模板编号+名称]\n- 第1句（0-X秒）：[功能] → \"[具体台词]\"\n- 第2句（X-Y秒）：[功能] → \"[具体台词]\"\n- 第3句（Y-15秒）：[功能] → \"[具体台词]\"\n- 兑现逻辑：___\n- 与原台本开头的关系：[直接可用 / 需要调序 / 需要补充一句话]\n```\n\n### 4.6 备选开头（为排名第2的标题也提供一个开头建议）\n\n```\n备选方案：#M\n开头结构建议：[模板编号+名称]\n- 第1句（0-X秒）：[功能] → \"[具体台词]\"\n- 第2句（X-Y秒）：[功能] → \"[具体台词]\"\n- 第3句（Y-15秒）：[功能] → \"[具体台词]\"\n- 兑现逻辑：___\n- 与原台本开头的关系：___\n```\n\n---\n\n## Process Checklist\n\n1. **Step 0**: Complete full transcript analysis (0.1→0.10). Output it.\n2. **Step 1**: Output 3-line analysis summary.\n3. **Internal drafting**: Generate 8 candidate titles. For each, verify:\n   - Maps to a specific audience motivation from 0.4\n   - Contains at least one keyword from 0.8\n   - Includes at least one concrete detail\n   - Passes the swap test (换掉主语还成立 = 太泛，重写)\n   - Passes the natural tone test (\"你知道吗，[标题]\" 读起来顺不顺)\n   - Type A/B/C diversity is met across the full set\n   - Cutting angles are diverse (不能所有标题同一角度)\n   - 封面文案包含核心话题词（无例外）\n   - 封面策略匹配 0.7 的内容调性\n   - 标题和封面不重复同样的话\n4. **Elimination**: Cut 3 weakest, state reasons.\n5. **Output 5 finalists** with full metadata.\n6. **Pick best**, provide cover concept + opening structure.\n7. **Provide runner-up** opening structure.\n\nFile v0.1.0:references/methodology/cover-design.md\n\n# 封面方法论核心（跨平台/跨垂类通用内核）\n\n> **定位说明**：本文是封面设计逻辑的**通用内核**，只讲跨平台、跨垂类都成立的判断逻辑（1秒传达什么、认领什么类型、视觉锤怎么定、大字怎么写、配色怎么定、人物怎么拍、提示词怎么写）。具体的**画幅尺寸**（B站4:3、抖音竖屏3:4……）和**情绪-配色的垂类映射**（比如财经的红涨绿跌该映射成什么色），随平台和垂类变化，不属于通用内核范围，生成产物时按 `references/platforms/*.md` 与本次确认的垂类现产注入，不要把某个垂类的具体配色规则当成通用规则写进这里，也不要在没有平台/垂类信息注入的情况下凭空编一套尺寸或配色交付给用户。\n\n## 核心命题：你在设计的是观众的 0.5 秒\n\n观众不是在\"看\"封面，是在信息流里 **0.5 秒扫过**。所以封面设计的本质不是把画面做好看，而是精确控制这 0.5 秒里观众的**视线落点**和**情绪反应**。本文所有规则，归根到底都在服务这一件事，可以浓缩成一句话：\n\n> **用","readmeExcerpt":"Skill: video-workflow-builder Owner: charriotzed Summary: 视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。 Tags: latest:0.1.1 Version history: v0.1.1 | 2026-08-13T09:53:21.413Z | user 补 metadata.openclaw.envVars 声明脚本实际引用的 12 个环境变量，避免 clawhub security analysis 报 metadata mismatch v0.1.0 | 2026-08-07T12:15","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"File v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn76tn1dxqnds2hg1t8ck2xtzh8c1zqw\",\n  \"slug\": \"video-workflow-builder\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1786614801413\n}\n\nFile v0.1.1:references/exemplars/bilibili-finance-video-skill.md\n\n> 本文件是「金标准范例」，供生成器参照其质量与结构，不要原样照抄到用户产物里。\r\n\r\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/SKILL.md ===\r\n---\r\nname: bilibili-finance-video\r\ndescription: 专业的B站财经视频创作助手，用于把一支股票变成能带来高播放量的分析视频。当用户输入股票名称或代码（如\"分析一下贵州茅台\"、\"600519\"、\"帮我做个宁德时代的视频\"、\"英伟达 NVDA\"），或提到要做财经视频、股票选题、口播稿、财经视频封面、涨停/暴跌复盘视频时，务必使用本技能。它会联网抓取实时行情与新闻，先产出3个带钩子的选题方案供选择，采纳后生成完整的口播稿、多个爆款标题，以及B站(4:3)和抖音(3:4)两版适配封面。\r\n---\r\n\r\n# B站财经视频创作助手\r\n\r\n把一支股票变成一条有观点、能涨播放量的财经视频。你在为财经账号 **「蛋炒饭财经」** 创作内容，角色是\"资深财经UP主 + 专业投研 + 短视频操盘手\"的结合体：既能把复杂的东西讲通俗，又敢给明确观点和买卖建议，还懂平台的流量逻辑。所有口播稿、互动引导都以「蛋炒饭财经」这个人设和账号来写。\r\n\r\n## 运行环境与脚本路径\r\n\r\n本技能面向 **Claude Code**。文中工具名按 Claude Code 能力理解：联网用 `WebSearch` / `WebFetch`，写文件用 `Write`，跑脚本通过 shell 执行 `python3`。若当前环境确实无联网能力，如实告知用户无法获取实时数据，不要用记忆里的旧数据冒充。\r\n\r\n脚本随技能一起安装，位于技能目录 `~/.claude/skills/bilibili-finance-video/scripts/`。**不要假设 shell 的当前工作目录是技能目录**（运行时 cwd 通常是用户项目目录）。运行脚本前先定位技能目录，用绝对路径调用："},{"language":"bash","snippet":"pip install -r scripts/requirements-douyin.txt\nplaywright install chromium          # 仅 scrape_douyin 需要\n\n# 数据抓取（扫码登录一次，session 会缓存）\npython scripts/scrape_douyin.py --url https://www.douyin.com/user/MS4w...\n\n# 单条视频 → 口播稿\npython scripts/douyin_transcript.py \"<抖音分享链接>\""},{"language":"bash","snippet":"SKILL_DIR=\"$HOME/.claude/skills/video-workflow-builder\"\n[ -d \"$SKILL_DIR\" ] || SKILL_DIR=\"$HOME/.codex/skills/video-workflow-builder\"\npython3 \"$SKILL_DIR/scripts/validate_skill.py\" <生成的产物目录>"},{"language":"text","snippet":"## 账号定位诊断 · 抖音职场·大厂过来人\n\n**目标受众**：25-32岁、在一二线城市互联网/大厂工作2-5年的初中层职场人，正处在\"要不要跳槽/要不要卷管理岗/要不要裸辞\"的决策焦虑期。\n受众心声：\"我到底是该忍还是该走\"\"我现在这个level值多少钱我自己都不知道\"\"领导画的饼我信了三年，是不是傻\"。\n\n**差异化定位**：抖音职场垂类目前扎堆两种账号——鸡血励志型（\"你不努力就会被淘汰\"）和纯吐槽发泄型（\"打工人的一天\"），\n真正带具体决策框架、且人设有大厂中层背书的\"理性拆解型\"账号还不多。差异化打法：不喊鸡血、不单纯吐槽，\n每条视频给一个可以直接套用的判断框架（比如\"三个信号说明你该跳槽了\"），把感性的职场焦虑翻译成可执行的决策清单。\n\n**内容方向**（3-5个）：\n1. 决策框架类：\"XX信号说明你该跳槽/该忍/该谈判加薪了\"\n2. 大厂内幕拆解类：从中层视角讲绩效、晋升、裁员背后的真实逻辑\n3. 真实案例复盘类：匿名化改编身边真实的职场决策案例，讲清楚\"当时怎么想的、后来发现漏算了什么\"\n4. 反常识纠偏类：戳破\"努力就会被看见\"\"跳槽一定要涨薪\"这类职场鸡汤里的坑\n\n以上是本次研究后的定位诊断，你看看目标受众和差异化定位是否符合预期？可以说\"受众再往上提两年\"\"内容方向去掉反常识纠偏这条\"来调整，确认没问题我就开始生成你的专属工作流。"},{"language":"text","snippet":"{{ACCOUNT_NAME}}          → 大厂过来人老K\n{{ACCOUNT_SLUG}}          → dachang-guolairen\n{{PLATFORMS}}             → 抖音\n{{NICHE}}                 → 职场决策/大厂内幕\n{{PERSONA}}               → 35岁大厂中层，裸辞后做职业咨询的过来人前辈\n{{TRIGGER_WORDS}}         → \"帮我看看这条职场选题\"\"写一条跳槽建议的口播稿\"\"起个职场标题\"\"职场封面\"\n{{AUDIENCE}}              → 25-32岁一二线互联网/大厂员工，处在跳槽/晋升/裸辞决策焦虑期\n{{AUDIENCE_VOICE}}        → \"我到底该忍还是该走\"\"这个level我自己都不知道值多少钱\"\n{{POSITIONING}}           → 理性决策框架型，区别于鸡血励志和纯吐槽两类扎堆账号\n{{DIFFERENTIATION}}       → 每条视频给一个可直接套用的判断框架，而非喊口号或单纯发泄\n{{MONETIZATION}}          → 起号期不变现→成长期职业咨询付费→成熟期课程分销/雇主品牌广告\n{{PLATFORM_ADAPTATION}}   → 抖音强钩子开头、60-90秒、前3秒抛结论\n{{TOPIC_FRAMEWORK}}       → 决策框架类/内幕拆解类/案例复盘类/反常识纠偏类，四个选题池轮换\n{{HOT_SOURCE_GUIDE}}      → 抖音职场话题榜、脉脉/小红书职场热帖、近期裁员财报新闻\n{{SCRIPT_LENGTH}}         → 60-90秒，约200-300字\n{{SCRIPT_STRUCTURE}}      → 3秒钩子→冲突陈述→框架讲解(2-3点)→行动建议→互动引导\n{{TITLE_RULES}}           → 继承 title-gen-v3 五步分析法，标题需含具体身份锚点+反常识判断\n{{TITLE_KEYWORD_RULE}}    → 标题前半必须出现\"跳槽/裸辞/大厂/晋升\"等搜索热词之一\n{{COVER_SIZES}}           → 抖音 3:4 竖版 1080x1440\n{{COVER_EMOTION_MAP}}     → 决策焦虑→暗色警示；反常识→对比撞色；案例复盘→暖色叙事\n{{COVER_SERIES_LAYOUT}}   → 顶部固定压\"大厂过来人老K\"账号名，中部大字结论，底部小字场景标签\n{{COVER_DESIGN_LANGUAGE}} → 冷峻职场纪实风（深灰蓝冷调+暖色点缀、哑光质感、极粗黑体主锤字、中央焦点构图）"},{"language":"bash","snippet":"python3 scripts/validate_skill.py <产物目录>"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: video-workflow-builder\r\ndescription: 视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。\r\nversion: 0.1.1\r\nmetadata:\r\n  openclaw:\r\n    primaryEnv: QIANFAN_WEBSEARCH_API_KEY\r\n    requires:\r\n      bins:\r\n        - python3\r\n    envVars:\r\n      - name: QIANFAN_WEBSEARCH_API_KEY\r\n        required: true\r\n        description: 千帆联网搜索网关密钥，阶段1联网研究（web_search.py）用。\r\n      - name: QIANFAN_WEBSEARCH_API_BASE\r\n        required: false\r\n        description: 千帆搜索网关地址，缺省用脚本内置默认值。\r\n      - name: LLM_GATEWAY_API_KEY\r\n        required: false\r\n        description: LLM 网关密钥，封面生成/文稿/口播稿纠错脚本用。\r\n      - name: LLM_GATEWAY_BASE_URL\r\n        required: false\r\n        description: LLM 网关 base（OpenAI 兼容接口），缺省用脚本内置默认值。\r\n      - name: ALIYUN_AK_ID\r\n        required: false\r\n        description: 阿里云 AccessKeyId，抖音口播稿 ASR（douyin_transcript.py）用。\r\n      - name: ALIYUN_AK_SECRET\r\n        required: false\r\n        description: 阿里云 AccessKeySecret，抖音口播稿 ASR 用。\r\n      - name: NLS_APP_KEY\r\n        required: false\r\n        description: 阿里云智能语音交互 AppKey。\r\n      - name: OSS_BUCKET\r\n        required: false\r\n        description: 阿里云 OSS 桶名，存放待 ASR 拉取的音频。\r\n      - name: OSS_ENDPOINT\r\n        required: false\r\n        description: 阿里云 OSS Endpoint。\r\n      - name: DAILYHOT_API_BASE\r\n        required: false\r\n        description: 自部署 DailyHotApi 实例地址，选题第零步抓实时热榜用。\r\n      - name: CONTENT_DB_ROOT\r\n        required: false\r\n        description: 内容存档数据库根目录，缺省用技能目录下默认路径。\r\n      - name: TIKTOK_DOWNLOADER_DIR\r\n        required: false\r\n        description: 外部 TikTokDownloader 本地目录绝对路径（GPL，单独 clone）。\r\n---\r\n\r\n# 视频创作工作流生成器\r\n\r\n这是一个\"生成 skill 的 skill\"。它不直接帮你写选题、写文稿、做封面——它做的是把这一整套能力，按照你的平台、垂类和人设，量身定制成一个**独立、可安装、开箱即用**的专属工作流 skill，覆盖从选题到文稿、标题、封面的完整链路。你只需要回答三个最基础的问题，剩下的受众画像、爆款打法、变现路径、平台算法动向，它会自己联网研究补齐，先给你一份账号定位诊断和策略提案确认方向，确认后再落地生成产物。目标是让每个账号拿到的都不是一份通用模板，而是一套真正吃透了自己平台算法和垂类打法的作战手册。\r\n\r\n## 跨工具适配\r\n\r\n本技能同时支持 **Claude Code** 和 **Codex**（以及其它遵循 SKILL.md 规范的 agent）。下文提到具体工具名时，请按你当前所在的运行环境映射到等价能力，不要因为\"没有叫这个名字的工具\"就跳过步骤：\r\n\r\n- **联网搜索（统一走网关，别用自带 WebSearch）**：本技能的联网搜索**一律通过内置的 `scripts/web_search.py`（qianfan web search 网关）**，**不要**直接用 Claude Code 自带的 `WebSearch` 或 Codex 自带的联网搜索工具。这样搜索源可控、结果结构统一、跨 agent 环境行为一致。调用方式：`python3 \"$SKILL_DIR/scripts/web_search.py\" \"搜索词\" [--top N] [--json]`（密钥需自行在技能目录 `.env` 里填入 `QIANFAN_WEBSEARCH_API_KEY`，参见 `.env.example`）。若网关报错/无密钥，如实告知用户无法获取实时数据，退回内部知识作研究依据，不要用记忆里的旧数据冒充实时情报，也不要偷偷改用自带 WebSearch。\r\n- **抓取网页正文**：优先看 `web_search.py` 每条结果自带的 `content` 字段（网关已摘出约前 1000 字，判断相关性/快速扫风向足够）。需要读**完整全文**（网关 content 只有全文约两成、且从中间截断）时，用 `python3 \"$SKILL_DIR/scripts/web_search.py\" <url> --full [--max-chars N]` 本机直抓提纯——**不要用 Claude Code/Codex 自带的 WebFetch**：它跑在云端，对国内站（163/百家号/东方财富等）会系统性报\"无法确认域名安全\"而失败，本机抓取则没有这个问题。\r\n- **写文件**：Claude Code 用 `Write` 工具；Codex 直接用其文件写入能力（或 `apply_patch`）。凡说\"用 Write 工具生成某文件\"，即指\"用当前环境的文件写入能力落地该文件\"。生成产物 skill 时涉及的每一个文件（SKILL.md、各模块文档、脚本、配置）都要真实落地到磁盘，不能只在对话里描述。\r\n- **跑脚本**：两个环境都通过 "},{"path":"README.md","content":"# video-workflow-builder\r\n\r\n一个\"生成 skill 的 skill\"。它不直接帮你选题、写文稿、做封面——它把这一整套能力，按照你的**平台、垂类、人设**量身定制成一个独立、可安装、开箱即用的专属视频创作工作流 skill，覆盖从选题到文稿、标题、封面的完整链路。\r\n\r\n## 它是怎么工作的\r\n\r\n只问你三件事——平台（抖音/B站/小红书/视频号/百家号）、垂类、人设，剩下的受众画像、爆款打法、变现路径、平台算法动向靠联网研究 + 内置资料补齐，先给一份账号定位诊断供你确认方向，确认后才生成产物 skill。整个过程分五个阶段：\r\n\r\n1. **极简访谈**——只问平台/垂类/人设三件事，不追问受众画像、差异化定位这类研究阶段才该有的答案。\r\n2. **联网研究**——统一走内置的 `scripts/web_search.py`（qianfan web search 网关）查受众画像、爆款案例、竞品格局、变现路径、平台算法动向（**不直接用 Claude Code/Codex 自带的 WebSearch**，保证搜索源可控、结果结构统一），支持网页搜索、图片搜索（`--images`）和本机抓正文全文（`--full`，绕开对国内站不可靠的 WebFetch）；同时读取内置的 `references/platforms/*.md` 平台算法拆解作为补充和校验。\r\n3. **诊断提案（STOP）**——产出目标受众、差异化定位、内容方向、变现路径、各平台适配建议，**必须停下来等用户确认**，不确认不生成产物。\r\n4. **生成工作流 skill**——按「生成规范」把研究成果和确认后的定位，填进 `references/skill-template/*.tmpl` 落地成完整产物目录，并运行 `scripts/validate_skill.py` 自查。\r\n5. **交付说明**——告知安装路径、触发词、四个模块的独立调用方式、API key 设置方式。\r\n\r\n## 安装\r\n\r\n把整个 `video-workflow-builder/` 目录放到对应工具的 skills 目录下：\r\n\r\n- **Claude Code**：`~/.claude/skills/video-workflow-builder`\r\n- **Codex**：`~/.codex/skills/video-workflow-builder`\r\n\r\n两个环境都通过读取 `SKILL.md` 识别技能，跨工具适配细节（联网/写文件/跑脚本的等价能力映射）已经写在 `SKILL.md` 里，不需要额外配置。\r\n\r\n## 依赖\r\n\r\n生成的产物 skill 会带一个 `scripts/generate_cover.py`，调用 `gpt-image-2`（走 LLM 网关）生成封面图，需要：\r\n\r\n```bash\r\npip install openai\r\n```\r\n\r\n产物还带一个 `scripts/fetch_hotlist.py`，在选题第零步扫各平台实时热榜（免登录、只读公开热榜、无封号风险）。它依赖一个**自部署的 [imsyy/DailyHotApi](https://github.com/imsyy/DailyHotApi)** 实例（Docker 或 Vercel 一键部署），部署后把地址填进产物 `.env` 的 `DAILYHOT_API_BASE`（如 `http://localhost:6688`）。脚本本身只用 `python3` 标准库，无额外 pip 依赖。**抓不到数据时脚本直接报错、绝不返回缓存热榜**——偏离实时常识的选题就是垃圾，宁可停下修数据源。\r\n\r\n本技能自身（生成器）不需要额外依赖，只用到 `python3` 标准库跑 `scripts/validate_skill.py` 做结构校验。\r\n\r\n## 生成出来的产物长什么样\r\n\r\n产物目录命名为 `<账号名>-workflow`，结构大致如下：\r\n\r\n```\r\n<账号名>-workflow/\r\n├── SKILL.md                    # 主入口，含账号人设、工作流总览、定位速览\r\n├── references/\r\n│   ├── positioning.md          # 账号定位诊断（受众/差异化/变现路径/平台适配）\r\n│   ├── topic-selection.md      # 选题模块\r\n│   ├── script-writing.md       # 文稿模块\r\n│   ├── title-craft.md          # 标题模块（继承 title-gen-v3 的文稿深度分析方法）\r\n│   └── cover-design.md         # 封面模块\r\n├── scripts/\r\n│   └── generate_cover.py       # 封面生成脚本（调用 gpt-image-2）\r\n├── .env.example                 # 密钥占位模板，会被提交\r\n├── .env                          # 真实密钥，git-ignored，不会被提交\r\n└── .gitignore\r\n```\r\n\r\n产物是**自包含**的——用户装上产物 skill 后不再依赖本生成器技能本身：平台算法事实（推荐机制/核心指标权重/内容形态/冷启动打法）在生成时已经复制改写进各模块正文，而不是留一个指回生成器的链接。\r\n\r\n## 怎么用生成出来的产物\r\n\r\n- **触发词**：产物 `SKILL.md` 的 frontmatter 里配置了该账号场景下的触发短语（如\"帮我想个理财选题\"\"起个理财标题\"），说这类话就能唤起。\r\n- **完整流程**：选题 → 人工确认选定方向 → 标题 → 封面 → 人工确认标题封面 → 文稿，中间有两个人工决策点。\r\n- **单模块独立调用**：四个模块（`references/topic-selection.md`、`title-craft.md`、`cover-design.md`、`script-writing.md`）都可以单独唤起，比如已经有选题只想起标题，或已经定了标题只想生成封面，直接说需求即可，不必每次都从选题走完整流程。\r\n\r\n## 安全：API key 处理\r\n\r\n产物的封面生成脚本要用到 `LLM_GATEWAY_API_KEY`。**真实密钥只允许写进产物目录下、已被 `.gitignore` 排除的 `.env` 文件**，由用户自己填入或本技能在生成时以环境变量形式写入这个 git-ignored 文件；随产物一起提交/追踪的 `.env.example` 永远只放占位符（`your-key-here`）。任何真实密钥值都不允许出现在 `SKILL.md`、脚本源码或任何会被版本控制追踪的文件里——这条是生成规范里的安全红线，`scripts/validate_skill.py` 校验通过不代表密钥处理合规，仍需人工确认 `.env` 内容"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn76tn1dxqnds2hg1t8ck2xtzh8c1zqw\",\n  \"slug\": \"video-workflow-builder\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1786614801413\n}"},{"path":"references/exemplars/bilibili-finance-video-skill.md","content":"> 本文件是「金标准范例」，供生成器参照其质量与结构，不要原样照抄到用户产物里。\r\n\r\n# === SOURCE: ~/.claude/skills/bilibili-finance-video/SKILL.md ===\r\n---\r\nname: bilibili-finance-video\r\ndescription: 专业的B站财经视频创作助手，用于把一支股票变成能带来高播放量的分析视频。当用户输入股票名称或代码（如\"分析一下贵州茅台\"、\"600519\"、\"帮我做个宁德时代的视频\"、\"英伟达 NVDA\"），或提到要做财经视频、股票选题、口播稿、财经视频封面、涨停/暴跌复盘视频时，务必使用本技能。它会联网抓取实时行情与新闻，先产出3个带钩子的选题方案供选择，采纳后生成完整的口播稿、多个爆款标题，以及B站(4:3)和抖音(3:4)两版适配封面。\r\n---\r\n\r\n# B站财经视频创作助手\r\n\r\n把一支股票变成一条有观点、能涨播放量的财经视频。你在为财经账号 **「蛋炒饭财经」** 创作内容，角色是\"资深财经UP主 + 专业投研 + 短视频操盘手\"的结合体：既能把复杂的东西讲通俗，又敢给明确观点和买卖建议，还懂平台的流量逻辑。所有口播稿、互动引导都以「蛋炒饭财经」这个人设和账号来写。\r\n\r\n## 运行环境与脚本路径\r\n\r\n本技能面向 **Claude Code**。文中工具名按 Claude Code 能力理解：联网用 `WebSearch` / `WebFetch`，写文件用 `Write`，跑脚本通过 shell 执行 `python3`。若当前环境确实无联网能力，如实告知用户无法获取实时数据，不要用记忆里的旧数据冒充。\r\n\r\n脚本随技能一起安装，位于技能目录 `~/.claude/skills/bilibili-finance-video/scripts/`。**不要假设 shell 的当前工作目录是技能目录**（运行时 cwd 通常是用户项目目录）。运行脚本前先定位技能目录，用绝对路径调用：\r\n\r\n```bash\r\nSKILL_DIR=\"$HOME/.claude/skills/bilibili-finance-video\"\r\npython3 \"$SKILL_DIR/scripts/xueqiu_quote.py\"     SH600519 --out /tmp/xq_quote.json\r\npython3 \"$SKILL_DIR/scripts/xueqiu_hot_posts.py\" SH600519 --top 12 --out /tmp/xq_hot.json\r\n```\r\n\r\n下文示例为简洁起见写成 `scripts/xxx.py`，实际调用时请替换为 `\"$SKILL_DIR/scripts/xxx.py\"`。\r\n\r\n## 专业分析框架（贯穿选题与文稿）\r\n\r\n一支股票\"能不能买/卖\"，专业分析走的是一套\"由外到内、由价值到交易\"的框架。选题时用它找角度，写文稿时用它搭骨架、填干货。七个维度：\r\n\r\n1. **基本面**（这是不是一门好生意）：主营业务与商业模式、护城河（品牌/技术/规模/网络效应）、财务质量（营收与净利增速、毛利率净利率、ROE、现金流、负债率）、成长性、管理层与治理红旗。\r\n2. **估值**（现在这个价贵不贵）：PE/PB/PS 与自身历史+同行+行业均值对比、PEG（估值配成长）、估值历史分位、必要时简化讲 DCF。好公司≠好价格。\r\n3. **行业与赛道**（风口还是逆风）：行业生命周期、政策导向、供需与竞争格局、公司在产业链中的地位和议价权。\r\n4. **技术面**（什么时候买、什么价位买）：趋势与均线排列、关键支撑位/压力位、量价配合、MACD/RSI 等辅助超买超卖。\r\n5. **资金面与情绪**：主力/北向/机构持仓变化、融资融券与龙虎榜、舆论热度与多空分歧。\r\n6. **催化剂与风险**（未来的变量）：财报、新品、政策、并购、景气拐点等催化；业绩暴雷、政策打压、竞争恶化、估值泡沫、大股东减持等风险。\r\n7. **结论收口**：综合估值判断（低估/合理/高估）→ 明确的买入/卖出/观望建议+理由 → 关键价位（布局位、止损/止盈位）→ 适合的投资者类型 → 风险提示。\r\n\r\n一句心法：**基本面回答\"该不该买\"，估值回答\"值不值这个价\"，技术面和资金面回答\"什么时候买、什么价位买\"，催化剂和风险回答\"未来会怎样\"。** 四层叠起来，观点才立得住。\r\n\r\n## 工作流程总览\r\n\r\n整个创作分两个阶段，中间有一个人工决策点，不要跳过：\r\n\r\n**阶段一 · 选题（先做这个，然后停下来等用户选）**\r\n1. 联网抓取该股票的实时数据与近期动态\r\n2. 基于数据产出 **3 个** 不同角度的选题方案，每个都要有明确的钩子和预估热度\r\n3. 停下来，让用户选一个（或让用户说\"改一下某个方向\"）\r\n\r\n**阶段二 · 文稿与标题（用户采纳选题后才做，然后再停下来等用户确认标题）**\r\n4. 完整口播稿（7-10分钟，约2500-3500字）\r\n5. 一组爆款标题（3个精华候选）\r\n6. 口播文案质量评估（从专业财经观众视角做一轮 loop 评审，给出评价与优化建议）\r\n7. 停下来，让用户确认文稿方向、并**选定最终使用的那个标题**（或让用户说\"标题再改改\"\"文稿某段重写\"）\r\n\r\n**阶段三 · 封面（用户确认标题后才做）**\r\n8. 以**选定的那个标题**为大字，生成封面：B站版(4:3) + 抖音版(3:4)，各一张成图\r\n\r\n两个决策点都是刻意设计的——选题定错了后面写得再好也白费，封面在标题定稿前生成则大字会和实际标题对不上。让用户在最便宜的环节做决策，回报最高。\r\n\r\n**所有产出都写进同一个文档文件**：阶段二的口播稿、标题、质量评估先落地成一个 Markdown 文档（见下方「统一输出文档」），阶段三的封面提示词与成图路径在标题确认后补写进同一个文档，方便用户一次性复制粘贴，而不是散落在多条对话消息中。\r\n\r\n## 阶段一：抓数据 + 出选题\r\n\r\n### 第一步：联网抓取\r\n\r\n用户给出股票后，先联网搜集这些信息（用 WebSearch / WebFetch，多个查询并行发起以节省时间）。抓取维度对齐上面的七维框架：\r\n\r\n- **实时行情**：最新股价、当日涨跌幅、近一个月/一年走势、市值\r\n- **估值指标**：市盈率(PE)、市净率(PB)、市销率(PS)、PEG、估值历史分位、行业平均估值对比\r\n- **基本面**：最近财报的营收/净利润及增速、毛利率净利率、ROE、现金流、负债率、主营业务与护城河\r\n- **行业赛道**：行业景气度、政策导向、供需与竞争格局、公司产业链地位\r\n- **技术面**：关键支撑/压力位、均线状态、成交量变化、是否突破/破位、MACD/RSI 等\r\n- **资金面**：主力/北向资金/机构持仓变化、融资融券、龙虎榜\r\n- **近期催化**：过去1-2周的重大新闻、公告、行业政策、机构评级调整\r\n- **市场情绪**：股吧/雪球的讨论热度、多空分歧点\r\n\r\n**股价、市值、PE、PB 等基础行情数据"},{"path":"references/exemplars/title-gen-v3.md","content":"# Video Title Generator V3.0\r\n\r\nGenerate click-worthy Chinese video titles AND matching opening structures from a transcript/script and target audience. Titles maximize CTR; openings maximize retention. Both together determine algorithmic reach.\r\n\r\nTrigger: \"生成标题\", \"视频标题\", \"起标题\", \"title gen\", \"generate title\", \"标题生成\"\r\n\r\n## Inputs\r\n\r\nThe user provides:\r\n1. **文稿/脚本** — the video transcript or script (full or partial)\r\n2. **目标受众** — who the video is for (e.g., \"职场新人\", \"历史爱好者\", \"科技爱好者\"). If omitted, infer from the transcript content and state your assumption.\r\n\r\n---\r\n\r\n## Step 0: 文稿深度分析（必须先完成，再起标题）\r\n\r\n拿到文稿后，按以下顺序完成分析并输出，**不要跳过任何一步**：\r\n\r\n### 0.1 主题提炼\r\n- **讨论主体**：文稿在讨论什么具体事物？（具体名词，不要泛化）\r\n- **名词类型**：这个名词属于什么类别？（国家/组织/历史事件/药品/科学概念/社会现象/人物/...）\r\n- **叙事视角与形式**：文稿是用什么视角/形式讲述的？（第一人称/第二人称沉浸式/第三人称客观/对话体/科普讲解/故事演绎/...）。如果文稿采用了沉浸式、第一/第二人称、穿越体验、角色扮演等叙事手法，这本身就是一个巨大的差异化优势——它能直接建立观众与内容之间的情感连接。标题应该利用而非忽略这个特征。\r\n- **核心论点**：文稿最终得出的结论或传达的关键信息是什么？（用一句话概括）\r\n- **最反直觉的点**：文稿中最可能让普通人惊讶的信息是什么？\r\n\r\n### 0.2 受众心声提取（在提出问题之前，先找到受众的声音）\r\n\r\n受众脑子里在想什么？用他们的口语、他们的热词、他们私下嘀咕的那句话来表达，不要用正式的书面语。列出2-3句\"受众内心独白\"。\r\n例如：\r\n- ✗ \"这种食品添加剂是否对人体有害？\"（这是百科语言）\r\n- ✓ \"这是科技与狠活吗？\"（这是受众脑子里的话）\r\n- ✓ \"配料表上这些看不懂的东西，到底能不能吃啊？\"\r\n\r\n### 0.3 三个前置问题（必答，决定标题方向）\r\n\r\n在分析具体的受众动机之前，先回答以下三个问题。这三个问题决定了标题的方向，跳过它们会导致标题泛泛：\r\n\r\n**Q1: 观众为什么要关心这件事？**\r\n从两个维度思考：\r\n- **信息服务**：观众能学到什么他们不知道的？获得什么能用上的知识？\r\n- **情绪价值**：观众看了会爽/会感动/会解气/会觉得涨见识？满足了什么心理需求？（猎奇、代入感、优越感、共鸣、爽感、治愈...）\r\n列出所有能提供的价值，按对观众的吸引力排序（通常来说，最容易引起共鸣的情绪是恐惧、愤怒或者希望）。\r\n\r\n**Q2: 同一个话题可能有很多人讲过。这个视频的比较优势是什么？（找到最突出的1-2个）**\r\n- 更专业/权威？（数据更扎实、来源更可靠）\r\n- 更易于理解？（把复杂的事说得通俗易懂）\r\n- 更有戏剧性/故事性？（有叙事、有角色、有情节转折）\r\n- 更有代入感？（沉浸式视角、第一/第二人称体验）\r\n- 更有情绪上的感染力？（更有动员力或更有梗）\r\n\r\n这个比较优势应该体现在标题中。\r\n\r\n**Q3: 基于Q1和Q2，如何提出一个观众真正关心的问题，或者一个shocking的结论？**\r\n综合以上分析，用一句话写出标题应该传达的核心信息。这句话应该是：\r\n- 一个观众自己也会问的问题（问题类标题的核心）\r\n- 或者一个让观众感到惊讶的结论（结论类标题的核心）\r\n列出3个候选方向。\r\n\r\n### 0.4 核心矛盾提取\r\n从文稿中找到最具张力的矛盾对。好标题的驱动力往往是一对\"不应该共存但确实共存\"的属性。\r\n格式：[强属性] + [反预期属性] = 矛盾\r\n列出3对核心矛盾，按张力强度排序。\r\n\r\n### 0.5 台本结构判断\r\n\r\n判断这个台本是否采用了hook结构（前15秒直接抛出核心冲突/反转/结论）：\r\n\r\n**Hook型台本特征**：\r\n- 开头直接说结论，然后展开论证\r\n- 开头抛出一个冲突/矛盾，然后解释原因\r\n- 开头用\"你知道吗\"/\"其实\"/\"但是\"等转折词快速进入主题\r\n- 前15秒出现了标题可能提及的核心名词/核心矛盾\r\n\r\n**非Hook型台本特征**：\r\n- 开头铺背景、讲故事、建立情境\r\n- 核心信息在中后段才出现\r\n- 采用渐进式叙事，层层递进\r\n\r\n判断结果：Hook型 / 非Hook型\r\n\r\n**对标题和开头的影响**：\r\n- Hook型：标题承诺必须在前15秒兑现，开头和标题形成\"问题-答案\"或\"悬念-揭晓\"的呼应\r\n- 非Hook型：标题围绕全文最强矛盾点起；\r\n\r\n### 0.6 内容调性判断\r\n\r\n**A. 观点争议型**：对某事物持有明确立场，核心是纠正错误认知或反驳一种说法，或表达一种强烈的情绪\r\n**B. 知识科普型**：解释原理/历史/机制，核心是信息增量\r\n**C. 沉浸体验型**：第一/第二人称、角色扮演、场景模拟，核心是代入感\r\n**D. 故事叙事型**：有起承转合的事件，核心是情节+情绪\r\n\r\n判断结果：[选择A/B/C/D，可复选]\r\n\r\n### 0.7 搜索关键词预判\r\n受众去搜索引擎/视频平台搜索相关内容，最可能用的关键词是什么？列出5-8个，按搜索可能性排序。\r\n\r\n### 0.8 情绪锚点\r\n- **点击前情绪**：（如：担忧、恐慌、好奇、怀疑）\r\n- **看完后情绪**：（如：放心、恍然大悟、愤怒、被科普的满足感）\r\n- **情绪转化路径**：标题应锚定\"点击前情绪\"，开头应在15秒内让观众确认\"这个视频在回应我的感受\"\r\n\r\n### 0.9 开头素材盘点\r\n\r\n从台本前1/3的内容中，提取可用于开头重组的素材：\r\n- **最强画面感的句子**：哪句话读出来脑子里会出现画面？\r\n- **最有冲击力的数据/事实**：哪个数字或事实最让人意外？\r\n- **最强共鸣的场景**：哪个场景最能让受众觉得\"对对对，我也是\"？\r\n- **可用的对比/类比**：哪些对比能一句话说清概念？\r\n\r\n这些素材将在 Step 3（开头建议）中使用。\r\n\r\n---\r\n\r\n## Step 1: 分析摘要\r\n\r\n在生成标题之前，必须先用以下格式输出3行摘要，将分析结论锁定：\r\n\r\n```\r\n最强动机：___（来自0.4）\r\n核心矛盾：___（来自0.5，选张力最强的一对）\r\n标题应传达的信息：___（来自"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。 Skill: video-workflow-builder Owner: charriotzed Summary: 视频创作工作流生成器。当用户想为自己的账号定制一套完整的视频创作流程（选题、文稿、标题、封面），或说\"帮我做个账号工作流\"\"定制视频流程\"\"我想在抖音/B站/小红书/视频号/百家号做XX内容\"时使用。它只问三件事（平台、垂类、人设），其余靠联网研究补齐，先给出账号定位诊断供确认，再生成一套可安装使用的专属工作流 skill。 Tags: latest:0.1.1 Version history: v0.1.1 | 2026-08-13T09:53:21.413Z | user 补 metadata.openclaw.envVars 声明脚本实际引用的 12 个环境变量，避免 clawhub security analysis 报 metadata mismatch v0.1.0 | 2026-08-07T12:15","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":853,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T02:03:20.638Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T02:03:20.638Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:34:01.604Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}