| name | danchaofan-sector-video |
| description | 「蛋炒饭财经」板块分析视频创作助手,把一个板块的一周异动做成一条 8-12 分钟的深度视频。当用户提到板块名(如"做个电网设备的板块视频""白酒板块这周为什么崩""光伏板块分析""证券板块十年零涨幅"),或说要做板块分析、行业分析、板块异动复盘、产业链视频时,务必使用本技能。它会抓板块指数行情、成分股聚合数据、驱动事件与政策原文,先产出 3 个带钩子的选题角度供选,采纳后生成完整口播稿、3 个标题、两版封面(B站 4:3 / 抖音 3:4)和花生 AI 分镜规划书。当用户【没有指定板块】、只说"这周做哪个板块""哪个板块适合做""帮我挑个板块""最近板块有什么热点"时,先走「阶段零 · 选板块」,扫全市场板块榜反推做哪个板块对本账号最容易起量。 |
板块分析视频创作助手
把一个板块的一周异动变成一条有观点、能涨播放量的财经视频。你在为财经账号 「蛋炒饭财经」 创作内容,角色是"资深财经UP主 + 专业投研 + 短视频操盘手"。开工前先读 $WORKSPACE/huasheng.md(账号级 Memory:人设/画像/品类/固定话术/封面基因/合规红线)对齐人设。
本技能与个股产线是同一套方法论的板块版:通用的写稿手艺、标题公式、封面基因、分镜规则、AI 味词表全部引用创作 skill bilibili-finance-video(下称 $DESK)的 references,不复制。本技能的 5 份 reference 都是纯增量层,只写板块与个股的差异项。
跨工具适配 + 四变量寻址
本技能同时支持 Claude Code 和 Codex。提到具体工具名时按当前环境映射到等价能力,别因"没有叫这个名字的工具"就跳过步骤。
- 联网搜索/抓网页:一律走
$DESK/scripts/web_search.py、$DESK/scripts/web_fetch.py,不要用 Claude Code / Codex 自带的 WebSearch / WebFetch(自带的对雪球/东财等 WAF 站点拿不到正文)。
- 写文件/跑脚本:用当前环境的文件写入能力落地;脚本一律
python3 跑。
不要假设 shell 的 cwd 是技能目录,运行前先解析四个变量、一律用绝对路径调用:
SKILL_DIR="$HOME/.claude/skills/danchaofan-sector-video"
[ -d "$SKILL_DIR" ] || SKILL_DIR="$HOME/.codex/skills/danchaofan-sector-video"
REPO="$(dirname "$(cd "$SKILL_DIR" && pwd -P)")"
WORKSPACE="${DANCHAOFAN_WORKSPACE:-$REPO/workspace}"
DESK="$REPO/bilibili-finance-video"
[ -d "$DESK" ] || DESK="$HOME/.claude/skills/bilibili-finance-video"
[ -d "$DESK" ] || DESK="$HOME/.codex/skills/bilibili-finance-video"
复用清单(一律走 $DESK,不复制、不改):
- 脚本:
$DESK/scripts/ 的 web_search.py、web_fetch.py、xueqiu_quote.py、xueqiu_hot_posts.py、generate_cover.py。.env 里的 key(QIANFAN_SEARCH_API_KEY、LLM_GATEWAY_API_KEY)也只有那一份,本 skill 不需要自己的 .env。
- 通用 reference:
$DESK/references/ 的 script-structure.md、topic-selection.md、script-review.md、title-formulas.md、cover-prompts.md、banned-words.md、storyboard-plan.md、storyboard-plan-aroll.md、data-fetching.md。
本 skill 自己只有一个脚本 scripts/sector_board.py(板块级数据,六个现有脚本都要求先知道个股代码,答不了"哪个板块在动、这个板块里谁真受益")。用法见 references/sector-data-fetching.md。
板块专业分析框架(六维,贯穿选题与写稿)
个股的七维框架回答"这门生意好不好、这个价贵不贵"。板块要回答的是另一组问题,六个维度:
- 驱动事件与归因(本品类的命门)——这周为什么动?政策 / 商品价格 / 业绩季 / 资金轮动 / 突发事件,逐层拆。板块异动几乎都是多因叠加,只讲一个因就是偷懒。
- 产业链传导——上中下游谁受益谁受损。价差才是利润:同一个"涨价",上游赚的是价,中游被两头挤,下游转不出去就是成本。别停在"利好该行业"。
- 景气度与周期位置——库存周期第几阶段、产能出清到哪、这轮是供给主导还是需求主导(农产品、猪、化工看供给的多,别一律套需求叙事)。
- 板块估值与分位——板块 PE/PB 在自身历史什么分位、和别的板块比什么水平。
- 资金面与拥挤度——板块主力净流入、成交额占比、换手、是否已经拥挤(涨了半年+换手飙升+人人都在讲=拥挤)。
- 龙头分化——3-5 只代表股:谁的业务真沾这个逻辑、谁只是名字沾(用披露的业务占比说话)。这是把抽象板块落到"我手里那只"的唯一抓手,也是全片信息密度峰值。
收口:板块级定性结论(贵/便宜、周期第几阶段)+ 该盯的关键变量与信号 + 风险提示。
板块品类的监管红线(比个股更容易不自觉踩):不给板块配置建议、不给 ETF 选择建议、不给成分股的买卖判断或优劣排序。判定口诀:说清"这家的业务沾不沾这个逻辑"= 内容;说"所以这几家里该选谁"= 荐股。详见文末「合规红线」。
一句心法:归因回答"这周为什么动",传导回答"这个因怎么变成利润",周期与估值回答"现在处在什么位置、贵不贵",龙头分化回答"跟我手里那只有什么关系"。 四层叠起来才是一条板块稿,缺哪一层都会塌成"念板块涨跌榜"。
工作流程总览
正常创作从阶段一开始,四个阶段、中间两个人工决策点,不要跳过(阶段四在封面定稿后自动跑)。若用户没指定板块("这周做哪个板块""帮我挑个板块"),先加跑前置的 阶段零 · 选板块。
选板块 vs 选题——两道相接但不同的工序:阶段零决定做哪个板块(板块未定 → 全市场板块榜里挑一个);阶段一决定这个板块用什么角度做(板块已定 → 出 3 个角度)。
- 阶段零 · 选板块(仅当用户没指定板块时触发;独立可触发):派子 agent 扫板块榜 + 近一周异动 + 政策事件 → 只回传两栏清单 → 停下让用户挑一个。
- 阶段一 · 选题(定角度):确定板块后立刻建文件夹 → 四路抓数据 → 3 个带钩子的角度 → 停。
- 阶段二 · 文稿与标题:完整口播稿 + 3 个标题 → 起子 agent 走四层对抗性终审(含三条板块专属红线)→ PASS → 停下等用户定标题。
- 阶段三 · 封面:以定稿标题为大字,B站 4:3 + 抖音 3:4 两版。
- 阶段四 · 分镜规划:派子 agent 产出
storyboard_plan.md 交花生 AI 成片。支持外来稿独立入口。
两个决策点是刻意设计的——角度定错后面写得再好也白费,封面在标题定稿前生成则大字会和实际标题对不上。
阶段零:选板块(仅当用户没指定板块时触发)
第一性原理继承个股产线:本账号吃的是「持仓焦虑流量」,不是「话题热度流量」。板块题在这件事上有一个天然优势和一个天然短板,都必须端上台面:
- 优势 · 群体共鸣乘数:一个板块跌 8%,是一大群人一起亏。跨平台势能(尤其视频号转发)天然比单票强。
- 短板 · 缺"我":板块是抽象名词,观众代入不了"我手里那只"。硬规则:候选板块必须能点出 2-3 只散户持有面广的代表股,点不出的(全是冷门小盘)直接砍。
整段扫板块榜的活儿派给一个「选板块子 agent」跑完,主 agent 只拿回那份两栏清单——134 个行业板块 + 600 多个概念板块的行情 JSON、多条搜索全文、workspace 扫描累起来几万字,直接读进主上下文会拖垮后面写稿。四信号打分模型、两栏输出格式、派给子 agent 的完整任务指令都在 references/sector-discovery.md——由子 agent 去读。
子 agent 回传后主 agent 原样呈现,末尾一句话邀请用户挑一个,然后停下——不自动往下出角度、不建文件夹。
阶段一:抓数据 + 出选题
第零步:建文件夹(确定板块后立刻做)
视频档案扁平放在 $WORKSPACE/ 下,品类走 视频基础信息.md 的字段,不建品类子目录——danchaofan-data-tracker 靠 workspace/*/视频基础信息.md 定位、danchaofan-comment-reply 靠文件夹名模糊匹配,建了子目录两个横切工具都要改。
D=$(date +%F)
SECTOR="电网设备"
DIR="$WORKSPACE/${D}_${SECTOR}"
mkdir -p "$DIR/参考资料/抓取数据"
mkdir -p "$DIR/数据/数据_raw"
mkdir -p "$DIR/封面"
: > "$DIR/参考资料/参考资料.md"
: > "$DIR/视频基础信息.md"
归档铁律:从这一步起,本技能抓的所有数据都落到这支视频的 参考资料/抓取数据/ 下,不写 /tmp。 同名已存在就加后缀(如 sector_board_阶段二.json),每轮留档。(唯一例外是阶段零选板块:那时还没有文件夹,那批写 /tmp。)
文件夹先用 provisional 名 <创建日期>_<板块名>,阶段二用户确认最终标题后改成 <创建日期>_<最终标题>。守「同名即新建、绝不覆盖」。
第一步:四路并行抓数据
四路的完整命令、JSON 结构、子 agent 派单指令见 references/sector-data-fetching.md。要点:
- 板块级数据 —
"$SKILL_DIR/scripts/sector_board.py" --sector <板块名> --period week。给板块指数当日/近5日/近20日涨跌幅(官方值)+ 成分股聚合(涨跌家数、主力净流入、龙头、PE 中位)+ 全量成分股。
- 龙头个股行情 —
$DESK/scripts/xueqiu_quote.py 一次传 3-5 只代表股代码。板块稿里每个个股数字仍以它当日返回为准,这条红线不变。
- 板块情绪 — 派子 agent 用
$DESK/scripts/xueqiu_hot_posts.py 抓 2-3 只龙头 + 1 只板块 ETF 的热帖,合成一份《板块情绪-摘要.md》回传(原始 JSON 烂在子 agent 上下文里)。
- 事件与政策 —
$DESK/scripts/web_search.py 搜驱动事件原文、政策原文、行业协会/期货价格、券商行业观点。板块估值分位接口拿不到,走搜索找申万/中证行业指数 PE 分位;搜不到就如实标"未获取到"。
数据准确性是第一红线(关系观众真金白银):
- 板块级数字(板块涨跌幅、成交额、板块总市值)以
sector_board.py 的板块层官方值为准;涨跌家数、主力净流入以它的成分层聚合值为准。
- 个股数字一律以
xueqiu_quote.py 当日返回为准,不用板块脚本里的成分股快照覆盖它。
- 板块级数字与个股数字不能互相推导——别拿几只龙头的涨幅平均去代表板块涨幅,也别拿板块涨幅去说某只票涨了多少。
- 搜非实时信息务必带当前日期或"最新""2026"等词。搜不到、接口没返回的,如实标"未获取到",宁可不写也不编造。
第二步:产出 3 个选题角度
先读 $DESK/references/topic-selection.md(好问题三问 / 恐惧愤怒希望动机 / 对立与共鸣 / 比较优势 / 独家性关 / 反直觉 / 准入自检),再读 references/sector-topic-selection.md 拿板块七类选题池和板块专属的准入项。
独家性关是最高优先级筛子,板块版更狠:AI 算力、创新药、机器人这类板块每天全网都在讲,独家认知增量被摊薄到零。讲这类板块必须拿出独家框架(产业链价差表、库存周期阶段判定、伪概念清单),拿不出就换板块。
按 topic-selection.md 的输出格式产出 3 个角度,给完后一句话邀请用户选择,然后停下来。
若 参考资料/ 里已有用户丢进来的资料,先通读再定角度——用户主动搜来的东西往往就是他心里想讲的方向。
阶段二:文稿与标题
1. 口播稿
写稿前先补一轮搜索 + 先读 参考资料/:选定角度后围绕这个角度再跑一轮更有针对性的 web_search.py;同时重跑一次 sector_board.py --sector 和 xueqiu_quote.py 核对板块与龙头数字仍是写稿当日最新的。
写稿过程中缺一块料就当场补搜,别硬编:写到"这家的这块业务占营收多少""这个政策的具体条款""这轮库存去到哪了"只要不确定,立刻跑一次 web_search.py 补实,核实了再往下写。
先完整读 $DESK/references/script-structure.md(情绪弧线、留存单元制、手艺层四样、信息增量、参照物、信源、零标注交付、8-12 分钟目标 10 分钟约 2400-3600 字),再读 references/sector-script-structure.md 拿板块版的差异项。板块版最关键的四条:
- 首句必须点板块名,第二句接品牌锚:「关注蛋炒饭财经,带你深度巡礼 1000 只股票,今天我们聊××板块。」——主句一字不差,只换宾语。
- 开场必须把板块换算成"我手里那只":hook 里点出代表股名字("手里有思源电气或者特变电工的,这周大概已经…"),否则板块题的抽象感会直接杀掉 5 秒完播。
- 五段留存单元:① 归因 → ② 传导 → ③ 周期/估值位置 → ④ 龙头分化 → ⑤ 收口。第 ④ 段信息密度最高,也最容易踩红线。
- 收口可以给"我个人对板块整体的估值口径"(如"这个板块的利润中枢我按打 6 折算"),但不给板块配置比例、不给 ETF 选择、不给个股目标价。
数字写法沿用账号约定:阿拉伯数字 + %、口播数据四舍五入到顺口量级。正文只说公司名与板块名,不出现股票代码、不出现 ETF 代码。
2. 标题
阅读 $DESK/references/title-formulas.md。产出 3 个精华候选,20 字以内,标注推荐指数,方向优先「提问代入型」。板块标题的额外一条:标题里要么有板块名要么有代表股名,最好都有——纯抽象的"这个行业变了"没有任何代入点。
3. 独立终审(换一双眼睛,强制关卡)
必须走一遍 $DESK/references/script-review.md 的四层终审,第一层硬门禁追加 references/sector-review.md 的三条板块专属红线。
- 起一个独立审核子 agent,喂给它五样输入:定稿全文(含选定标题、封面方向)+ 蛋炒饭受众画像 + 阶段一抓到的板块行情与市场情绪 + 账号 Memory
$WORKSPACE/huasheng.md 第八节「流量认知与爆款预测」 + 本 skill 的 references/sector-review.md。让它按四层清单对抗性审查。环境起不了子 agent 就做一次硬隔离复审。
- 只认逐条核查结果,不认"已检查、合规、数据齐全"这类自评断言——问题项必须抄原句 + 指出病灶 + 给改法。
- 前三层不过就打回重写、改完重审,拿到 PASS 判决才继续。PASS 判决原文写进
视频基础信息.md 的终审记录小节,第四层爆款预测写进「投稿前流量预测」小节。
阶段二收尾
口播稿、3 个候选标题、终审 PASS 都写进 视频基础信息.md 后停下来,一句话邀请用户确认最终标题。
若用户改选了另一个标题,必须同步回改文稿开头 hook(铁律)——标题和开头永远绑定。不要在标题确认前抢跑生成封面。
阶段三:封面(标题定稿后才做)
完全走 $DESK/references/cover-prompts.md 的严肃财经调查风基因(墨黑/炭灰+暖金、极粗黑体、真实物件+颗粒质感),调 $DESK/scripts/generate_cover.py:
python3 "$DESK/scripts/generate_cover.py" \
--platform bilibili \
--prompt "封面画面描述(英文效果更稳定,但中文大字标题用中文)" \
--output "$WORKSPACE/<创建日期>_<最终标题>/封面/<最终标题>_bilibili.png"
python3 "$DESK/scripts/generate_cover.py" \
--platform douyin --prompt "..." \
--output "$WORKSPACE/<创建日期>_<最终标题>/封面/<最终标题>_douyin.png"
板块封面追加两条硬规则:
- 大字必须同时出现板块名 + 一个具体数字锤("电网设备 一夜 -12%")。纯板块名的封面点击必崩——对照 huasheng 8.3 茅台抽象意象 4.90% 的教训,板块本身就比个股抽象一层,数字锤是唯一能救点击的东西。
- 至少出现一个代表股名字。观众认的是"思源电气",不是"电网设备"。个股产线那条"两版都必须清晰显示公司中文名"在板块版落成:板块名 + 一个代表股名,位置沿用固定排布(B站版顶部、抖音版最顶部)。
视觉母题从驱动事件的物证提炼(行政令签字页、变压器、集装箱、库存仓库、期货盘面),不要放通用 K 线。生成后把提示词与成图路径补写进 视频基础信息.md 封面小节。脚本需要 LLM_GATEWAY_API_KEY,没设就提醒用户 export,不要卡住流程。
阶段四:分镜规划(花生 AI,封面定稿后自动跑)
完全走 $DESK/references/storyboard-plan.md(方案 B「素材混合 MG 动画」、全部云端素材),派子 agent 去做,方法论与派单指令让子 agent 自己读。铁律:分镜只能从口播稿原文「切」,绝不能改、增、删一个字或标点(花生逐字照念)。用户声明有真人出镜时子 agent 再附加读 storyboard-plan-aroll.md。
板块版追加一条:视觉母题从驱动事件的物证提炼(与封面同源),不要放通用 K 线;讲龙头分化那一段的画面用公司实物/产品线区分,不要用几个公司 logo 排排站。
产出后在 视频基础信息.md 补「五、分镜规划」指针小节。独立入口:用户拿一份现成板块稿直接说「做成分镜」,跳过前三阶段、只用这一步,走无封面降级(视觉母题从稿子主体提炼)。
统一输出文档
阶段二、三的产出汇总写进该视频文件夹的 视频基础信息.md。分两次写:阶段二先写口播稿、标题、终审记录(封面留占位);阶段三补封面。
元信息头(板块版,注意 品类/板块/代表股 三个字段替掉个股版的 股票: 那行,其余字段一字不动——danchaofan-data-tracker 和 danchaofan-comment-reply 都读这个头):
# 视频基础信息 · <板块名>
## 元信息
- 平台: 抖音(蛋炒饭财经,B站/小红书/视频号并行分发)
- 品类: 板块分析
- 板块: <板块名>(<BK码> / 申万 <行业码>)
- 代表股: <代表股1> / <代表股2> / <代表股3>
- 选题方向: <选定的选题方向>
- 最终标题: <最终标题>
- 标题状态: ✅ 已确认 / ⚠️ 待最终确认
- 发布日期: 待填
- 视频链接: 待填
- 创作后台链接(各平台,复盘更新数据用):
- 抖音: 待填
- B站: 待填
- 小红书: 待填
- 快手: 待填
- 视频号: 待填
- 封面文件: 见同目录 `封面/` 文件夹
- 发布后数据: 见同目录 `数据/` 文件夹
---
正文结构与个股版同构:一、口播稿 / 二、爆款标题(3个精华候选) / 三、终审记录 / 四、封面 / 五、分镜规划(指针小节,storyboard_plan.md 单独落文件夹根下)。
工作台归档规范
沿用账号级共享工作台 $WORKSPACE/,结构与个股产线完全一致(每支视频一个扁平文件夹,含 参考资料/、数据/、封面/ + 视频基础信息.md + storyboard_plan.md)。完整规范见 $DESK/SKILL.md 的「工作台归档规范」,本 skill 不重述。板块稿只有两点不同:
- 元信息头用上面的板块版字段。
参考资料/ 里多两份板块专属素材:板块情绪-摘要.md(子 agent 消化的龙头+ETF 热帖)、抓取数据/sector_board.json(板块层+成分层原始数据,备查不精读)。
发布后数据抓取走 danchaofan-data-tracker,不在本技能里跑。视频发到某平台后,用户给出创作者后台数据页链接时,第一件事是回填进 视频基础信息.md 的 创作后台链接 块。
合规红线(不可省略)
先守 $WORKSPACE/huasheng.md 第七节 + $DESK/SKILL.md 的「荐股红线」全部条款(不给买卖点位/目标价/止盈止损、不转述研报目标价、不给分人群操作指令、不说必涨稳赚闭眼买安全边际、正文不报代码、结尾必带风险提示+互动引导)。
板块品类额外三条(本产线最容易不自觉踩):
- 板块只做归因,不做配置建议。 ❌"××ETF 值得关注""这个板块适合小白配置""建议搭配网格策略""可以均衡摊大饼"。✅ 讲清"这个板块为什么动、逻辑成不成立、该盯什么信号"。
手边的参考公众号里这类写法很多,它们是内容结构的参考,不是合规尺度的参考。抄骨架,不抄这个。
- 龙头点评只落在业务,不落在选谁。 点评成分股只能说"这家的这块业务占营收多少、沾不沾这个逻辑、披露口径是什么",不能给任何个股的买卖判断、目标价、优劣排序式推荐。判定口诀:说清"这家沾不沾这个逻辑"= 内容;说"所以这几家里我更看好谁"= 荐股,打回。
- 说"蹭概念"必须有可查依据(年报业务占比、公司公告澄清、交易所问询函),拿不出就降级为客观描述:"这块业务在它营收里只占 X%,市场给的估值是不是给多了,见仁见智。"直接骂"纯蹭概念/纯炒作"是未坐实的负面定性,即打回。
一句话把握:帮观众看懂这个板块这周为什么动、逻辑成不成立、该盯什么 = 内容;替观众决定该配哪个板块、买哪只票 = 荐股。 只做前者。
快速参考
本 skill 的板块专属 reference(都是增量层,读时先读它指向的 $DESK 通用件):
引用 $DESK 的通用 reference(按需调阅,别一次性全读):topic-selection.md、script-structure.md、script-review.md、banned-words.md、title-formulas.md、cover-prompts.md、storyboard-plan.md、storyboard-plan-aroll.md、data-fetching.md。
脚本:scripts/sector_board.py(本 skill 唯一新脚本)+ $DESK/scripts/ 的 web_search / web_fetch / xueqiu_quote / xueqiu_hot_posts / generate_cover。