report-review · git:20261015.bd0de42 · 2026-10-15 · sha256 c8e058557b9b2f70
report-review git:20261015.bd0de42A
Immutable. This exact content never changes and is served at /api/v1/blob/c8e058557b9b2f70.
--- name: "report-review" description: "报告多维度审查(QA)技能:对已生成的投资研究报告/持仓诊断报告(Markdown 或 HTML)做数据核验、口径核验、计算自洽、图表一致性、逻辑客观性、来源引用与合规七维度 review,输出分级问题清单。当报告生成完毕后自动调用做交付前审核,或用户要求 review/审查/校对某份报告时调用。不产出分析内容,只负责'审得对不对'。" --- # 报告多维度审查 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 语言跟随用户语言 - 不因报告是自己生成的就放低标准——**自审更严** - 新发现的陷阱追加到「常见错误陷阱库」