🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

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" / "银...

Versionv0.9.7
Downloads568
TERMINAL
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:

  • Outline was an afterthought — agent ran out of attention budget
  • MD prompt constraints (8 sections, peer benchmarking, SOTP) got diluted by "also design 12 slides"
  • Impossible to iterate on MD quality without re-running the slide outline
  • Splitting lets each prompt focus:

  • This skill: pure research discipline — 8-section framework, data flags, 4C's credit view, specific [EST] tagging
  • banker-slides-pptx: pure visual design — structured layout schema the renderer can parse into real pptxgenjs tables/charts
  • Prompt 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 filename
  • Build the prompt via scripts/build_md_prompt.py.

    Framework enforced by the prompt

    1. Executive Summary (300-500 字)

  • 一句话核心观点 (thesis) + 3 supporting bullets
  • 授信 / 投资建议 (specific 额度 + 期限 + 利率 OR Buy/Hold/Sell + 目标价)
  • 1-2 关键风险
  • 2. Company Profile

  • 沿革 (成立 + 上市 + 经营期限)
  • 主业拆解 (industry field 展开到 sub-segments)
  • 股权与资本结构 (注册资本 + 股本 + 市值 + 法人)
  • 3. Industry Dynamics

  • 赛道特征 (cyclicality, tech shifts, policy drivers)
  • 中国位置 (份额估算, 以 [EST, per sector consensus] 标注)
  • 主要对手 3-5 家 (国内 + 海外, 每家标 [EST])
  • 政策驱动 (十四五 / 专项补贴 / 产业政策)
  • 4. Financial Deep-Dive (表格为主)

  • 3Y 年度对比表 (营收 / 净利 / ROE / 毛利率 / 资产负债率 + YoY)
  • 季度趋势 (YTD 累积 cumulative fields 展开)
  • 异常 flag (QoQ 跳变 > 5pp 必须点出)
  • 数据口径 flag (若 income 反推 vs company_performance 不一致, 必须指出)
  • 5. Peer Comparison

  • 3-5 家同业表 (公司 / 代码 / 市值 / PE / PB / ROE + 备注)
  • 每个 peer 数字必须[EST, per sector consensus][未核实]
  • 禁用 Wind / 同花顺 / 万得 / 彭博作为来源
  • 相对估值分位 (target PE vs peer median)
  • 6. Valuation

  • 当前 PE/PB/PS (from daily_basic)
  • 历史区间 (PB 历史 min-max, 是否破净)
  • SOTP 分部估值 (成熟业务 PB / 成长业务 PS 等)
  • 3 档目标价: 悲观 / 基础 / 乐观 + 假设 + 空间
  • 7. Risk Factors

  • 表格: 经营 / 财务 / 行业 / 治理 / 数据 5 类
  • 每项有量化依据 + 严重程度 (高 / 中 / 低)
  • 8. Credit / Investment View

    信贷口径 (4C's):
  • Character: 国资背景 / 实控人稳定 / 治理透明度
  • Capacity: 营收规模 + 偿债能力指标
  • Capital: 注册资本 + 净资产结构
  • Collateral: 抵押物 specialised 程度 + 清算折价
  • 具体授信建议: 额度区间 + 期限 + 利率 (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/*.json

    Build + 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

  • [ ] 8 sections all present (ES / Profile / Industry / Financial / Peer / Valuation / Risk / 4C's)
  • [ ] Every \d+(亿元|%|元|倍) in analysis.md has a provenance row (or [EST] tag)
  • [ ] Peer comparison has ≥3 companies, all tagged [EST, per sector consensus]
  • [ ] Valuation section has ≥2 methods (relative + SOTP or DCF) + 3 scenarios
  • [ ] Risk section is a table with severity levels (not a bullet list)
  • [ ] 4C's section gives a specific credit conclusion (额度 + 期限 + 利率 + 增信 + 财务承诺)
  • [ ] At least 1 > 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/*.json

    Build + 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