一键导入
chain-report
产业链研究第 5 段 · 研报骨架。把 4 段累积的输出,组织成可读的研报。激活时机:chain-analysis 输出 analysis.md 后。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
产业链研究第 5 段 · 研报骨架。把 4 段累积的输出,组织成可读的研报。激活时机:chain-analysis 输出 analysis.md 后。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
产业链深度研究 9 段对齐 skill(2026-07-06 v4.1:在 8+1 之前加 chain-radar 行业雷达)。 基于「齐码.SKILL」Design-by-Contract 思想 + harrischen/invest 多因子评分 + zhangmusinb/gushifenxi 深度研究方法,形成「周期 × 缺口 × 政策」三角定位法。 每段输入=上段产物,实现"结论=证据"的全链路对齐。 包含三层价值量(成本/利润/瓶颈)、三类缺口(瓶颈/增量/国产替代/新需求)、 反证条件、跟踪指标。聚焦 A 股 + 港股 + 美股产业链投研。
产业链研究第 4 段 · 三层价值量深挖。对 breakdown 选出的 Top 3 环节做深度分析。激活时机:chain-breakdown 输出 breakdown.md 后。
产业链研究第 3 段 · 瓶颈/增量识别。从 data.md 拆出"哪些环节值得研究"。激活时机:chain-data 输出 data.md 后。
产业链研究 chip-design 子段 · 深度工艺路线分析。聚焦半导体/光芯片/光模块等需要工艺拆解的产业链,从制程角度分析国产替代窗口、瓶颈环节、技术代际差距。激活时机:研究含芯片/晶圆/光芯片/光模块/化合物半导体的产业链时,在 chain-data 之后、chain-breakdown 之前调用。
产业链研究第 4 段(可选)· 产业周期判断。强周期行业(农业/化工/半导体/钢铁/煤炭/航运/航运)必跑,其他行业可选。借鉴 Maslow 周期 + 库存周期 + 资本开支周期 + 情绪周期方法论。激活时机:chain-breakdown 输出后,在 chain-analysis 之前。
产业链研究第 2 段 · 数据采集。把 idea.md 的 11 词过滤表,变成上中下游 + 三层价值量数据。激活时机:chain-idea 输出 idea.md 后,或在用户要求"补产业链数据"时。
| name | chain-report |
| description | 产业链研究第 5 段 · 研报骨架。把 4 段累积的输出,组织成可读的研报。激活时机:chain-analysis 输出 analysis.md 后。 |
完整的 报告渲染 段契约。Claude/Codex 调用本段时,只需读这一节。
08_stockmap.md01-08 全部产物final_report.md(完整报告)final_report.svg(可选,产业链图)灵感:大刘《齐码.SKILL》vibe-prototype 段 产物:
report.md(研报初稿) + 可选report.html/report.docx(排版版) 输入:前面 4 段的全部产物 输出:研报骨架,等待 chain-verify 校验
把"立项卡片 + 数据卡 + 拆分卡 + 分析卡"组装成一篇可读的研报。
不是堆数据,而是用结构化叙事让人愿意读完。
一篇产业链研报,标准骨架:
1. 开场 · 30 秒抓住人
"过去 3 年 XX 行业最值得关注的变化是 X,本文将回答 3 个问题:Y/Z/W"
↓
2. 拆链 · 上中下游怎么切
"我们将这条链拆为 3 个环节,本节给整体框架"
↓
3. 聚焦 · Top 3 环节深挖
"3 个环节中,真正吸金的是 A,我们用三层价值量解剖它"
↓
4. 验证 · 供需与传导
"看供需缺口 + 跨环节传导,验证我们的判断"
↓
5. 结论 · 给读者可行动的话
"如果你是 X,你应该 Y;如果 Z 数据出现,请重新评估"
研报中每个 11 词,至少出现一次(作为小标题或重点标注):
| 词 | 研报中的位置 |
|---|---|
| navigate | 第 2 段 · 下游主战场 |
| modal | 第 3 段 · 最大风险点 |
| confirm | 第 4 段 · 增量来源 |
| drawer | 第 3 段 · 隐藏成本 |
| popover | 第 3 段 · 差异化卖点 |
| bottomsheet | 第 4 段 · 底部反转 |
| toast | 第 5 段 · 短期跟踪 |
| inline-expand | 第 3 段 · 价值量分布 |
| inline-edit | 第 3 段 · 成本变化 |
| newtab | 第 4 段 · 跨行业新需求 |
| download | 附录 · 数据来源 |
每张表格的每一行,都必须标"数据状态"——这是研究的诚实度底线:
| 数据状态 | 含义 | 何时用 |
|---|---|---|
| 已核验 | 来自公司公告/年报/招股书/官方数据 | 当作事实使用 |
| 估算 | 基于公开数据的推算,需进一步核验 | 注明估算方法 + 来源 |
| 市场预期 | 来自券商研报/媒体,尚未兑现 | 标注"市场预期口径" |
| 待查证 | 没有可靠来源 | 明确写"待查证" |
信息来源优先级(借鉴 gushifenxi):
输入: idea.md + data.md + breakdown.md + analysis.md
↓
[Step 1: 提取核心结论]
从 analysis.md 提取 Top 3 环节的"价值量定位"
↓
[Step 2: 5 段叙事组装]
按 5 段叙事模板组装
↓
[Step 3: 数据回填]
把 data.md 中的关键数字,填到对应段落(标注来源)
↓
[Step 4: 反证条件前置]
在每段结论后,挂上反证条件
↓
[Step 5: 排版版本生成]
report.md → report.html / report.docx
↓
[Step 6: 输出到 chain-verify]
# [项目名] · 产业链研究报告
> 立项:idea.md | 数据:data.md | 拆分:breakdown.md | 分析:analysis.md
> 报告生成:YYYY-MM-DD | 报告版本:v0.1(待 verify)
---
## 摘要
[3 段,每段 50 字]
- 一句话定义研究边界
- 3 个核心结论(每个 Top 1 环节一句)
- 1 个最大风险点
---
## 1. 开场 · 为什么研究这个
### 1.1 3 个具体问题
1. [问题 1 — 来自 idea.md § 1.3]
2. [问题 2]
3. [问题 3]
### 1.2 我们的回答
1. ...
2. ...
3. ...
---
## 2. 拆链 · 整体框架
### 2.1 上中下游全景
[图 + 表,来自 data.md § 1]
### 2.2 三层价值量总览
[图,来自 analysis.md 全部环节的"价值量定位"]
---
## 3. 聚焦 · Top 3 环节深挖
### 3.1 环节 A · [环节名](价值集聚/壁垒/颠覆)
#### 3.1.1 成本层
[来自 analysis § 1.1]
#### 3.1.2 利润层
[来自 analysis § 1.2]
#### 3.1.3 瓶颈层
[来自 analysis § 1.3]
#### 3.1.4 差异化卖点(popover)
[具体数据,来自 analysis § 1.2]
#### 3.1.5 隐藏成本(drawer)
[具体数据,来自 analysis § 1.1]
#### 3.1.6 成本变化(inline-edit)
[3 年变化,来自 analysis § 1.1]
#### 3.1.7 价值量分布(inline-expand)
[百分比分布,来自 analysis § 1.5]
### 3.2 环节 B
(同上结构)
### 3.3 环节 C
(同上结构)
---
## 4. 验证 · 供需与传导
### 4.1 供需验证
[来自 analysis § 1.4,Top 3 环节逐个]
### 4.2 跨环节传导
[来自 analysis 末节]
### 4.3 增量来源(confirm)
[已确认/可能/未知 — 来自 data.md § 11 词]
### 4.4 底部反转信号(bottomsheet)
[具体信号 + 历史可重复性]
---
## 5. 结论 · 可行动的话
### 5.1 给三类读者的建议
- 给投资者:[具体动作]
- 给从业者:[具体动作]
- 给研究者:[待继续研究的问题]
### 5.2 短期跟踪事件(toast)
[3 个近期需要关注的事件/数据点]
### 5.3 跨行业新需求(newtab)
[新的需求场景,具体体量]
---
## 附录 A · 数据来源(download)
[来自 data.md § 11 词 download]
## 附录 B · 反证条件汇总
[从 breakdown + analysis 汇总所有反证条件]
## 附录 C · 术语表
[专业术语解释]
---
> 待 chain-verify 校验 · 进入核销清单
# Markdown → HTML
python -m markdown report.md > report.html
# Markdown → DOCX
pandoc report.md -o report.docx
# 自定义主题(参考 weekly-review-style)
# 主题:极简 / 学术 / 投资风
这是 chain-report 段的最后一步 — 让用户用交互卡选择 HTML / DOCX 输出格式。
传统研究报告输出痛点:
| 场景 | 痛点 | 本 skill 解法 |
|---|---|---|
| 微信/飞书转发 | Word 格式在手机上排版混乱 | HTML 单文件 + 内嵌 CSS(自适应) |
| 邮件正式投递 | HTML 在 Outlook/邮箱客户端支持差 | DOCX(pandoc 生成) |
| 打印 / 归档 | HTML 不适合打印 | DOCX |
| 屏幕阅读 | DOCX 在飞书卡片里只显示文件名 | HTML 渲染卡 |
[Step 5: report.md 已生成]
↓
[Step 6: 构造格式选择卡]
运行:python3 scripts/send_format_card.py <chat_id> <report.md> <名称>
↓
[Step 7: lark-cli 发送选择卡到当前 chat]
cat <card.json> | lark-cli im send-card --chat-id <id> --card -
↓
[Step 8: 等待用户点击]
用户点 HTML → 收到 [card-click] {format: "html", ...}
用户点 DOCX → 收到 [card-click] {format: "docx", ...}
↓
[Step 9: Claude 根据 format 执行渲染]
format=html → python3 scripts/render_report.py <md> <out.html> html
format=docx → python3 scripts/render_report.py <md> <out.docx> docx
↓
[Step 10: 把生成的文件回传给用户]
HTML:作为飞书文件消息发送(用户可点击预览 + 下载)
DOCX:作为飞书文件消息发送
{
"schema": "2.0",
"header": {
"title": {"tag": "plain_text", "content": "📄 报告生成 · <报告名>"},
"template": "blue"
},
"body": {
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": "**报告文件**:`<path>`\n**报告大小**:X KB\n\n请选择输出格式:"
}
},
{"tag": "hr"},
{
"tag": "action",
"actions": [
{
"tag": "button",
"text": {"tag": "plain_text", "content": "📄 生成 HTML(推荐 · 易读可转发)"},
"type": "primary",
"value": {
"__bridge_cb": true,
"bridge_token": "<SIGNED_TOKEN>",
"format": "html",
"report_path": "<path>",
"report_name": "<name>",
"chat_id": "<chat_id>",
"action": "render_report"
}
},
{
"tag": "button",
"text": {"tag": "plain_text", "content": "📝 生成 Word(DOCX · 适合正式投递)"},
"type": "default",
"value": {
"__bridge_cb": true,
"bridge_token": "<SIGNED_TOKEN>",
"format": "docx",
"report_path": "<path>",
"report_name": "<name>",
"chat_id": "<chat_id>",
"action": "render_report"
}
}
]
},
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": "💡 **HTML**:单文件 + 内嵌 CSS,微信/飞书/邮件直接转发\n💡 **DOCX**:pandoc 生成,适合打印或正式邮件附件"
}
}
]
}
}
[card-click] 回调的标准动作# 收到类似:[card-click] {"format": "html", "report_path": "/tmp/.../report.md", ...}
# 1. 校验 bridge_token(由 bridge 自动完成)
# 2. 提取 format / report_path / report_name / chat_id
# 3. 调用 render_report.py
import subprocess
report_name = data["report_name"]
fmt = data["format"] # html / docx
output_ext = "html" if fmt == "html" else "docx"
output_path = f"/tmp/{report_name}.{output_ext}"
result = subprocess.run([
"python3",
"/home/ivanyinjc/.claude/skills/industry-chain-research/chain-report/scripts/render_report.py",
data["report_path"],
output_path,
fmt
], capture_output=True, text=True)
# 4. 把生成的文件用 lark-cli im upload 发送回 chat
# lark-cli im upload --chat-id <id> --file <output_path>
# 然后回复用户:"✅ HTML 报告已生成(11.7 KB),点击查看"
**已核验** → 绿色徽章 / **估算** → 黄色徽章 / **待查证** → 红色徽章--reference-doc=reference.docx 自定义 Word 样式# 1. 生成格式选择卡 JSON
python3 scripts/send_format_card.py <chat_id> <report.md> "报告名"
# 2. 用 lark-cli 发送卡片
cat <card.json> | lark-cli im send-card --chat-id <chat_id> --card -
# 3. 收到 [card-click] 后渲染
python3 scripts/render_report.py <report.md> <output.html> html
# 或
python3 scripts/render_report.py <report.md> <output.docx> docx
# 4. 把文件回传给用户
lark-cli im upload --chat-id <chat_id> --file <output.html>
chain-idea → idea.md (118 行 · 三问法 + 11 词 + 四度评分 30/40)
↓
chain-data → data.md (132 行 · 上中下游 24 家公司)
↓
chain-breakdown → breakdown.md (95 行 · 4 维评分 + Top 4 环节)
↓
chain-cycle → cycle.md (157 行 · 政策+出海+技术+资金 四周期叠加 + 6 RC)
↓
chain-analysis → analysis.md (304 行 · Top 4 三层价值量深挖)
↓
chain-report → report.md (75 行 · 5 段叙事 + 数据状态分层)
↓ ↓
[格式选择卡] ← ★ 本段新增 v3
/ \
↓ ↓
HTML(11.7 KB) DOCX(pandoc)
↓ ↓
└──────┬───────┘
↓
chain-verify → verify.md (135 行 · 5 类核销 + 月度跟踪)
↓
chain-stockmap → stockmap.md (299 行 · 13 只 A 股全核验)
新增闭环:在 chain-report 末尾,用户用交互卡选择格式,Claude 在同一会话里渲染并回传文件,真正实现"研究 → 报告 → 交付"的端到端自动化。