Report Review logo

Report Review

Community
belos-street
report-review

报告多维度审查(QA)技能:对已生成的投资研究报告/持仓诊断报告(Markdown 或 HTML)做数据核验、口径核验、计算自洽、图表一致性、逻辑客观性、来源引用与合规七维度 review,输出分级问题清单。当报告生成完毕后自动调用做交付前审核,或用户要求 review/审查/校对某份报告时调用。不产出分析内容,只负责'审得对不对'。

Overview

Publisherbelos-street
Repositorystock-analytics-agent
Skill namereport-review
Stars
57
Forks
9
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by belos-street on GitHub. Read the source before you install it.

Installation

Install the Report Review AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/belos-street/stock-analytics-agent/tree/main/.agents/business/report-review
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/belos-street/stock-analytics-agent.git /tmp/stock-analytics-agent
mkdir -p .claude/skills
cp -r /tmp/stock-analytics-agent/.agents/business/report-review .claude/skills/report-review
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Report Review in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Report Review on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Report Review is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

报告多维度审查 Skill(业务技能)

定位

.agents/business/ 存放交付/生产类技能。本技能与 html-report 配对:

技能职责时机
html-report怎么把分析结果做成报告生成时
report-review(本技能)报告审得对不对生成后、交付前(自动触发)

自动触发规则:任何报告(reports/**/*.md、reports/**/*.html、watchlist/**/*.md)生成或修改完毕后,必须自动调用本技能完成 review,向用户输出审查结论后才算交付完成。用户单独要求 "review / 审查 / 核对 / 校对" 某份报告时同样调用。

七个审查维度

按顺序执行,前 5 个维度必须实证核验(跑 CLI / 算数 / 读图表 JS),不允许只凭报告自述判断。

D1 · 行情与基础数据核验

  • 报告中每个价格 / 涨跌幅 / 市值 / 规模逐项与本地 CLI 对账:
    bash
    bun run main.ts -s sh603799 --pretty          # 个股/ETF 现价、涨跌、市值
    bun run main.ts -f 006493 --pretty            # 基金净值
    bun run main.ts --dividend sh603799           # 股息率
  • 输出一张「报告值 vs 实测值」对照表,精确到报告披露的小数位。

D2 · 时间窗口与口径核验 ⭐ 最高频错误

同一只股票在不同时间窗口下的"最高价 / 回撤 / 分位"完全不同。 必须核实报告口径词与实际取数窗口一致:

报告用词合法口径核验方法
"年内高点/年内最高"自然年至今--kline <code> --period monthly 找全年 max high
"90 日高点 / 8/14 以来"明确窗口--period weekly/daily 对应窗口 max high
"距高点回撤 -X%"写明是哪个高点(现价/该窗口最高价-1)×100 复算
"PE 分位"必须写明区间近 1 年 / 近 10 年 / 基日以来三者数值差异巨大,禁止混用

⚠️ 陷阱:只看近 2 个月 K 线会把"阶段高点"误当"年内高点"。凡报告出现"年内/今年/YTD"字样,必须用 monthly K 线验证。

接口降级:K 线接口 socket 故障时(--kline 连续失败),改用公开披露的收盘价/盘中价快照交叉验证(证券之星行情快报、每经、交易所),并在报告中标注口径与数据来源;不可因接口不可用而跳过核验。

复权口径:K 线接口通常为前复权,行情快报为不复权价,两者可差一个分红额(例:华友 1/26 盘中高点 82.17 不复权 / 81.67 前复权,差额即 2026-05 分红 0.5 元)。引用"高点/低点/回撤基准"时必须标注复权口径。

D3 · 计算自洽性

  • 复算所有派生数字:持仓成本/市值/浮亏额/浮亏%/回本涨幅/仓位占比/PE/PB。
  • 常用公式:回本涨幅 = 成本/现价 - 1;PE = 市值/净利润;PB = 市值/净资产。
  • 交叉校验:正文、指标卡、图表 JS 三处同一数字必须一致。

D4 · 估值与财务口径

  • PE 是静态(上年报)/ TTM / 年化 / 动态哪种口径?报告若并列多种口径,各自注释是否清晰?
  • 周期股低 PE 警示:低 PE 常出现在盈利顶部,报告是否提示"便宜有便宜的原因"?
  • 分位数数据标注来源与区间(见 D2)。

D5 · 图表与文本一致性

  • 打开 assets/charts.js(或内联 JS),逐项核对 series 数据与正文数字。
  • 检查坐标轴是否截断(yAxis.min/max 把关键数据裁掉会视觉误导,如 K 线图 min/max 未覆盖年内高点)。
  • 检查数据窗口是否与正文口径一致(正文讲"年内",图表只画 8/14 以来 = 口径错位)。
  • 每个 chart 是否有 <figcaption> 标题;引用参考线标注(如"年内高点 X")是否与 D2 核验结果一致。

