{
  "markdown": "# 主动基金 / 基金经理？请看 [基佬skills](https://github.com/wbh604/jilao-skills)\n\n**UZI-Skill 负责个股深度分析；基佬skills 负责主动基金和基金经理行为鉴定。**  \n它用真实公开数据逐笔验证基金经理的买卖行为，评的是行为，不是净值。在线示例：[兴全合宜 163417 · 谢治宇行为报告](https://wbh604.github.io/jilao-skills/assets/fund-163417.html)\n\n---\n\n<div align=\"center\">\n\n# 游资（UZI）Skills\n\n*\"66 个投资大佬帮你看盘，巴菲特、赵老哥和股海贼王终于坐在了同一张桌子上。\"*\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://python.org)\n[![Claude Code](https://img.shields.io/badge/Claude%20Code-Skill-blueviolet)](https://claude.com/product/claude-code)\n[![Dimensions](https://img.shields.io/badge/Dimensions-22-brightgreen)]()\n[![Investors](https://img.shields.io/badge/Investors-66-orange)]()\n[![Methods](https://img.shields.io/badge/Institutional%20Methods-22-red)]()\n[![Self-Review](https://img.shields.io/badge/Self--Review-13%20checks-blueviolet)](skills/deep-analysis/scripts/lib/self_review.py)\n\nA 股 / 港股 / 美股 · 个股深度分析引擎 · **66 位评审团 × 9 大流派 × 22 维数据 × 22 种机构方法** · 最新 **v3.9.4**：前端显示修复 + 美化（kimi-k3）· 完整演进见 [更新日志](#-更新日志)\n\n[安装](#安装) · [用法](#用法) · [三档深度](#-三档思考深度v2103-新增) · [Hermes 🆕](INSTALL-HERMES.md) · [评审团](#-66-位评审团) · [Serenity 🆕](#-i-组--serenity--ai-卡位瓶颈猎手) · [机构方法](#-22-种机构级方法) · [自查 gate](#-机械级自查-gatev29-起) · [报告截图](#-报告长什么样) · [FAQ](#-faq) · [入群交流测试](#-测试交流群) · [Contributors](CONTRIBUTORS.md)\n\n**中文** | [English](README_EN.md)\n\n</div>\n\n---\n\n## 🚀 30 秒上手\n\n**任何 agent 里丢一句话 · 装好就能用**。详细装法见 [安装](#安装)。\n\n| 你用的 agent | 直接丢这句 |\n|---|---|\n| **Claude Code** | `/plugin marketplace add wbh604/UZI-Skill` 然后 `/plugin install stock-deep-analyzer@uzi-skill` |\n| **Codex / OpenAI CLI** | \"按 https://raw.githubusercontent.com/wbh604/UZI-Skill/main/.codex/INSTALL.md 装 UZI-Skill，分析 600519\" |\n| **Cursor** | `/add-plugin stock-deep-analyzer` |\n| **Gemini CLI** | `gemini extensions install https://github.com/wbh604/UZI-Skill` |\n| **Hermes** | ⚠️ `hermes skills install` 当前被 [Skills Guard 误判](https://github.com/NousResearch/hermes-agent/issues/1006) · 用一键脚本绕过：`curl -fsSL https://raw.githubusercontent.com/wbh604/UZI-Skill/main/install-hermes.sh \\| bash` · 详见 [INSTALL-HERMES.md](INSTALL-HERMES.md) |\n| **OpenClaw / 龙虾** | \"装 https://github.com/wbh604/UZI-Skill 这个股票分析技能\" |\n| **CLI 直用** | `git clone https://github.com/wbh604/UZI-Skill.git && cd UZI-Skill && pip install -r requirements.txt && python run.py 贵州茅台` |\n\n装好后最常用 4 条命令（任何 agent 里直接说）：\n\n```\n/stock-deep-analyzer:analyze-stock 贵州茅台    ← 完整 22 维 × 66 评委分析（5-8min）\n/stock-deep-analyzer:quick-scan 002217         ← 30 秒速判\n/stock-deep-analyzer:scan-trap 002217          ← 杀猪盘排查\n/stock-deep-analyzer:dcf 600519                ← DCF 估值专项\n```\n\n> 💡 **当前最新稳定版 v3.9.4** · 完整演进见 [更新日志](#-更新日志)：\n> - **66 位评审团 · 9 大流派**（v3.7 新增 a16z Andreessen / Naval / 黄仁勋 / 马斯克 / 高瓴张磊 / Burry / Chanos 等 13 位 + 独立 I 组 Serenity AI 卡位猎手）· 242 条量化规则\n> - **Serenity 严谨化**（v3.8）：8 罚分因子 + 3 级证据阶梯（\"有定点量产\"≈90 分 vs \"仅题材\"≈60 分）+ 供应链 8 层分层\n> - **Tier-1 五方法**（v3.8）：`/ai-readiness` `/earnings-preview` `/model-update` `/returns` `/rebalance`\n> - **多股对比 & 组合**（v3.6）：`--versus` 2-4 只横向对决 · `--portfolio` CSV 组合健康度 · 暗色模式 + sticky TOC（v3.9.1 起可一键折叠）+ 术语悬浮\n> - **A+港股每日观察榜**：过滤 ST/无有效报价/成交额不足 2 亿标的 · 24 位游资规则初筛 + Serenity 证据检查 · 最多 10 只、不凑数 · JSON 快照 + HTML + 观察账本\n> - **流派视角锁定**（v3.5）：`--school A-I` 只看一派的判断 · 报告带 SCHOOL LOCK banner\n> - **架构**：v3.0 pipeline 默认主干 · 离线 pytest 回归覆盖 · v2.x API 100% 向后兼容（`UZI_LEGACY=1` 回老路径）\n>\n> **Hermes 用户**：`hermes skills install` 被上游 Skills Guard 误判 · 用一键脚本装：`curl -fsSL https://raw.githubusercontent.com/wbh604/UZI-Skill/main/install-hermes.sh | bash` · 详见 [INSTALL-HERMES.md](INSTALL-HERMES.md).\n\n---\n\n\n## 💬 没有群！虽然我也不知道为什么交流群也没涉及什么东西会被封号。。。\n\n我再说明一下，没有群，也不拉群。\n\n<p align=\"center\">\n  <img src=\"docs/screenshots/8501bb4280cc56c809c0a19619e49c82.jpg\" width=\"300\" alt=\"拉群会被封，有想法的直接加我吧，只针对插件本身或者其他有趣的项目和量化，不聊个股\" />\n</p>\n\n> 添加人过多，请备注好事宜，我才知道出什么问题了。。\n\n---\n\n---\n## 鸣谢\n学AI，上L站！\n感谢 [Linux.do](https://linux.do/) 社区支持。\n\n## 这是啥\n\n一句话：输入一只股票，Claude 变成你的私人分析师，跑完 22 个维度的数据、调 22 种华尔街分析模型、让 66 个投资风格完全不同的大佬各自打分，最后吐出一份 600KB 的 Bloomberg 风格报告。\n\n```\n/stock-deep-analyzer:analyze-stock 国盾量子\n```\n\n5-8 分钟后你会得到：\n- **一份 HTML 报告** — 可以直接用浏览器打开，自包含，离线也能看\n- **一张朋友圈竖图** — 1080×1920，直接发\n- **一张微信群战报** — 1920×1080\n- **一段话摘要** — 复制粘贴就能发群里\n\n## 为什么做这个\n\n之前看一只票的流程：东方财富翻基本面 → 同花顺看 K 线 → 雪球刷大 V 说了啥 → 研报系统找卖方观点 → Excel 算个 DCF → 结果买进去还是亏。\n\n这些活儿本质上就是\"搜集信息 → 多角度分析 → 给个结论\"，让 AI 全干了不行吗？\n\n市面上看了一圈，要么是输出三段废话的 GPT wrapper，要么是用不起的机构终端。Anthropic 出了个 [financial-services-plugins](https://github.com/anthropics/financial-services-plugins)，方法论很好（DCF / Comps / LBO 那套），但完全是美股视角 + 全要付费数据源。\n\n所以自己搓了一个。**全免费数据源，零 API key，A 股直接能跑。**\n\n---\n\n## 安装\n\n不管你用什么 agent，**都是丢一句话过去就行**：\n\n### Claude Code\n\n```\n/plugin marketplace add wbh604/UZI-Skill\n/plugin install stock-deep-analyzer@uzi-skill\n```\n\n装好后说 `/stock-deep-analyzer:analyze-stock 贵州茅台`。\n\n> ⚠️ **必须带 `stock-deep-analyzer:` 命名空间前缀**\n>\n> Claude Code 装 plugin 后，所有 skill/command 都以 `stock-deep-analyzer:` 开头。\n> 部分环境下短名（`/analyze-stock`）不会被自动解析——稳妥起见请一律用全名：\n>\n> - `/stock-deep-analyzer:analyze-stock <ticker>`\n> - `/stock-deep-analyzer:quick-scan <ticker>`\n> - `/stock-deep-analyzer:scan-trap <ticker>`\n> - `/stock-deep-analyzer:dcf <ticker>`\n> - `/stock-deep-analyzer:ic-memo <ticker>`\n> - `/stock-deep-analyzer:investor-panel <ticker>`\n> - `/stock-deep-analyzer:trap-detector <ticker>`\n> - `/stock-deep-analyzer:deep-analysis <ticker>`\n> - 等全部 14 条\n>\n> Cursor / Gemini CLI / Codex 同理：**一律用 `/stock-deep-analyzer:<cmd>` 全名**，\n> 避免短名解析失败。\n\n### Codex\n\n直接对 Codex 说：\n\n> 请按照 https://raw.githubusercontent.com/wbh604/UZI-Skill/main/.codex/INSTALL.md 的指引安装 UZI-Skill，然后帮我深度分析 贵州茅台。\n\n### OpenClaw / 龙虾\n\n对龙虾说：\n\n> 帮我安装 https://github.com/wbh604/UZI-Skill 这个股票分析技能，装好后分析 贵州茅台。\n\n### Cursor\n\n```\n/add-plugin stock-deep-analyzer\n```\n\n然后说\"分析 贵州茅台\"。\n\n### Gemini CLI\n\n```bash\ngemini extensions install https://github.com/wbh604/UZI-Skill\n```\n\n### OpenCode\n\n对 OpenCode 说：\n\n> 请按照 https://raw.githubusercontent.com/wbh604/UZI-Skill/main/.opencode/INSTALL.md 安装并分析 贵州茅台。\n\n### Windsurf / Devin / 其他 Agent\n\n丢这句话进去：\n\n> 克隆 https://github.com/wbh604/UZI-Skill ，读 AGENTS.md 了解怎么用，帮我深度分析 贵州茅台。\n\n### 📱 不在电脑前？\n\n对任何 agent 说：\n\n> 分析 贵州茅台，用远程模式，生成一个公网链接让我手机能看。\n\nagent 会用 `--remote` 启动 Cloudflare Tunnel，给你一个 `https://xxx.trycloudflare.com` 链接。若本机没有 `cloudflared`，默认只提示安装方式；确认要自动安装时再加 `--install-cloudflared`。\n\n---\n\n## 用法\n\n### 完整深度分析（5-8 分钟）\n\n```\n/stock-deep-analyzer:analyze-stock 水晶光电\n/stock-deep-analyzer:analyze-stock 002273\n/stock-deep-analyzer:analyze-stock 00700.HK\n/stock-deep-analyzer:analyze-stock AAPL\n/stock-deep-analyzer:analyze-stock 7203.T\n/stock-deep-analyzer:analyze-stock 005930.KS\n```\n\n### 专项命令\n\n> 都要加 `/stock-deep-analyzer:` 前缀才保证执行得通。\n\n| 命令 | 干嘛的 |\n|---|---|\n| `/stock-deep-analyzer:dcf 600519` | DCF 估值 · WACC + 5×5 敏感性表 |\n| `/stock-deep-analyzer:comps 002273` | 同行对标 · PE/PB 分位分析 |\n| `/stock-deep-analyzer:lbo 600519` | LBO 测试 · PE 买方能赚多少 IRR |\n| `/stock-deep-analyzer:initiate 002273` | 机构首次覆盖报告 · JPM/GS 格式 |\n| `/stock-deep-analyzer:ic-memo 002273` | 投委会备忘录 · 三情景回报 |\n| `/stock-deep-analyzer:earnings 002273` | 财报解读 · beat/miss 检测 |\n| `/stock-deep-analyzer:catalysts 002273` | 催化剂日历 · 未来 60 天 |\n| `/stock-deep-analyzer:thesis 002273` | 投资逻辑追踪 · 5 支柱监控 |\n| `/stock-deep-analyzer:screen 002273` | 5 套量化筛选 · value/growth/quality |\n| `/stock-deep-analyzer:dd 002273` | 尽调清单 · 5 工作流 21 项 |\n| `/stock-deep-analyzer:quick-scan 002273` | 30 秒速判 |\n| `/stock-deep-analyzer:panel-only 600519` | 只看 66 评委投票 |\n| `/stock-deep-analyzer:scan-trap 002273` | 杀猪盘排查 |\n| `/stock-deep-analyzer:segmental-model 300308` | 分业务收入 bottom-up 建模 · 3 情景 × 3 年 projection · 对 DCF 反向校验 |\n| `/stock-deep-analyzer:ai-readiness 002273` | 🆕 v3.8 · 单票 AI 就绪度/卡位评估 · 3 道 gate → Go/Wait + 评级 |\n| `/stock-deep-analyzer:earnings-preview 002273` | 🆕 v3.8 · 财报**前**预览 · 一致预期 + Bull/Base/Bear + 隐含波动 |\n| `/stock-deep-analyzer:model-update 002273` | 🆕 v3.8 · 新财报/指引增量更新模型 · 假设 delta → DCF/thesis 影响 |\n| `/stock-deep-analyzer:returns` | 🆕 v3.8 · 组合收益归因 · 按持仓/行业拆解 + Top 贡献/拖累 |\n| `/stock-deep-analyzer:rebalance` | 🆕 v3.8 · 逐持仓再平衡 · 漂移 + 交易清单 + A股印花税/佣金换手成本 |\n\n### CLI 直跑进阶玩法（git clone 用户）\n\n```bash\npython run.py 600519.SH --depth lite --no-browser   # 30-60s 快速档\npython run.py 300394.SZ --school I                  # 只看 Serenity 卡位视角（A-I 九派任选）\npython run.py --versus 茅台 五粮液 002594.SZ         # 2-4 只票横向对决 · ★WIN 高亮\npython run.py --portfolio holdings.csv             # CSV 组合 · 加权评分 + 健康度\npython run.py 600519.SH --output-dir /tmp/out      # SaaS 集成 · index.html + meta.json\npython run.py 600519.SH --remote                   # 公网链接 · 缺 cloudflared 时默认不改系统\npython run.py 601238.SH --from-modeling            # 采集后建模崩溃 · 从 raw_data.json 秒级续跑\npython screen.py --mode noon --markets A,H --top 10 --no-browser\npython run.py --screen daily --mode close --snapshot-only --no-browser\n```\n\n### A+港股每日观察榜\n\n`screen.py` 是全市场扫描，不等同于单只股票的 `/stock-deep-analyzer:screen <ticker>`。默认抓取 A 股和港股实时横截面，过滤 ST、退市整理、无有效报价和实际成交额低于 2 亿本币的标的，再生成规则初筛观察结果。默认增强行业、结构化消息、盘口及分钟线；当前仍不是 Agent role-play，也不保证实际成交，不会单凭高分给出执行信号。\n\n```bash\npython screen.py --mode noon --markets A,H --schools F,I --top 10 --no-browser\npython screen.py --mode close --markets A,H --schools F,I --top 10 --no-browser\npython screen.py --mode noon --snapshot-only --no-browser  # 网络受限时只用行情横截面\n```\n\n- `--top 10` 是上限，不是配额；低于 70 分的研究候选不会为凑数入榜。\n- `--mode noon/close` 不会把实时行情变成历史快照。报告记录实际观测时间；下午运行会显示下午时点，不会回写成上午。历史 Python 调用必须显式提供冻结快照，并禁止混入实时消息。\n- 行情接口未提供行业时，行业排名保持缺失，不把“未分类”当作第一主线；A/H 分别计算行业排名，板块宽度基于成交额过滤前的样本。\n- 缺少行业、可核验消息或分时成交证据时一律降为观察。行业来自东财 F10 批量映射（A 股 `EM2016`、港股 `BELONG_INDUSTRY`）；盘口采用腾讯 qt 主源、东财备用；分钟线采用东财主源、腾讯备用。不会按统一 9.7% 涨幅断言不可成交。\n- 时间和单位分开处理：使用接口内的报价时间；A 股腾讯成交额由万元转为元，港股保留港元；腾讯分钟累计成交额转为单分钟增量。币种或股票代码不匹配、分钟线与报价不一致时不放行。\n- 条件门禁：发布时重新检查报价不超过 120 秒、行业快照不超过 300 秒、行业覆盖率至少 95%、交易日历确认开市、有双边盘口及最近连续三分钟的有效成交；公司相关消息须有出处链接及最近 72 小时的有效发布时间。还会检查买卖价差、VWAP 与价格关系，并在刷新行情后重新执行用户设置的成交额门槛。上述数值是保守的数据/交易条件阈值，不是经回测验证的盈利策略参数。\n- HTML 展开区显示行业、盘口、分钟线的来源与报价时间，以及消息原文链接和数据源异常；只有全部条件满足才显示“数据条件通过，待成交确认”，不等于已核验成交或已完成定性研判。\n- 公共港股行情可能延迟或缺少买卖盘数量；不能仅凭 HTTP 成功解除限制。需要更稳定的实时盘口时须配置合规实时数据源，当前未自动购买行情或连接交易账户。\n- 港股没有 A 股涨停板、T+1 和龙虎榜人物生态，F 组统一 `skip`；Serenity 可正常评估。\n- 不使用晚于快照时点、时间无法核验的消息，以及当日龙虎榜。席位只作历史资金风格线索，不代替订单、量产等业务证据，也不宣称某自然人实际参与。\n- 输出位于 `skills/deep-analysis/scripts/reports/screens/<date>/<report-id>/`，包含 `picks.json`、`report.meta.json`、`index.html`。\n- 账本追加到 `skills/deep-analysis/scripts/.cache/_daily_screen/signals.jsonl`。规则分未经概率校准，不是胜率；账本当前只记录候选，尚未完成收益追踪和样本外验证。\n\ndeep 档另有强制 role-play 门禁：`run.py --depth deep` 只执行 Stage 1。Agent 必须读取当前股票缓存中的 `_agent_review_context.json`，把 `analysis_input_hash` 写入 `agent_analysis.json` 后才能调用 Stage 2；旧快照的角色判断不会被复用。\n\n---\n\n## 🎯 评分校准（v2.11）\n\n用户反馈\"茅台 47 分\"、\"没超过 65 分\"—— 诊断发现两处公式偏严苛，v2.11 校准：\n\n| 改动 | 旧 (v2.9.1) | 新 (v2.11) | 影响 |\n|---|---|---|---|\n| **verdict 阈值** | 85/70/55/40 | **80/65/50/35** | 从未有股能 ≥85（\"值得重仓\"档空设），下调 5 分让白马/真强股进\"可以蹲一蹲\"档 |\n| **consensus neutral 权重** | 0.5（半权） | **0.6** | （v2.11 校准）价值派+游资 35 人偏保守，neutral 权重 0.5 让白马 consensus 仅 37，0.6 更贴近\"不坑但不是心头好\"的真实语义 |\n\n公式（未变）：`overall = fund_score × 0.6 + consensus × 0.4`\n\n典型白马（如茅台）预期：\n- v2.9.1：`fund=62 consensus=45 → overall 55 → 观望优先`\n- v2.11：`fund=62 consensus=50 → overall 57 → 观望优先`（但更接近\"可以蹲一蹲\"边界，白马行情启动时容易进 65）\n\n两档合计影响 ~5-8 分。**真正的坑仍会 < 35 → 回避**，分数辨识度不降反升。\n\n诊断字段 `panel.json::consensus_formula.version = \"v2.11 · (bullish + 0.6*neutral) / active\"` 可审计。\n\n回归测试：`tests/test_v2_11_scoring_calibration.py` 8 个用例。\n\n完整校准记录见 [BUGS-LOG.md v2.11.0 章节](docs/BUGS-LOG.md#v2110-2026-04-18--评分校准--用户反馈驱动)。\n\n---\n\n## 🎚️ 三档思考深度（v2.10.3 新增）\n\n给用户自己选择分析力度——快想 / 正常 / 深挖：\n\n```bash\npython run.py 600519 --depth lite     # ⚡ 速判模式（1-2 分钟）\npython run.py 600519                   # 📊 标准分析（5-8 分钟）· 默认\npython run.py 600519 --depth deep      # 🔬 深度研究（15-20 分钟）\n```\n\n或通过环境变量：\n\n```bash\nexport UZI_DEPTH=lite       # 或 medium / deep\npython run.py 600519\n```\n\n### 三档差异一览\n\n| 维度 | ⚡ **lite** 速判 | 📊 **medium** 标准 | 🔬 **deep** 机构级 |\n|---|---|---|---|\n| **预计耗时** | 1-2 分钟 | 5-8 分钟 | 15-20 分钟 |\n| **fetcher 维度** | 核心 7 维 | 全 22 维 | 全 22 维 + 强化 fallback |\n| **评委数量** | 10 位代表 | 66 位完整 | 66 位 + **Bull-Bear 结构化辩论** |\n| **机构方法** | 只 DCF | 全 22 种 | 全 22 种 + **Segmental Build-Up** |\n| **ddgs 定性查询** | **全 skip**（省 token）| 按需 · 预算 30 次 | 跑满 · 预算 60 次 |\n| **fund_holders** | Top 5 完整业绩 | Top 20 完整 + 其余清单 | Top 100 完整 |\n| **自查 gate** | critical block | critical block · warning 可 ack | 两级都 block |\n| **Playwright 兜底**（v2.13.1） | ❌ 完全禁用 | opt-in · `UZI_PLAYWRIGHT_ENABLE=1` · **6 维**（4_peers/8_materials/15_events/17_sentiment/7_industry/14_moat） | ✅ 默认启用 · **10 维**（medium 6 + 3_macro/13_policy/18_trap/19_contests）· 首次 y/n 交互装 Chromium |\n| **Token 消耗（Codex）** | 最省 | 中等 | 最大 |\n| **适用场景** | 随手看 / 老板临时问 / 预判 ETF 成分股 | 日常深度分析 · 写研报 | 投委会备忘录 · 建仓前深挖 |\n\n### 自动降级策略\n\n- **第一次安装** / `.cache/_global` 空时 → 自动切 lite（省首次冷启动时间）\n- **网络预检 3+ 域不通** → 自动切 lite（避免卡死）\n- 手动 `--depth` 始终覆盖自动判定\n\n### 实战选择\n\n| 问题 | 推荐档位 |\n|---|---|\n| \"帮我看看这只票能不能买\" | `medium`（默认） |\n| \"15 分钟内给我个结论\" | `lite` |\n| \"老板明天投委会要看\" | `deep`（含 Bull-Bear 辩论 + bottom-up segmental） |\n| \"ETF 代码输进去了（系统会提示选成分股）\" | `lite`（成分股快速预判）|\n| \"Codex 环境 / 首次安装\" | 不用管 · 自动 lite |\n\n### 命令映射（隐式档位）\n\n| 命令 | 隐式档位 |\n|---|---|\n| `/stock-deep-analyzer:quick-scan 600519` | lite |\n| `/stock-deep-analyzer:panel-only 600519` | lite |\n| `/stock-deep-analyzer:analyze-stock 600519` | medium（默认）|\n| `/stock-deep-analyzer:ic-memo 600519` | deep |\n| `/stock-deep-analyzer:initiate 600519` | deep |\n\n---\n\n## 🎭 66 位评审团\n\n不是模板话术。每个人有自己的**量化规则集**（共 236 条），给出的建议必须引用具体命中了哪条。\nv3.7.0 起新增 **13 位新晋科技大佬** + 独立的 **I 组 Serenity（AI 卡位/瓶颈猎手）**；v3.9.0 再添从十年实盘交割单蒸馏的 **股海贼王**，覆盖 9 大流派：\n\n| 组 | 风格 | 人数 | 代表人物 |\n|---|---|---|---|\n| A | 经典价值 | 6 | 巴菲特 · 格雷厄姆 · 芒格 · 费雪 · 邓普顿 · 卡拉曼 |\n| B | 成长投资 | 9 | 林奇 · 木头姐 · 蒂尔 · **Andreessen (a16z)** · **Gurley (Benchmark)** · **Naval** · **Gerstner (Altimeter)** · **Chamath** |\n| C | 宏观对冲 | 7 | 索罗斯 · 达里奥 · 霍华德马克斯 · 德鲁肯米勒 · 罗伯逊 · **Burry（大空头）** · **Chanos（做空猎手）** |\n| D | 技术趋势 | 4 | 利弗莫尔 · 米内尔维尼 · 达瓦斯 · 江恩 |\n| E | 中国价投 | 7 | 段永平 · 张坤 · 朱少醒 · 谢治宇 · 冯柳 · 邓晓峰 · **张磊（高瓴）** |\n| F | A 股游资 | 24 | 章盟主 · 赵老哥 · 炒股养家 · **股海贼王 🆕**（淘股吧十年实盘蒸馏）· 北京炒家 … |\n| G | 量化系统 | 4 | 西蒙斯 · 索普 · 大卫·肖 · **Asness (AQR)** |\n| H | 科技领袖派 🆕 | 4 | **黄仁勋 (NVIDIA)** · **马斯克 (Tesla)** · **Sam Altman (OpenAI)** · **Saylor (MSTR)** |\n| I | AI 卡位/瓶颈猎手 🆕 | 1 | **Serenity（@aleabitoreddit）** |\n\n> v3.7.0（2026-06）新晋 13 人加粗。**H 组**是带着自家产业链视角的科技 CEO；**I 组 Serenity** 是单人特殊评委（见下）。\n\n**举个例子**：\n\n> **巴菲特** 给水晶光电打 62 分 · 中性\n> \"观望：护城河 27/40 可见；但 ROE 5 年最低 6.7%，达标率仅 0/5\"\n> ✅ 资产负债率 30% 保守 · ❌ ROE 5 年最低 6.7%\n\n> **黄仁勋** 给某 CPO 光模块股打 100 分 · 看多\n> \"在 AI 算力链上 · 数据中心 Capex 直接受益 · 毛利率 ≥50% 定价权强——这是光速摩尔定律的受益方。\"\n> ✅ AI 算力需求强相关 · ✅ CUDA/生态绑定深\n\n> **卡拉曼** 给水晶光电打 0 分 · 看空\n> \"看空核心：无 30% 安全边际\"\n\n---\n\n## 🧠 I 组 · Serenity · AI 卡位/瓶颈猎手\n\n> **重磅角色**：2026 年 X（推特）爆火的海外散户研究员 [@aleabitoreddit](https://x.com/aleabitoreddit)。\n> 单独成组、单独评分——因为她的打法极度集中、极度逆共识，跟任何机构大佬都不一样。\n\n### 她是谁\n\n- 自述背景：**前 AI 研究科学家 · Nature 论文作者 · 前 RISC-V 基金会成员 · 半导体/光通信工程师**\n- 二次元头像、匿名、不露脸、不卖课、不跟单，研究**全部免费公开**，X 粉丝 30 万+\n- 成名战：提前约一年押中 InP 磷化铟衬底瓶颈股 **$AXTI（$12 → $70+，最高 $115–140）**，2026 Q1 被 IntelliEPI CEO 公开印证\"InP 短缺是整个 AI 基建的瓶颈\"\n\n> ⚠️ 身份与收益均为**自述/媒体转述、未经第三方审计**，各来源数字互相矛盾。本项目仅蒸馏其**方法论**作为一个分析视角，不代表认可其真实战绩。详见 [`docs/serenity-research-dossier.md`](docs/serenity-research-dossier.md)（全网 20+ 来源逐条档案）。\n\n### 她在 UZI-Skill 里的作用\n\n把她的「**AI 产业链卡脖子/瓶颈点理论（Chokepoint Theory）**」做成一个可量化的评委——\n**不买 AI 龙头**（英伟达这种已被充分定价的票），而是沿供应链往上游拆，找那个\"全世界都绕不过去、又最容易供给见底\"的二三线上游小盘，抢在市场定价前埋伏。\n\n```\n龙头被买爆 → 沿供应链往上拆 → 找最难替代的环节 → 找该环节里供给最紧的小盘 → 提前埋伏\n```\n\n**核心打分逻辑「卡位决定态度」**——不看估值便宜、不看成长快，只看一个变量：**这家公司的产品在当前 AI 浪潮里有没有卡住别人的脖子**。\n\n| 判定 | 态度 |\n|---|---|\n| 卡住了（不可替代 + 供给瓶颈 + 没被定价） | 🟢 **看多 / 可能重仓** |\n| 在 AI 链上但卡位不硬（能被替代 / 产能充足） | ⚖️ 中性 · 待验证 |\n| 没卡到位 / 只是蹭概念 / 不在 AI 链 | 🔴 **直接 skip**（白酒、银行护城河满分也给 0 分） |\n\n判一个环节是不是\"卡位点\"看三件事：① **难替代**（换供应商/材料/工艺要多久，越久越好 → `14_moat` 切换成本）② **供给紧**（产能跟不跟得上 AI 需求曲线，越跟不上越好 → `7_industry`）③ **没被定价**（市场还在用\"周期股/老半导体/小众材料\"旧叙事看它 → `5_chain` + `15_events`）。\n\n### 怎么单独跑 Serenity 视角\n\n```bash\npython run.py 300394.SZ --school I       # 只看 Serenity 的\"卡没卡位\"判断\npython run.py NVDA --school H             # 只看 H 组科技领袖派（黄仁勋/Musk/Altman/Saylor）\n```\n\n> 方法论六步法 + alpha 5 维详见 [`skills/deep-analysis/references/fin-methods/serenity-bottleneck.md`](skills/deep-analysis/references/fin-methods/serenity-bottleneck.md)；\n> 语气库 + 评分规则见 [`skills/investor-panel/references/group-i-serenity.md`](skills/investor-panel/references/group-i-serenity.md)。\n\n---\n\n## 📐 22 种机构级方法\n\n从 [anthropics/financial-services-plugins](https://github.com/anthropics/financial-services-plugins) 移植方法论，适配了 A 股参数（rf=2.5% / ERP=6% / 税率 25% / 终值 g=2.5%）。首批 17 种 + v3.8.0 Tier-1 续引 5 种（`/ai-readiness` `/earnings-preview` `/model-update` `/returns` `/rebalance` · 见 [专项命令](#专项命令)）：\n\n**估值建模**\n- DCF（WACC 拆解 + 两段 FCF + Gordon Growth 终值 + 5×5 敏感性热力图）\n- Comps 同行对标（PE / PB / EV-EBITDA 分位 + 隐含目标价）\n- 三表预测（5 年 IS / BS / CF 联动）\n- Quick LBO（PE 基金视角 IRR 交叉校验）\n- 并购增厚/摊薄模型\n\n**研究工作流**\n- 首次覆盖报告（JPM/GS/MS 格式 · 评级 + 目标价 + 论点 + 风险）\n- 财报 beat/miss 解读\n- 催化剂日历（真实事件提取 + 未来预排 + 影响分级）\n- 投资逻辑追踪（5 支柱健康度）\n- 晨报 · 量化筛选 · 行业综述\n\n**深度决策**\n- IC 投委会备忘录（8 章节 · Bull/Base/Bear 三情景）\n- Porter 五力 + BCG 矩阵\n- DD 尽调清单（5 工作流 21 项 · 自动标注完成状态）\n- 单位经济学 · 价值创造计划 · 组合再平衡\n\n---\n\n## 📸 报告长什么样\n\n> 以下截图全部来自水晶光电（002273.SZ）的真实分析结果。\n\n### 综合评分 + 核心结论\n\n<img src=\"docs/screenshots/hero-score.png\" width=\"700\" />\n\n### 多空大分歧 · The Great Divide\n\n费雪 100 分 vs 卡拉曼 96 分，三轮互喷，每轮引用具体数字。\n\n<img src=\"docs/screenshots/great-divide.png\" width=\"700\" />\n\n### 65 位评审团 · 审判席\n\n每个人一盏灯——绿色看多、红色看空、灰色中性。\n\n<img src=\"docs/screenshots/jury-seats.png\" width=\"700\" />\n\n### 聊天室模式\n\n评委们用自己的语言风格发言，引用命中的具体规则。\n\n<img src=\"docs/screenshots/chat-room.png\" width=\"700\" />\n\n### DCF 估值 · 5×5 敏感性热力图\n\nWACC 6.96% · 内在价值 ¥20.73 · 安全边际 -28.6%，颜色从深绿（低估）到深红（高估）。\n\n<img src=\"docs/screenshots/dcf-model.png\" width=\"700\" />\n\n### IC 投委会备忘录 · 三情景回报\n\nBull ¥26.95 / Base ¥20.73 / Bear ¥14.51，每个情景有概率和假设。\n\n<img src=\"docs/screenshots/ic-memo.png\" width=\"700\" />\n\n### 22 维深度卡\n\n每个维度有独立可视化——K 线蜡烛图 / PE Band / 雷达图 / 供应链流程图 / 温度计 / 环形图。\n\n<img src=\"docs/screenshots/deep-scan.png\" width=\"700\" />\n\n### 朋友圈竖图 · 一键分享\n\n<img src=\"docs/screenshots/share-card.png\" width=\"300\" />\n\n---\n\n## 🔧 数据源\n\n全部免费，零 API key：\n\n| 数据 | 主源 | 备用 |\n|---|---|---|\n| 实时行情 / PE / 市值 | 东方财富 push2 | 雪球 → 腾讯 → 新浪 → 百度 |\n| 财报历史 | akshare | 雪球 f10 |\n| K 线 / 技术指标 | akshare | yfinance |\n| 龙虎榜 / 北向 / 两融 | akshare | 东财 |\n| 研报 / 公告 | 巨潮 cninfo + akshare | 同花顺 |\n| 港股 | akshare hk | yfinance |\n| 美股 | yfinance | akshare us |\n| 全球同行 | Yahoo Equity Screener + Fundamentals Timeseries | 本地行业同行 + 24h 缓存 |\n| 全球汇率 | Yahoo Chart FX | 原币值始终保留 |\n| 宏观 / 政策 / 舆情 / 杀猪盘 | DuckDuckGo web search | — |\n| **社交热榜**（v2.12 新增） | **微博 / 知乎 / 百度 / 抖音 / 头条 / B 站 · 各平台官方 JSON API** | 5min 文件缓存 · 单平台失败不影响其他 |\n\n多层 fallback 链 — 一个源挂了自动切下一个。\n\n### 全球同行业绩对比\n\n分析单只股票时，`4_peers` 会先保留本地市场同行，再按细分行业发现全球上市公司候选，\n只为相关度最高的 8 家补齐年度财务。报告展示全球同行中位数、目标公司分位、\n营收规模/毛利率散点和跨市场明细表；Comps 估值也会复用有效全球同行。\n\n已识别中国、香港、美国、日本、韩国、台湾、新加坡、印度、加拿大、澳大利亚、\n英国及欧洲主要交易所，并支持 Yahoo 可识别的其他交易所代码作为通用全球标的。\n\n口径约束：\n\n- 年报、季度和 TTM 不混在同一序列。\n- 营收、利润等金额保留原币值，另写基准币换算值；原始值不会被覆盖。\n- 不同币种的原始市值不会直接用于规模相似度评分。\n- 负利润和负 ROE 是有效数据，不会改写成零。\n- 有效同行少于 3 家时只展示数据，不输出全球分位结论。\n- 单个同行或汇率源失败不会中断主报告，失败代码会保留在结果中。\n\n可选配置：\n\n```bash\n# 完全关闭全球同行，只保留原有本地同行\nexport UZI_DISABLE_GLOBAL_PEERS=1\n\n# 调整最终补全数量，范围 3-12，默认 8\nexport UZI_GLOBAL_PEER_LIMIT=10\n```\n\n### 📱 6 平台社交热榜（v2.12 新增）\n\n散户情绪和杀猪盘题材经常先在抖音/小红书/微博发酵，DuckDuckGo 扫不到。v2.12 起 `17_sentiment` 维度自动查：\n\n- **微博热搜** · 抓 `weibo.com/ajax/side/hotSearch` · 50 条实时热搜\n- **知乎热榜** · 抓 `zhihu.com/api/v3/feed/topstory/hot-list-web` · 50 条\n- **百度热搜** · 抓 `top.baidu.com/api/board` · 实时榜单\n- **抖音热点** · 抓 `douyin.com/aweme/v1/web/hot/search/list/` · 搜索热点\n- **头条热榜** · 抓 `toutiao.com/hot-event/hot-board/` · 热点事件\n- **B 站热搜** · 抓 `s.search.bilibili.com/main/hotword` · 全站热搜\n\n股票名（含简称，如\"贵州茅台\"→\"贵州\"/\"茅台\"）在热榜标题里命中 → 计入情绪热度 + 记录具体条目。\n\n数据结构：synthesis 的 `17_sentiment.data.hot_trend_mentions`：\n```json\n{\n  \"stock_name\": \"贵州茅台\",\n  \"platforms_ok\": 6,\n  \"total_hits\": 3,\n  \"by_platform_count\": {\"weibo\": 2, \"zhihu\": 1, ...},\n  \"mentions\": { \"weibo\": [{\"rank\":3, \"title\":\"茅台 1499 回归\", ...}], ... }\n}\n```\n\n> 致谢：本模块设计参考了 [run-bigpig/jcp](https://github.com/run-bigpig/jcp) (韭菜盘 AI) 的 `hottrend` 服务实现。\n\n### 🔑 可选：东方财富妙想 Skills API（v2.3 新增）\n\n2026 年 `push2.eastmoney.com` 在大陆网络经常被反爬拦截。若设置\n`MX_APIKEY`，UZI-Skill 会优先走官方 NLP API：\n\n- **中文名纠错**：\"北部港湾\" → 自动识别为 \"北部湾港(000582.SZ)\"\n- **行情快照**：绕过 push2 直接拿到最新价/市值/PE/PB/行业\n\n配置：\n```bash\ncp .env.example .env\n# 编辑 .env 填入 MX_APIKEY（免费申领：https://dl.dfcfs.com/m/itc4）\n```\n\n无 key 时全部回退到 XueQiu/akshare 链，现有用户零感知。\n\n### 🔓 需登录的数据源（v2.7.1 新增）\n\n部分数据源 2026 年起加了登录鉴权，UZI-Skill 默认**不主动弹登录窗**（保持无人值守）。\n用户可按需启用：\n\n| 数据源 | 维度 | 启用方式 | 影响 |\n|---|---|---|---|\n| **XueQiu cubes_search.json** | `19_contests` 实盘比赛持仓 | `export UZI_XQ_LOGIN=1` 然后 `python -m lib.xueqiu_browser login`（一次性弹浏览器登录） | 不启用：报告 19_contests 显示\"⚠️ XueQiu 需登录，0 cube\"；启用后能看到雪球 50+ 个实盘组合持有本股 |\n\n#### XueQiu 登录步骤\n\n```bash\n# 1. 启用环境变量（一次性，可加进 .zshrc）\nexport UZI_XQ_LOGIN=1\n\n# 2. 一次性登录（首次跑会弹有头浏览器，登录后回到终端按回车）\npython -m lib.xueqiu_browser login\n# → 浏览器弹出，手动账密 / 微信扫码 / 短信登录\n# → 登录成功后回终端按回车，cookie 持久化到 ~/.uzi-skill/playwright-xueqiu/\n\n# 3. 后续跑分析自动复用登录态（cookie 通常有效 ≥ 30 天）\npython run.py 贵州茅台 --no-browser\n# 19_contests 维度会显示真实雪球组合数 + 收益率分布\n\n# 4. 如果直接跑 run.py 想启用，加 flag\npython run.py 贵州茅台 --enable-xueqiu-login\n```\n\n#### 跳过登录（默认行为）\n\n不想登录？什么都不用做。XueQiu 维度会清晰标注 `⚠️ 需登录，0 cube`，\n其他 21 个维度照常工作。\n\n#### 状态查询\n```bash\npython -m lib.xueqiu_browser status\n# 显示：profile dir / cookie 是否存在 / 是否启用\n```\n\n### 🚨 数据缺口怎么处理（v2.3）\n\n若某些字段脚本拿不到（网络限制 / 新股 / 停牌），pipeline **不会塞默认值糊弄**：\n\n1. 生成 `_data_gaps.json` 列出每个缺口的建议恢复动作（浏览器 / MX / WebSearch / 推导）\n2. Agent 按 [HARD-GATE-DATAGAPS](skills/deep-analysis/SKILL.md) 逐条尝试补齐\n3. 真的补不到 → 在 `agent_analysis.json` 里 `data_gap_acknowledged` 显式承认\n4. HTML 报告顶部显示橙色 banner + 相关字段显示 \"—\" 并划线\n\n这样你永远能分辨\"这只股真的不适合买\" vs \"只是数据没拿到\"。\n\n### 🌐 网络受限环境（v2.4 新增）\n\nUZI-Skill 在大陆和海外都能跑，但瓶颈不同，建议对号入座：\n\n**大陆网络 · `pip install` 失败怎么办？**\n\n`run.py` 和 `setup.sh` 会自动尝试国内镜像（清华 → 阿里云 → 中科大），\n所以常见情况你什么都不用做。若要手动指定：\n\n```bash\npip install -r requirements.txt \\\n    -i https://pypi.tuna.tsinghua.edu.cn/simple \\\n    --trusted-host pypi.tuna.tsinghua.edu.cn\n```\n\n**Codex / 海外 agent · 数据源访问慢怎么办？**\n\n国内数据源（尤其 `push2.eastmoney.com`）从海外访问经常超时。**强烈建议\n设置 `MX_APIKEY`**（免费申领 → https://dl.dfcfs.com/m/itc4），它走\n`mkapi2.dfcfs.com` 境内外都通，同时天然具备中文名纠错能力。\n\n```bash\ncp .env.example .env\n# 编辑 .env 填入 MX_APIKEY\npython run.py 贵州茅台\n```\n\n**双端都不通**：agent 应保留 `_data_gaps.json` / `_resolve_error.json`。如果数据已采集、\n但机构建模或评分阶段中断，使用 `python run.py <ticker> --from-modeling` 从\n`raw_data.json` 继续；如果 `dimensions.json` 和 `panel.json` 也已生成，可直接调用\n`stage2()`，都不需要从头抓取。\n\n详见 [AGENTS.md · 网络受限环境](AGENTS.md) 的场景 A/B/C 速查。\n\n---\n\n## 📁 项目结构（v3.x 架构）\n\n```\nUZI-Skill/\n├── run.py                              # ✅ 用户入口 (python run.py <ticker>)\n├── AGENTS.md / CLAUDE.md / CODEX.md    # agent 指令 (v3.2 新增 CODEX.md)\n├── GEMINI.md                           # Gemini CLI 指引\n├── RELEASE-NOTES.md                    # 完整版本日志\n├── docs/BUGS-LOG.md                    # bug 登记 + 防回归清单\n├── .claude-plugin/plugin.json          # Claude Code manifest\n├── .cursor-plugin/plugin.json          # Cursor manifest\n├── gemini-extension.json               # Gemini manifest\n├── commands/                           # 20 个 slash commands\n├── personas/                           # 66 位评委 persona (v2.15.0 · 12 flagship YAML)\n├── skills/\n│   ├── deep-analysis/                  # ★ 主 skill (股票分析)\n│   │   ├── SKILL.md\n│   │   ├── references/                 # 方法论文档\n│   │   ├── assets/                     # HTML 模板 + 65 头像 svg\n│   │   └── scripts/                    # ← 所有 Python 业务代码\n│   │       ├── run_real_test.py        # legacy stage1/stage2 (v3.1 瘦身 735 行)\n│   │       ├── assemble_report.py      # HTML shell (v3.2 瘦身 587 行)\n│   │       ├── fetch_*.py              # 22 fetcher · 也是独立 CLI\n│   │       ├── compute_deep_methods.py # 机构建模\n│   │       ├── tests/                  # pytest regression suite\n│   │       └── lib/\n│   │           ├── pipeline/           # 🆕 v3.0 管道式架构（默认路径）\n│   │           │   ├── run.py          # run_pipeline 编排入口\n│   │           │   ├── collect.py      # 并发 collector (22 adapter)\n│   │           │   ├── score.py        # scoring 段（调 rrt 纯函数）\n│   │           │   ├── synthesize.py   # stage2 薄 wrapper\n│   │           │   ├── score_fns.py    # 🆕 v3.1 · 1228 行纯函数\n│   │           │   ├── preflight_helpers.py  # 🆕 v3.1 · 网络/ticker preflight\n│   │           │   ├── fetchers/registry.py  # 22 adapter 工厂\n│   │           │   └── renderer/       # 21 个 renderer stub\n│   │           ├── tier1/              # 🆕 v3.8 · 5 个 Tier-1 方法（ai_readiness 等）\n│   │           ├── versus_runner.py    # 🆕 v3.6 · --versus 多股对比\n│   │           ├── portfolio_runner.py # 🆕 v3.6 · --portfolio 组合分析\n│   │           ├── fund_holdings_runner.py # v3.4 · ETF/LOF 持仓循环\n│   │           ├── report/             # 🆕 v3.2 · assemble_report 拆分\n│   │           │   ├── svg_primitives.py     # 19 svg_* + COLOR_*\n│   │           │   ├── dim_viz.py            # 19 _viz_xxx + DIM_VIZ_RENDERERS\n│   │           │   ├── institutional.py      # DCF/LBO/IC/catalyst/competitive\n│   │           │   ├── panel_cards.py        # 66 评委 panel\n│   │           │   └── special_cards.py      # fund/insights/school_scores\n│   │           ├── investor_criteria.py      # 66 人 × 242 规则\n│   │           ├── investor_evaluator.py     # 规则引擎\n│   │           ├── stock_features.py         # 108 标准化特征\n│   │           ├── playwright_fallback.py    # v2.13 兜底\n│   │           ├── self_review.py            # 机械自查 13 check\n│   │           └── ...                       # 其他 lib 模块\n│   ├── investor-panel/                 # 评审团 skill\n│   ├── lhb-analyzer/                   # 龙虎榜 skill\n│   └── trap-detector/                  # 杀猪盘 skill\n├── requirements.txt\n└── LICENSE\n```\n\n**v3.2 重构分层亮点**：\n\n| 层 | 文件 | 职责 |\n|---|---|---|\n| 入口 | `run.py` | CLI 主入口 · `UZI_LEGACY=1` 回退老路径 |\n| 管道 | `lib/pipeline/*` | v3.0 主干 · collect / score / synthesize |\n| 纯函数 | `lib/pipeline/score_fns.py` | v3.1 · score_dimensions / generate_panel / generate_synthesis |\n| 渲染 | `lib/report/*` | v3.2 · 5 个子模块 · svg / viz / inst / panel / special |\n| Legacy | `run_real_test.py` + `assemble_report.py` | v2.x 向后兼容层 · re-export 所有迁移函数 |\n\n---\n\n## 🧠 设计理念\n\n**Agent 驱动分析，脚本只是工具。**\n\n整个流程分两段——中间 agent 必须介入，**最后必须自查**（v2.9 起机械强制）：\n\n```\nStage 1 (脚本)          → 数据采集 + 模型计算 + 规则引擎骨架分\n        ⏸️ Agent 介入   → 读数据 → role-play 66 评委 → 写判断 → 审查假设\nStage 2 (脚本)          → 综合研判 + 自动跑 13 条自查 → 报告生成\n                         ↑ v2.9 核心：critical 不过 → 拒绝出 HTML\n```\n\n**66 个评委不是跑公式出分数**——agent 要真正站在每个人的角度思考：\n\n- 巴菲特分析苹果 → agent 知道这是伯克希尔第一大持仓 → override 看多\n- 赵老哥分析美股 → agent 知道游资不做美股 → skip\n- 木头姐分析白酒 → agent 知道她只看颠覆创新 → \"不在平台里\"\n- 格雷厄姆看到 PE 33 → 不需要复杂推理 → 看空\n\n每个判断都可以覆盖规则引擎的机械得分，但必须给出理由。\n\n**三层评估**：真实持仓 → 行业亲和度 → 量化规则。真金白银比任何公式都有说服力。\n\n### 🛡 机械级自查 gate（v2.9 起）\n\n过往 `HARD-GATE-FINAL-CHECK` 是\"软要求\"——agent 可能跳过、可能忘、可能做半截。BUG#R10（云铝被归为\"农副食品加工\"）就是全流程跑完报告发出去，才被用户发现行业分类错了。**软 gate 不够，v2.9 起机械强制。**\n\n**`lib/self_review.py`** 13 条自动检查覆盖所有历史 BUG 经验：\n\n| severity | 抓什么 | 背后 BUG |\n|---|---|---|\n| 🔴 critical | 行业碰撞（工业金属→农副食品加工） | BUG#R10 |\n| 🔴 critical | 维度缺失 / 空 data / 占位符 | wave2 timeout、fetcher 崩溃 |\n| 🔴 critical | HK kline 0 根 / HK 财报空 | BUG#R7 / R8 |\n| 🔴 critical | panel 全 skip / coverage < 60% | 数据灾难 |\n| 🔴 critical | agent_analysis 缺 / 未 review | agent 偷懒 |\n| 🟡 warning | DCF 全 0 / 金属股 materials 空 | v2.8.x coverage gap |\n| 🟡 warning | 编造\"苹果产业链\"无 raw_data 证据 | 联想编造 |\n\n**`assemble_report::assemble()` 入口自动跑 review**，critical > 0 → `raise RuntimeError(\"⛔ BLOCKED by self-review\")`，**物理上无法出报告**，直到 agent 修完。\n\n```bash\n# agent 迭代流程\nloop:\n  python review_stage_output.py <ticker>\n  读 .cache/<ticker>/_review_issues.json\n  对每条 critical 执行 suggested_fix\n  直到 critical == 0 才出 HTML\n```\n\n每次新 BUG 修完，对应的 `check_*` 规则都会加到 self_review，**下次同类问题跑完就自动抓到，不再靠用户反馈**。\n\n---\n\n## ❓ FAQ\n\n**Q: 跑一次要多久？**\nA: 5-8 分钟，主要是数据采集慢（22 个维度要调十几个 API）。纯计算的机构建模部分 < 1 秒。\n\n**Q: 需要付费数据源吗？**\nA: 不需要。全部免费源（akshare / yfinance / DuckDuckGo / 巨潮 / 东方财富 / 雪球），零 API key。\n\n**Q: 港股美股能用吗？**\nA: 能。`/stock-deep-analyzer:analyze-stock 00700.HK` 或 `/stock-deep-analyzer:analyze-stock AAPL`。\n\n**Q: 数据准不准？**\nA: 实时数据走东方财富 / 雪球，财报走巨潮 / akshare，和你在东方财富 App 上看到的一样。但 web search 质量不稳定（DuckDuckGo 中文搜索有时会返回无关结果），所以 Claude 会做二次审查。\n\n**Q: 能当投资建议吗？**\nA: 不能。这是工具不是神仙，66 个大佬的意见都是规则引擎模拟的，不代表真人观点。买不买你自己决定。\n\n**Q: 怎么知道这次报告数据是否可信？**\nA: v2.9 起**强制**机械自查。报告生成前跑 13 条检查，critical 不过物理上发不出报告。`.cache/<ticker>/_review_issues.json` 里能看到本次跑有没有 warning，每条都带 `suggested_fix`。每次新 BUG 修完都加对应检查 → 下次同类问题自动抓到，不靠用户反馈。\n\n**Q: 怎么升级到新版本？自动提示吗？**\nA: 会。v2.14.0 起每次启动 CLI 或 agent 会话都会后台检测 GitHub 最新 release：\n- 有新版本 → 弹三选一提示（是 / 跳过本版 / 否）+ 改动摘要\n- 选\"是\"→ 按你装的方式执行对应命令：\n  - Claude Code: `/plugin update stock-deep-analyzer`\n  - git clone: `cd UZI-Skill && git pull`\n  - Hermes: `hermes skills update wbh604/UZI-Skill/skills/deep-analysis`\n- 选\"跳过本版\"→ 该版本不再提示，下一个新版本出来时才再弹\n- 选\"否\"→ 下次启动再问\n- 网络慢 / 关掉检查：`export UZI_NO_UPDATE_CHECK=1`（CI / Codex 环境推荐）\n- 缓存 6 小时 · 不会每次都打 GitHub API\n\n**Q: 之前报告里有 BUG 怎么办？**\nA: 2026-04-17 前跑过\"工业金属 / 工业母机 / 工业机械\"相关股票的用户，cache 里的 `7_industry` 维度是错的（云铝被归为农副食品加工的那个 bug）。清 cache 重跑即可：\n```bash\nrm -rf skills/deep-analysis/scripts/.cache/<ticker>/raw_data.json\npython run.py <ticker> --no-resume\n```\n\n---\n\n## 📋 更新日志\n\n| 版本 | 日期 | 主要变化 |\n|---|---|---|\n| **v3.9.4** | 2026-08-08 | **前端显示修复 + 美化（kimi-k3）** · ① None 泄漏清零：政策面（方向/补贴/监管/反垄断）与资金面\"主力资金 20日\"在数据源返回 null 时曾直接显示 `None`，现统一兜底为 \"—\"/\"数据暂缺\"。② 移动端图表裁切：sparkline SVG 固定 220px 宽度撑破容器（LBO 的 EBITDA 路径/债务偿还、维度卡迷你图），改为 `width:100%` 自适应 + 移动端单列堆叠；敏感性表/机构建模表移动端横向可滚动。③ 治理面措辞：\"关联交易/违规\"此前仅因搜过查询词就显示\"未发现\"（`qualitative_search` 存的是搜索词非结果），改为中性\"暂无公开违规记录\"。④ 抄作业卡片\"时间框架/仓位风格/翻盘条件\"标签与正文粘连，改为标签不换行+留白+正文右对齐。⑤ 美化：维度卡顶部常驻分级色条（高绿/中金/低红）+ hover 高亮、全局平滑锚点滚动、文本选择色、`:focus-visible` 聚焦环、细滚动条、section/卡片进入视口轻浮现（尊重 `prefers-reduced-motion`）、TOC 锚点 `scroll-margin` 防遮挡。⑥ 版本对齐：3 个子 skill（investor-panel/lhb-analyzer/trap-detector）原停在 3.9.2 与主 manifest 不一致，全部统一 bump 到 3.9.4。全量 685 passed |\n| **Unreleased** | 2026-08-05 | **全球同行业绩对比 + 数据完整性 hotfix** · 自动按全球细分行业发现候选并补全 Top 8 年度财务，覆盖日/韩/台/新/印/加/澳/英/欧洲等 Yahoo 交易所后缀；原币与 USD 标准化值分离，跨币种原始市值不混算，同行失败隔离、后备候选递补并缓存 24h。报告新增目标高亮、同行中位数、全球分位、规模/毛利率散点和明细表，结果接入 Comps 与维度评分。同步包含 issue #87/#90 的行情 scale、自身同行剔除和美股 TTM 修复。22 个全球同行专项测试 · 全量 685 passed |\n| **v3.9.3** | 2026-08-07 | **茅台深度实测驱动的数据/渲染修复** · ① 现金流误判：`fcf_positive` 从 OCF/净利比改为真实 FCF，茅台(FCF 658亿)不再显示\"现金流为负\"；`_ic_risks` 的\"行业周期下行\"不再无条件追加，仅行业判定衰退时才算。② 同行修复：push2 被反爬时 4_peers 曾只剩自己一行(\"暂无可比股\")——新增 INDUSTRY_PEERS 硬编码同行兜底(白酒→五粮液/泸州老窖/洋河/山西汾酒)，用 `stock_financial_analysis_indicator_em`(不走 push2)拉 ROE。③ 渲染修复：评委 pass/fail dict 不再泄漏成 Python 字面量(报告曾出现 162 处 `{'msg':...}`)；4_peers 对比条 `abs(None)` 崩溃；一致目标价不再显示\"(None)\"。④ deep 档强制 agent 介入 role-play：`--depth deep` 不再 CLI 一把梭，须 stage1 → 读 persona → 写 agent_analysis.json(`per_investor_override` 已能真正合并)。⑤ Codex 评审反馈(P1/P2)：`fcf_positive` 优先用真实经营现金流(净利×0.8 仅作缺失回退)；同行兜底补别名匹配(集成电路→半导体 / 工业金属→有色金属)且被分析股不在同行列表时补 self 行；HK rank-only 的 `peer=\"—\"` 不再被渲染成 0 对比条。45+ 回归测试 |\n| **v3.9.2** | 2026-07-07 | **流程与数据契约 hotfix（issue #82/#83）** · ① `fetch_financials` 显式输出 `ocf` / `ocf_history` / `ocf_to_net_income_ratio`，不再只把经营现金流藏在 `fcf` 字段里；`stock_features` 读入 OCF/净利比，避免 trap-detector 默认 1.0 误判。② `industry=None` 时 `fetch_peers` 返回 self-only fallback + reason，`fetch_valuation` 用 cninfo 市场加权 PE 兜底并标明原因。③ pipeline registry 字段契约对齐 legacy 输出（`financial_health` / `pe_quantile` 等），避免假 data_gaps。④ `agent_analysis.json` 结构性 schema error 现在真正 fallback 到脚本骨架，不再污染 synthesis。⑤ `run.py` 统一 fund summary / `--versus` / `--portfolio` 的浏览器、`--output-dir`、`--remote` 后处理；`cloudflared` 缺失时默认不自动安装，需显式 `--install-cloudflared`。8 个新回归测试 |\n| **v3.9.1** | 2026-06-23 | **HTML 报告导航栏可折叠（issue #79 · @QKioi）** · v3.6.0 加的左侧 sticky 章节导航栏会略微遮挡正文，本次按社区建议加折叠按钮：展开态 `◀`，点一下收起成一个 `☰` 小把手（items 全藏 · 不再压住正文），再点一下展开 · 状态写入 `localStorage`(`uzi-toc-collapsed`) 刷新记忆 · 全程安全 DOM(无 innerHTML) + `aria-expanded` 可访问性. 7 个新回归 · 总 649 passed |\n| **v3.9.0** | 2026-06-11 | **新评委「股海贼王」· 首位从真实交割单蒸馏的评委 (65→66)** · 数据源：淘股吧十年实盘帖 (2016-02 开贴) · 3898 张持仓截图 OCR → **8951 笔反推交割单** + **5069 条发言**. 定量画像：33 万→3131 万 (~95 倍/10 年) · 持仓中位 1 天/P75 3 天 · 同时 3-5 只 · 第一重仓中位 51% · 10 年 2010 只票题材轮动 (鸿博/川能/人民网/大众交通). 方法论蒸馏（风格提炼·不逐字转载原帖）：复盘三问(为啥涨停/板块地位/大盘地位) · 弱转强快速板才算超预期 · 逻辑硬的低位票爆发力足 · 格局票=时代的情绪载体(三五倍格局论) · 反复强调不跟单. 落地：F 组 flagship · 6 条数据驱动规则 (阈值来自其真实行为统计) · 台词按风格原创撰写 · `docs/ghzw-dossier.md` 蒸馏档案. **原始交割单/截图/发言均为本地数据 · 未入库.** 实测：鸿博式妖股 bullish 100 (他真做过 22 次) · 茅台 bearish 9.5 · 美股 skip. 10 个新回归 · 总 642 passed |\n| **v3.8.1** | 2026-06-09 | **skills 全面体检 · H/I 两组配套层 6 处补齐** · 体检发现 v3.6.3/v3.7.0 加 14 位评委时配套层漏更新（全部静默降级所以没暴露）：① 14 评委缺头像 SVG → 报告破图（gen_pixel_avatars 补齐 · 总 65）② `render_school_scores` order=[A..G] → H/I 两派分数永远不渲染 ③ GROUP_LABELS ×3 处缺 H/I → 显示裸字母 ④ `GROUP_DEFAULT` 缺 H/I → profile 全 \"—\" ⑤ `STYLE_GROUP_WEIGHTS` 缺 H/I → v2.7 风格加权对两组失效（现 I 在红利股 0.2/科技成长 1.5）⑥ 13 新评委补显式 MARKET_SCOPE + PERSONAS voice 台词（之前群聊全是 generic 套话）. 文档同步 ~35 处（52→65 评委 / 7→9 流派 / 180→236 规则 / --school A-G→A-I）. 10 个新体检回归 · 总 632 passed |\n| **v3.8.0** | 2026-06-08 | **Tier-1 五方法 + Serenity 严谨化 + 技术指标/杜邦扩展**（参考 `anthropics/financial-services` + `lolifamily/ashare-mcp` + `muxuuu/serenity-skill`）. **① Tier-1 5 方法**（新包 `lib/tier1/`）：`/ai-readiness`（AI 就绪度/卡位 · 复用 `ai_chokepoint_score`）· `/earnings-preview`（财报前预览 · Bull/Base/Bear + 隐含波动）· `/model-update`（增量更新模型 · 假设 delta + 对 DCF/Comps/thesis 影响）· `/returns`（组合收益归因）· `/rebalance`（逐持仓再平衡 + 本地化换手成本，A股无资本利得税故不做 TLH）. **② Serenity 严谨化**（不再只会看多）：8 罚分因子（炒作无订单/微盘流动性/杀猪盘/治理/周期/替代设计/地缘/稀释 · 封顶 60% 折扣）+ 3 级证据阶梯（强公告财报×1.0 > 中媒体卖方×0.85 > 弱叙事×0.70 · 同卡位\"有定点量产\"≈90 vs\"仅题材\"≈60）+ 供应链 8 层分层（材料→...→下游 · 越上游瓶颈分越高）. **③ 指标扩展**：DuPont 杜邦分解（ROE 质量来源 margin_driven/leverage_driven · 价值派用）+ KDJ/OBV/Williams%R（K 线卡片新增副指标徽章 · 技术派用）. 61 个新回归测试 · 总 622 passed |\n| **v3.7.1** | 2026-06-04 | **首页补 Serenity 介绍 + `--school H/I` 放开** · 用户反馈\"README 没把 Serenity 写清楚\". 修复：(1) 评审团章节重写 52→65 人 · 7→9 组完整表 (A–I)· 规则 180→236; (2) 新增专门 `## 🧠 I 组 · Serenity · AI 卡位/瓶颈猎手` 介绍块（她是谁 + 未审计免责 + Chokepoint Theory 作用 + \"卡位决定态度\"打分表 + `--school I/H` 用法）; (3) **bug fix** · v3.7.0 起 evaluator `SCHOOL_LABELS` 已含 H/I 但 `run.py` argparse `choices` 还停在 A-G · 文档说能用实跑报错 · 现 choices 扩到 A-I + `_SCHOOL_NAMES` 补中文名; (4) README/CLAUDE/AGENTS/GEMINI 当前状态计数 52→65 评委同步（历史 changelog 不动）. 533 passed |\n| **v3.7.0** | 2026-06-03 | **13 位新晋科技大佬集体入团 · 52→65 评委** · 用户反馈\"评委库新晋科技 / AI / VC 视角覆盖不足\". 新增分布：**B 成长派 +5** (Marc Andreessen a16z / Bill Gurley Benchmark / Naval Ravikant AngelList / Brad Gerstner Altimeter / Chamath Palihapitiya Social Capital) · **C 宏观派 +2** 做空猎手 (Michael Burry Big Short / Jim Chanos Kynikos) · **E 中国价投 +1** (张磊 高瓴 · \"做时间的朋友\") · **G 量化派 +1** (Cliff Asness AQR 价值×质量×动量三因子) · **H AI 卡位/瓶颈猎手 +4** (黄仁勋 NVIDIA / Musk TSLA / Sam Altman OpenAI / Saylor MSTR). 每位评委 ≥4 条规则 (测试守护) · `_render_school_lock_banner` THEMES 全派代表评委更新为真实在册成员 · H 派配色紫色 🔗. NVDA 跑分实测 Andreessen/Gerstner/Huang/Altman 全 100 · 茅台跑分 Andreessen 38 (industry filter ✓ 白酒不在 software/AI) · 张磊 80 (✓ 长跑道龙头). 18 个新回归测试 · 总 532 passed |\n| **v3.6.3** | 2026-06-03 | **重磅角色 Serenity · AI 卡位/瓶颈猎手（新增第 52 位评委 · 独立 I 组）** · 把 X 爆火的 AI 供应链「卡脖子/瓶颈点」投资人 Serenity ([@aleabitoreddit](https://x.com/aleabitoreddit)) 接入评审团 · 参考 [serenity-alpha skill](https://github.com/haskaomni/serenity-skill/tree/main/serenity-alpha) 方法论 + 爬 X 真实言论建语气库. **核心打分逻辑「卡位决定态度」**：新增派生特征 `ai_chokepoint_score`（AI 链命中 × 不可替代性 × 中小市值弹性 × 需求拐点）· `SERENITY_RULES` 全 weight 5 · 产品卡在 AI 瓶颈（光模块/CPO/HBM/CoWoS/InP 衬底…）+ 上游不可替代 + 小市值 → **bullish 重仓**；没卡到位/不在 AI 链上 → **bearish 不碰**（白酒/银行护城河满分也 score=0）；在链但卡位不硬 → neutral 待验证. 改动 `investor_db`(独立 I 组)/`investor_criteria`/`investor_evaluator`(`--school I`)/`investor_personas`/`investor_profile`/`stock_features`/`agents/investor-panel.md`/`investor-cards.json`(置顶高亮). 新增 `group-i-serenity.md` + `fin-methods/serenity-bottleneck.md`（六步法 + alpha 5 维 + $AXTI 范例）+ `serenity-voice.md` 语气库 + `docs/serenity-research-dossier.md`（全网 20 条评价档案）. 8 个新回归 + 实测水晶光电(neutral 59) · 总 533 passed |\n| **v3.6.2** | 2026-06-03 | **cninfo 翻页长尾修复 + Hermes 脚本 pip 探测** · 两个社群 issue 同发. **#68** ([@xy2yp](https://github.com/wbh604/UZI-Skill/issues/68))：`--versus 000958 600406 --depth lite` 卡在 15_events cninfo 公告 · `0/854 [01:53<6:11:58]` · 根因 `akshare.stock_zh_a_disclosure_report_cninfo` 内部翻完全部 854 页才返回 · 我们 `.head(30)` 是事后截取没用. 修法：新增 `_cninfo_direct_api` 直连 cninfo `/new/hisAnnouncement/query` HTTP · `pageSize=30 + pageNum=1 + 15s 硬超时` · akshare 慢路径默认禁用（`UZI_AK_CNINFO_FALLBACK=1` opt-in）· 几小时 → ≤15s. **#69** ([@FrankHuy](https://github.com/wbh604/UZI-Skill/issues/69))：Linux + Py3.11 跑安装脚本 `pip: command not found` · akshare 装不上. 修法：脚本启动加 Python 版本预检（≥3.10）· pip 五层级联探测（venv/.venv/pip/pip3/python -m pip）· 完全失败时给 apt/yum/ensurepip 三套指令 · install 失败给镜像源 + 升级 pip 建议. 12 个新回归 · 总 507 passed |\n| **v3.6.1** | 2026-05-29 | **Hermes Skills Guard 假阳性绕过** · [issue #66](https://github.com/wbh604/UZI-Skill/issues/66) (@zodiacg) 反馈：`hermes skills install` 报 `Verdict: DANGEROUS · 168 findings` · `--force` 也覆盖不了. 诊断：Hermes Skills Guard 模式匹配假阳性 · 把我们读 `os.environ.get(\"UZI_DEPTH\")` 当 \"exfiltration\" · `subprocess.run([\"brew\", \"install\", \"cloudflared\"])` 当 \"privilege_escalation\" · HTML 注释当 \"injection\". Hermes 团队已知问题 ([#1006](https://github.com/NousResearch/hermes-agent/issues/1006)/[#7072](https://github.com/NousResearch/hermes-agent/issues/7072))· 官方 builtin skills 也被自家扫描器拦. 修法：新增 `install-hermes.sh` (96 行 · `set -euo pipefail`) · `curl ... \\| bash` 一键 clone + symlink + venv pip · 完全等价 Hub 安装但跳过扫描. `INSTALL-HERMES.md` 头部重写解释假阳性原因. 11 个新回归测试守护 (script 存在/bash 语法/严格模式/4 skill 覆盖/venv fallback/文档链接) · 总 495 passed |\n| **v3.6.0** | 2026-05-29 | **视觉/交互大升级 + 多股横向对比 + 组合分析** · 三 Phase 拼合发布. **Phase A 视觉**：(1) 暗色模式 toggle（右上角 🌙 · `localStorage` 持久化 + `prefers-color-scheme` 自动初始化）· (2) 左侧 sticky TOC + IntersectionObserver scroll-spy · (3) 大评分 count-up 动画 · (4) PE/PB/ROE/DCF/IRR/WACC/EV-EBITDA/LBO/YTD/TTM/PEG/LHB 自动包 `.jargon` + 悬浮 tooltip · (5) 报告底部 QR 码（扫码直达完整报告）· 🔒 全部用 `createElement + textContent` 安全 DOM · 不用 innerHTML (XSS 防御). **Phase B `--versus`**：2-4 只票横向对比 · `lib/versus_runner.py` (380 行)· ★ WIN 高亮 12 个核心指标 · 单 HTML 自包含 · 复用 cache. **Phase C `--portfolio`**：用户上传 CSV (ticker/weight/note) · 容错解析（header/无 header/中英文列名/0-1 vs 0-100 权重）· 权重自动归一 · 输出排名 + KPI（加权评分 + 集中度 + 行业分散）+ metadata.json · `lib/portfolio_runner.py` (370 行). Phase D（`--sector` / `--as-of`）需 fetcher date-aware · 留到 v3.7. 39 个新回归测试 · 总 484 passed |\n| **v3.5.0** | 2026-05-29 | **单一流派视角锁定 (`--school A-G`) + SaaS 集成 (`--output-dir`)** · 社群反馈\"我只想看 F 派游资视角 · 不想 51 评委一起 vote\". (1) `run.py` 加 `--school A/B/C/D/E/F/G` · 价值/成长/宏观/技术/中国价投/游资/量化 七选一 · `investor_evaluator.evaluate` 入口检查 `UZI_SCHOOL` env · 非该派评委直接 `_skip_result(reason=\"用户锁定 X 派视角\")` 不进规则引擎. (2) `synthesis.school_lock={group,label}` 编码进 syn · `_render_school_lock_banner` 7 派各自配色（A=深绿/F=深红/G=青）渲染在报告顶部 · 让分享者一眼看出本次仅看了该派 · 避免被误读为 51 评委结论. (3) `SKILL.md` 加 HARD-GATE · agent role-play 时严格只 role-play 该派 · `panel_insights` 不写跨派对比. (4) 同时合入早先准备的 `--output-dir DIR` SaaS 集成参数 · 把 `reports/{ticker}_{date}/` 拷到外部路径 + 写 `index.html` / `report.meta.json` 供 Celery worker 落库. 11 个新回归测试 · 总 445 passed |\n| **v3.4.5** | 2026-05-12 | **F 派游资 LHB 反查 + low-confidence banner** · 社群 codex agent 跑京东方 (000725) 实测发现两点：① F 派 23 人全 skip（市值 2000 亿超射程）· 但 LHB 实际有 3-5 个游资席位参与涨停博弈 · 评委逻辑与数据脱节. ② 规则引擎 fund_score 37.6 但 agent 重评 65/100 · 报告无任何\"score 不可信\"警告 · 用户误判. 修法：(1) `_is_youzi_out_of_range` 加 LHB 反查 · features.matched_youzi 含该游资昵称时强制不 skip. (2) `_render_data_gap_banner` 新增 syn 参数 · stock + fund_score<50 + cov<60% → 渲染 low-confidence 红色 banner · 文案明确引导看 agent 重评估. 10 个新回归测试 · 总 407 passed |\n| **v3.4.4** | 2026-05-12 | **data quality banner UX 优化** · 社群反馈两点：① ETF 报告 \"覆盖率 17%\" 让用户误判可信度（实际 ETF 本就无 ROE/PE 个股字段）· ② 橙色 banner 上橙色字（`#f59e0b/#fbbf24`）看不清. 修法：(1) banner 检测 ETF/LOF/mutual_fund · 切换 `fund-type` 蓝色调 banner · 文案明确\"基金类型预期缺字段·不影响可信度\"+ 引导看持仓股报告. (2) CSS 对比度大改 · title→#92400e 深棕 · subtitle strong→#7c2d12 + 加粗 800 · chip 文字→#7c2d12 · subtitle 正文→#1f2937 深灰. 11 个新 CSS + 行为回归测试 · 总 397 passed |\n| **v3.4.3** | 2026-05-12 | **开放式基金分类修复 + 字段级 fallback gate** · (1) [#60 复议](https://github.com/wbh604/UZI-Skill/issues/60) (@SchrodingerBarbatos) · 用户输 110011 易方达优质 → 被错判 convertible_bond early-exit. 修法：`classify_security_type` 在判 cb 前用 `akshare.fund_name_em` 二次校验 · 加 `mutual_fund` 类型 · run.py + preflight 路由到 fund_holdings_runner · 005xxx 等股票前缀外的基金也识别. (2) [PR #63](https://github.com/wbh604/UZI-Skill/pull/63) (@Wood Letitia · 313+137 行) · 字段级 fallback gate · 修 source-level 整块切换导致 name 永远缺的问题 · 主源拿到 price/PE/PB 但 name 空时 · 自动调 tencent_qt → baostock → ak_code_name 补全 · 仅填空不覆盖. 386 tests passed |\n| **v3.4.2** | 2026-05-11 | **Windows + Clash + Schannel TLS 兼容** · 社群反馈\"Clash 国内规则 DIRECT 还是 Schannel · 东方财富彻底不可用 · 只有 baostock 能用\". 修法：(1) `lib/data_sources.fetch_basic` 在所有 eastmoney 链路（xueqiu / push2 / baidu / tencent_qt）后追加 baostock fallback · `query_history_k_data_plus` 拿 peTTM/pbMRQ/close · `query_stock_basic` 拿 name/listed_date; (2) `fetch_financials._fetch_a_share` 当 ROE/营收/净利率全空时调 baostock `query_profit_data` 拉 5 年季报 · 解析 ROE history / 营收 history / 净利率 / 毛利率. 实测茅台 baostock 拿到 ROE=19.25% / 净利率 52.6% / 营收 893.5 亿. 6 个新回归 test (含真机烟雾) · 总 374 passed |\n| **v3.4.1** | 2026-05-11 | **verdict 粒度细化** · 社群反馈\"神剑股份(58分) / 博云新材(60分) verdict 都是观望优先 看不出差异\". 修法：(1) verdict 50-65 拆三档（观望偏空 50-55 / 观望中性 55-60 / 观望偏多 60-65）· 65-70 加\"可以蹲（偏弱）\"; (2) verdict label 追加\"X 派看多 / Y 派看空\"; (3) synthesis 加 `verdict_detail = \"基本面 X · 共识 Y\"` · assemble_report 渲染时拼到 verdict 后. 改后两只票 verdict 仍同段（55-60）但 detail 让基本面 +2 分差异显式可见. 5 个新回归 test · 总 368 passed |\n| **v3.4.0** | 2026-05-10 | **基金/ETF 持仓循环分析 + baostock ≥0.9.1** · ETF/LOF 不再 early-exit · 改为列出前 10 持仓 + 估算耗时 + **二次确认**（y / 数字 / N） · 确认后循环跑 stock-analyze + 生成 fund-holdings-summary.html. partial failure 容忍 · `UZI_FUND_AUTO_YES=1` 跳过 prompt（CI/agent）. 可转债/指数仍 early-exit. 同时 `requirements.txt` 锁 `baostock>=0.9.1` (社群通知 2026-04-22 起服务端要求). 新建 `lib/fund_holdings_runner.py` (240 行) · 7 个回归测试 · 总 362 passed. 真机：510300 持仓正确拉到（茅台 5.89% top1） |\n| **v3.3.4** | 2026-05-10 | **mini_racer V8 crash escape hatch** ([#61](https://github.com/wbh604/UZI-Skill/issues/61)) · 用户 @dragonforai 报 `python run.py SEHK.03690 --depth deep` → `[FATAL:address_pool_manager.cc(67)] Check failed`. 根因：macOS Py 3.12/3.13 下 mini_racer V8 isolate pool 即使串行化仍可能双重初始化 SIGTRAP（进程级崩 · Python `try/except` 抓不到）. 多重修法：① `UZI_DISABLE_MINI_RACER=1` 显式禁用. ② **Sentinel 文件机制（核心创新）**：调 mini_racer fetcher 前 arm `~/.uzi-skill/_minirackercrash.sentinel` · 成功后 disarm · 进程崩则 sentinel 留下 · 下次启动自动 disable + 提示用户. ③ `UZI_FORCE_MINI_RACER=1` 强制启用. legacy + pipeline 双路径都加保护. 新增 7 个回归 test · 总 355 passed |\n| **v3.3.3** | 2026-05-06 | **社区 PR 4 合 1**（[#52](https://github.com/wbh604/UZI-Skill/pull/52) / [#54](https://github.com/wbh604/UZI-Skill/pull/54) / [#55](https://github.com/wbh604/UZI-Skill/pull/55) / [#59](https://github.com/wbh604/UZI-Skill/pull/59)） · #52 [LHB akshare 1.18+ \"近一月\" 失效](https://github.com/wbh604/UZI-Skill/pull/52) (@qdby26) · 改 YYYYMMDD 日期循环 + 6 mock test。#55 [agent_analysis schema docs](https://github.com/wbh604/UZI-Skill/pull/55) (@DragonQuix) · SKILL.md + analyze-stock.md 文档化 12 条 validator 校验规则。#54 (@DragonQuix) cherry-pick svg_radar import · #59 (@Charlson852) cherry-pick Python 3.11 嵌套 f-string SyntaxError 修复（**避开了 #59 原版的 items.append 缩进 bug**）· 新增 5 个回归 test 守护 · 总 348 passed |\n| **v3.3.2** | 2026-04-28 | **GitHub issue #50 + #51 hotfix**（社区驱动）· #50 [Stage 2 总是超时](https://github.com/wbh604/UZI-Skill/issues/50)：v3.2 拆分时 `lib/report/institutional.py` 漏 import `svg_sparkline` · `_render_lbo_block` 触发 NameError → stage2 崩 · 加进 import 块即修复（致谢 @chenxiang-bj 报告 + agent 诊断）。#51 [XueQiu 登录验证失败](https://github.com/wbh604/UZI-Skill/issues/51)：`/cubes/cubes_search.json` endpoint 已下线 · 改用 `/query/v1/search/cube/stock.json?q={code}` (致谢 @bilieebiliee1-design 报告 + @Kylin824 提供 fix)。3 处文件同步换 endpoint。新增 5 个回归 test · 总 337 passed |\n| **v3.3.1** | 2026-04-28 | **Hermes 兼容回归修复 (hotfix)** · 群友反馈\"更新后不支持 hermes 报错\"。根因：v3.0/v3.1/v3.2 重构期 main 上从未包含 hermes 兼容代码（`INSTALL-HERMES.md` / `skills/deep-analysis/run.py` / `requirements.txt` / 4 个 SKILL.md hermes metadata 全缺）· 但 README 仍叫 hermes 用户装 main · 装下来缺文件就崩。修复：从 `hermes-compat` 分支 cherry-pick 5 项核心适配到 main + `run.py` 加双 layout 探测。**hermes 用户重装一次 skill 即恢复**（`hermes skills uninstall` + install 4 个）|\n| **v3.3.0** | 2026-04-23 | **分支大整合**：唯一未合 feature（v2.10 segmental 渲染层 · 228 行 + 222 CSS）cherry-pick 到 v3.2 架构 · 新建 `lib/report/segmental.py` (555 行)。同时清理 22 个 stale 分支（refactor/* / docs/* / feature/v2.14-v2.15.3 都已 superseded）· 仅保留 main + hermes-compat · 单一开发主干. |\n| **v3.2.0** | 2026-04-23 | **assemble_report.py 深度拆分 (-80%)**：2964 → 587 行 · 拆 5 个子模块 `lib/report/svg_primitives` (602) / `dim_viz` (742) / `institutional` (532) / `panel_cards` (183) / `special_cards` (544)。v2.x 所有 API 保持 re-export · 332 tests 全过 · e2e 零差异 · 加 `CODEX.md` + `AGENTS.md::Repository Layout` 给 codex 准确入口指引 |\n| **v3.1.0** | 2026-04-23 | **run_real_test.py 瘦身 65%**：2105 → 735 行。1228 行纯函数 (`_f/score_dimensions/generate_panel/generate_synthesis/_autofill_qualitative_via_mx`) → `lib/pipeline/score_fns.py`；166 行 preflight/resolve/ETF guard → `lib/pipeline/preflight_helpers.py::prepare_target()`。rrt 做 re-export 保持完整向后兼容 · 332 tests 全过 · 002217 resume 10s 出报告 |\n| **v3.0.0** | 2026-04-23 | **pipeline 架构默认启用**：`python run.py <ticker>` 默认走 `pipeline.run_pipeline` · `UZI_LEGACY=1` 强制回老路径 · pipeline 异常自动 fallback。Phase 6c 解耦：`pipeline.score` 直接调 rrt 纯函数（不再走 stage1 重复 collect）· 002217 score_from_cache 从 180s → 10.6s。Pipeline 预检 guards (中文名 / ETF / LOF / 可转债 → fallback legacy) |\n| **v2.15.5** | 2026-04-23 | **评分公式重校准**：`panel_consensus` 从单一 vote 公式升级为混合公式 `0.65*score_mean + 0.35*vote_weighted` + 极化拉伸 (k=1.3) · 解决\"大多数分在一个区间徘徊\"问题 · 7 流派 consensus 分歧更清晰 · 002217 F 游资 51→43.7（vote 高估修正）· G 量化 50→59.3（实分低估修正） |\n| **v2.15.4** | 2026-04-22 | **按流派打分 school_scores**：7 大流派 (A 价值 / B 成长 / C 宏观 / D 技术 / E 中式 / F 游资 / G 量化) 各自产出 consensus/avg_score/verdict · 报告新增\"SCHOOL SCORES\"卡片 · 同一只票可见不同哲学的分歧（宏观派买入 vs 成长派回避） |\n| **v2.15.3** | 2026-04-21 | **性能 hotfix** · fetch_capital_flow 每股重抓全 A 大宗/解禁/融资数据集 → 每股 3+ min · 新增 `_universe_*()` 4 个 helper + `cached(\"_universe\", ...)` 24h TTL · 全股共享 · 二次跑 universe 部分 0.01s（**100+ 倍加速**）· 6 专项测试 |\n| **v2.15.2** | 2026-04-21 | **GitHub issue hotfix**：#36 Gemini CLI 安装报错（gemini-extension.json 加 version + 纳入 version-bump）· #30 网络自检增强（Clash 本地代理端口侦测 + 数据源分组诊断 + 多行修复建议 · 写进 `.cache/_global/network_profile.json` 供 agent 读）· 10 专项测试 |\n| **v2.15.1** | 2026-04-20 | **报告质量 2 bug hotfix**（实测 300470 发现）· Bug 1: fund-card 一堆 \"5Y +0.0%\" 假数据 · 修 `_build_row_full` + `render_fund_managers` 让 lite 行降级 · Bug 2: 14_moat 护城河被贵州茅台数据污染（DDGS 对生僻公司返超级股票结果）· 加 `_SUPERSTAR_POLLUTERS` 过滤 · 11 专项测试 |\n| **v2.15.0** | 2026-04-20 | **YAML persona 接入 agent role-play**（借鉴 augur · 取长补短）：新增 `personas/` 目录 51 个 YAML 文件（12 flagship 手写 + 39 stub 自动生成）· `lib/personas.py` 加载 + prefix-stable system message（prompt cache 省 50-90%）· `lib/i18n.py` zh/en 语言开关 · `HARD-GATE-PERSONA-ROLEPLAY` 强制 agent 读 YAML · 双盲测试（3 股 × 5 投资者）显示 YAML 14/15 vs Rules 8/15 方向准确率 · 修复 Rules 4 类\"历史立场错位\"硬伤 · 14 专项测试 |\n| **v2.14.0** | 2026-04-20 | **自动检测 GitHub 新版本**：每次启动 CLI 或 agent 会话，插件会检测 GitHub latest release · 有更新则弹 `y / s / n` 三选一（是 / 跳过本版 / 否）· 跳过本版后直到下一版才再弹 · 6h 缓存防 API 限流 · 非 TTY / `UZI_NO_UPDATE_CHECK=1` / 网络异常 silent skip 不阻塞 · `HARD-GATE-UPDATE-PROMPT` 让 agent 主动展示 · 13 专项测试 |\n| **main** | 2026-04-20 | **Segmental Revenue Build-Up 落地**（`lib/segmental_model.py` 408 行 + `compute_segmental.py` CLI + `/segmental-model` slash command）· deep 档 `enable_segmental_model` flag 之前只在 profile 声明，实现缺失——本次从老分支 cherry-pick 3 个新文件，零冲突接入 · 同步新增 `CONTRIBUTORS.md` · 清理 14 个已合入幽灵分支 |\n| **v2.13.7** | 2026-04-19 | **16 新源真正接入 fetcher**：v2.13.4/6 登记但未用的 16 源全部接通——新建 `lib/news_providers.py`（jin10/em 快讯/em 公告/同花顺 4 源聚合）接入 `fetch_events` + `fetch_sentiment`；`_yahoo_v8_chart` 直连 HTTP 接入 US/HK K 线链（绕 yfinance cookie）；cfachina 期货协会源接入 `fetch_policy`（期货/商品 industry 专用）。实测 4/4 新闻源通 · A 股 15_events 密度 3-5 → 10-30 条 · pytest 217 passed |\n| **v2.13.6** | 2026-04-19 | **新增 6 个经 curl 验证的期货 + 财经新闻源**（SOURCES 64 → 70）：jin10_flash（类财联社零 Key 替代）/ em_kuaixun / em_stock_ann / ths_news_today / 99qh / cfachina · 8 专项测试 |\n| **v2.13.5** | 2026-04-19 | **NetworkProfile 自适应 + agent HARD-GATE 主动触发 Playwright**：9 目标 3 组网络预检（domestic/overseas/search）+ 代理检测 + 5min cache · SKILL.md / AGENTS.md 加 `HARD-GATE-PLAYWRIGHT-AUTOFILL` 让 agent 主动 FORCE · 15 专项测试 |\n| **v2.13.4** | 2026-04-19 | **新增 10 个经 curl 验证的无 Key 公开数据源**（SOURCES 54 → 64）：Yahoo Chart v8 / 腾讯 qt HK / 加密货币（CoinGecko/Binance/CoinCap）/ ECB / World Bank 等 · 11 专项测试 |\n| **v2.13.3** | 2026-04-19 | **51 评委规则全员历史立场还原**：林奇 PE<40 Rolls Royce 红线、索罗斯 long/short 拆分、木头姐 CPO/光模块 whitelist、段永平/张坤/邓晓峰 PE 硬红线、游资 range 校验 · 10 专项测试 |\n| **v2.13.2** | 2026-04-19 | **Playwright 触发逻辑升级 · 数据质量感知 + FORCE flag**：`_dim_quality_score` 公开字段真空检测 · `UZI_PLAYWRIGHT_FORCE=1` 强制全维兜底 · 8 专项测试 |\n| **v2.13.1** | 2026-04-18 | **Playwright 全 10 维覆盖**（开源研究场景扩展）：v2.13.0 Codex 保守排除的 5 维（7_industry 百度搜索 / 14_moat 百度百科 / 13_policy 证监会 / 18_trap 小红书 / 19_contests 雪球组合）全部加回 · medium 4→6 维 · deep 5→10 维 · 22 专项测试 |\n| **v2.13.0** | 2026-04-18 | **Playwright 通用兜底 · 按三档 profile 分级**：lite `off` / medium `opt-in` (4 维) / deep `default` (5 维 · 首次 y/n 自动装 Chromium)。新增 `lib/playwright_fallback.py` · 抽离 `lib/junk_filter.py` |\n| **v2.12.1** | 2026-04-18 | **4 个报告板块空数据/错数据修复**（中际旭创实测驱动）：4_peers 三层 fallback + 雪球 Playwright opt-in · 7_industry regex 上下文感知 · core_material 垃圾过滤 · BCG 真实算 market_share + 阈值调整 · 16 专项测试 |\n| **v2.12.0** | 2026-04-18 | **6 平台社交热榜聚合**：微博/知乎/百度/抖音/头条/B站 官方 API + 5min 文件缓存 + 单平台失败不影响其他 · `17_sentiment` 维度新增 `hot_trend_mentions` 字段补 DuckDuckGo 盲区 · 抄 jcp/hottrend 设计 · 17 个专项测试 |\n| **v2.11.0** | 2026-04-18 | **评分校准（用户反馈驱动）**：论坛+微信反馈\"茅台 47 分\"、\"没超过 65 分\" → verdict 阈值 `85/70/55/40 → 80/65/50/35`；consensus neutral 权重 `0.5 → 0.6`（A 股白马结构性偏低问题）；`stock_style` 同步对齐 |\n| **v2.10.7** | 2026-04-18 | **Codex 审查 3 处修复**：`raw.market` 硬编\"A\"污染 HK/US · `resume` 对别名输入失效（中文名/三位港股 cache 不命中）· AGENTS.md 强制全量流程与 CLI/lite 降载设计冲突 → 深浅两路径决策树 |\n| **v2.10.6** | 2026-04-18 | **Providers 框架实际落地**：v2.10.3 建的 5 provider 链（akshare/efinance/tushare/baostock/direct_http）实际接入 `data_sources.py` K 线链 · Tushare kline 补齐 · `hermes skills install` 风格 health CLI |\n| **v2.10.5** | 2026-04-18 | **v2.10.4 遗漏补丁**：`check_coverage_threshold` profile-aware（lite 不再结构性偏低）· `run.py` 自动 `UZI_CLI_ONLY=1`（medium/deep CLI 直跑也出报告）· `render_fund_managers` None 字段兜底 |\n| **v2.10.4** | 2026-04-17 | **Codex 测试反馈 3 bug**：lite 模式 self-review 9 critical 误报 · `agent_analysis.json` 缺失 CLI 直跑误报 critical · ETF 早退 `RuntimeError: Stage 2 缺少数据` |\n| **v2.10.3** | 2026-04-18 | **三档思考深度**：`lite` (30s-2min · 7 维 + 10 投资者) / `medium` (2-4min · 默认 · 22 维 + 51 投资者) / `deep` (15-20min · 含 Bull-Bear 辩论 + Segmental) · `--depth` CLI arg · direct_http provider（腾讯/新浪/etnet 直连脱离 akshare） |\n| **v2.10.0-2** | 2026-04-18 | 首次安装 + Codex 机器耗时/token 优化 · `lib/net_timeout_guard` 4 层网络超时保护（代理/GFW 不通快速 fail） · Fund holders 双层策略（Top N full + rest lite） · 首次运行 10-15min → 2-4min |\n| **v2.9.x** | 2026-04-17 | **机械级 agent 自查 gate**：13 条自动检查 + `assemble_report` 入口强制 block critical → 修完再出 HTML · fetch_industry 动态 `search_trusted`（236 个行业不再是\"—\"）· HK industry_pe fallback · consensus 半权公式 |\n| **v2.8.x** | 2026-04-17 | **BUG#R10 修复** 行业分类碰撞（工业金属→农副食品加工）· 134 条申万→证监会硬映射 · 22 位海外人物真实原话 + URL 溯源 · 每评委自己方法论回答 3 字段 · English README · Munger/Alibaba hook |\n| **v2.7.x** | 2026-04-17 | HK financials 实现（BUG#R7）· HK kline fallback 链（BUG#R8）· wave2 flush（BUG#R9）· 风格动态加权 7+1 · 量化结构性识别（top-1<2%）· XueQiu 登录 opt-in · 14 权威数据源 + search_trusted |\n| **v2.6.x** | 2026-04-17 | agent 闭环写回 · `agent_analysis.json` 合并 · dim_commentary · 22 维覆盖 |\n| **v2.5** | 2026-04-16 | 数据源注册表 54 条 · HK AASTOCKS 支持 · 3 层 tier 分类 |\n| **v2.0–v2.3** | 2026-04-16 | 17 种机构分析方法 · 51 评委 180 规则 · 两段式 pipeline · MX 妙想 API · 多平台支持 |\n| **v1.0** | 2026-04-14 | 初版 · 19 维 + 50 评委 + 杀猪盘检测 |\n\n完整更新日志见 [RELEASE-NOTES.md](RELEASE-NOTES.md)\n\n---\n\n## 🤝 致谢\n\n- [anthropics/financial-services-plugins](https://github.com/anthropics/financial-services-plugins) — 机构级分析方法论\n- [obra/superpowers](https://github.com/obra/superpowers) — 多平台架构 / HARD-GATE / hooks / sub-agent 设计\n- [akshare](https://github.com/akfamily/akshare) — A 股数据引擎\n- [titanwings/colleague-skill](https://github.com/titanwings/colleague-skill) — Skill 架构参考\n- [virattt/ai-hedge-fund](https://github.com/virattt/ai-hedge-fund) — Pydantic Signal 模式\n- [TauricResearch/TradingAgents](https://github.com/TauricResearch/TradingAgents) — 多空辩论循环\n\n---\n\n\n## ⚠️ 免责声明\n\n本工具由 AI 模型基于公开数据生成分析报告。所有评分、建议、模拟评语均为算法输出，不代表任何真实投资者的实际观点。**不构成投资建议**，投资有风险，入市需谨慎。\n\n---\n\n## ⭐ Star History\n\n实时 stars：![GitHub Repo stars](https://img.shields.io/github/stars/wbh604/UZI-Skill?style=social)\n\n<a href=\"https://star-history.dera.page/#wbh604/uzi-skill&Date\">\n <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://star-history.dera.page/svg?repos=wbh604/uzi-skill&type=Date&theme=dark\" />\n   <source media=\"(prefers-color-scheme: light)\" srcset=\"https://star-history.dera.page/svg?repos=wbh604/uzi-skill&type=Date\" />\n   <img alt=\"Star History Chart\" src=\"https://star-history.dera.page/svg?repos=wbh604/uzi-skill&type=Date\" />\n </picture>\n</a>\n\n> 注：star-history.dera.page 服务端有 24h 缓存，增长很猛的前几天图可能滞后（想看当前真实数字看上面的 shields.io badge，或点图进 star-history.dera.page 官网会触发刷新）。\n\n---\n\n<div align=\"center\">\n\nMIT License · Made by FloatFu-true · O.o\n\n</div>\n",
  "bytes": 52953,
  "sha": "bd4a8549b4505828ebe414ad3838f4abf9787bfe23bc5a9834f080ad7258b93d",
  "repo_slug": "wbh604/uzi-skill",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_wbh604_uzi_skill_db982c86/readme"
}