Install
openclaw skills install @jackdark425/banker-memo-mdProduce 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.
openclaw skills install @jackdark425/banker-memo-mdStep 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.
┌────────────────────┐ ┌──────────────────┐ ┌────────────────────┐
│ 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 │
└────────────────────┘ └──────────────────┘ └────────────────────┘
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/chartsCanonical 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.
[EST, per sector consensus] 或 [未核实]信贷口径 (4C's):
具体授信建议: 额度区间 + 期限 + 利率 (LPR+bp) + 增信要求 + 财务承诺
投资口径: Buy / Hold / Sell + 目标价 + 催化剂 + 反向风险
X 亿元(src: income) 或 Y%(src: company_performance)source_authenticity_check gate 会拦截[EST] + 推理依据+3.18pp 不要 % (避开 HARD_NUMBER 误判)[EST, per sector consensus] — 永远不能挂一个权威名称> Data Flag N: 提示需要人工核实Writes only two files to {out_dir}/:
analysis.md — 2500-4500 字 8 节 memodata-provenance.md — 每个硬数字一行: | 指标 | 数值 | 单位 | 来源文件 stem | MCP tool |Not slides-outline.md — that's the banker-slides-pptx skill's job.
# Pre-flight: raw-data/ already populated by cn-client-investigation Phase 3.5
ls <deliverable_dir>/raw-data/*.json
# Build + dispatch prompt
python3 scripts/build_md_prompt.py <ts_code> <name_cn> <industry> \
<raw_dir> <out_dir> > /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 <cn-ci-scripts>/sync_provenance.py <out_dir>
# Now hand off to banker-slides-pptx for Step 2
\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