D6 · 逻辑客观性

  • 多空平衡:看多理由与看空/证伪风险是否都呈现?是否只堆利好?
  • 沉没成本:决策建议是否围绕"成本价/回本"展开?正确的框架是"今天这个价位还愿不愿意持有"。
  • 目标位语义:反弹目标位 ≠ 回本位,是否明确标注避免误读?
  • 窗口期一致:触发条件(如"财报前不动手")与操作建议是否自洽。
  • 静默假设:仓位占比、风险承受力等未给定的输入,是否以"若…则…"分支表达而非硬编码结论。

D7 · 来源引用与合规

  • 正文每个 sup [n] 在 footer #cite-n 是否都有对应条目,且来源确实支撑该句论断。
  • 引用的是原始数据源还是一手转述?第三方口径是否标注?
  • 免责声明必备三要素:不构成投资建议、市场有风险、以官方披露为准。

结构化检查脚本

机械项交给脚本(引用锚点配对、离线可开、figcaption 覆盖、口径词扫描等):

bash
bun run .agents/business/report-review/scripts/check-report.ts <report.md|report.html>
  • .html:生成标记 / 引用锚点配对 / figcaption / 离线可开 / 免责声明 / 图表 JS 线索 / 口径词
  • .md:免责声明关键词 / 口径词 / 表格数字线索(md 无 HTML 标记项,自动跳过)

脚本只查结构项,数据正确性必须人工/Agent 实证核验(D1–D5)。

输出格式

markdown
## 📋 Review 结论:<一句话总评>

### ✅ 实证通过(逐项列表 + 实测值)
### 🔴 硬伤(动摇结论的事实错误,必须改)
### 🟡 口径/表述问题(建议改)
### 🟢 分析质量评价(框架、客观性)
### 📌 修正清单(按优先级,可直接执行)
### ✅ 复查确认(修正后):逐项记录"问题 → 修正内容 → 复查结果",闭环留痕

分级铁律:

  • 🔴 硬伤 = 事实性错误且影响结论(错的数字、错的口径、错的窗口)
  • 🟡 问题 = 数字对但口径/表述有误导性
  • ✅ 通过 = 实证核对一致(不能写"看起来没问题",要写实测值)

总评必须回答两个问题:① 数据层是否可信 ② 叙事层是否客观。

常见错误陷阱库(历次 review 沉淀,新增错误请追加)

#陷阱判定方法案例
1阶段高点冒充年内高点monthly K 线 max high ≠ 报告"年内高点"47.17(8月反弹)被写成年内高点,实为 1/26 盘中 82.17 元
2图表截断误导yAxis.min/max 未覆盖关键价位K 线 max:56 裁掉年内高点 82.17
3回撤基准不统一同文混用盘中高点/收盘高点/90日高点触发线用一个基准、回撤表用另一个
4分位数口径混用同文出现两种区间口径"近 10 年 4.5% 分位"与"近 1 年 1.2%"混排
5"规模最大/第一"过时交叉搜同类产品规模排名电池 ETF 规模排名随时间变动
6目标位 = 回本位误读目标价全部低于成本却未标注35.4→38→42 被误读为回本路径
7单期分红口径失真股息率与实际到账/公告核对第三方单期分红数据误导
8跌得多 = 便宜回撤大但估值分位仍高半导体设备 -25% 后 PE 分位仍 80%+
9复权口径混用K 线(前复权)≠ 行情快报(不复权),差一个分红额82.17 不复权 / 81.67 前复权被当两个数

工作流

  1. 报告生成/修改完毕(或用户点名 review)
  2. 跑 check-report.ts 过机械项(按扩展名自动分流:.html 走 HTML 项,.md 走 Markdown 项)
  3. D1–D5 逐项实证:CLI 对账 → 口径核验(接口故障走降级路径)→ 复算 → 图表 JS 核对
  4. D6–D7 主观审阅:客观性、来源、合规
  5. 按输出格式给结论 + 修正清单
  6. 有 🔴 硬伤时主动提出可代改,经用户确认后修正,修正后复查对应项并写入「✅ 复查确认」区块闭环

约定

  • Review 语言跟随用户语言
  • 不因报告是自己生成的就放低标准——自审更严
  • 新发现的陷阱追加到「常见错误陷阱库」

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Report Review AI skill do?

报告多维度审查(QA)技能:对已生成的投资研究报告/持仓诊断报告(Markdown 或 HTML)做数据核验、口径核验、计算自洽、图表一致性、逻辑客观性、来源引用与合规七维度 review,输出分级问题清单。当报告生成完毕后自动调用做交付前审核,或用户要求 review/审查/校对某份报告时调用。不产出分析内容,只负责'审得对不对'。

Why use Report Review on TypingMind?

Because you install it once and use it with any model. Report Review is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Report Review in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/belos-street/stock-analytics-agent/tree/main/.agents/business/report-review. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Report Review?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Report Review?

As many as you like. As long as a model supports skills, you can use Report Review with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Report Review AI skill free?

Yes. It is published on GitHub by belos-street under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