Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Banker Memo

v0.9.6

Generate an investment-banker-grade research memo (analysis.md + slides-outline.md + data-provenance.md) from CN raw-data/ snapshots. Use when the user asks...

0· 105·0 current·0 all-time
byjackdark@jackdark425

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for jackdark425/banker-memo.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Banker Memo" (jackdark425/banker-memo) from ClawHub.
Skill page: https://clawhub.ai/jackdark425/banker-memo
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install banker-memo

ClawHub CLI

Package manager switcher

npx clawhub@latest install banker-memo
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The skill claims to produce numerically-traceable banker memos from raw-data/*.json snapshots. That purpose legitimately needs access to the raw JSON contents and the validation/build tools referenced. However the declared requirements list no binaries, env vars, or config paths, yet the README and runtime steps expect external tools (openclaw agent CLI, validate-delivery.py, build_deck.py and the cn-client-investigation pipeline). The lack of declared dependencies is disproportionate to the stated purpose.
!
Instruction Scope
SKILL.md and the prompt template repeatedly state the agent must base every hard number on the raw-data files. But the provided helper script only enumerates filenames (file_list) and does not embed or pass raw JSON contents into the prompt; the dispatch step runs `openclaw agent --message "$(cat prompt.md)"`, which would only supply the prompt text. Unless the runtime agent/CLI has filesystem access to {raw_dir} (not declared), the agent will not actually see the JSON and may invent numeric provenance. The instructions also reference external validation and build scripts (validate-delivery.py, build_deck.py) without packaging or declaring them.
Install Mechanism
The skill is instruction-only with one helper script — no install spec is present, which lowers risk. However because it requires running external scripts/CLI tools at runtime (openclaw agent, validate-delivery.py, build_deck.py) there is an undeclared installation/runtime dependency surface that deployers must satisfy.
Credentials
The skill declares no environment variables, credentials, or config paths. That is appropriate for its stated purpose. The script reads local filesystem paths (raw-data/*.json) which is expected. There is no request for unrelated secrets or remote tokens in the manifest.
Persistence & Privilege
always:false and no requests to modify other skills or global agent configuration. The skill does invoke autonomous agent workflows by design (normal for skills), but it does not request elevated persistence privileges.
What to consider before installing
This skill intends to produce provenance-backed banker memos, but the provided prompt-builder only lists filenames rather than embedding raw JSON content. Before installing/using it, verify the following: (1) Confirm how the agent will access the actual raw-data JSON (is the openclaw agent invocation able to read {raw_dir} on disk, or must you embed file contents in the prompt?). If the agent cannot access the files, it may fabricate numbers and provenance. (2) Ensure the runtime environment supplies the undeclared tools referenced (openclaw CLI, validate-delivery.py, build_deck.py and the cn-client-investigation outputs) or modify the skill to declare/install them. (3) Test with a benign sample deliverable and confirm data-provenance.md rows match actual JSON values. (4) Treat any outputs with numeric claims as untrusted until you can verify the provenance lines against the raw JSON. (5) If you want stronger safety, run the skill in an isolated environment and require explicit human review of the generated analysis before any decision-making.

Like a lobster shell, security has layers — review code before you run it.

latestvk970zxj106vhj9pyb8g8f855ch856m4n
105downloads
0stars
1versions
Updated 1w ago
v0.9.6
MIT-0

Banker Memo

Banker-grade research memo from raw-data/ snapshots — prompt-driven, not template-driven.

What this skill does

Takes a deliverable dir that already has raw-data/*.json (produced by the CN Phase 3.5 pipeline) and drives an agent through a senior sell-side analyst framework to produce:

  1. analysis.md — 8-section banker research memo (2500-4000 words, peer-benchmarked, with explicit data flags)
  2. slides-outline.md — PPT blueprint (10-15 slides, content-driven — NOT a fixed 8-slide template)
  3. data-provenance.md — every hard number traceable to a raw-data filename stem

Why prompt-driven (not Python template)

The 0.9.4-era build_deck.py used an 8-slide Python template that stamped the same structure onto every company. Problem: the result is a data dashboard, not banker analysis — no industry context, no peer benchmarking, no SOTP reasoning, no "4C's" credit framework, no banker opinion.

Prompt-driven flips this: the agent (which has read thousands of real sell-side reports during training) writes the narrative; the Python layer only does orchestration (dispatch + gate audit).

Best-fit cases

  • User explicitly asks for 投行级 / banker-grade research
  • Deliverable already has raw-data/ from cn-client-investigation Phase 3.5
  • Target is CN (A-share / H-share / non-listed with unified social credit code)
  • The previous Python-templated output felt shallow / repetitive / stat-card-heavy

When NOT to use

  • raw-data/ is missing — run cn-client-investigation Phase 3.5 first
  • Target is US-listed — this skill is CN-focused (industry framework / 4C's assume CN credit context)
  • Just want a quick fact-sheet — use strip-profile skill instead

Workflow

Step 1 — Pre-flight

Verify raw-data/ has:

  • At least one aigroup-market-mcp-*.json file (for listed) OR a primematrix-basic_info.json (for non-listed).
  • Listed companies SHOULD have 5 Tushare files (basic_info / company_performance / stock_data / daily_basic / income) for the full framework.

Step 2 — Build parameterised prompt

Use references/banker_prompt_template.md and substitute placeholders:

  • {ts_code} / {name_cn} / {industry} / {raw_dir} / {out_dir}
  • {file_list} — discovered from raw_dir
  • {uscc} — parsed from the primematrix filename prefix

A helper scripts/build_banker_prompt.py does this. See references/banker_prompt_template.md for the canonical prompt body.

Step 3 — Dispatch agent

Run openclaw agent --agent main --thinking high --json --timeout 600 --message "$(cat prompt.md)". Typical runtime 3-6 minutes per company with high-thinking.

Step 4 — Validate output

Run the standard 7-gate validate-delivery.py --strict-mcp on the output dir. The banker memo obeys the same authenticity / provenance rules as Python-templated outputs — gates unchanged.

Step 5 — PPT compile

Run build_deck.py (v0.9.6+) which now reads slides-outline.md for layout cues. Slide count = whatever the agent planned (10-15 typical, not a fixed 8).

Hard constraints enforced by the prompt

  1. Every hard number cites a raw-data filename stem, format X 亿元(src: income) or Y%(src: company_performance)
  2. Wind / 万得 / 同花顺 / Bloomberg / 彭博 forbidden (redundant with source_authenticity_check gate)
  3. No vague numbers — "XX 亿元左右" / "大约" / "估计" must be tagged [EST] with reasoning
  4. QoQ deltas in pp units (avoids HARD_NUMBER regex false-positives)
  5. Peer comparison numbers tagged [EST, per sector consensus] — never tied to a specific forbidden source

Worked example (0.9.5 smoke test)

BOE 000725.SZ run on 2026-04-20:

  • Input: ~/deliverables/bj-smoke-v2/000725_sz/raw-data/ (6 JSON files already fetched)
  • Agent high-thinking runtime: ~5 minutes
  • Output analysis.md: 14.8 KB (vs 1.6 KB from v0.9.5 Python template)
  • Agent self-flagged Data Flag 1: income-derived 净利率 2.68% vs company_performance 2.09% — 0.59pp口径差异 → must verify pre-credit decision
  • Agent self-flagged Data Flag 2: company_performance YTD 累积 ≠ Q4 单季, computed +0.74pp Q4 NPM change from diff
  • Peer comp: 5 companies (TCL 科技 / 维信诺 / LG Display / 群创光电) all tagged [EST, per sector consensus]
  • Valuation: SOTP (LCD PB 0.8-1.0x + OLED PS 1.0-1.5x) → 合理 PB 1.0-1.3x; target price 3 scenarios (3.5-4.0 / 4.2-4.5 / 5.0-5.5)
  • Credit view: 4C's with specific numbers + 授信额度 50-80 亿 / 期限 1 年 / 利率 LPR+60-130bp / 增信要求 (设备抵押 60% + 应收质押 70%) / 财务承诺 (负债率<55%, 利息覆盖>2x)
  • Slides outline: 12 slides (not fixed 8) — includes section dividers + bar chart (revenue/profit) + line chart (quarterly ROE) + valuation scenario table + 4-color risk card
  • validate-delivery --strict-mcp — all applicable gates PASS

Output standard

FileWhat it isAudit gate
analysis.md8-section banker memoprovenance_verify + source_authenticity_check
slides-outline.md10-15 slide blueprint with layout + key message per slideconsumed by build_deck.py
data-provenance.mdhard-number → raw-data stem mappingprovenance_verify --strict

Quality checklist

  • 8 sections all present (ES / Profile / Industry / Financial / Peer / Valuation / Risk / 4C's)
  • Every \d+(亿元|%|元|倍) in analysis.md has a provenance row
  • Peer comparison has ≥3 companies, all tagged [EST, per sector consensus]
  • Valuation section has ≥2 methods (relative + SOTP or DCF) + 3 scenarios
  • Risk section uses a table with severity levels (not a bullet list)
  • 4C's section gives a specific credit conclusion (额度 + 期限 + 利率 + 增信 + 财务承诺)
  • slides-outline.md specifies layout type per slide (card / table / chart / divider)
  • validate-delivery.py --strict-mcp OVERALL PASS

Comments

Loading comments...