mm-report-writer
Writes high-quality equity research reports from gathered evidence.
Install
mkdir -p .claude/skills/mm-report-writer && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14472" && unzip -o skill.zip -d .claude/skills/mm-report-writer && rm skill.zipInstalls to .claude/skills/mm-report-writer
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Generates daily or weekly research report from evidence cards, quant summary, thesis map, and company profileKey capabilities
- →Generate institutional-quality equity research reports
- →Synthesize evidence cards, quant summaries, and thesis maps
- →Write executive summaries with bold lead clauses and quantified support
- →Describe market context including macro regime and relative strength
- →Detail company events and news by materiality
- →Provide valuation analysis from shared context
How it works
This skill processes a research packet to generate an equity research report, structuring it into predefined sections and ensuring evidence-backed statements.
Inputs & outputs
When to use mm-report-writer
- →Write research reports
- →Generate investment thesis
- →Draft equity analysis
About this skill
Role: Research Report Writer
Mission
Write an institutional-quality equity research report based on the full research packet. The report must be evidence-backed, balanced, and actionable.
Language
Read resolved_config.json → language (en | ch). Exactly one language per run. Headings, narrative, tables and enum glosses all use that language; a report mixing English and Chinese is a defect, not a style.
Always English in both languages: JSON keys, enum VALUES (hazy_but_coming, independent_up, accumulate), evidence-card ids, file paths, tickers, indicator names (RSI, MACD, OBV, CMF, VWAP, ATR, EV/EBITDA), and BUY/HOLD/SELL.
The section specs below are written with the en heading. If language is ch, substitute the ch column below verbatim (it includes the ##). If en, use the spec as written. Never emit a heading containing both languages.
Language Map — headings
en (as written below) | ch |
|---|---|
## Executive Summary | ## 摘要 |
## Story & Game | ## 故事与博弈 |
## Money Flow & Chip Structure | ## 资金与筹码 |
## Peer Cohort Divergence | ## 同类股分化 |
## Market Context | ## 市场环境 |
## Company Events & News | ## 公司事件与新闻 |
## Valuation / ## Valuation Reference | ## 估值 / ## 估值参考 |
## Catalysts & Risks | ## 催化剂与风险 |
## Investment View | ## 投资观点 |
## Outside the Framework | ## 框架之外 |
## Sources & Evidence | ## 来源与证据 |
Language Map — enum glosses
The artifact stores the English enum VALUE; the report prints ONE gloss, in the report language.
| artifact field / values | en gloss | ch gloss |
|---|---|---|
certainty.tier: confirmed / high_probability / hazy_but_coming / pure_theme | confirmed / high-probability / hazy-but-coming / pure theme | 确定 / 大概率 / 朦胧但必来 / 纯题材 |
stage.tier: untold / starting / fermenting / consensus / realized / falsified | untold / starting to be told / fermenting / consensus / realized / falsified | 未讲 / 开始讲 / 发酵 / 共识 / 兑现 / 证伪 |
path_class: follows_sector / independent_up / independent_down / basing / launched | follows sector / independent up / independent down / basing / launched | 跟随板块 / 独立走强 / 独立走弱 / 横盘蓄势 / 已启动 |
The path_class labels must match the chart legend (templates/charts.py::_PATH_CLASS_LABELS) so the table and peer_grid.svg agree.
Language Map — A-share data fields
| artifact field | en term | ch term |
|---|---|---|
volume.volume_ratio | volume ratio | 量比 |
volume.turnover.turnover_pct | turnover rate | 换手率 |
cn_flows.main_force | large-order (main-force) net flow | 主力资金 |
cn_flows.northbound | Northbound (Stock Connect) holdings | 北向持股 |
cn_flows.margin | margin financing balance | 融资余额 |
cn_flows.lhb | exchange top-buyer/seller disclosure | 龙虎榜 |
cn_flows.holder_count | registered shareholder count | 股东户数 |
cn_flows.restricted_release | lock-up expiry / restricted-share release | 解禁 |
chip_distribution.trapped_ratio | trapped supply (holders underwater) | 套牢盘 |
This is gated on market_profile, not on language. On an en run for a CN/HK name you MAY append the Chinese source term in parentheses on first mention within a section, as data provenance — never in a heading, the Executive Summary, the Investment View, or analysis prose. On an en run for a US / JP / UK / EU name the report must contain ZERO Chinese characters — cn_flows is null there, so no provenance parenthetical can apply.
Workspace path: $ARGUMENTS[0] Run date: $ARGUMENTS[1] (YYYY-MM-DD) Mode: $ARGUMENTS[2] (optional — "initial" for first draft, "revision" for targeted rewrite)
Derive TICKER from the workspace directory name (e.g., workspaces/NVDA → NVDA). Use it for MCP resource URIs.
All paths below use {date} = $ARGUMENTS[1].
Inputs (MCP-first)
Primary input — read ONE composite resource instead of many files:
For initial mode, read workspace://{TICKER}/{date}/draft_packet via MCP resource. This returns:
evidence_digest— all evidence cards in one objectshared_context— quant, valuation, profile, peers, catalysts,macro_regime(deterministic macro classification + asummaryalready resolved to the report language, withsummary_lang, +inputs_missing),intraday(1h/4h timing block — timing color only, never a thesis reason),chips(volume/chip structure — directional evidence, cite it like fundamentals),peer_divergence(per-peer path classification),investor(the user's horizon / edge hypothesis / position state — write for THIS reader)thesis_map— debate synthesis (consensus, disagreements, writer_guidance,unconventional_factors)debate_summary— human-readable debate summarymemory_context— procedural memories (known pitfalls) + episodic memories (prior decisions), or null
Also read {workspace}/discussion/{date}/story_map.json (story/game synthesis: story, size, certainty, stage, falsifier) and {workspace}/resolved_config.json for report mode (daily/weekly) and language.
For revision mode, read workspace://{TICKER}/{date}/review_packet via MCP resource to get the latest draft + evidence + context, plus:
{workspace}/reviews/{date}/revision_briefs/revision_brief.json— what to fix
Fallback (if MCP resources unavailable): Read individual files directly:
{workspace}/shared_context/{date}.json,{workspace}/normalized/{date}/evidence_digest.json,{workspace}/discussion/{date}/thesis_map.json,{workspace}/memory/{date}_writer.json
Behavior Modes
Mode A: Initial Draft (default)
Write a complete research report.
Daily Report Structure (8-10 sections)
Write to: {workspace}/drafts/{date}/daily_v1.md
Section order depends on profile.market_profile:
- CN / HK (game-driven markets): Executive Summary → Story & Game → Money Flow & Chip Structure → Peer Cohort Divergence → Market Context → Company Events & News → Company Fundamentals → Valuation Reference → Catalysts & Risks → Investment View → Outside the Framework → Sources. In these markets the story and the chips ARE the thesis spine; valuation is a floor/reference, never the lead.
- US / other (value-anchored markets): Executive Summary → Market Context → Company Events & News → Money Flow & Chip Structure → Valuation → Story & Game → Peer Cohort Divergence → Catalysts & Risks → Investment View → Outside the Framework → Sources.
Section specs (same content contract in either order):
# {Company Name} ({TICKER}) — Daily Market Detail Report
**Date:** {today} | **Decision:** {from thesis_map dominant view} | **Sector:** {sector}
---
## Executive Summary
<The Page-1 investment summary. Write 3-4 bullets, each a **bold lead clause** (the point in one line) followed by 2-3 sentences of specific, quantified support. Lead with numbers; cite evidence card IDs. The first bullet is the single most important takeaway (the "top call"); the last states the net directional lean and the trigger that would change it. For CN/HK names the top call is the story-and-chips read, not the fair-value gap. Mirror this shape:
- **Bold lead clause capturing the point.** 2-3 sentences with specific numbers, comparisons, and the evidence (ev_… ids) behind it.
(The PDF renderer builds a rating box — decision, confidence, price, fair value, margin of safety — automatically from the JSON, so do NOT restate a rating table here; focus on the narrative bullets.)>
## Story & Game
<From `story_map.json` + thesis_map. Answer the four questions in order, plainly: (1) What is the story — one sentence. (2) Is it big enough — for this company's `cap_tier`, does the story move the needle, and how does capital at this tier play stories (use the cap-tier playbook from config)? (3) How certain is it — the `certainty.tier` from story_map (`confirmed` / `high_probability` / `hazy_but_coming` / `pure_theme`), printed with its report-language gloss from the Language Map, with the reasoning. (4) Where is the telling — the `stage.tier` (`untold` / `starting` / `fermenting` / `consensus` / `realized` / `falsified`), same gloss rule, and who is telling it (company / institutions / media / hot money). End with the falsifier: the single event that kills the story, and the verification date if one exists.>
## Money Flow & Chip Structure
<From `shared_context.chips` (chip_structure.json) + quant_summary.json. This section replaces the old moving-average snapshot. Cover: current price and returns (1d/5d/1m/3m); volume regime (volume ratio, expansion/contraction, up-day vs down-day volume); chip distribution (main peak, 90% cost band, concentration, profit vs trapped ratio); support/resistance with volume strength; for CN names with `cn_flows`: large-order net flow, Northbound holding change, margin financing balance, exchange top-buyer/seller seats, registered shareholder-count trend, upcoming lock-up expiries — each with its data_quality. State what the chips SAY: who has been accumulating or distributing, and whether the chips are clean. RSI/MACD one line each; trend_regime one clause of backdrop. NEVER mention golden/death crosses. Include the snapshot table (support/resistance, volume ratio / turnover rate, concentration, profit ratio — not SMA rows) and end with a source line. If `chips.available` is false, say what degraded and fall back to the volume flags in quant_summary.>

## Peer Cohort Divergence
<From `shared_context.peer_divergence` + peer_set.json. Not "the sector did X" — walk the cohort: which names move with the sector, which walk their own path (take the `path_class` VALUE from the artifact — `follows_sector` / `independent_up` / `independent_down` / `basing` / `launched` — and render it with the report-language label from the Language Map; ONE label per cell, never both), the current leader, the dispersion, and the product-niche differences (`p
---
*Content truncated.*
When not to use it
- →When the report is not an equity research report
- →When the input data is not in the form of evidence cards, quant summary, thesis map, and company profile
- →When fabricating data or events not present in evidence cards
Limitations
- →Every material claim in the report must reference a specific evidence card ID or quant data point.
- →The report must avoid generic market commentary that could apply to any stock.
- →Valuation figures must come from `valuation_summary.json` and not be fabricated or WebSearched.
How it compares
This workflow automates the synthesis of various research inputs into a structured report, unlike manual report writing from disparate sources.
Compared to similar skills
mm-report-writer side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| mm-report-writer (this skill) | 0 | 2mo | No flags | Advanced |
| hotspot-qa | 0 | 5mo | Review | Intermediate |
| executing-marketing-campaigns | 11 | 8mo | Review | Intermediate |
| clinical-decision-support | 4 | 2mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by ShinyGua
View all by ShinyGua →You might also like
hotspot-qa
aifinlab
面向基金品牌与内容领域的热点问答任务Skill,围绕「热点问答助手」场景提供信息抽取、结构化分析与结果输出。
executing-marketing-campaigns
davila7
Plans, creates, and optimizes marketing campaigns including content strategy, social media, email, and analytics. Helps develop go-to-market strategies, campaign messaging, and performance measurement.
clinical-decision-support
K-Dense-AI
Generate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
creating-pitch-books
CaseMark
Builds client pitch materials with market overview, strategic rationale, valuation analysis, and transaction positioning. Use when creating pitch books, preparing client presentations, or building deal marketing materials.
readability
humanizerai
Analyze text readability with Flesch-Kincaid, Gunning Fog, SMOG, and other metrics. Returns objective scores with interpretation and recommendations.
deal-memo-writer
Syntari-International-Inc
Write deal memos for PE acquisitions and CRE investments. Structure company/property overview, investment thesis, financial analysis, risks, and recommendation. Use when preparing deal memos, writing investment summaries, or documenting deal rationale.