Banker Memo Md
by @jackdark425
Produce an investment-banker-grade research memo (analysis.md + data-provenance.md) from CN raw-data/ JSON snapshots. Use when the user asks for "投行 md" / "银...
clawhub install banker-memo-md📖 About This Skill
name: banker-memo-md description: Produce an investment-banker-grade research memo (analysis.md + data-provenance.md) from CN raw-data/ JSON snapshots. Use when the user asks for "投行 md" / "银行家级分析 md" / "banker memo markdown" on an A-share, H-share, or non-listed CN company that has raw-data/ populated by cn-client-investigation Phase 3.5. This is STEP 1 of 2 in the banker pipeline — pair with banker-slides-pptx for the deck.
Banker Memo (MD)
Step 1 of the banker pipeline: raw-data/ → analysis.md + data-provenance.md.
This skill is the prompt that drives the agent to write a banker-grade research memo. It does not generate slides or run gates — those belong to banker-slides-pptx and validate-delivery.py respectively.
Pipeline position
┌────────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ Phase 3.5 raw-data│ ──▶ │ banker-memo-md │ ──▶ │ banker-slides-pptx │
│ (cn-client-inv.) │ │ (THIS SKILL) │ │ (step 2) │
│ → raw-data/*.json │ │ → analysis.md │ │ → slides-outline │
│ │ │ → provenance.md │ │ → .pptx │
└────────────────────┘ └──────────────────┘ └────────────────────┘
Why split from the deck skill
Earlier banker-memo bundled both MD + outline generation in one prompt. Problems:
Splitting lets each prompt focus:
banker-slides-pptx: pure visual design — structured layout schema the renderer can parse into real pptxgenjs tables/chartsPrompt template
Canonical prompt at references/banker_memo_md_prompt.md. Placeholders:
{ts_code}, {name_cn}, {industry} — target identifiers{raw_dir} — path to raw-data/ holding MCP JSON snapshots{out_dir} — where to write analysis.md + data-provenance.md{file_list} — auto-discovered raw-data files{uscc} — unified social credit code from PrimeMatrix filenameBuild the prompt via scripts/build_md_prompt.py.
Framework enforced by the prompt
1. Executive Summary (300-500 字)
2. Company Profile
3. Industry Dynamics
4. Financial Deep-Dive (表格为主)
5. Peer Comparison
[EST, per sector consensus] 或 [未核实]6. Valuation
7. Risk Factors
8. Credit / Investment View
信贷口径 (4C's):具体授信建议: 额度区间 + 期限 + 利率 (LPR+bp) + 增信要求 + 财务承诺
投资口径: Buy / Hold / Sell + 目标价 + 催化剂 + 反向风险
Hard constraints (enforced by prompt, checked by gates)
1. 每个硬数字必须溯源: X 亿元(src: income) 或 Y%(src: company_performance)
2. 禁用 Wind / 万得 / 同花顺 / Bloomberg / 彭博 — 这些不是安装的 MCP, source_authenticity_check gate 会拦截
3. 不写模糊数字 — "约 XX 亿" / "大约" 必须加 [EST] + 推理依据
4. Q4 单季变化用 pp 单位 — +3.18pp 不要 % (避开 HARD_NUMBER 误判)
5. Peer 数字必须标 [EST, per sector consensus] — 永远不能挂一个权威名称
6. Data Flag 自审 — 若发现 income 反推 vs company_performance 净利率差异 > 0.3pp, 必须单独一段 > Data Flag N: 提示需要人工核实
Output files
Writes only two files to {out_dir}/:
1. analysis.md — 2500-4500 字 8 节 memo
2. data-provenance.md — 每个硬数字一行: | 指标 | 数值 | 单位 | 来源文件 stem | MCP tool |
Not slides-outline.md — that's the banker-slides-pptx skill's job.
Usage
# Pre-flight: raw-data/ already populated by cn-client-investigation Phase 3.5
ls /raw-data/*.jsonBuild + dispatch prompt
python3 scripts/build_md_prompt.py \
> /tmp/prompt.md
openclaw agent --agent main --thinking high --json --timeout 600 \
--message "$(cat /tmp/prompt.md)"Agent writes analysis.md + data-provenance.md
Close any discipline gaps (agent's own provenance table sometimes misses
numbers it wrote into prose; this post-process bridges the last mile)
python3 /sync_provenance.py Now hand off to banker-slides-pptx for Step 2
Quality checklist
\d+(亿元|%|元|倍) in analysis.md has a provenance row (or [EST] tag)[EST, per sector consensus]> Data Flag N: self-audit paragraph (if income vs company_performance diverge)provenance_verify.py PASS + source_authenticity_check.py PASS💡 Examples
# Pre-flight: raw-data/ already populated by cn-client-investigation Phase 3.5
ls /raw-data/*.jsonBuild + dispatch prompt
python3 scripts/build_md_prompt.py \
> /tmp/prompt.md
openclaw agent --agent main --thinking high --json --timeout 600 \
--message "$(cat /tmp/prompt.md)"Agent writes analysis.md + data-provenance.md
Close any discipline gaps (agent's own provenance table sometimes misses
numbers it wrote into prose; this post-process bridges the last mile)
python3 /sync_provenance.py Now hand off to banker-slides-pptx for Step 2