بنقرة واحدة
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 在同一会话里渲染并回传文件,真正实现"研究 → 报告 → 交付"的端到端自动化。