{"owner":"xbtlin","repo":"ai-berkshire","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md","CLAUDE.md","codex-skills/wechat-article/SKILL.md","codex-skills/thesis-tracker/SKILL.md","codex-skills/thesis-drift/SKILL.md","skills/earnings-team.md"],"skills":{"AGENTS.md":"# AI Berkshire Codex Guide\n\nThis repository contains investment research workflows, reports, and shared\nvalidation tools. Keep compatibility with both Claude Code and Codex users.\n\n## Project Layout\n\n- `skills/*.md`: Claude Code slash-command source files.\n- `codex-skills/*/SKILL.md`: Codex skill packages. Most are generated from\n  `skills/*.md`; Codex-only hand-written packages are allowed when clearly\n  marked and no same-named `skills/*.md` source exists.\n- `codex-prompts/*.md`: generated Codex custom prompts for slash-command\n  style entry points. These are a compatibility layer; skills remain preferred.\n- `tools/*.py`: shared financial validation and data tools used by both systems.\n- `reports/`: research outputs. Do not rewrite unrelated reports while changing\n  tooling or skills.\n- `scripts/sync-codex-skills.py`: regenerates Codex skills from `skills/*.md`.\n- `scripts/install-codex-skills.sh` / `scripts/install-codex-skills.bat`:\n  installs Codex skills locally.\n- `scripts/install-codex-prompts.sh` / `scripts/install-codex-prompts.bat`:\n  installs generated Codex slash prompts locally.\n- `scripts/install-claude-commands.sh` / `scripts/install-claude-commands.bat`:\n  installs Claude Code commands locally.\n\n## Compatibility Rules\n\n- Treat `skills/*.md` as the canonical workflow source.\n- After changing any file in `skills/`, run:\n  `python3 scripts/sync-codex-skills.py`\n- If slash prompt compatibility is needed, also run:\n  `python3 scripts/sync-codex-prompts.py`\n- Do not manually edit generated `codex-skills/*/SKILL.md` unless also updating\n  the corresponding source in `skills/`.\n- For Codex-only hand-written packages under `codex-skills/`, keep them clearly\n  marked as Codex-only and do not create a same-named `skills/*.md` file unless\n  intentionally adopting the workflow for Claude Code too.\n- Keep tool paths compatible with the documented checkout path:\n  `~/ai-berkshire/tools/...`\n- Keep `CLAUDE.md` for Claude Code behavior and this `AGENTS.md` for Codex\n  behavior.\n\n## Research Quality Rules\n\n- Before starting any research, run the `date` command to confirm today's\n  date. Treat that date as the baseline for \"latest\" data (prices, market cap,\n  most recent filings), and state the data cutoff date in the report header.\n  Never assume the current date from training data.\n- Financial data must come from at least two independent sources when the skill\n  requires verification.\n- Use exact arithmetic tools for market cap, valuation, cross-source checks, and\n  scenario analysis:\n  `python3 tools/financial_rigor.py ...`\n- Use report audit tooling before treating generated research as publishable:\n  `python3 tools/report_audit.py ...`\n- Clearly label low-confidence conclusions, incomplete data, and source gaps.\n- This project is for learning and research, not investment advice.\n\n## Editing Rules\n\n- Preserve existing report files unless the task specifically asks to change\n  them.\n- Keep changes scoped to the requested skill, tool, script, or documentation.\n- Before finishing a skill/tool change, run the relevant syntax or generation\n  check. For compatibility changes, run:\n  `python3 scripts/sync-codex-skills.py`\n- To verify generated Codex artifacts are current without rewriting files, run:\n  `python3 scripts/sync-codex-skills.py --check`\n  and, when slash prompts are relevant:\n  `python3 scripts/sync-codex-prompts.py --check`\n","CLAUDE.md":"# AI Berkshire — 项目指令\n\n## 项目概述\n\n基于 Claude Code 的价值投资研究 Skill 合集。四大师框架：巴菲特、芒格、段永平、李录。\nGitHub: xbtlin/ai-berkshire\n\n## 项目结构\n\n```\nskills/          — 投研 Skill 定义（.md），复制到 ~/.claude/commands/ 使用\ntools/           — 辅助工具（financial_rigor.py 精确计算、twstock_data.py 台股FinMind取数）\nreports/         — 投资研究报告输出\nassets/          — 图片等静态资源\n```\n\n## 报告目录结构\n\n所有报告按**公司名**建文件夹，公司相关的所有报告放在对应文件夹内：\n\n```\nreports/\n├── AI产业研究/              — AI产业链全景研究（置顶）\n│   ├── AI五层蛋糕-产业全景研究-20260605.md\n│   └── AI五层蛋糕-公众号-20260605.md\n├── 腾讯/                    — 腾讯所有研究报告\n│   ├── 腾讯-research-20260408.md\n│   ├── 腾讯-earnings-2025Q4.md\n│   ├── 腾讯-management-20260409.md\n│   └── 腾讯-thesis.md\n├── 拼多多/                  — 拼多多所有研究报告\n├── 泡泡玛特/                — 泡泡玛特所有研究报告\n├── 核电-industry-20260409.md — 行业报告放根目录\n├── AI算力-funnel-20260509.md  — 漏斗筛选报告放根目录\n├── AI-轮动判断-20260509.md    — 主题级综合判断报告放根目录\n├── portfolio-latest.md       — 组合报告放根目录\n└── 多公司对比-checklist-20260408.md — 多公司报告放根目录\n```\n\n## 报告命名规范\n\n| Skill | 文件命名格式 | 示例 |\n|------|---------|------|\n| /investment-team | `{公司名}/` 目录内含4个视角+最终报告 | `reports/拼多多/最终报告.md` |\n| /investment-research | `{公司名}-research-{YYYYMMDD}.md` | `reports/腾讯/腾讯-research-20260408.md` |\n| /investment-checklist | `{公司名}-checklist-{YYYYMMDD}.md` | `reports/腾讯/腾讯-checklist-20260408.md` |\n| /industry-research | `{行业名}-industry-{YYYYMMDD}.md`（根目录） | `reports/核电-industry-20260409.md` |\n| /industry-funnel | `{行业名}-funnel-{YYYYMMDD}.md`（根目录） | `reports/AI算力-funnel-20260509.md` |\n| /private-company-research | `{公司名}-private-{YYYYMMDD}.md` | `reports/字节跳动/字节跳动-private-20260408.md` |\n| /earnings-review | `{公司名}-earnings-{期间}.md` | `reports/腾讯/腾讯-earnings-2025Q4.md` |\n| /earnings-team | `{公司名}/` 目录内含4个大师视角+研究底稿+公众号文章+读者评审 | `reports/腾讯/腾讯-earnings-2025Q4.md`（公众号定稿） |\n| /thesis-tracker | `{公司名}-thesis.md`（长期维护） | `reports/腾讯/腾讯-thesis.md` |\n| /portfolio-review | `portfolio-latest.md`（根目录，持续更新） | `reports/portfolio-latest.md` |\n| /management-deep-dive | `{公司名}-management-{YYYYMMDD}.md` | `reports/腾讯/腾讯-management-20260409.md` |\n\n## /investment-team 文件结构\n\n```\nreports/{公司名}/\n├── README.md                         — 研究框架概览+核心结论\n├── 01-商业模式分析-段永平视角.md\n├── 02-财务估值分析-巴菲特视角.md\n├── 03-行业竞争分析-芒格视角.md\n├── 04-风险管理层评估-李录视角.md\n└── 最终报告.md                       — Team Lead 综合报告\n```\n\n## 投研分析核心原则（最高优先级）\n\n- **客观、客观、客观**——所有投研分析必须基于事实和数据，严禁主观臆断\n- 严格区分\"事实\"与\"观点\"：事实用数据支撑，观点必须明确标注为\"观点\"或\"推测\"\n- **不预设立场**：不预设看多或看空，先摆数据、再推逻辑、最后得结论。结论必须从数据中自然推出\n- 禁止使用\"我认为\"、\"我觉得\"、\"显然\"等主观表述，改用\"数据显示\"、\"证据表明\"、\"根据XX来源\"\n- **呈现正反两面**：每个核心判断都必须附带反面论据（\"但另一方面...\"），让读者自己权衡\n- 对不确定的事情诚实说\"不确定\"或\"数据不足\"，不要用推测填充确定性\n- 所有skill（investment-team、investment-research、earnings-review等）在执行时都必须遵守以上原则\n\n## 报告语言与风格\n\n- 所有报告使用**中文**\n- 风格：直接、犀利、不说废话\n- 数据必须标注来源，关键数据至少2个来源交叉验证\n- 估计值必须注明\"估计\"\n- 评分使用★符号（★1-5），不含半星\n- 穿插巴菲特/芒格/段永平/李录的语录点评\n\n## GitHub 操作\n\n- 本地克隆路径：`~/ai-berkshire/`\n- 远程仓库：`https://github.com/xbtlin/ai-berkshire.git`\n- 推送前先 `git pull --rebase origin main`（远程经常有新提交）\n- commit message 用中文，描述清楚改了什么\n- 不要推送中间过程文件（如 data_collection.md），只推最终报告\n\n## 常用命令\n\n```bash\n# 推送报告到GitHub\ncd ~/ai-berkshire\ngit add reports/xxx.md\ngit commit -m \"添加xxx报告\"\ngit pull --rebase origin main\ngit push origin main\n```\n\n## 注意事项\n\n- 市值必须手算校验：股价 × 总股本，与报告市值对比\n- 货币单位要明确（港币/人民币/美元/新台币），防止混淆\n- PE/ROE等指标用 tools/financial_rigor.py 精确计算\n- 台股数据用 tools/twstock_data.py（FinMind）获取，并按 skills/financial-data.md 台股章节交叉验证\n- 报告写完后主动询问是否推送到GitHub\n","codex-skills/wechat-article/SKILL.md":"---\nname: wechat-article\ndescription: \"AI Berkshire skill: 微信公众号文章：作者-编辑-读者三Agent协作. Source: skills/wechat-article.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/wechat-article.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 微信公众号文章：作者-编辑-读者三Agent协作\n\n对 $ARGUMENTS 进行深度研究，产出一篇可直接发布的微信公众号文章。三个Agent各司其职：作者写深度初稿，编辑精修结构和表达，读者从目标受众视角审读。\n\n**支持输入格式**：主题描述，例如：`大模型OPD技术解读`、`Qwen3技术报告解读`、`为什么巴菲特不买科技股`\n\n---\n\n## 设计理念\n\n一篇好的公众号文章需要同时满足三个维度：\n1. **深度**——对得起花时间读完的人（作者负责）\n2. **可读性**——结构清晰、节奏好、不劝退（编辑负责）\n3. **真的能看懂**——目标读者不会在中途放弃（读者负责）\n\n单人写作容易\"自嗨\"——写的人觉得清楚，读的人看不懂。三Agent协作的本质是**强制引入外部视角**。\n\n---\n\n## 阶段一：研究与素材收集\n\n### 第一步：明确文章定位\n\n在开始写作之前，先确认以下信息（如用户未指定则主动询问）：\n\n| 维度 | 需要确认 | 默认值 |\n|------|---------|--------|\n| **目标读者** | 技术背景程度 | 有点技术背景但非该领域专家 |\n| **文章深度** | 科普/中深度/硬核 | 中深度（有公式但要解释清楚） |\n| **文章长度** | 字数范围 | 3000-4000字 |\n| **是否需要下载原始论文/资料** | 需要PDF/配图 | 是 |\n| **写作风格** | 正式/对话式/犀利 | 对话式（像写给聪明的朋友） |\n\n### 第二步：深度研究\n\n使用 Agent 工具**并行**启动2-3个研究Agent，收集足够的素材：\n\n**研究Agent A：核心内容研究**\n- 如果是论文解读：下载论文PDF、提取核心贡献、关键图表、实验结果\n- 如果是技术主题：搜索最新进展、关键论文、技术细节\n- 如果是商业/投资主题：搜索最新数据、行业报告、竞争格局\n\n**研究Agent B：行业背景与应用**\n- 搜索该技术/主题的行业落地情况\n- 哪些公司在用？效果如何？\n- 最新的发展趋势和里程碑事件\n\n**研究Agent C（可选）：竞品/对比研究**\n- 同类方法/产品的对比\n- 历史发展脉络\n- 未来演进方向\n\n### 第三步：整理素材框架\n\n研究Agent全部完成后，整理出：\n1. **核心论点**（一句话概括文章要传达的核心信息）\n2. **关键数据**（3-5个最有冲击力的数据点）\n3. **配图清单**（需要哪些图，来源是什么）\n4. **文章大纲**（6-8个章节的标题和核心内容）\n\n---\n\n## 阶段二：作者Agent写初稿\n\n使用 Agent 工具启动**作者Agent**，给出详细的写作指令。\n\n### 作者Agent的Prompt模板\n\n```\n你是一位深度技术写作者（Author Agent），需要写一篇微信公众号文章。\n\n## 目标读者\n{根据第一步确认的读者画像}\n\n## 写作风格要求\n- 纯中文表达，避免中英文夹杂（技术术语首次出现时给英文，后续用中文）\n- 像写给聪明的朋友看的技术科普，不是学术论文翻译\n- 用类比帮助理解，但类比要贴切、不俗套\n- 关键公式/数据要有，但每个都要用大白话解释\n- 不用emoji\n- 段落不超过4行（公众号阅读环境）\n\n## 核心内容\n{整理好的素材、数据、论点}\n\n## 文章结构要求\n1. **开头（前3段）**：必须有强钩子——用数据冲击力或反直觉的结论开场，不要用温和的类比开场\n2. **背景**：为什么这件事重要？解决什么问题？\n3. **核心内容（2-3节）**：技术深度在这里体现，但每个技术点都要有\"大白话翻译\"\n4. **实证/案例**：用数据和案例说话，不要空谈\n5. **行业影响/展望**：这件事对行业意味着什么\n6. **结尾**：一句有传播力的判断收束，适合被截图转发\n\n## 配图要求\n- 论文解读类文章：必须从论文PDF中提取原图，直接用 `![描述](相对路径)` 插入文章，不要用 [图X：描述] 占位符\n- 提取方法：用 pdftoppm 将PDF页面渲染为高分辨率PNG（至少900 DPI），再用 PIL 裁切目标图表区域\n- 每张图不小于500KB，确保高清\n- 图片统一存放在 `assets/{主题简称}/` 目录下\n- 非论文类文章：如需配图，搜索并下载合适的图片，同样直接插入\n\n## 公式要求\n- 所有数学公式使用 LaTeX 格式：行内用 `$...$`，独立公式用 `$$...$$`\n- 禁止用纯文本写公式（如 `> D_KL(P || Q) = ...`），必须用 LaTeX 渲染格式\n- 每个公式后面仍然要配\"大白话翻译\"\n\n请写出完整的文章初稿，约{目标字数}字。\n```\n\n### 作者Agent完成后\n\n检查初稿文件是否生成，阅读全文确认内容完整性。\n\n---\n\n## 阶段三：编辑Agent + 读者Agent并行审阅\n\n初稿完成后，使用 Agent 工具在**同一条消息**中启动编辑Agent和读者Agent。\n\n### 编辑Agent的Prompt模板\n\n```\n你是一位资深公众号编辑（Editor Agent）。请对以下文章进行精修审阅。\n\n## 审阅标准\n1. **标题**：是否在朋友圈能吸引点击？是否会被截断（超过30字）？\n2. **开头**：前3段能否留住读者？钩子是否足够强？\n3. **结构**：逻辑链是否流畅？有无跳跃或断层？\n4. **深度与可读性平衡**：公式/技术部分是否真的通俗？有无\"假装通俗但没解释清楚\"的地方？\n5. **节奏**：有无太长的段落？每节长度是否合适？\n6. **配图**：图片是否已实际插入（非占位符）？位置是否在读者最需要视觉辅助时出现？\n7. **结尾**：有无传播力？读者看完会想转发吗？\n\n## 文章全文\n{完整初稿}\n\n## 输出格式\n1. 总体评价（3-5句话）\n2. 标题修改建议（给2-3个备选）\n3. 逐节修改建议（给出\"原文→建议修改为\"的具体对照）\n4. 最关键的3个改进点\n```\n\n### 读者Agent的Prompt模板\n\n```\n你是一位{目标读者画像}（Reader Agent）。请从读者视角审读以下文章。\n\n## 你的背景\n{具体描述目标读者的知识水平和阅读习惯}\n\n## 文章全文\n{完整初稿}\n\n## 请回答以下问题\n1. 读完前3段，你会继续读下去吗？为什么？\n2. 哪些地方\"看不懂\"或\"需要重读才能理解\"？具体是哪句话？\n3. 技术/公式部分你看懂了吗？\"大白话翻译\"是否帮到你了？\n4. 文章的核心类比贴切吗？有更好的类比吗？\n5. 太长还是太短？会在哪里失去耐心？\n6. 读完后你能用一句话概括文章核心观点吗？\n7. 你会转发这篇文章吗？转发时你会说什么？\n8. 有没有你想了解但文章没覆盖的问题？\n```\n\n---\n\n## 阶段四：定稿\n\n### 第一步：综合两个Agent的反馈\n\n重点关注以下高频问题：\n\n| 问题类型 | 编辑常见反馈 | 读者常见反馈 | 处理方式 |\n|---------|------------|------------|---------|\n| 开头太弱 | 钩子不够强 | 前3段没动力继续 | 用数据/反直觉结论重写开头 |\n| 技术段劝退 | 公式太密集 | 某段需要重读3遍 | 删公式或图片化，加更直觉的类比 |\n| 节奏拖沓 | 某节太长 | 某处失去耐心 | 合并或删减（尤其是后半段重复的技术解释） |\n| 结尾无力 | 缺传播力 | 不会转发 | 重写为一句可截图传播的判断 |\n| 概念跳跃 | 逻辑有断层 | 某处\"突然看不懂了\" | 补过渡句或背景解释 |\n\n### 第二步：执行修改\n\n根据反馈重写文章。核心修改原则：\n\n1. **编辑和读者都指出的问题，必须改**\n2. **只有编辑指出的问题，大概率要改**（编辑的专业判断通常准确）\n3. **只有读者指出的问题，视情况改**（读者反馈代表真实体验，但不一定每条都需要响应）\n4. **两者矛盾时，偏向读者**（编辑追求完美，但读者体验是最终标准）\n\n### 第三步：提取配图\n\n论文解读类文章必须在定稿前完成配图提取：\n\n1. **渲染**：`pdftoppm -png -r 900 -f {页码} -l {页码} 论文.pdf /tmp/page`（900 DPI起步，如果图片不到500KB则升到1200或1500 DPI）\n2. **定位**：先用150 DPI渲染全页，目视确认各图表的像素坐标\n3. **裁切**：用 PIL 按坐标裁切，`compress_level=1` 保存，确保每张 ≥ 500KB\n4. **存储**：保存到 `assets/{主题简称}/` 目录，命名为 `fig{序号}-{描述}.png`\n5. **插入**：文章中用 `![描述](../../assets/{主题简称}/fig{序号}-{描述}.png)` 引用\n\n### 第四步：产出最终文件\n\n将定稿保存为 md 文件，文件末尾附上论文/资料原文链接：\n\n```markdown\n**论文原文：**\n- arXiv: {链接}\n```\n\n---\n\n## 文件命名与存储\n\n| 类型 | 路径 | 命名格式 |\n|------|------|---------|\n| 技术主题 | `reports/AI产业研究/` | `公众号-{主题关键词}-{YYYYMMDD}.md` |\n| 投资主题 | `reports/{公司名}/` | `{公司名}-公众号-{YYYYMMDD}.md` |\n| 通用主题 | `reports/` | `公众号-{主题关键词}-{YYYYMMDD}.md` |\n\n---\n\n## 写作红线\n\n1. **不虚构数据**。引用的数据必须有来源，搜不到就标注\"估计\"\n2. **不用AI腔调**。禁止\"让我们一起来看看\"、\"值得关注的是\"、\"不得不说\"等套话\n3. **不过度承诺**。技术文章不说\"颠覆性的\"、\"革命性的\"，用数据说话\n4. **公式必须配大白话**。每个公式后面都要有一段\"翻译成人话就是……\"\n5. **公式必须用LaTeX**。`$$...$$` 格式，禁止纯文本公式\n6. **配图必须实际插入**。论文解读类从PDF提取高清原图（≥500KB），禁止用 `[图X]` 占位符\n7. **表格括号注释要精确**。描述概念时用准确的定义，不用模糊的动宾短语（如\"文本来自教师\"而非\"学教师的文本\"）\n8. **类比要一以贯之**。全文用一个主线类比，不要每节换一个新类比\n9. **结尾必须有传播力**。最后一句话要值得被单独截图转发\n","codex-skills/thesis-tracker/SKILL.md":"---\nname: thesis-tracker\ndescription: \"AI Berkshire skill: 投资论文追踪：买入后的纪律系统. Source: skills/thesis-tracker.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/thesis-tracker.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 投资论文追踪：买入后的纪律系统\n\n对 $ARGUMENTS 执行投资论文追踪检查。\n\n**支持输入格式**：\n- `公司名` — 首次使用时建立投资论文，后续使用时追踪检查\n- `公司名 建立论文` — 强制重新建立投资论文\n- `公司名 季度检查` — 基于最新财报进行论文检查\n\n> \"买入只是开始。真正的工作是持有期间的持续跟踪。\" —— 李录\n>\n> \"当事实改变时，我就改变想法。你呢？\" —— 凯恩斯\n\n## 设计理念\n\n大多数投资者的流程是：研究 → 买入 → 祈祷。缺少买入后的系统化跟踪，导致：\n- 该卖的时候舍不得卖（\"再等等，会涨回来的\"）\n- 不该卖的时候恐慌卖出（\"跌了20%，是不是我错了\"）\n- 忘记了当初为什么买的（\"我买这个是因为什么来着？\"）\n\n巴菲特和李录的做法是：**买入前就写下卖出条件**。然后每个季度检查论文是否完整。\n\n## 执行流程\n\n### 第一步：判断操作模式\n\n检查是否已存在该公司的投资论文文件（`reports/{公司名}-thesis.md`）：\n- 如果不存在 → 进入**建立论文**模式\n- 如果存在 → 进入**追踪检查**模式\n- 如果找不到但用户表示已有 → 询问文件路径\n\n---\n\n## 模式A：建立投资论文\n\n### A0：数据收集\n\n使用 WebSearch 获取当前股价、估值指标（PE/PB/股息率）、最新财报核心数据，用于填写估值锚点。如果已有该公司的 `/investment-research` 或 `/investment-team` 报告，优先从中读取。\n\n使用 `tools/financial_rigor.py verify-valuation` 校验估值数据。\n\n### A1：核心论文（必须用200字以内写清楚）\n\n投资论文必须回答以下5个问题，每个问题一句话：\n\n```\n我以 ___元 买入 ___公司，因为：\n1. 这门生意的本质是___，我理解它的赚钱方式\n2. 它的护城河是___，而且在变宽/稳定\n3. 管理层___，值得信赖的原因是___\n4. 当前价格相当于内在价值的___折，安全边际来自___\n5. 即使我错了，下行风险可控，因为___\n```\n\n**如果5句话写不完整，这个论文本身就有问题——说明买入决策不够清晰。**\n\n### A2：核心假设清单\n\n把投资论文拆解成可验证的具体假设：\n\n| # | 核心假设 | 验证方式 | 验证频率 | 当前状态 |\n|---|---------|---------|---------|---------|\n| 1 | 例：收入增速维持15%+ | 季报收入增速 | 每季度 | 🟢 成立 |\n| 2 | 例：毛利率稳定在60%+ | 季报毛利率 | 每季度 | 🟢 成立 |\n| 3 | 例：管理层持续回购 | 回购公告/现金流表 | 每季度 | 🟢 成立 |\n| 4 | 例：竞争对手未取得突破 | 行业数据/竞对财报 | 每半年 | 🟢 成立 |\n| 5 | ... | ... | ... | ... |\n\n通常3-7个假设。太少说明思考不够深入，太多说明论文不够聚焦。\n\n### A3：红线清单（触发任何一条 = 必须重新评估）\n\n| # | 红线条件 | 严重程度 | 触发后动作 |\n|---|---------|---------|-----------|\n| 1 | 例：管理层诚信出问题（财务造假、关联交易） | 致命 | 立即清仓 |\n| 2 | 例：核心业务连续2季度收入下滑 | 严重 | 减仓50%，重新评估 |\n| 3 | 例：护城河被明确突破（竞对获得同等能力） | 严重 | 启动深度研究，考虑退出 |\n| 4 | 例：监管政策根本性改变商业模式 | 严重 | 重新评估内在价值 |\n| 5 | 例：管理层大规模减持（非计划性） | 警告 | 深入调查原因 |\n\n**段永平**：\"卖出只有三个理由：1.发现买错了；2.公司基本面变了；3.找到了更好的。\"\n\n### A4：估值锚点\n\n| 指标 | 买入时 | 乐观目标 | 中性目标 | 悲观情景 |\n|------|-------|---------|---------|---------|\n| 股价 | | | | |\n| PE | | | | |\n| 市值 | | | | |\n| 内在价值估算 | | | | |\n| 安全边际 | | | | |\n\n### A5：保存论文\n\n将投资论文写入 `reports/{公司名}-thesis.md`，包含：\n- 建立日期\n- 买入价格和仓位\n- 核心论文（5句话）\n- 核心假设清单\n- 红线清单\n- 估值锚点\n- 追踪记录表（初始为空）\n\n---\n\n## 模式B：追踪检查\n\n### B1：读取现有论文\n\n读取 `reports/{公司名}-thesis.md`，加载：\n- 核心论文\n- 核心假设清单\n- 红线清单\n- 上次检查记录\n\n### B2：收集最新数据\n\n使用 WebSearch 收集：\n1. 最新财报数据（如果有新的季报/年报）\n2. 近期重大事件（管理层变动、监管政策、竞争动态）\n3. 当前股价和估值指标\n4. 内部人交易记录（大股东增减持）\n\n### B3：逐条检查核心假设\n\n对每个核心假设，用最新数据验证：\n\n| # | 核心假设 | 上次状态 | 最新证据 | 当前状态 | 变化 |\n|---|---------|---------|---------|---------|------|\n| 1 | 收入增速15%+ | 🟢 成立 | Q4收入增速12% | 🟡 边际弱化 | ⚠️ |\n| 2 | 毛利率60%+ | 🟢 成立 | 毛利率61.2% | 🟢 成立 | — |\n| 3 | ... | ... | ... | ... | ... |\n\n状态定义：\n- 🟢 **成立** — 最新数据支持该假设\n- 🟡 **边际弱化** — 数据仍在可接受范围，但趋势不利\n- 🔴 **受损** — 数据明确不支持该假设\n- ⚫ **破裂** — 假设已被推翻\n\n### B4：红线检查\n\n逐条检查红线清单：\n\n| # | 红线条件 | 是否触发 | 证据 |\n|---|---------|:-------:|------|\n| 1 | 管理层诚信问题 | ❌ 未触发 | — |\n| 2 | 核心业务连续2季下滑 | ❌ 未触发 | — |\n\n**任何一条红线触发 → 在报告中用醒目标注，给出明确的行动建议。**\n\n### B5：估值更新\n\n| 指标 | 买入时 | 上次检查 | 当前 | 变化 |\n|------|-------|---------|------|------|\n| 股价 | | | | |\n| PE(TTM) | | | | |\n| 内在价值估算 | | | | |\n| 安全边际 | | | | |\n\n### B6：输出追踪报告\n\n#### 报告结构\n\n```\n一、论文健康度评分（满分10分）\n二、核心假设检查结果（表格）\n三、红线检查结果（表格）\n四、本期关键变化（不超过500字）\n五、估值更新\n六、结论与行动建议\n七、下次检查需关注的重点\n```\n\n#### 论文健康度评分标准\n\n| 评分 | 含义 | 建议动作 |\n|:----:|------|---------|\n**计算公式**：健康度 = 10 - (⚫破裂假设数×3) - (🔴受损假设数×2) - (🟡弱化假设数×1) - (红线触发数×5)，最低1分最高10分。\n\n| 评分 | 含义 | 建议动作 |\n|:----:|------|---------|\n| 9-10 | 所有假设成立，论文比买入时更强 | 考虑加仓 |\n| 7-8 | 核心假设成立，个别边际弱化 | 继续持有 |\n| 5-6 | 1-2个假设受损，但核心逻辑未变 | 持有但提高警惕 |\n| 3-4 | 多个假设受损，论文基础动摇 | 考虑减仓 |\n| 1-2 | 红线触发或核心假设破裂 | 强烈建议卖出 |\n\n#### 结论必须明确回答\n\n1. **论文还完整吗？** 完整 / 边际弱化 / 受损 / 破裂\n2. **该怎么做？** 加仓 / 持有 / 减仓 / 清仓\n3. **下次检查时间**：下一个季报发布后 / 某个特定事件后\n\n### B7：更新论文文件\n\n将本次检查记录追加到 `reports/{公司名}-thesis.md` 的追踪记录表中：\n\n| 检查日期 | 健康度 | 核心变化 | 动作建议 |\n|---------|:------:|---------|---------|\n| 2026-04-09 | 7/10 | 收入增速放缓至12%，但利润率改善 | 持有 |\n\n---\n\n## 关键原则\n\n- **买入前就写好卖出条件** — 冷静时做的决策比恐慌时做的好\n- **论文要具体到可验证** — \"公司很好\"不是论文，\"ROE>25%且趋势稳定\"才是\n- **红线一旦触发就行动** — 最怕的是\"再等等看\"，这是亏大钱的开始\n- **论文破裂 ≠ 股价下跌** — 股价跌30%不一定要卖，论文破裂才要卖\n- **诚实面对错误** — 论文建错了就承认，不要为了面子硬撑\n","codex-skills/thesis-drift/SKILL.md":"---\nname: thesis-drift\ndescription: \"AI Berkshire skill: 投资论文漂移检测：分清事实变化与措辞变化. Source: skills/thesis-drift.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/thesis-drift.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 投资论文漂移检测：分清事实变化与措辞变化\n\n对 $ARGUMENTS 执行投资论文漂移检测。\n\n**支持输入格式**：\n- `公司名 旧报告路径 新报告路径` — 指定两份研究报告或论文快照进行对比\n- `公司名 reports/{公司名}-thesis-旧日期.md reports/{公司名}-thesis-新日期.md` — 对比两份带日期的论文快照\n- `公司名` — 自动查找 `reports/{公司名}-thesis.md` 及同目录历史快照；如果没有基线则转入缺失基线处理\n\n> \"当事实改变时，我就改变想法。你呢？\" —— 凯恩斯\n>\n> \"股价波动不是论文漂移，事实变了才是。\" —— AI Berkshire\n\n## 设计理念\n\n长期持仓最难的不是每天读新闻，而是区分三件事：\n- **事实改变**：收入、利润率、竞争格局、管理层行为、资本配置发生可验证变化\n- **价格改变**：市场情绪或估值倍数变化，但生意本身未变\n- **措辞改变**：两份报告表达不同，但底层证据和判断没有变化\n\n投资论文漂移检测的目标是：**只在证据变化时承认论文变化**。不能因为报告换了写法就制造漂移，也不能因为股价涨跌就误判基本面。\n\n本 Skill 依赖 `/thesis-tracker` 输出的结构化维度：核心假设清单、红线清单、估值锚点、追踪记录表。没有这些结构时，先补齐基线，再做漂移检测。\n\n## 执行流程\n\n### 第一步：判断操作模式\n\n解析 `$ARGUMENTS`：\n- 如果提供两份报告路径 → 进入**指定报告对比**模式\n- 如果只提供公司名 → 查找 `reports/{公司名}-thesis.md` 及历史快照，进入**自动快照对比**模式\n- 如果只找到一份报告或没有历史基线 → 进入**缺失基线处理**模式\n- 如果两份报告不是同一家公司 → 停止并要求用户确认，不做跨公司漂移判断\n\n---\n\n## 模式A：指定报告对比\n\n### A1：读取并校验两份报告\n\n读取旧报告和新报告，提取：\n- 报告日期、公司名、股票代码\n- 核心论文（5句话）\n- 核心假设清单\n- 红线清单\n- 估值锚点\n- 追踪记录表\n- 管理层质量判断\n- 竞争护城河判断\n- 当前建议动作（买入 / 持有 / 观察 / 减仓 / 清仓）\n\n如果报告缺少关键结构，先标注\"结构缺失\"，但仍尽量从正文中抽取证据；抽取不到的维度标为\"无法判断\"，不能编造结论。\n\n### A2：证据归一化\n\n把两份报告中的事实证据整理成同一张表：\n\n| 维度 | 旧报告证据 | 新报告证据 | 数据来源 | 是否可验证 |\n|------|-----------|-----------|---------|-----------|\n| 估值锚点 | | | | |\n| 核心假设 | | | | |\n| 红线 | | | | |\n| 管理层质量 | | | | |\n| 竞争护城河 | | | | |\n\n**只比较证据，不比较文风。** 如果新旧报告只是同义改写、排序变化、语气变化，但事实数据和判断阈值没有变化，判定为 Unchanged。\n\n### A3：数值与估值校验\n\n所有数值变化必须使用 `tools/financial_rigor.py` 做精确计算，禁止 LLM 心算：\n\n```bash\npython3 tools/financial_rigor.py verify-valuation \\\n  --price {当前价格} \\\n  --eps {EPS} \\\n  --bvps {每股净资产} \\\n  --fcf-per-share {每股自由现金流}\n```\n\n如需计算市值、百分比变化、目标价差异或情景估值，使用：\n\n```bash\npython3 tools/financial_rigor.py verify-market-cap --price {价格} --shares {股本} --reported {报告市值} --currency {币种}\npython3 tools/financial_rigor.py cross-validate --field {字段} --values '{JSON}' --unit {单位}\npython3 tools/financial_rigor.py three-scenario --price {价格} --eps {EPS} --shares {股本亿} --growth {乐观} {中性} {悲观} --pe {乐观PE} {中性PE} {悲观PE}\npython3 tools/financial_rigor.py calc --expr '{精确算式}'\n```\n\n关键财务数据必须至少两处独立来源交叉验证。来源不足、口径不一致、无法复核的数字必须标注为\"低置信度 / 待核实\"。\n\n### A4：逐维度判定漂移\n\n固定使用以下维度，不要临时增减：\n\n| 维度 | 判定重点 | Improved | Unchanged | Weakened |\n|------|---------|----------|-----------|----------|\n| 估值锚点 | 内在价值、PE/PB/FCF Yield、安全边际、目标价区间 | 安全边际扩大或内在价值上修且经工具验算 | 估值区间和安全边际无实质变化 | 安全边际收窄、内在价值下修或估值假设失效 |\n| 核心假设清单 | 收入增速、利润率、现金流、用户/订单/产能等可验证假设 | 更多假设被新证据强化 | 假设状态与证据基本一致 | 假设边际弱化、受损或破裂 |\n| 红线清单 | 诚信、监管、业务衰退、竞争突破、管理层异常动作 | 原有红线风险解除或显著下降 | 未触发且风险水平不变 | 红线被触发或触发概率上升 |\n| 管理层质量 | 诚信、资本配置、回购分红、执行力、股东友好度 | 新行为提高信任度 | 行为延续旧判断 | 行为损害信任或资本配置变差 |\n| 竞争护城河 | 市占率、定价权、网络效应、成本优势、替代威胁 | 护城河变宽或竞争优势被验证 | 格局无实质变化 | 护城河被削弱或竞对突破 |\n\n每个维度只能给出三类结论：**Improved / Unchanged / Weakened**。\n\n### A5：证据驱动规则\n\n每个非 Unchanged 的结论必须引用导致变化的具体新证据：\n- 财报行项目：例如收入增速、毛利率、经营现金流、回购金额、净现金\n- 监管披露：例如 10-K/20-F、年报、中报、港交所公告、SEC filing\n- 新闻事件：例如管理层变动、监管处罚、重大客户流失、竞品突破\n- 价格与估值：必须说明这是\"估值变化\"还是\"基本面变化\"，不能混淆\n\n如果找不到能解释变化的证据，必须判定为 **Unchanged** 或 **无法判断**，不能用措辞差异推断漂移。\n\n### A6：输出漂移报告\n\n#### 报告结构\n\n```\n一、对比对象与时间跨度\n二、总体结论：论文是否漂移\n三、维度漂移表\n四、证据差异明细\n五、估值与数值验算\n六、建议动作迁移\n七、不确定项与需补充来源\n八、下次跟踪重点\n```\n\n#### 维度漂移表\n\n| 维度 | 旧判断 | 新判断 | 漂移方向 | 触发证据 | 置信度 |\n|------|-------|-------|:--------:|---------|:------:|\n| 估值锚点 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 核心假设清单 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 红线清单 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 管理层质量 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 竞争护城河 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n\n**Unchanged 行的触发证据写 `—`，不要为了填表编造证据。**\n\n#### 总体结论必须回答\n\n1. **论文是否漂移？** 未漂移 / 正向漂移 / 负向漂移 / 证据不足无法判断\n2. **漂移来自哪里？** 估值 / 基本面 / 管理层 / 竞争格局 / 红线事件\n3. **是事实变化还是价格变化？** 明确拆开说明\n4. **建议动作如何迁移？** 例如：Watch → Buy、Buy → Hold、Hold → Reduce、Reduce → Exit\n5. **下一步需要什么证据？** 下一份财报 / 监管披露 / 管理层说明 / 竞对数据\n\n---\n\n## 模式B：自动快照对比\n\n### B1：查找快照\n\n在 `reports/` 中查找：\n- `reports/{公司名}-thesis.md`\n- `reports/{公司名}-thesis-*.md`\n- `reports/{公司名}/` 目录下包含 `thesis`、`论文`、`追踪` 的报告\n\n选择时间最早且结构完整的文件作为旧报告，时间最新的文件作为新报告。若用户指定日期，以用户指定为准。\n\n### B2：防止错误配对\n\n对比前必须确认：\n- 公司名或股票代码一致\n- 报告日期不同\n- 两份报告都包含可抽取的论文结构或研究结论\n\n如果无法确认同一公司，停止并要求用户提供明确路径。\n\n### B3：执行模式A\n\n找到两份有效快照后，按模式A完整执行。\n\n---\n\n## 模式C：缺失基线处理\n\n如果只找到一份报告或没有找到旧快照：\n\n1. 明确说明：**缺少可比较的历史基线，不能执行漂移检测**\n2. 不要根据记忆或市场印象补造旧论文\n3. 引导用户先使用 `/thesis-tracker {公司名} 建立论文` 建立结构化基线\n4. 如果当前报告已足够完整，可建议将它保存为 `reports/{公司名}-thesis.md` 作为未来漂移检测基线\n\n输出格式：\n\n```\n无法执行论文漂移检测：缺少历史基线。\n\n已找到：\n- 当前报告：{路径 / 未找到}\n- 历史基线：未找到\n\n建议：\n1. 先运行 /thesis-tracker {公司名} 建立论文\n2. 下次有新财报或重大事件后，再运行 /thesis-drift {公司名} 旧报告 新报告\n```\n\n---\n\n## 关键原则\n\n- **证据优先于措辞** — 同义改写不是漂移，只有事实证据变化才是漂移\n- **基本面优先于股价** — 股价涨跌只影响估值锚点，不自动改变生意质量\n- **数值必须验算** — 所有百分比、估值倍数、目标价差异必须用 `tools/financial_rigor.py`\n- **不确定就标注不确定** — 来源缺失、口径不一致、无法复核时，不要硬判\n- **红线单独处理** — 红线触发优先级高于估值便宜，不能被低 PE 掩盖\n- **输出必须可复盘** — 每个 Improved / Weakened 结论都要能追溯到具体证据\n","skills/earnings-team.md":"# 财报精读团队：四大师并行解读 + 公众号发布\n\n对 $ARGUMENTS 进行团队化财报精读分析。四位大师并行解读财报，编辑润色成文，读者评审把关质量，最终产出可直接发布的公众号文章。\n\n**支持输入格式**：`公司名 季度`，例如：`腾讯 2025Q4`、`PDD 2025年报`、`美团 最新`\n\n## 设计理念\n\n一份好的财报分析要解决两个问题：\n1. **自己能看懂未来**——需要四个不同视角的深度研究\n2. **读者能看懂价值**——需要编辑润色和读者视角的质量把关\n\n本 Skill 的流程分三阶段：\n- **阶段一·研究**：四大师并行精读财报（段永平看生意本质、巴菲特审财务质量、芒格读竞争变化、李录猎风险信号）\n- **阶段二·合成**：Team Lead 综合四个视角，产出研究报告初稿\n- **阶段三·发布**：编辑 Agent 改写为公众号文章 + 读者评审 Agent 提出修改意见 → Team Lead 定稿\n\n---\n\n## 阶段一：四大师并行研究\n\n### 第一步：获取一手资料\n\n使用 Agent 工具启动后台 Agent **并行**获取以下原始材料：\n\n| 资料类型 | 获取来源 | 优先级 |\n|---------|---------|--------|\n| 财报原文 | 公司IR页面、SEC EDGAR（美股）、港交所披露易（港股）、巨潮资讯网（A股） | 最高 |\n| 业绩电话会纪要 | Seeking Alpha、公司IR页面、雪球 | 最高 |\n| 管理层致股东信 | 年报中提取 | 高（仅年报时） |\n| 上一期财报/电话会 | 同上 | 高（用于承诺追踪） |\n\n**资料可得性评级**：\n\n| 等级 | 特征 | 影响 |\n|------|------|------|\n| A级 | 获取到完整原文 | 正常执行全部步骤 |\n| B级 | 仅获取到部分原文或第三方汇总 | 标注\"非原始来源\"，降低附注分析权重 |\n| C级 | 仅有新闻报道和数据网站摘要 | 聚焦核心数据变化，跳过附注挖掘，标注\"一手资料不足\" |\n\n将资料可得性评级告知每个 Agent，影响其分析深度。\n\n### 第二步：向用户展示团队框架\n\n| 阶段 | 角色 | 大师/定位 | 核心任务 |\n|------|------|----------|---------|\n| 研究 | **Team Lead**（你自己） | 总协调 | 统筹、合成、定稿 |\n| 研究 | 生意本质解读者 | 段永平 | 这门生意变好了还是变差了？ |\n| 研究 | 财务质量审计师 | 巴菲特 | 赚的是真钱还是假钱？ |\n| 研究 | 竞争变化解读者 | 芒格 | 竞争格局在怎么变？ |\n| 研究 | 风险信号猎手 | 李录 | 管理层在隐瞒什么？ |\n| 发布 | 编辑 | 公众号写作 | 把研究报告改写成好文章 |\n| 发布 | 读者评审 | 普通投资者 | 读者能看懂吗？有收获吗？ |\n\n### 第三步：启动4个并行研究Agent\n\n使用 Agent 工具在**同一条消息**中启动4个后台 Agent。\n\n---\n\n#### Agent 1：生意本质解读（段永平视角）\n\n**核心问题：这份财报反映的生意本质，变好了还是变差了？**\n\n> 段永平：\"投资就是买一门生意。看财报不是看数字，是看这门生意有没有变。\"\n\n分析内容：\n\n1. **收入结构拆解与解读**\n   - 分业务/分地区收入，哪些在加速、哪些在减速\n   - 不只是列数字——每个业务板块反映了什么商业逻辑\n   - 收入增长来自\"量\"还是\"价\"？哪种更健康？\n\n2. **用户/客户价值变化**\n   - DAU/MAU/付费用户等运营指标变化\n   - 用户时长、ARPU、留存率等质量指标\n   - 平台/产品对用户的价值在增强还是减弱？\n\n3. **护城河检测**\n   - 毛利率变化反映定价权是否稳固\n   - 市场份额变化反映竞争壁垒是否有效\n   - 客户转换成本/网络效应有没有被削弱的信号\n\n4. **\"好生意\"标准评估**\n   - 段永平三条件：差异化、定价权、可持续竞争优势——本期变化\n   - 生意在变\"重\"还是变\"轻\"？\n   - 如果明天公司关门，用户会不会非常痛苦？因为这份财报变了吗？\n\n5. **管理层产品直觉**\n   - 管理层讨论产品/用户时，用的是具体语言还是官僚语言\n   - 是否有令人印象深刻的产品洞察或令人担忧的脱节信号\n\n**输出要求**：每个子项标注 🟢改善 / 🟡持平 / 🔴恶化，给出段永平式总结点评。\n\n---\n\n#### Agent 2：财务质量审计（巴菲特视角）\n\n**核心问题：这家公司赚的是真钱还是假钱？安全边际变了吗？**\n\n> 巴菲特：\"我看每一份财报，第一件事就是翻到现金流量表。\"\n\n分析内容：\n\n1. **核心财务数据提取与验证**\n   - 收入、毛利、经营利润、净利润——GAAP和Non-GAAP都要\n   - GAAP vs Non-GAAP差异：差了多少、差在哪里、差距扩大还是缩小\n   - 关键数据至少两个来源交叉验证\n\n   ```bash\n   python3 tools/financial_rigor.py cross-validate \\\n     --metric \"revenue\" --values {值1} {值2} --sources \"来源1\" \"来源2\"\n   ```\n\n2. **现金流分析（最重要）**\n   - 经营现金流 vs 净利润比率（>100%佳，<80%警惕）\n   - 自由现金流 = 经营现金流 - 资本开支\n   - 资本开支构成：维护性 vs 扩张性\n   - 回购和分红金额\n\n3. **利润质量检验**\n   - 应收账款增速 vs 收入增速\n   - 存货增速 vs 收入增速\n   - 经营现金流与净利润差距趋势\n   - 资本化支出是否突然增加\n   - 非经常性收益占比\n\n4. **资产负债表健康度**\n   - 净现金/净负债变化\n   - 应收账款/存货周转天数变化\n   - 商誉及无形资产减值风险\n\n5. **估值与安全边际更新**\n\n   ```bash\n   python3 tools/financial_rigor.py verify-market-cap \\\n     --price {价格} --shares {股本} --reported {报告市值} --currency {币种}\n   python3 tools/financial_rigor.py verify-valuation \\\n     --price {价格} --eps {EPS} --bvps {每股净资产}\n   python3 tools/financial_rigor.py three-scenario \\\n     --price {价格} --eps {EPS} --shares {股本亿} \\\n     --growth {乐观} {中性} {悲观} --pe {乐观PE} {中性PE} {悲观PE}\n   ```\n\n**输出要求**：所有计算附工具输出记录，利润质量信号灯 🟢/🟡/🔴，巴菲特式总结点评。\n\n---\n\n#### Agent 3：竞争格局解读（芒格视角）\n\n**核心问题：这份财报揭示了竞争格局的什么变化？**\n\n> 芒格：\"我想知道我会死在哪里，这样我就不去那儿了。\"\n\n分析内容：\n\n1. **从财报数据推断竞争变化**\n   - 收入增速 vs 行业增速——跑赢还是跑输？\n   - 毛利率变化反映竞争加剧/缓和\n   - 营销费用率变化——需要花更多钱获客吗？\n   - 研发投入——主动投入还是被迫跟进？\n\n2. **同期竞争对手对比**\n   - 主要竞争对手同期关键指标对比（如已发布）\n   - 增速、利润率、投入力度对比\n   - 谁在赢？谁在输？\n\n3. **管理层对竞争的讨论**\n   - 电话会上如何描述竞争环境\n   - 是否点名竞争对手？语气自信还是焦虑？\n   - 有没有新的竞争威胁？\n\n4. **行业趋势信号**\n   - 技术变革（AI/新平台等）的影响\n   - 监管变化对竞争格局的影响\n   - 消费/需求端趋势\n\n5. **芒格式逆向思考**\n   - 什么会杀死这家公司？本期财报有没有指向这些威胁的信号？\n   - 5年后回看，这份财报会是\"转折点\"吗？\n\n**输出要求**：竞争格局判断（加强/持平/恶化），竞争对手对比表，芒格式逆向点评。\n\n---\n\n#### Agent 4：风险信号猎手（李录视角）\n\n**核心问题：管理层在这份财报里隐瞒了什么？哪些信号在闪烁？**\n\n> 李录：\"投资最重要的是避免永久性资本损失。\"\n\n分析内容：\n\n1. **管理层语气分析**\n   - 逐段阅读管理层讨论和电话会发言，标注信号：\n   - 🟢坦诚信号（主动承认问题）/ 🟢清晰信号（有量化目标）\n   - 🔴模糊信号（空话）/ 🔴转移信号（答非所问）/ 🔴归因外部化\n\n2. **承诺追踪**\n   - 上一期管理层具体承诺 vs 本期实际兑现，逐条对比\n   - 段永平：\"看管理层靠不靠谱，就看以前说的话做到了没有。\"\n\n3. **附注与隐藏信息**\n   - 关联交易、股权激励稀释、或有负债\n   - 会计政策变更、分部利润率差异\n   - 客户/供应商集中度变化\n\n4. **电话会Q&A精选**\n   - 最尖锐的3-5个分析师问题及管理层回答质量评分\n\n5. **永久性资本损失风险**\n   - 是否出现可能导致永久性损失的信号\n   - 监管/合规/诉讼风险新进展\n   - 管理层是否做出了不可逆的错误决策\n\n**输出要求**：管理层可信度评分★1-5，承诺兑现率，风险信号清单，李录式总结点评。\n\n---\n\n### 第四步：跟踪进度\n\n向用户实时展示：\n\n```\n📊 {公司名} {期间} 财报精读进度\n━━━━━━━━━━━━━━━━━━━━━━━\n阶段一·研究\n  ☐ 段永平·生意本质    ⏳ 分析中...\n  ☐ 巴菲特·财务质量    ⏳ 分析中...\n  ☐ 芒格·竞争格局      ⏳ 分析中...\n  ☐ 李录·风险信号      ⏳ 分析中...\n阶段二·合成            ⏸ 等待中\n阶段三·发布            ⏸ 等待中\n```\n\n每收到一份报告，更新进度并展示核心发现（3-5条）。\n\n---\n\n## 阶段二：Team Lead 合成研究报告\n\n全部4份研究报告到齐后，Team Lead 综合产出研究报告初稿。\n\n**合成要点**——不是拼报告，是找交叉和矛盾：\n\n1. **四个视角的共识点**：四位大师都同意的结论，可信度最高\n2. **四个视角的矛盾点**：比如段永平说生意变好了，但芒格说竞争在恶化——这种矛盾才是最有价值的分析\n3. **被忽略的角落**：四个人都没重点提的东西，是否恰恰是最重要的？\n\n#### 研究报告结构\n\n```markdown\n# {公司名} {期间} 财报精读报告\n**四大师并行解读 | {日期}**\n\n## 一、一句话结论\n> 50-100字：超/符/低预期，核心变化，对投资论文的影响。\n\n## 二、本期最重要的3个变化\n聚焦真正重要的变化，不罗列数据，每个变化100字以内。\n\n## 三、四大师评分表\n| 视角 | 大师 | 核心问题 | 结论 | 评分 | vs上期 |\n|------|------|---------|------|------|--------|\n\n## 四、核心数据速览\n关键财务和运营指标表格（本期 vs 上期 vs 同比）\n\n## 五、各视角深度分析\n每个视角3-5条最重要发现\n\n## 六、管理层语气与承诺追踪\n承诺兑现表 + 语气变化分析\n\n## 七、四大师会怎么做？\n| 大师 | 如果持有 | 如果没持有 | 理由 |\n\n## 八、结论\n1. 超/符/低预期？\n2. 投资论文影响：强化/无影响/削弱/破裂\n3. 下一个催化剂\n4. 操作建议\n```\n\n---\n\n## 阶段三：编辑润色 + 读者评审\n\n研究报告完成后，**并行**启动两个 Agent：\n\n### Agent 5：编辑（公众号文章改写）\n\n**定位**：把硬核研究报告改写成公众号读者爱看、能看懂的文章。\n\n**核心原则**：\n- 保留所有关键数据和结论，不降低专业深度\n- 改善表达方式，让非专业投资者也能跟上逻辑\n- 不是\"科普化\"，是\"让专业内容读起来不累\"\n\n**具体任务**：\n\n1. **标题与开头**\n   - 标题要有信息量且吸引点击，但不做标题党\n   - 好标题示例：\"快手花260亿赌AI，赌赢了吗？\"\n   - 坏标题示例：\"震惊！快手财报暴雷！\"\n   - 开头100字内讲清楚：这份财报最重要的结论是什么、为什么读者应该关心\n\n2. **结构优化**\n   - 研究报告是给自己看的，公众号文章是给别人看的——调整逻辑顺序\n   - 把\"最重要的3个变化\"放在最前面（倒金字塔结构）\n   - 表格保留但精简，大段分析改为要点式\n   - 每500字左右插入一个\"阶段性小结\"，帮读者消化\n\n3. **表达润色**\n   - 把生硬的财务术语用类比/场景解释：\"经营现金流比净利润低30%\"→\"赚了100块但口袋里只摸到70块\"\n   - 四大师的点评语录是文章的灵魂——确保每条都读起来犀利、有记忆点\n   - 段落不超过4行，句子不超过30字\n   - 适度使用对比和反差制造阅读节奏\n\n4. **读者价值检测**\n   - 每个章节自问：读者读完这段，能做什么决策？如果答案是\"什么都做不了\"，要么改写要么删除\n   - 文章末尾需要有明确的\"所以呢？\"——对持有者、观望者分别给出操作指引\n\n5. **格式适配**\n   - 微信公众号排版友好：短段落、小标题清晰、表格简洁\n   - 加入适当的分隔线和引用格式\n   - 文章长度控制在1000-3000字（太长读者会跳出）\n\n**输出**：改写后的完整公众号文章。\n\n---\n\n### Agent 6：读者评审（普通投资者视角）\n\n**定位**：以一个\"关注价值投资、有基础财务知识、持有/关注该公司\"的普通投资者身份审读文章。\n\n**评审维度**：\n\n1. **可读性（权重30%）**\n   - 读完全文需要几分钟？是否有想跳过的段落？\n   - 哪些地方看不懂或需要反复读？\n   - 节奏感如何？有没有\"读累了\"的感觉？\n\n2. **信息价值（权重30%）**\n   - 读完后，我对这家公司的理解是否加深了？\n   - 有没有\"哦原来是这样\"的瞬间？\n   - 和我在其他地方看到的分析相比，这篇有什么独到之处？\n   - 哪些信息是多余的、删掉也不影响理解？\n\n3. **可信度（权重20%）**\n   - 数据是否有来源？关键判断是否有依据？\n   - 是否呈现了正反两面？还是只在唱多/唱空？\n   - 有没有\"这也太自信了\"的判断让人不舒服？\n   - 四大师的引用是否恰当、有力？\n\n4. **行动指导性（权重20%）**\n   - 读完后我知道该怎么做吗？\n   - 对\"持有者\"和\"观望者\"的建议是否足够具体？\n   - 下一步该关注什么？（催化剂、时间节点）\n\n**输出格式**：\n\n```markdown\n## 读者评审报告\n\n### 总体评分：X/10\n\n### 优点（2-3条）\n读者视角下文章做得好的地方\n\n### 必须修改（硬伤）\n- 问题1：具体描述 → 建议修改方式\n- 问题2：...\n\n### 建议优化（锦上添花）\n- 建议1：...\n- 建议2：...\n\n### 读者最想知道但文章没回答的问题\n- 问题1\n- 问题2\n\n### 一句话总评\n```\n\n---\n\n### Team Lead 定稿\n\n收到编辑改写稿和读者评审报告后：\n\n1. **处理读者评审的\"必须修改\"项**——逐条修改\n2. **选择性采纳\"建议优化\"项**——判断是否值得\n3. **补充\"读者想知道但没回答的问题\"**——如果有数据支撑就加上\n4. **最终通读**——确保修改后全文连贯、逻辑自洽\n\n---\n\n## 输出文件\n\n```\nreports/{公司名}/\n├── {公司名}-earnings-{期间}.md           ← 最终公众号文章（定稿）\n├── {公司名}-earnings-{期间}-研究底稿.md   ← 四大师合成研究报告（自用）\n├── {公司名}-earnings-{期间}-段永平.md     ← 生意本质解读\n├── {公司名}-earnings-{期间}-巴菲特.md     ← 财务质量审计\n├── {公司名}-earnings-{期间}-芒格.md       ← 竞争格局解读\n├── {公司名}-earnings-{期间}-李录.md       ← 风险信号分析\n└── {公司名}-earnings-{期间}-读者评审.md   ← 读者评审报告\n```\n\n## 数据抽检（准出流程）\n\n对最终文章执行抽检：\n\n```bash\npython3 tools/report_audit.py extract \\\n  --report reports/{公司名}/{公司名}-earnings-{期间}.md\n\npython3 tools/report_audit.py verdict \\\n  --results '<填好的JSON>' \\\n  --report {报告文件名}\n```\n\n**【准出】** 全部通过 → 可发布；**【打回】** 有不通过 → 修正后重审。\n\n## 与现有 Skill 的关系\n\n| Skill | 定位 | 何时用 |\n|-------|------|--------|\n| `/earnings-review` | 单Agent财报精读 | 快速过一遍，只需一个视角 |\n| **`/earnings-team`（本Skill）** | **六Agent团队精读 + 公众号发布** | **重要公司的关键财报，需要深度+发布** |\n| `/investment-team` | 四Agent全面公司研究 | 首次研究一家公司 |\n\n## 关键原则\n\n- **读原文，不读摘要**：尽一切可能获取一手资料\n- **四个视角不是四个部门**：必须相互印证和挑战，不是各说各话\n- **Team Lead 的价值在于综合判断**：找交集和矛盾点，不是拼报告\n- **结论要明确**：不允许\"总体来看基本符合预期但也有一些值得关注的点\"\n- **反面检验贯穿全程**：每个积极发现都附带反面论据\n- **编辑不是降低专业度**：是让专业内容更易读，不是变成科普\n- **读者评审不是走过场**：真的站在读者角度挑毛病\n- **数据准确性**：关键数据交叉验证，使用 financial_rigor.py 工具验算\n"},"files":{"AGENTS.md":"# AI Berkshire Codex Guide\n\nThis repository contains investment research workflows, reports, and shared\nvalidation tools. Keep compatibility with both Claude Code and Codex users.\n\n## Project Layout\n\n- `skills/*.md`: Claude Code slash-command source files.\n- `codex-skills/*/SKILL.md`: Codex skill packages. Most are generated from\n  `skills/*.md`; Codex-only hand-written packages are allowed when clearly\n  marked and no same-named `skills/*.md` source exists.\n- `codex-prompts/*.md`: generated Codex custom prompts for slash-command\n  style entry points. These are a compatibility layer; skills remain preferred.\n- `tools/*.py`: shared financial validation and data tools used by both systems.\n- `reports/`: research outputs. Do not rewrite unrelated reports while changing\n  tooling or skills.\n- `scripts/sync-codex-skills.py`: regenerates Codex skills from `skills/*.md`.\n- `scripts/install-codex-skills.sh` / `scripts/install-codex-skills.bat`:\n  installs Codex skills locally.\n- `scripts/install-codex-prompts.sh` / `scripts/install-codex-prompts.bat`:\n  installs generated Codex slash prompts locally.\n- `scripts/install-claude-commands.sh` / `scripts/install-claude-commands.bat`:\n  installs Claude Code commands locally.\n\n## Compatibility Rules\n\n- Treat `skills/*.md` as the canonical workflow source.\n- After changing any file in `skills/`, run:\n  `python3 scripts/sync-codex-skills.py`\n- If slash prompt compatibility is needed, also run:\n  `python3 scripts/sync-codex-prompts.py`\n- Do not manually edit generated `codex-skills/*/SKILL.md` unless also updating\n  the corresponding source in `skills/`.\n- For Codex-only hand-written packages under `codex-skills/`, keep them clearly\n  marked as Codex-only and do not create a same-named `skills/*.md` file unless\n  intentionally adopting the workflow for Claude Code too.\n- Keep tool paths compatible with the documented checkout path:\n  `~/ai-berkshire/tools/...`\n- Keep `CLAUDE.md` for Claude Code behavior and this `AGENTS.md` for Codex\n  behavior.\n\n## Research Quality Rules\n\n- Before starting any research, run the `date` command to confirm today's\n  date. Treat that date as the baseline for \"latest\" data (prices, market cap,\n  most recent filings), and state the data cutoff date in the report header.\n  Never assume the current date from training data.\n- Financial data must come from at least two independent sources when the skill\n  requires verification.\n- Use exact arithmetic tools for market cap, valuation, cross-source checks, and\n  scenario analysis:\n  `python3 tools/financial_rigor.py ...`\n- Use report audit tooling before treating generated research as publishable:\n  `python3 tools/report_audit.py ...`\n- Clearly label low-confidence conclusions, incomplete data, and source gaps.\n- This project is for learning and research, not investment advice.\n\n## Editing Rules\n\n- Preserve existing report files unless the task specifically asks to change\n  them.\n- Keep changes scoped to the requested skill, tool, script, or documentation.\n- Before finishing a skill/tool change, run the relevant syntax or generation\n  check. For compatibility changes, run:\n  `python3 scripts/sync-codex-skills.py`\n- To verify generated Codex artifacts are current without rewriting files, run:\n  `python3 scripts/sync-codex-skills.py --check`\n  and, when slash prompts are relevant:\n  `python3 scripts/sync-codex-prompts.py --check`\n","CLAUDE.md":"# AI Berkshire — 项目指令\n\n## 项目概述\n\n基于 Claude Code 的价值投资研究 Skill 合集。四大师框架：巴菲特、芒格、段永平、李录。\nGitHub: xbtlin/ai-berkshire\n\n## 项目结构\n\n```\nskills/          — 投研 Skill 定义（.md），复制到 ~/.claude/commands/ 使用\ntools/           — 辅助工具（financial_rigor.py 精确计算、twstock_data.py 台股FinMind取数）\nreports/         — 投资研究报告输出\nassets/          — 图片等静态资源\n```\n\n## 报告目录结构\n\n所有报告按**公司名**建文件夹，公司相关的所有报告放在对应文件夹内：\n\n```\nreports/\n├── AI产业研究/              — AI产业链全景研究（置顶）\n│   ├── AI五层蛋糕-产业全景研究-20260605.md\n│   └── AI五层蛋糕-公众号-20260605.md\n├── 腾讯/                    — 腾讯所有研究报告\n│   ├── 腾讯-research-20260408.md\n│   ├── 腾讯-earnings-2025Q4.md\n│   ├── 腾讯-management-20260409.md\n│   └── 腾讯-thesis.md\n├── 拼多多/                  — 拼多多所有研究报告\n├── 泡泡玛特/                — 泡泡玛特所有研究报告\n├── 核电-industry-20260409.md — 行业报告放根目录\n├── AI算力-funnel-20260509.md  — 漏斗筛选报告放根目录\n├── AI-轮动判断-20260509.md    — 主题级综合判断报告放根目录\n├── portfolio-latest.md       — 组合报告放根目录\n└── 多公司对比-checklist-20260408.md — 多公司报告放根目录\n```\n\n## 报告命名规范\n\n| Skill | 文件命名格式 | 示例 |\n|------|---------|------|\n| /investment-team | `{公司名}/` 目录内含4个视角+最终报告 | `reports/拼多多/最终报告.md` |\n| /investment-research | `{公司名}-research-{YYYYMMDD}.md` | `reports/腾讯/腾讯-research-20260408.md` |\n| /investment-checklist | `{公司名}-checklist-{YYYYMMDD}.md` | `reports/腾讯/腾讯-checklist-20260408.md` |\n| /industry-research | `{行业名}-industry-{YYYYMMDD}.md`（根目录） | `reports/核电-industry-20260409.md` |\n| /industry-funnel | `{行业名}-funnel-{YYYYMMDD}.md`（根目录） | `reports/AI算力-funnel-20260509.md` |\n| /private-company-research | `{公司名}-private-{YYYYMMDD}.md` | `reports/字节跳动/字节跳动-private-20260408.md` |\n| /earnings-review | `{公司名}-earnings-{期间}.md` | `reports/腾讯/腾讯-earnings-2025Q4.md` |\n| /earnings-team | `{公司名}/` 目录内含4个大师视角+研究底稿+公众号文章+读者评审 | `reports/腾讯/腾讯-earnings-2025Q4.md`（公众号定稿） |\n| /thesis-tracker | `{公司名}-thesis.md`（长期维护） | `reports/腾讯/腾讯-thesis.md` |\n| /portfolio-review | `portfolio-latest.md`（根目录，持续更新） | `reports/portfolio-latest.md` |\n| /management-deep-dive | `{公司名}-management-{YYYYMMDD}.md` | `reports/腾讯/腾讯-management-20260409.md` |\n\n## /investment-team 文件结构\n\n```\nreports/{公司名}/\n├── README.md                         — 研究框架概览+核心结论\n├── 01-商业模式分析-段永平视角.md\n├── 02-财务估值分析-巴菲特视角.md\n├── 03-行业竞争分析-芒格视角.md\n├── 04-风险管理层评估-李录视角.md\n└── 最终报告.md                       — Team Lead 综合报告\n```\n\n## 投研分析核心原则（最高优先级）\n\n- **客观、客观、客观**——所有投研分析必须基于事实和数据，严禁主观臆断\n- 严格区分\"事实\"与\"观点\"：事实用数据支撑，观点必须明确标注为\"观点\"或\"推测\"\n- **不预设立场**：不预设看多或看空，先摆数据、再推逻辑、最后得结论。结论必须从数据中自然推出\n- 禁止使用\"我认为\"、\"我觉得\"、\"显然\"等主观表述，改用\"数据显示\"、\"证据表明\"、\"根据XX来源\"\n- **呈现正反两面**：每个核心判断都必须附带反面论据（\"但另一方面...\"），让读者自己权衡\n- 对不确定的事情诚实说\"不确定\"或\"数据不足\"，不要用推测填充确定性\n- 所有skill（investment-team、investment-research、earnings-review等）在执行时都必须遵守以上原则\n\n## 报告语言与风格\n\n- 所有报告使用**中文**\n- 风格：直接、犀利、不说废话\n- 数据必须标注来源，关键数据至少2个来源交叉验证\n- 估计值必须注明\"估计\"\n- 评分使用★符号（★1-5），不含半星\n- 穿插巴菲特/芒格/段永平/李录的语录点评\n\n## GitHub 操作\n\n- 本地克隆路径：`~/ai-berkshire/`\n- 远程仓库：`https://github.com/xbtlin/ai-berkshire.git`\n- 推送前先 `git pull --rebase origin main`（远程经常有新提交）\n- commit message 用中文，描述清楚改了什么\n- 不要推送中间过程文件（如 data_collection.md），只推最终报告\n\n## 常用命令\n\n```bash\n# 推送报告到GitHub\ncd ~/ai-berkshire\ngit add reports/xxx.md\ngit commit -m \"添加xxx报告\"\ngit pull --rebase origin main\ngit push origin main\n```\n\n## 注意事项\n\n- 市值必须手算校验：股价 × 总股本，与报告市值对比\n- 货币单位要明确（港币/人民币/美元/新台币），防止混淆\n- PE/ROE等指标用 tools/financial_rigor.py 精确计算\n- 台股数据用 tools/twstock_data.py（FinMind）获取，并按 skills/financial-data.md 台股章节交叉验证\n- 报告写完后主动询问是否推送到GitHub\n","codex-skills/wechat-article/SKILL.md":"---\nname: wechat-article\ndescription: \"AI Berkshire skill: 微信公众号文章：作者-编辑-读者三Agent协作. Source: skills/wechat-article.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/wechat-article.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 微信公众号文章：作者-编辑-读者三Agent协作\n\n对 $ARGUMENTS 进行深度研究，产出一篇可直接发布的微信公众号文章。三个Agent各司其职：作者写深度初稿，编辑精修结构和表达，读者从目标受众视角审读。\n\n**支持输入格式**：主题描述，例如：`大模型OPD技术解读`、`Qwen3技术报告解读`、`为什么巴菲特不买科技股`\n\n---\n\n## 设计理念\n\n一篇好的公众号文章需要同时满足三个维度：\n1. **深度**——对得起花时间读完的人（作者负责）\n2. **可读性**——结构清晰、节奏好、不劝退（编辑负责）\n3. **真的能看懂**——目标读者不会在中途放弃（读者负责）\n\n单人写作容易\"自嗨\"——写的人觉得清楚，读的人看不懂。三Agent协作的本质是**强制引入外部视角**。\n\n---\n\n## 阶段一：研究与素材收集\n\n### 第一步：明确文章定位\n\n在开始写作之前，先确认以下信息（如用户未指定则主动询问）：\n\n| 维度 | 需要确认 | 默认值 |\n|------|---------|--------|\n| **目标读者** | 技术背景程度 | 有点技术背景但非该领域专家 |\n| **文章深度** | 科普/中深度/硬核 | 中深度（有公式但要解释清楚） |\n| **文章长度** | 字数范围 | 3000-4000字 |\n| **是否需要下载原始论文/资料** | 需要PDF/配图 | 是 |\n| **写作风格** | 正式/对话式/犀利 | 对话式（像写给聪明的朋友） |\n\n### 第二步：深度研究\n\n使用 Agent 工具**并行**启动2-3个研究Agent，收集足够的素材：\n\n**研究Agent A：核心内容研究**\n- 如果是论文解读：下载论文PDF、提取核心贡献、关键图表、实验结果\n- 如果是技术主题：搜索最新进展、关键论文、技术细节\n- 如果是商业/投资主题：搜索最新数据、行业报告、竞争格局\n\n**研究Agent B：行业背景与应用**\n- 搜索该技术/主题的行业落地情况\n- 哪些公司在用？效果如何？\n- 最新的发展趋势和里程碑事件\n\n**研究Agent C（可选）：竞品/对比研究**\n- 同类方法/产品的对比\n- 历史发展脉络\n- 未来演进方向\n\n### 第三步：整理素材框架\n\n研究Agent全部完成后，整理出：\n1. **核心论点**（一句话概括文章要传达的核心信息）\n2. **关键数据**（3-5个最有冲击力的数据点）\n3. **配图清单**（需要哪些图，来源是什么）\n4. **文章大纲**（6-8个章节的标题和核心内容）\n\n---\n\n## 阶段二：作者Agent写初稿\n\n使用 Agent 工具启动**作者Agent**，给出详细的写作指令。\n\n### 作者Agent的Prompt模板\n\n```\n你是一位深度技术写作者（Author Agent），需要写一篇微信公众号文章。\n\n## 目标读者\n{根据第一步确认的读者画像}\n\n## 写作风格要求\n- 纯中文表达，避免中英文夹杂（技术术语首次出现时给英文，后续用中文）\n- 像写给聪明的朋友看的技术科普，不是学术论文翻译\n- 用类比帮助理解，但类比要贴切、不俗套\n- 关键公式/数据要有，但每个都要用大白话解释\n- 不用emoji\n- 段落不超过4行（公众号阅读环境）\n\n## 核心内容\n{整理好的素材、数据、论点}\n\n## 文章结构要求\n1. **开头（前3段）**：必须有强钩子——用数据冲击力或反直觉的结论开场，不要用温和的类比开场\n2. **背景**：为什么这件事重要？解决什么问题？\n3. **核心内容（2-3节）**：技术深度在这里体现，但每个技术点都要有\"大白话翻译\"\n4. **实证/案例**：用数据和案例说话，不要空谈\n5. **行业影响/展望**：这件事对行业意味着什么\n6. **结尾**：一句有传播力的判断收束，适合被截图转发\n\n## 配图要求\n- 论文解读类文章：必须从论文PDF中提取原图，直接用 `![描述](相对路径)` 插入文章，不要用 [图X：描述] 占位符\n- 提取方法：用 pdftoppm 将PDF页面渲染为高分辨率PNG（至少900 DPI），再用 PIL 裁切目标图表区域\n- 每张图不小于500KB，确保高清\n- 图片统一存放在 `assets/{主题简称}/` 目录下\n- 非论文类文章：如需配图，搜索并下载合适的图片，同样直接插入\n\n## 公式要求\n- 所有数学公式使用 LaTeX 格式：行内用 `$...$`，独立公式用 `$$...$$`\n- 禁止用纯文本写公式（如 `> D_KL(P || Q) = ...`），必须用 LaTeX 渲染格式\n- 每个公式后面仍然要配\"大白话翻译\"\n\n请写出完整的文章初稿，约{目标字数}字。\n```\n\n### 作者Agent完成后\n\n检查初稿文件是否生成，阅读全文确认内容完整性。\n\n---\n\n## 阶段三：编辑Agent + 读者Agent并行审阅\n\n初稿完成后，使用 Agent 工具在**同一条消息**中启动编辑Agent和读者Agent。\n\n### 编辑Agent的Prompt模板\n\n```\n你是一位资深公众号编辑（Editor Agent）。请对以下文章进行精修审阅。\n\n## 审阅标准\n1. **标题**：是否在朋友圈能吸引点击？是否会被截断（超过30字）？\n2. **开头**：前3段能否留住读者？钩子是否足够强？\n3. **结构**：逻辑链是否流畅？有无跳跃或断层？\n4. **深度与可读性平衡**：公式/技术部分是否真的通俗？有无\"假装通俗但没解释清楚\"的地方？\n5. **节奏**：有无太长的段落？每节长度是否合适？\n6. **配图**：图片是否已实际插入（非占位符）？位置是否在读者最需要视觉辅助时出现？\n7. **结尾**：有无传播力？读者看完会想转发吗？\n\n## 文章全文\n{完整初稿}\n\n## 输出格式\n1. 总体评价（3-5句话）\n2. 标题修改建议（给2-3个备选）\n3. 逐节修改建议（给出\"原文→建议修改为\"的具体对照）\n4. 最关键的3个改进点\n```\n\n### 读者Agent的Prompt模板\n\n```\n你是一位{目标读者画像}（Reader Agent）。请从读者视角审读以下文章。\n\n## 你的背景\n{具体描述目标读者的知识水平和阅读习惯}\n\n## 文章全文\n{完整初稿}\n\n## 请回答以下问题\n1. 读完前3段，你会继续读下去吗？为什么？\n2. 哪些地方\"看不懂\"或\"需要重读才能理解\"？具体是哪句话？\n3. 技术/公式部分你看懂了吗？\"大白话翻译\"是否帮到你了？\n4. 文章的核心类比贴切吗？有更好的类比吗？\n5. 太长还是太短？会在哪里失去耐心？\n6. 读完后你能用一句话概括文章核心观点吗？\n7. 你会转发这篇文章吗？转发时你会说什么？\n8. 有没有你想了解但文章没覆盖的问题？\n```\n\n---\n\n## 阶段四：定稿\n\n### 第一步：综合两个Agent的反馈\n\n重点关注以下高频问题：\n\n| 问题类型 | 编辑常见反馈 | 读者常见反馈 | 处理方式 |\n|---------|------------|------------|---------|\n| 开头太弱 | 钩子不够强 | 前3段没动力继续 | 用数据/反直觉结论重写开头 |\n| 技术段劝退 | 公式太密集 | 某段需要重读3遍 | 删公式或图片化，加更直觉的类比 |\n| 节奏拖沓 | 某节太长 | 某处失去耐心 | 合并或删减（尤其是后半段重复的技术解释） |\n| 结尾无力 | 缺传播力 | 不会转发 | 重写为一句可截图传播的判断 |\n| 概念跳跃 | 逻辑有断层 | 某处\"突然看不懂了\" | 补过渡句或背景解释 |\n\n### 第二步：执行修改\n\n根据反馈重写文章。核心修改原则：\n\n1. **编辑和读者都指出的问题，必须改**\n2. **只有编辑指出的问题，大概率要改**（编辑的专业判断通常准确）\n3. **只有读者指出的问题，视情况改**（读者反馈代表真实体验，但不一定每条都需要响应）\n4. **两者矛盾时，偏向读者**（编辑追求完美，但读者体验是最终标准）\n\n### 第三步：提取配图\n\n论文解读类文章必须在定稿前完成配图提取：\n\n1. **渲染**：`pdftoppm -png -r 900 -f {页码} -l {页码} 论文.pdf /tmp/page`（900 DPI起步，如果图片不到500KB则升到1200或1500 DPI）\n2. **定位**：先用150 DPI渲染全页，目视确认各图表的像素坐标\n3. **裁切**：用 PIL 按坐标裁切，`compress_level=1` 保存，确保每张 ≥ 500KB\n4. **存储**：保存到 `assets/{主题简称}/` 目录，命名为 `fig{序号}-{描述}.png`\n5. **插入**：文章中用 `![描述](../../assets/{主题简称}/fig{序号}-{描述}.png)` 引用\n\n### 第四步：产出最终文件\n\n将定稿保存为 md 文件，文件末尾附上论文/资料原文链接：\n\n```markdown\n**论文原文：**\n- arXiv: {链接}\n```\n\n---\n\n## 文件命名与存储\n\n| 类型 | 路径 | 命名格式 |\n|------|------|---------|\n| 技术主题 | `reports/AI产业研究/` | `公众号-{主题关键词}-{YYYYMMDD}.md` |\n| 投资主题 | `reports/{公司名}/` | `{公司名}-公众号-{YYYYMMDD}.md` |\n| 通用主题 | `reports/` | `公众号-{主题关键词}-{YYYYMMDD}.md` |\n\n---\n\n## 写作红线\n\n1. **不虚构数据**。引用的数据必须有来源，搜不到就标注\"估计\"\n2. **不用AI腔调**。禁止\"让我们一起来看看\"、\"值得关注的是\"、\"不得不说\"等套话\n3. **不过度承诺**。技术文章不说\"颠覆性的\"、\"革命性的\"，用数据说话\n4. **公式必须配大白话**。每个公式后面都要有一段\"翻译成人话就是……\"\n5. **公式必须用LaTeX**。`$$...$$` 格式，禁止纯文本公式\n6. **配图必须实际插入**。论文解读类从PDF提取高清原图（≥500KB），禁止用 `[图X]` 占位符\n7. **表格括号注释要精确**。描述概念时用准确的定义，不用模糊的动宾短语（如\"文本来自教师\"而非\"学教师的文本\"）\n8. **类比要一以贯之**。全文用一个主线类比，不要每节换一个新类比\n9. **结尾必须有传播力**。最后一句话要值得被单独截图转发\n","codex-skills/thesis-tracker/SKILL.md":"---\nname: thesis-tracker\ndescription: \"AI Berkshire skill: 投资论文追踪：买入后的纪律系统. Source: skills/thesis-tracker.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/thesis-tracker.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 投资论文追踪：买入后的纪律系统\n\n对 $ARGUMENTS 执行投资论文追踪检查。\n\n**支持输入格式**：\n- `公司名` — 首次使用时建立投资论文，后续使用时追踪检查\n- `公司名 建立论文` — 强制重新建立投资论文\n- `公司名 季度检查` — 基于最新财报进行论文检查\n\n> \"买入只是开始。真正的工作是持有期间的持续跟踪。\" —— 李录\n>\n> \"当事实改变时，我就改变想法。你呢？\" —— 凯恩斯\n\n## 设计理念\n\n大多数投资者的流程是：研究 → 买入 → 祈祷。缺少买入后的系统化跟踪，导致：\n- 该卖的时候舍不得卖（\"再等等，会涨回来的\"）\n- 不该卖的时候恐慌卖出（\"跌了20%，是不是我错了\"）\n- 忘记了当初为什么买的（\"我买这个是因为什么来着？\"）\n\n巴菲特和李录的做法是：**买入前就写下卖出条件**。然后每个季度检查论文是否完整。\n\n## 执行流程\n\n### 第一步：判断操作模式\n\n检查是否已存在该公司的投资论文文件（`reports/{公司名}-thesis.md`）：\n- 如果不存在 → 进入**建立论文**模式\n- 如果存在 → 进入**追踪检查**模式\n- 如果找不到但用户表示已有 → 询问文件路径\n\n---\n\n## 模式A：建立投资论文\n\n### A0：数据收集\n\n使用 WebSearch 获取当前股价、估值指标（PE/PB/股息率）、最新财报核心数据，用于填写估值锚点。如果已有该公司的 `/investment-research` 或 `/investment-team` 报告，优先从中读取。\n\n使用 `tools/financial_rigor.py verify-valuation` 校验估值数据。\n\n### A1：核心论文（必须用200字以内写清楚）\n\n投资论文必须回答以下5个问题，每个问题一句话：\n\n```\n我以 ___元 买入 ___公司，因为：\n1. 这门生意的本质是___，我理解它的赚钱方式\n2. 它的护城河是___，而且在变宽/稳定\n3. 管理层___，值得信赖的原因是___\n4. 当前价格相当于内在价值的___折，安全边际来自___\n5. 即使我错了，下行风险可控，因为___\n```\n\n**如果5句话写不完整，这个论文本身就有问题——说明买入决策不够清晰。**\n\n### A2：核心假设清单\n\n把投资论文拆解成可验证的具体假设：\n\n| # | 核心假设 | 验证方式 | 验证频率 | 当前状态 |\n|---|---------|---------|---------|---------|\n| 1 | 例：收入增速维持15%+ | 季报收入增速 | 每季度 | 🟢 成立 |\n| 2 | 例：毛利率稳定在60%+ | 季报毛利率 | 每季度 | 🟢 成立 |\n| 3 | 例：管理层持续回购 | 回购公告/现金流表 | 每季度 | 🟢 成立 |\n| 4 | 例：竞争对手未取得突破 | 行业数据/竞对财报 | 每半年 | 🟢 成立 |\n| 5 | ... | ... | ... | ... |\n\n通常3-7个假设。太少说明思考不够深入，太多说明论文不够聚焦。\n\n### A3：红线清单（触发任何一条 = 必须重新评估）\n\n| # | 红线条件 | 严重程度 | 触发后动作 |\n|---|---------|---------|-----------|\n| 1 | 例：管理层诚信出问题（财务造假、关联交易） | 致命 | 立即清仓 |\n| 2 | 例：核心业务连续2季度收入下滑 | 严重 | 减仓50%，重新评估 |\n| 3 | 例：护城河被明确突破（竞对获得同等能力） | 严重 | 启动深度研究，考虑退出 |\n| 4 | 例：监管政策根本性改变商业模式 | 严重 | 重新评估内在价值 |\n| 5 | 例：管理层大规模减持（非计划性） | 警告 | 深入调查原因 |\n\n**段永平**：\"卖出只有三个理由：1.发现买错了；2.公司基本面变了；3.找到了更好的。\"\n\n### A4：估值锚点\n\n| 指标 | 买入时 | 乐观目标 | 中性目标 | 悲观情景 |\n|------|-------|---------|---------|---------|\n| 股价 | | | | |\n| PE | | | | |\n| 市值 | | | | |\n| 内在价值估算 | | | | |\n| 安全边际 | | | | |\n\n### A5：保存论文\n\n将投资论文写入 `reports/{公司名}-thesis.md`，包含：\n- 建立日期\n- 买入价格和仓位\n- 核心论文（5句话）\n- 核心假设清单\n- 红线清单\n- 估值锚点\n- 追踪记录表（初始为空）\n\n---\n\n## 模式B：追踪检查\n\n### B1：读取现有论文\n\n读取 `reports/{公司名}-thesis.md`，加载：\n- 核心论文\n- 核心假设清单\n- 红线清单\n- 上次检查记录\n\n### B2：收集最新数据\n\n使用 WebSearch 收集：\n1. 最新财报数据（如果有新的季报/年报）\n2. 近期重大事件（管理层变动、监管政策、竞争动态）\n3. 当前股价和估值指标\n4. 内部人交易记录（大股东增减持）\n\n### B3：逐条检查核心假设\n\n对每个核心假设，用最新数据验证：\n\n| # | 核心假设 | 上次状态 | 最新证据 | 当前状态 | 变化 |\n|---|---------|---------|---------|---------|------|\n| 1 | 收入增速15%+ | 🟢 成立 | Q4收入增速12% | 🟡 边际弱化 | ⚠️ |\n| 2 | 毛利率60%+ | 🟢 成立 | 毛利率61.2% | 🟢 成立 | — |\n| 3 | ... | ... | ... | ... | ... |\n\n状态定义：\n- 🟢 **成立** — 最新数据支持该假设\n- 🟡 **边际弱化** — 数据仍在可接受范围，但趋势不利\n- 🔴 **受损** — 数据明确不支持该假设\n- ⚫ **破裂** — 假设已被推翻\n\n### B4：红线检查\n\n逐条检查红线清单：\n\n| # | 红线条件 | 是否触发 | 证据 |\n|---|---------|:-------:|------|\n| 1 | 管理层诚信问题 | ❌ 未触发 | — |\n| 2 | 核心业务连续2季下滑 | ❌ 未触发 | — |\n\n**任何一条红线触发 → 在报告中用醒目标注，给出明确的行动建议。**\n\n### B5：估值更新\n\n| 指标 | 买入时 | 上次检查 | 当前 | 变化 |\n|------|-------|---------|------|------|\n| 股价 | | | | |\n| PE(TTM) | | | | |\n| 内在价值估算 | | | | |\n| 安全边际 | | | | |\n\n### B6：输出追踪报告\n\n#### 报告结构\n\n```\n一、论文健康度评分（满分10分）\n二、核心假设检查结果（表格）\n三、红线检查结果（表格）\n四、本期关键变化（不超过500字）\n五、估值更新\n六、结论与行动建议\n七、下次检查需关注的重点\n```\n\n#### 论文健康度评分标准\n\n| 评分 | 含义 | 建议动作 |\n|:----:|------|---------|\n**计算公式**：健康度 = 10 - (⚫破裂假设数×3) - (🔴受损假设数×2) - (🟡弱化假设数×1) - (红线触发数×5)，最低1分最高10分。\n\n| 评分 | 含义 | 建议动作 |\n|:----:|------|---------|\n| 9-10 | 所有假设成立，论文比买入时更强 | 考虑加仓 |\n| 7-8 | 核心假设成立，个别边际弱化 | 继续持有 |\n| 5-6 | 1-2个假设受损，但核心逻辑未变 | 持有但提高警惕 |\n| 3-4 | 多个假设受损，论文基础动摇 | 考虑减仓 |\n| 1-2 | 红线触发或核心假设破裂 | 强烈建议卖出 |\n\n#### 结论必须明确回答\n\n1. **论文还完整吗？** 完整 / 边际弱化 / 受损 / 破裂\n2. **该怎么做？** 加仓 / 持有 / 减仓 / 清仓\n3. **下次检查时间**：下一个季报发布后 / 某个特定事件后\n\n### B7：更新论文文件\n\n将本次检查记录追加到 `reports/{公司名}-thesis.md` 的追踪记录表中：\n\n| 检查日期 | 健康度 | 核心变化 | 动作建议 |\n|---------|:------:|---------|---------|\n| 2026-04-09 | 7/10 | 收入增速放缓至12%，但利润率改善 | 持有 |\n\n---\n\n## 关键原则\n\n- **买入前就写好卖出条件** — 冷静时做的决策比恐慌时做的好\n- **论文要具体到可验证** — \"公司很好\"不是论文，\"ROE>25%且趋势稳定\"才是\n- **红线一旦触发就行动** — 最怕的是\"再等等看\"，这是亏大钱的开始\n- **论文破裂 ≠ 股价下跌** — 股价跌30%不一定要卖，论文破裂才要卖\n- **诚实面对错误** — 论文建错了就承认，不要为了面子硬撑\n","codex-skills/thesis-drift/SKILL.md":"---\nname: thesis-drift\ndescription: \"AI Berkshire skill: 投资论文漂移检测：分清事实变化与措辞变化. Source: skills/thesis-drift.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/thesis-drift.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 投资论文漂移检测：分清事实变化与措辞变化\n\n对 $ARGUMENTS 执行投资论文漂移检测。\n\n**支持输入格式**：\n- `公司名 旧报告路径 新报告路径` — 指定两份研究报告或论文快照进行对比\n- `公司名 reports/{公司名}-thesis-旧日期.md reports/{公司名}-thesis-新日期.md` — 对比两份带日期的论文快照\n- `公司名` — 自动查找 `reports/{公司名}-thesis.md` 及同目录历史快照；如果没有基线则转入缺失基线处理\n\n> \"当事实改变时，我就改变想法。你呢？\" —— 凯恩斯\n>\n> \"股价波动不是论文漂移，事实变了才是。\" —— AI Berkshire\n\n## 设计理念\n\n长期持仓最难的不是每天读新闻，而是区分三件事：\n- **事实改变**：收入、利润率、竞争格局、管理层行为、资本配置发生可验证变化\n- **价格改变**：市场情绪或估值倍数变化，但生意本身未变\n- **措辞改变**：两份报告表达不同，但底层证据和判断没有变化\n\n投资论文漂移检测的目标是：**只在证据变化时承认论文变化**。不能因为报告换了写法就制造漂移，也不能因为股价涨跌就误判基本面。\n\n本 Skill 依赖 `/thesis-tracker` 输出的结构化维度：核心假设清单、红线清单、估值锚点、追踪记录表。没有这些结构时，先补齐基线，再做漂移检测。\n\n## 执行流程\n\n### 第一步：判断操作模式\n\n解析 `$ARGUMENTS`：\n- 如果提供两份报告路径 → 进入**指定报告对比**模式\n- 如果只提供公司名 → 查找 `reports/{公司名}-thesis.md` 及历史快照，进入**自动快照对比**模式\n- 如果只找到一份报告或没有历史基线 → 进入**缺失基线处理**模式\n- 如果两份报告不是同一家公司 → 停止并要求用户确认，不做跨公司漂移判断\n\n---\n\n## 模式A：指定报告对比\n\n### A1：读取并校验两份报告\n\n读取旧报告和新报告，提取：\n- 报告日期、公司名、股票代码\n- 核心论文（5句话）\n- 核心假设清单\n- 红线清单\n- 估值锚点\n- 追踪记录表\n- 管理层质量判断\n- 竞争护城河判断\n- 当前建议动作（买入 / 持有 / 观察 / 减仓 / 清仓）\n\n如果报告缺少关键结构，先标注\"结构缺失\"，但仍尽量从正文中抽取证据；抽取不到的维度标为\"无法判断\"，不能编造结论。\n\n### A2：证据归一化\n\n把两份报告中的事实证据整理成同一张表：\n\n| 维度 | 旧报告证据 | 新报告证据 | 数据来源 | 是否可验证 |\n|------|-----------|-----------|---------|-----------|\n| 估值锚点 | | | | |\n| 核心假设 | | | | |\n| 红线 | | | | |\n| 管理层质量 | | | | |\n| 竞争护城河 | | | | |\n\n**只比较证据，不比较文风。** 如果新旧报告只是同义改写、排序变化、语气变化，但事实数据和判断阈值没有变化，判定为 Unchanged。\n\n### A3：数值与估值校验\n\n所有数值变化必须使用 `tools/financial_rigor.py` 做精确计算，禁止 LLM 心算：\n\n```bash\npython3 tools/financial_rigor.py verify-valuation \\\n  --price {当前价格} \\\n  --eps {EPS} \\\n  --bvps {每股净资产} \\\n  --fcf-per-share {每股自由现金流}\n```\n\n如需计算市值、百分比变化、目标价差异或情景估值，使用：\n\n```bash\npython3 tools/financial_rigor.py verify-market-cap --price {价格} --shares {股本} --reported {报告市值} --currency {币种}\npython3 tools/financial_rigor.py cross-validate --field {字段} --values '{JSON}' --unit {单位}\npython3 tools/financial_rigor.py three-scenario --price {价格} --eps {EPS} --shares {股本亿} --growth {乐观} {中性} {悲观} --pe {乐观PE} {中性PE} {悲观PE}\npython3 tools/financial_rigor.py calc --expr '{精确算式}'\n```\n\n关键财务数据必须至少两处独立来源交叉验证。来源不足、口径不一致、无法复核的数字必须标注为\"低置信度 / 待核实\"。\n\n### A4：逐维度判定漂移\n\n固定使用以下维度，不要临时增减：\n\n| 维度 | 判定重点 | Improved | Unchanged | Weakened |\n|------|---------|----------|-----------|----------|\n| 估值锚点 | 内在价值、PE/PB/FCF Yield、安全边际、目标价区间 | 安全边际扩大或内在价值上修且经工具验算 | 估值区间和安全边际无实质变化 | 安全边际收窄、内在价值下修或估值假设失效 |\n| 核心假设清单 | 收入增速、利润率、现金流、用户/订单/产能等可验证假设 | 更多假设被新证据强化 | 假设状态与证据基本一致 | 假设边际弱化、受损或破裂 |\n| 红线清单 | 诚信、监管、业务衰退、竞争突破、管理层异常动作 | 原有红线风险解除或显著下降 | 未触发且风险水平不变 | 红线被触发或触发概率上升 |\n| 管理层质量 | 诚信、资本配置、回购分红、执行力、股东友好度 | 新行为提高信任度 | 行为延续旧判断 | 行为损害信任或资本配置变差 |\n| 竞争护城河 | 市占率、定价权、网络效应、成本优势、替代威胁 | 护城河变宽或竞争优势被验证 | 格局无实质变化 | 护城河被削弱或竞对突破 |\n\n每个维度只能给出三类结论：**Improved / Unchanged / Weakened**。\n\n### A5：证据驱动规则\n\n每个非 Unchanged 的结论必须引用导致变化的具体新证据：\n- 财报行项目：例如收入增速、毛利率、经营现金流、回购金额、净现金\n- 监管披露：例如 10-K/20-F、年报、中报、港交所公告、SEC filing\n- 新闻事件：例如管理层变动、监管处罚、重大客户流失、竞品突破\n- 价格与估值：必须说明这是\"估值变化\"还是\"基本面变化\"，不能混淆\n\n如果找不到能解释变化的证据，必须判定为 **Unchanged** 或 **无法判断**，不能用措辞差异推断漂移。\n\n### A6：输出漂移报告\n\n#### 报告结构\n\n```\n一、对比对象与时间跨度\n二、总体结论：论文是否漂移\n三、维度漂移表\n四、证据差异明细\n五、估值与数值验算\n六、建议动作迁移\n七、不确定项与需补充来源\n八、下次跟踪重点\n```\n\n#### 维度漂移表\n\n| 维度 | 旧判断 | 新判断 | 漂移方向 | 触发证据 | 置信度 |\n|------|-------|-------|:--------:|---------|:------:|\n| 估值锚点 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 核心假设清单 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 红线清单 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 管理层质量 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 竞争护城河 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n\n**Unchanged 行的触发证据写 `—`，不要为了填表编造证据。**\n\n#### 总体结论必须回答\n\n1. **论文是否漂移？** 未漂移 / 正向漂移 / 负向漂移 / 证据不足无法判断\n2. **漂移来自哪里？** 估值 / 基本面 / 管理层 / 竞争格局 / 红线事件\n3. **是事实变化还是价格变化？** 明确拆开说明\n4. **建议动作如何迁移？** 例如：Watch → Buy、Buy → Hold、Hold → Reduce、Reduce → Exit\n5. **下一步需要什么证据？** 下一份财报 / 监管披露 / 管理层说明 / 竞对数据\n\n---\n\n## 模式B：自动快照对比\n\n### B1：查找快照\n\n在 `reports/` 中查找：\n- `reports/{公司名}-thesis.md`\n- `reports/{公司名}-thesis-*.md`\n- `reports/{公司名}/` 目录下包含 `thesis`、`论文`、`追踪` 的报告\n\n选择时间最早且结构完整的文件作为旧报告，时间最新的文件作为新报告。若用户指定日期，以用户指定为准。\n\n### B2：防止错误配对\n\n对比前必须确认：\n- 公司名或股票代码一致\n- 报告日期不同\n- 两份报告都包含可抽取的论文结构或研究结论\n\n如果无法确认同一公司，停止并要求用户提供明确路径。\n\n### B3：执行模式A\n\n找到两份有效快照后，按模式A完整执行。\n\n---\n\n## 模式C：缺失基线处理\n\n如果只找到一份报告或没有找到旧快照：\n\n1. 明确说明：**缺少可比较的历史基线，不能执行漂移检测**\n2. 不要根据记忆或市场印象补造旧论文\n3. 引导用户先使用 `/thesis-tracker {公司名} 建立论文` 建立结构化基线\n4. 如果当前报告已足够完整，可建议将它保存为 `reports/{公司名}-thesis.md` 作为未来漂移检测基线\n\n输出格式：\n\n```\n无法执行论文漂移检测：缺少历史基线。\n\n已找到：\n- 当前报告：{路径 / 未找到}\n- 历史基线：未找到\n\n建议：\n1. 先运行 /thesis-tracker {公司名} 建立论文\n2. 下次有新财报或重大事件后，再运行 /thesis-drift {公司名} 旧报告 新报告\n```\n\n---\n\n## 关键原则\n\n- **证据优先于措辞** — 同义改写不是漂移，只有事实证据变化才是漂移\n- **基本面优先于股价** — 股价涨跌只影响估值锚点，不自动改变生意质量\n- **数值必须验算** — 所有百分比、估值倍数、目标价差异必须用 `tools/financial_rigor.py`\n- **不确定就标注不确定** — 来源缺失、口径不一致、无法复核时，不要硬判\n- **红线单独处理** — 红线触发优先级高于估值便宜，不能被低 PE 掩盖\n- **输出必须可复盘** — 每个 Improved / Weakened 结论都要能追溯到具体证据\n","skills/earnings-team.md":"# 财报精读团队：四大师并行解读 + 公众号发布\n\n对 $ARGUMENTS 进行团队化财报精读分析。四位大师并行解读财报，编辑润色成文，读者评审把关质量，最终产出可直接发布的公众号文章。\n\n**支持输入格式**：`公司名 季度`，例如：`腾讯 2025Q4`、`PDD 2025年报`、`美团 最新`\n\n## 设计理念\n\n一份好的财报分析要解决两个问题：\n1. **自己能看懂未来**——需要四个不同视角的深度研究\n2. **读者能看懂价值**——需要编辑润色和读者视角的质量把关\n\n本 Skill 的流程分三阶段：\n- **阶段一·研究**：四大师并行精读财报（段永平看生意本质、巴菲特审财务质量、芒格读竞争变化、李录猎风险信号）\n- **阶段二·合成**：Team Lead 综合四个视角，产出研究报告初稿\n- **阶段三·发布**：编辑 Agent 改写为公众号文章 + 读者评审 Agent 提出修改意见 → Team Lead 定稿\n\n---\n\n## 阶段一：四大师并行研究\n\n### 第一步：获取一手资料\n\n使用 Agent 工具启动后台 Agent **并行**获取以下原始材料：\n\n| 资料类型 | 获取来源 | 优先级 |\n|---------|---------|--------|\n| 财报原文 | 公司IR页面、SEC EDGAR（美股）、港交所披露易（港股）、巨潮资讯网（A股） | 最高 |\n| 业绩电话会纪要 | Seeking Alpha、公司IR页面、雪球 | 最高 |\n| 管理层致股东信 | 年报中提取 | 高（仅年报时） |\n| 上一期财报/电话会 | 同上 | 高（用于承诺追踪） |\n\n**资料可得性评级**：\n\n| 等级 | 特征 | 影响 |\n|------|------|------|\n| A级 | 获取到完整原文 | 正常执行全部步骤 |\n| B级 | 仅获取到部分原文或第三方汇总 | 标注\"非原始来源\"，降低附注分析权重 |\n| C级 | 仅有新闻报道和数据网站摘要 | 聚焦核心数据变化，跳过附注挖掘，标注\"一手资料不足\" |\n\n将资料可得性评级告知每个 Agent，影响其分析深度。\n\n### 第二步：向用户展示团队框架\n\n| 阶段 | 角色 | 大师/定位 | 核心任务 |\n|------|------|----------|---------|\n| 研究 | **Team Lead**（你自己） | 总协调 | 统筹、合成、定稿 |\n| 研究 | 生意本质解读者 | 段永平 | 这门生意变好了还是变差了？ |\n| 研究 | 财务质量审计师 | 巴菲特 | 赚的是真钱还是假钱？ |\n| 研究 | 竞争变化解读者 | 芒格 | 竞争格局在怎么变？ |\n| 研究 | 风险信号猎手 | 李录 | 管理层在隐瞒什么？ |\n| 发布 | 编辑 | 公众号写作 | 把研究报告改写成好文章 |\n| 发布 | 读者评审 | 普通投资者 | 读者能看懂吗？有收获吗？ |\n\n### 第三步：启动4个并行研究Agent\n\n使用 Agent 工具在**同一条消息**中启动4个后台 Agent。\n\n---\n\n#### Agent 1：生意本质解读（段永平视角）\n\n**核心问题：这份财报反映的生意本质，变好了还是变差了？**\n\n> 段永平：\"投资就是买一门生意。看财报不是看数字，是看这门生意有没有变。\"\n\n分析内容：\n\n1. **收入结构拆解与解读**\n   - 分业务/分地区收入，哪些在加速、哪些在减速\n   - 不只是列数字——每个业务板块反映了什么商业逻辑\n   - 收入增长来自\"量\"还是\"价\"？哪种更健康？\n\n2. **用户/客户价值变化**\n   - DAU/MAU/付费用户等运营指标变化\n   - 用户时长、ARPU、留存率等质量指标\n   - 平台/产品对用户的价值在增强还是减弱？\n\n3. **护城河检测**\n   - 毛利率变化反映定价权是否稳固\n   - 市场份额变化反映竞争壁垒是否有效\n   - 客户转换成本/网络效应有没有被削弱的信号\n\n4. **\"好生意\"标准评估**\n   - 段永平三条件：差异化、定价权、可持续竞争优势——本期变化\n   - 生意在变\"重\"还是变\"轻\"？\n   - 如果明天公司关门，用户会不会非常痛苦？因为这份财报变了吗？\n\n5. **管理层产品直觉**\n   - 管理层讨论产品/用户时，用的是具体语言还是官僚语言\n   - 是否有令人印象深刻的产品洞察或令人担忧的脱节信号\n\n**输出要求**：每个子项标注 🟢改善 / 🟡持平 / 🔴恶化，给出段永平式总结点评。\n\n---\n\n#### Agent 2：财务质量审计（巴菲特视角）\n\n**核心问题：这家公司赚的是真钱还是假钱？安全边际变了吗？**\n\n> 巴菲特：\"我看每一份财报，第一件事就是翻到现金流量表。\"\n\n分析内容：\n\n1. **核心财务数据提取与验证**\n   - 收入、毛利、经营利润、净利润——GAAP和Non-GAAP都要\n   - GAAP vs Non-GAAP差异：差了多少、差在哪里、差距扩大还是缩小\n   - 关键数据至少两个来源交叉验证\n\n   ```bash\n   python3 tools/financial_rigor.py cross-validate \\\n     --metric \"revenue\" --values {值1} {值2} --sources \"来源1\" \"来源2\"\n   ```\n\n2. **现金流分析（最重要）**\n   - 经营现金流 vs 净利润比率（>100%佳，<80%警惕）\n   - 自由现金流 = 经营现金流 - 资本开支\n   - 资本开支构成：维护性 vs 扩张性\n   - 回购和分红金额\n\n3. **利润质量检验**\n   - 应收账款增速 vs 收入增速\n   - 存货增速 vs 收入增速\n   - 经营现金流与净利润差距趋势\n   - 资本化支出是否突然增加\n   - 非经常性收益占比\n\n4. **资产负债表健康度**\n   - 净现金/净负债变化\n   - 应收账款/存货周转天数变化\n   - 商誉及无形资产减值风险\n\n5. **估值与安全边际更新**\n\n   ```bash\n   python3 tools/financial_rigor.py verify-market-cap \\\n     --price {价格} --shares {股本} --reported {报告市值} --currency {币种}\n   python3 tools/financial_rigor.py verify-valuation \\\n     --price {价格} --eps {EPS} --bvps {每股净资产}\n   python3 tools/financial_rigor.py three-scenario \\\n     --price {价格} --eps {EPS} --shares {股本亿} \\\n     --growth {乐观} {中性} {悲观} --pe {乐观PE} {中性PE} {悲观PE}\n   ```\n\n**输出要求**：所有计算附工具输出记录，利润质量信号灯 🟢/🟡/🔴，巴菲特式总结点评。\n\n---\n\n#### Agent 3：竞争格局解读（芒格视角）\n\n**核心问题：这份财报揭示了竞争格局的什么变化？**\n\n> 芒格：\"我想知道我会死在哪里，这样我就不去那儿了。\"\n\n分析内容：\n\n1. **从财报数据推断竞争变化**\n   - 收入增速 vs 行业增速——跑赢还是跑输？\n   - 毛利率变化反映竞争加剧/缓和\n   - 营销费用率变化——需要花更多钱获客吗？\n   - 研发投入——主动投入还是被迫跟进？\n\n2. **同期竞争对手对比**\n   - 主要竞争对手同期关键指标对比（如已发布）\n   - 增速、利润率、投入力度对比\n   - 谁在赢？谁在输？\n\n3. **管理层对竞争的讨论**\n   - 电话会上如何描述竞争环境\n   - 是否点名竞争对手？语气自信还是焦虑？\n   - 有没有新的竞争威胁？\n\n4. **行业趋势信号**\n   - 技术变革（AI/新平台等）的影响\n   - 监管变化对竞争格局的影响\n   - 消费/需求端趋势\n\n5. **芒格式逆向思考**\n   - 什么会杀死这家公司？本期财报有没有指向这些威胁的信号？\n   - 5年后回看，这份财报会是\"转折点\"吗？\n\n**输出要求**：竞争格局判断（加强/持平/恶化），竞争对手对比表，芒格式逆向点评。\n\n---\n\n#### Agent 4：风险信号猎手（李录视角）\n\n**核心问题：管理层在这份财报里隐瞒了什么？哪些信号在闪烁？**\n\n> 李录：\"投资最重要的是避免永久性资本损失。\"\n\n分析内容：\n\n1. **管理层语气分析**\n   - 逐段阅读管理层讨论和电话会发言，标注信号：\n   - 🟢坦诚信号（主动承认问题）/ 🟢清晰信号（有量化目标）\n   - 🔴模糊信号（空话）/ 🔴转移信号（答非所问）/ 🔴归因外部化\n\n2. **承诺追踪**\n   - 上一期管理层具体承诺 vs 本期实际兑现，逐条对比\n   - 段永平：\"看管理层靠不靠谱，就看以前说的话做到了没有。\"\n\n3. **附注与隐藏信息**\n   - 关联交易、股权激励稀释、或有负债\n   - 会计政策变更、分部利润率差异\n   - 客户/供应商集中度变化\n\n4. **电话会Q&A精选**\n   - 最尖锐的3-5个分析师问题及管理层回答质量评分\n\n5. **永久性资本损失风险**\n   - 是否出现可能导致永久性损失的信号\n   - 监管/合规/诉讼风险新进展\n   - 管理层是否做出了不可逆的错误决策\n\n**输出要求**：管理层可信度评分★1-5，承诺兑现率，风险信号清单，李录式总结点评。\n\n---\n\n### 第四步：跟踪进度\n\n向用户实时展示：\n\n```\n📊 {公司名} {期间} 财报精读进度\n━━━━━━━━━━━━━━━━━━━━━━━\n阶段一·研究\n  ☐ 段永平·生意本质    ⏳ 分析中...\n  ☐ 巴菲特·财务质量    ⏳ 分析中...\n  ☐ 芒格·竞争格局      ⏳ 分析中...\n  ☐ 李录·风险信号      ⏳ 分析中...\n阶段二·合成            ⏸ 等待中\n阶段三·发布            ⏸ 等待中\n```\n\n每收到一份报告，更新进度并展示核心发现（3-5条）。\n\n---\n\n## 阶段二：Team Lead 合成研究报告\n\n全部4份研究报告到齐后，Team Lead 综合产出研究报告初稿。\n\n**合成要点**——不是拼报告，是找交叉和矛盾：\n\n1. **四个视角的共识点**：四位大师都同意的结论，可信度最高\n2. **四个视角的矛盾点**：比如段永平说生意变好了，但芒格说竞争在恶化——这种矛盾才是最有价值的分析\n3. **被忽略的角落**：四个人都没重点提的东西，是否恰恰是最重要的？\n\n#### 研究报告结构\n\n```markdown\n# {公司名} {期间} 财报精读报告\n**四大师并行解读 | {日期}**\n\n## 一、一句话结论\n> 50-100字：超/符/低预期，核心变化，对投资论文的影响。\n\n## 二、本期最重要的3个变化\n聚焦真正重要的变化，不罗列数据，每个变化100字以内。\n\n## 三、四大师评分表\n| 视角 | 大师 | 核心问题 | 结论 | 评分 | vs上期 |\n|------|------|---------|------|------|--------|\n\n## 四、核心数据速览\n关键财务和运营指标表格（本期 vs 上期 vs 同比）\n\n## 五、各视角深度分析\n每个视角3-5条最重要发现\n\n## 六、管理层语气与承诺追踪\n承诺兑现表 + 语气变化分析\n\n## 七、四大师会怎么做？\n| 大师 | 如果持有 | 如果没持有 | 理由 |\n\n## 八、结论\n1. 超/符/低预期？\n2. 投资论文影响：强化/无影响/削弱/破裂\n3. 下一个催化剂\n4. 操作建议\n```\n\n---\n\n## 阶段三：编辑润色 + 读者评审\n\n研究报告完成后，**并行**启动两个 Agent：\n\n### Agent 5：编辑（公众号文章改写）\n\n**定位**：把硬核研究报告改写成公众号读者爱看、能看懂的文章。\n\n**核心原则**：\n- 保留所有关键数据和结论，不降低专业深度\n- 改善表达方式，让非专业投资者也能跟上逻辑\n- 不是\"科普化\"，是\"让专业内容读起来不累\"\n\n**具体任务**：\n\n1. **标题与开头**\n   - 标题要有信息量且吸引点击，但不做标题党\n   - 好标题示例：\"快手花260亿赌AI，赌赢了吗？\"\n   - 坏标题示例：\"震惊！快手财报暴雷！\"\n   - 开头100字内讲清楚：这份财报最重要的结论是什么、为什么读者应该关心\n\n2. **结构优化**\n   - 研究报告是给自己看的，公众号文章是给别人看的——调整逻辑顺序\n   - 把\"最重要的3个变化\"放在最前面（倒金字塔结构）\n   - 表格保留但精简，大段分析改为要点式\n   - 每500字左右插入一个\"阶段性小结\"，帮读者消化\n\n3. **表达润色**\n   - 把生硬的财务术语用类比/场景解释：\"经营现金流比净利润低30%\"→\"赚了100块但口袋里只摸到70块\"\n   - 四大师的点评语录是文章的灵魂——确保每条都读起来犀利、有记忆点\n   - 段落不超过4行，句子不超过30字\n   - 适度使用对比和反差制造阅读节奏\n\n4. **读者价值检测**\n   - 每个章节自问：读者读完这段，能做什么决策？如果答案是\"什么都做不了\"，要么改写要么删除\n   - 文章末尾需要有明确的\"所以呢？\"——对持有者、观望者分别给出操作指引\n\n5. **格式适配**\n   - 微信公众号排版友好：短段落、小标题清晰、表格简洁\n   - 加入适当的分隔线和引用格式\n   - 文章长度控制在1000-3000字（太长读者会跳出）\n\n**输出**：改写后的完整公众号文章。\n\n---\n\n### Agent 6：读者评审（普通投资者视角）\n\n**定位**：以一个\"关注价值投资、有基础财务知识、持有/关注该公司\"的普通投资者身份审读文章。\n\n**评审维度**：\n\n1. **可读性（权重30%）**\n   - 读完全文需要几分钟？是否有想跳过的段落？\n   - 哪些地方看不懂或需要反复读？\n   - 节奏感如何？有没有\"读累了\"的感觉？\n\n2. **信息价值（权重30%）**\n   - 读完后，我对这家公司的理解是否加深了？\n   - 有没有\"哦原来是这样\"的瞬间？\n   - 和我在其他地方看到的分析相比，这篇有什么独到之处？\n   - 哪些信息是多余的、删掉也不影响理解？\n\n3. **可信度（权重20%）**\n   - 数据是否有来源？关键判断是否有依据？\n   - 是否呈现了正反两面？还是只在唱多/唱空？\n   - 有没有\"这也太自信了\"的判断让人不舒服？\n   - 四大师的引用是否恰当、有力？\n\n4. **行动指导性（权重20%）**\n   - 读完后我知道该怎么做吗？\n   - 对\"持有者\"和\"观望者\"的建议是否足够具体？\n   - 下一步该关注什么？（催化剂、时间节点）\n\n**输出格式**：\n\n```markdown\n## 读者评审报告\n\n### 总体评分：X/10\n\n### 优点（2-3条）\n读者视角下文章做得好的地方\n\n### 必须修改（硬伤）\n- 问题1：具体描述 → 建议修改方式\n- 问题2：...\n\n### 建议优化（锦上添花）\n- 建议1：...\n- 建议2：...\n\n### 读者最想知道但文章没回答的问题\n- 问题1\n- 问题2\n\n### 一句话总评\n```\n\n---\n\n### Team Lead 定稿\n\n收到编辑改写稿和读者评审报告后：\n\n1. **处理读者评审的\"必须修改\"项**——逐条修改\n2. **选择性采纳\"建议优化\"项**——判断是否值得\n3. **补充\"读者想知道但没回答的问题\"**——如果有数据支撑就加上\n4. **最终通读**——确保修改后全文连贯、逻辑自洽\n\n---\n\n## 输出文件\n\n```\nreports/{公司名}/\n├── {公司名}-earnings-{期间}.md           ← 最终公众号文章（定稿）\n├── {公司名}-earnings-{期间}-研究底稿.md   ← 四大师合成研究报告（自用）\n├── {公司名}-earnings-{期间}-段永平.md     ← 生意本质解读\n├── {公司名}-earnings-{期间}-巴菲特.md     ← 财务质量审计\n├── {公司名}-earnings-{期间}-芒格.md       ← 竞争格局解读\n├── {公司名}-earnings-{期间}-李录.md       ← 风险信号分析\n└── {公司名}-earnings-{期间}-读者评审.md   ← 读者评审报告\n```\n\n## 数据抽检（准出流程）\n\n对最终文章执行抽检：\n\n```bash\npython3 tools/report_audit.py extract \\\n  --report reports/{公司名}/{公司名}-earnings-{期间}.md\n\npython3 tools/report_audit.py verdict \\\n  --results '<填好的JSON>' \\\n  --report {报告文件名}\n```\n\n**【准出】** 全部通过 → 可发布；**【打回】** 有不通过 → 修正后重审。\n\n## 与现有 Skill 的关系\n\n| Skill | 定位 | 何时用 |\n|-------|------|--------|\n| `/earnings-review` | 单Agent财报精读 | 快速过一遍，只需一个视角 |\n| **`/earnings-team`（本Skill）** | **六Agent团队精读 + 公众号发布** | **重要公司的关键财报，需要深度+发布** |\n| `/investment-team` | 四Agent全面公司研究 | 首次研究一家公司 |\n\n## 关键原则\n\n- **读原文，不读摘要**：尽一切可能获取一手资料\n- **四个视角不是四个部门**：必须相互印证和挑战，不是各说各话\n- **Team Lead 的价值在于综合判断**：找交集和矛盾点，不是拼报告\n- **结论要明确**：不允许\"总体来看基本符合预期但也有一些值得关注的点\"\n- **反面检验贯穿全程**：每个积极发现都附带反面论据\n- **编辑不是降低专业度**：是让专业内容更易读，不是变成科普\n- **读者评审不是走过场**：真的站在读者角度挑毛病\n- **数据准确性**：关键数据交叉验证，使用 financial_rigor.py 工具验算\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AI Berkshire Codex Guide\n\nThis repository contains investment research workflows, reports, and shared\nvalidation tools. Keep compatibility with both Claude Code and Codex users.\n\n## Project Layout\n\n- `skills/*.md`: Claude Code slash-command source files.\n- `codex-skills/*/SKILL.md`: Codex skill packages. Most are generated from\n  `skills/*.md`; Codex-only hand-written packages are allowed when clearly\n  marked and no same-named `skills/*.md` source exists.\n- `codex-prompts/*.md`: generated Codex custom prompts for slash-command\n  style entry points. These are a compatibility layer; skills remain preferred.\n- `tools/*.py`: shared financial validation and data tools used by both systems.\n- `reports/`: research outputs. Do not rewrite unrelated reports while changing\n  tooling or skills.\n- `scripts/sync-codex-skills.py`: regenerates Codex skills from `skills/*.md`.\n- `scripts/install-codex-skills.sh` / `scripts/install-codex-skills.bat`:\n  installs Codex skills locally.\n- `scripts/install-codex-prompts.sh` / `scripts/install-codex-prompts.bat`:\n  installs generated Codex slash prompts locally.\n- `scripts/install-claude-commands.sh` / `scripts/install-claude-commands.bat`:\n  installs Claude Code commands locally.\n\n## Compatibility Rules\n\n- Treat `skills/*.md` as the canonical workflow source.\n- After changing any file in `skills/`, run:\n  `python3 scripts/sync-codex-skills.py`\n- If slash prompt compatibility is needed, also run:\n  `python3 scripts/sync-codex-prompts.py`\n- Do not manually edit generated `codex-skills/*/SKILL.md` unless also updating\n  the corresponding source in `skills/`.\n- For Codex-only hand-written packages under `codex-skills/`, keep them clearly\n  marked as Codex-only and do not create a same-named `skills/*.md` file unless\n  intentionally adopting the workflow for Claude Code too.\n- Keep tool paths compatible with the documented checkout path:\n  `~/ai-berkshire/tools/...`\n- Keep `CLAUDE.md` for Claude Code behavior and this `AGENTS.md` for Codex\n  behavior.\n\n## Research Quality Rules\n\n- Before starting any research, run the `date` command to confirm today's\n  date. Treat that date as the baseline for \"latest\" data (prices, market cap,\n  most recent filings), and state the data cutoff date in the report header.\n  Never assume the current date from training data.\n- Financial data must come from at least two independent sources when the skill\n  requires verification.\n- Use exact arithmetic tools for market cap, valuation, cross-source checks, and\n  scenario analysis:\n  `python3 tools/financial_rigor.py ...`\n- Use report audit tooling before treating generated research as publishable:\n  `python3 tools/report_audit.py ...`\n- Clearly label low-confidence conclusions, incomplete data, and source gaps.\n- This project is for learning and research, not investment advice.\n\n## Editing Rules\n\n- Preserve existing report files unless the task specifically asks to change\n  them.\n- Keep changes scoped to the requested skill, tool, script, or documentation.\n- Before finishing a skill/tool change, run the relevant syntax or generation\n  check. For compatibility changes, run:\n  `python3 scripts/sync-codex-skills.py`\n- To verify generated Codex artifacts are current without rewriting files, run:\n  `python3 scripts/sync-codex-skills.py --check`\n  and, when slash prompts are relevant:\n  `python3 scripts/sync-codex-prompts.py --check`\n","category":"root","tokens":849},{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# AI Berkshire — 项目指令\n\n## 项目概述\n\n基于 Claude Code 的价值投资研究 Skill 合集。四大师框架：巴菲特、芒格、段永平、李录。\nGitHub: xbtlin/ai-berkshire\n\n## 项目结构\n\n```\nskills/          — 投研 Skill 定义（.md），复制到 ~/.claude/commands/ 使用\ntools/           — 辅助工具（financial_rigor.py 精确计算、twstock_data.py 台股FinMind取数）\nreports/         — 投资研究报告输出\nassets/          — 图片等静态资源\n```\n\n## 报告目录结构\n\n所有报告按**公司名**建文件夹，公司相关的所有报告放在对应文件夹内：\n\n```\nreports/\n├── AI产业研究/              — AI产业链全景研究（置顶）\n│   ├── AI五层蛋糕-产业全景研究-20260605.md\n│   └── AI五层蛋糕-公众号-20260605.md\n├── 腾讯/                    — 腾讯所有研究报告\n│   ├── 腾讯-research-20260408.md\n│   ├── 腾讯-earnings-2025Q4.md\n│   ├── 腾讯-management-20260409.md\n│   └── 腾讯-thesis.md\n├── 拼多多/                  — 拼多多所有研究报告\n├── 泡泡玛特/                — 泡泡玛特所有研究报告\n├── 核电-industry-20260409.md — 行业报告放根目录\n├── AI算力-funnel-20260509.md  — 漏斗筛选报告放根目录\n├── AI-轮动判断-20260509.md    — 主题级综合判断报告放根目录\n├── portfolio-latest.md       — 组合报告放根目录\n└── 多公司对比-checklist-20260408.md — 多公司报告放根目录\n```\n\n## 报告命名规范\n\n| Skill | 文件命名格式 | 示例 |\n|------|---------|------|\n| /investment-team | `{公司名}/` 目录内含4个视角+最终报告 | `reports/拼多多/最终报告.md` |\n| /investment-research | `{公司名}-research-{YYYYMMDD}.md` | `reports/腾讯/腾讯-research-20260408.md` |\n| /investment-checklist | `{公司名}-checklist-{YYYYMMDD}.md` | `reports/腾讯/腾讯-checklist-20260408.md` |\n| /industry-research | `{行业名}-industry-{YYYYMMDD}.md`（根目录） | `reports/核电-industry-20260409.md` |\n| /industry-funnel | `{行业名}-funnel-{YYYYMMDD}.md`（根目录） | `reports/AI算力-funnel-20260509.md` |\n| /private-company-research | `{公司名}-private-{YYYYMMDD}.md` | `reports/字节跳动/字节跳动-private-20260408.md` |\n| /earnings-review | `{公司名}-earnings-{期间}.md` | `reports/腾讯/腾讯-earnings-2025Q4.md` |\n| /earnings-team | `{公司名}/` 目录内含4个大师视角+研究底稿+公众号文章+读者评审 | `reports/腾讯/腾讯-earnings-2025Q4.md`（公众号定稿） |\n| /thesis-tracker | `{公司名}-thesis.md`（长期维护） | `reports/腾讯/腾讯-thesis.md` |\n| /portfolio-review | `portfolio-latest.md`（根目录，持续更新） | `reports/portfolio-latest.md` |\n| /management-deep-dive | `{公司名}-management-{YYYYMMDD}.md` | `reports/腾讯/腾讯-management-20260409.md` |\n\n## /investment-team 文件结构\n\n```\nreports/{公司名}/\n├── README.md                         — 研究框架概览+核心结论\n├── 01-商业模式分析-段永平视角.md\n├── 02-财务估值分析-巴菲特视角.md\n├── 03-行业竞争分析-芒格视角.md\n├── 04-风险管理层评估-李录视角.md\n└── 最终报告.md                       — Team Lead 综合报告\n```\n\n## 投研分析核心原则（最高优先级）\n\n- **客观、客观、客观**——所有投研分析必须基于事实和数据，严禁主观臆断\n- 严格区分\"事实\"与\"观点\"：事实用数据支撑，观点必须明确标注为\"观点\"或\"推测\"\n- **不预设立场**：不预设看多或看空，先摆数据、再推逻辑、最后得结论。结论必须从数据中自然推出\n- 禁止使用\"我认为\"、\"我觉得\"、\"显然\"等主观表述，改用\"数据显示\"、\"证据表明\"、\"根据XX来源\"\n- **呈现正反两面**：每个核心判断都必须附带反面论据（\"但另一方面...\"），让读者自己权衡\n- 对不确定的事情诚实说\"不确定\"或\"数据不足\"，不要用推测填充确定性\n- 所有skill（investment-team、investment-research、earnings-review等）在执行时都必须遵守以上原则\n\n## 报告语言与风格\n\n- 所有报告使用**中文**\n- 风格：直接、犀利、不说废话\n- 数据必须标注来源，关键数据至少2个来源交叉验证\n- 估计值必须注明\"估计\"\n- 评分使用★符号（★1-5），不含半星\n- 穿插巴菲特/芒格/段永平/李录的语录点评\n\n## GitHub 操作\n\n- 本地克隆路径：`~/ai-berkshire/`\n- 远程仓库：`https://github.com/xbtlin/ai-berkshire.git`\n- 推送前先 `git pull --rebase origin main`（远程经常有新提交）\n- commit message 用中文，描述清楚改了什么\n- 不要推送中间过程文件（如 data_collection.md），只推最终报告\n\n## 常用命令\n\n```bash\n# 推送报告到GitHub\ncd ~/ai-berkshire\ngit add reports/xxx.md\ngit commit -m \"添加xxx报告\"\ngit pull --rebase origin main\ngit push origin main\n```\n\n## 注意事项\n\n- 市值必须手算校验：股价 × 总股本，与报告市值对比\n- 货币单位要明确（港币/人民币/美元/新台币），防止混淆\n- PE/ROE等指标用 tools/financial_rigor.py 精确计算\n- 台股数据用 tools/twstock_data.py（FinMind）获取，并按 skills/financial-data.md 台股章节交叉验证\n- 报告写完后主动询问是否推送到GitHub\n","category":"root","tokens":833},{"name":"SKILL.md","path":"codex-skills/wechat-article/SKILL.md","title":"wechat-article Skill","content":"---\nname: wechat-article\ndescription: \"AI Berkshire skill: 微信公众号文章：作者-编辑-读者三Agent协作. Source: skills/wechat-article.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/wechat-article.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 微信公众号文章：作者-编辑-读者三Agent协作\n\n对 $ARGUMENTS 进行深度研究，产出一篇可直接发布的微信公众号文章。三个Agent各司其职：作者写深度初稿，编辑精修结构和表达，读者从目标受众视角审读。\n\n**支持输入格式**：主题描述，例如：`大模型OPD技术解读`、`Qwen3技术报告解读`、`为什么巴菲特不买科技股`\n\n---\n\n## 设计理念\n\n一篇好的公众号文章需要同时满足三个维度：\n1. **深度**——对得起花时间读完的人（作者负责）\n2. **可读性**——结构清晰、节奏好、不劝退（编辑负责）\n3. **真的能看懂**——目标读者不会在中途放弃（读者负责）\n\n单人写作容易\"自嗨\"——写的人觉得清楚，读的人看不懂。三Agent协作的本质是**强制引入外部视角**。\n\n---\n\n## 阶段一：研究与素材收集\n\n### 第一步：明确文章定位\n\n在开始写作之前，先确认以下信息（如用户未指定则主动询问）：\n\n| 维度 | 需要确认 | 默认值 |\n|------|---------|--------|\n| **目标读者** | 技术背景程度 | 有点技术背景但非该领域专家 |\n| **文章深度** | 科普/中深度/硬核 | 中深度（有公式但要解释清楚） |\n| **文章长度** | 字数范围 | 3000-4000字 |\n| **是否需要下载原始论文/资料** | 需要PDF/配图 | 是 |\n| **写作风格** | 正式/对话式/犀利 | 对话式（像写给聪明的朋友） |\n\n### 第二步：深度研究\n\n使用 Agent 工具**并行**启动2-3个研究Agent，收集足够的素材：\n\n**研究Agent A：核心内容研究**\n- 如果是论文解读：下载论文PDF、提取核心贡献、关键图表、实验结果\n- 如果是技术主题：搜索最新进展、关键论文、技术细节\n- 如果是商业/投资主题：搜索最新数据、行业报告、竞争格局\n\n**研究Agent B：行业背景与应用**\n- 搜索该技术/主题的行业落地情况\n- 哪些公司在用？效果如何？\n- 最新的发展趋势和里程碑事件\n\n**研究Agent C（可选）：竞品/对比研究**\n- 同类方法/产品的对比\n- 历史发展脉络\n- 未来演进方向\n\n### 第三步：整理素材框架\n\n研究Agent全部完成后，整理出：\n1. **核心论点**（一句话概括文章要传达的核心信息）\n2. **关键数据**（3-5个最有冲击力的数据点）\n3. **配图清单**（需要哪些图，来源是什么）\n4. **文章大纲**（6-8个章节的标题和核心内容）\n\n---\n\n## 阶段二：作者Agent写初稿\n\n使用 Agent 工具启动**作者Agent**，给出详细的写作指令。\n\n### 作者Agent的Prompt模板\n\n```\n你是一位深度技术写作者（Author Agent），需要写一篇微信公众号文章。\n\n## 目标读者\n{根据第一步确认的读者画像}\n\n## 写作风格要求\n- 纯中文表达，避免中英文夹杂（技术术语首次出现时给英文，后续用中文）\n- 像写给聪明的朋友看的技术科普，不是学术论文翻译\n- 用类比帮助理解，但类比要贴切、不俗套\n- 关键公式/数据要有，但每个都要用大白话解释\n- 不用emoji\n- 段落不超过4行（公众号阅读环境）\n\n## 核心内容\n{整理好的素材、数据、论点}\n\n## 文章结构要求\n1. **开头（前3段）**：必须有强钩子——用数据冲击力或反直觉的结论开场，不要用温和的类比开场\n2. **背景**：为什么这件事重要？解决什么问题？\n3. **核心内容（2-3节）**：技术深度在这里体现，但每个技术点都要有\"大白话翻译\"\n4. **实证/案例**：用数据和案例说话，不要空谈\n5. **行业影响/展望**：这件事对行业意味着什么\n6. **结尾**：一句有传播力的判断收束，适合被截图转发\n\n## 配图要求\n- 论文解读类文章：必须从论文PDF中提取原图，直接用 `![描述](相对路径)` 插入文章，不要用 [图X：描述] 占位符\n- 提取方法：用 pdftoppm 将PDF页面渲染为高分辨率PNG（至少900 DPI），再用 PIL 裁切目标图表区域\n- 每张图不小于500KB，确保高清\n- 图片统一存放在 `assets/{主题简称}/` 目录下\n- 非论文类文章：如需配图，搜索并下载合适的图片，同样直接插入\n\n## 公式要求\n- 所有数学公式使用 LaTeX 格式：行内用 `$...$`，独立公式用 `$$...$$`\n- 禁止用纯文本写公式（如 `> D_KL(P || Q) = ...`），必须用 LaTeX 渲染格式\n- 每个公式后面仍然要配\"大白话翻译\"\n\n请写出完整的文章初稿，约{目标字数}字。\n```\n\n### 作者Agent完成后\n\n检查初稿文件是否生成，阅读全文确认内容完整性。\n\n---\n\n## 阶段三：编辑Agent + 读者Agent并行审阅\n\n初稿完成后，使用 Agent 工具在**同一条消息**中启动编辑Agent和读者Agent。\n\n### 编辑Agent的Prompt模板\n\n```\n你是一位资深公众号编辑（Editor Agent）。请对以下文章进行精修审阅。\n\n## 审阅标准\n1. **标题**：是否在朋友圈能吸引点击？是否会被截断（超过30字）？\n2. **开头**：前3段能否留住读者？钩子是否足够强？\n3. **结构**：逻辑链是否流畅？有无跳跃或断层？\n4. **深度与可读性平衡**：公式/技术部分是否真的通俗？有无\"假装通俗但没解释清楚\"的地方？\n5. **节奏**：有无太长的段落？每节长度是否合适？\n6. **配图**：图片是否已实际插入（非占位符）？位置是否在读者最需要视觉辅助时出现？\n7. **结尾**：有无传播力？读者看完会想转发吗？\n\n## 文章全文\n{完整初稿}\n\n## 输出格式\n1. 总体评价（3-5句话）\n2. 标题修改建议（给2-3个备选）\n3. 逐节修改建议（给出\"原文→建议修改为\"的具体对照）\n4. 最关键的3个改进点\n```\n\n### 读者Agent的Prompt模板\n\n```\n你是一位{目标读者画像}（Reader Agent）。请从读者视角审读以下文章。\n\n## 你的背景\n{具体描述目标读者的知识水平和阅读习惯}\n\n## 文章全文\n{完整初稿}\n\n## 请回答以下问题\n1. 读完前3段，你会继续读下去吗？为什么？\n2. 哪些地方\"看不懂\"或\"需要重读才能理解\"？具体是哪句话？\n3. 技术/公式部分你看懂了吗？\"大白话翻译\"是否帮到你了？\n4. 文章的核心类比贴切吗？有更好的类比吗？\n5. 太长还是太短？会在哪里失去耐心？\n6. 读完后你能用一句话概括文章核心观点吗？\n7. 你会转发这篇文章吗？转发时你会说什么？\n8. 有没有你想了解但文章没覆盖的问题？\n```\n\n---\n\n## 阶段四：定稿\n\n### 第一步：综合两个Agent的反馈\n\n重点关注以下高频问题：\n\n| 问题类型 | 编辑常见反馈 | 读者常见反馈 | 处理方式 |\n|---------|------------|------------|---------|\n| 开头太弱 | 钩子不够强 | 前3段没动力继续 | 用数据/反直觉结论重写开头 |\n| 技术段劝退 | 公式太密集 | 某段需要重读3遍 | 删公式或图片化，加更直觉的类比 |\n| 节奏拖沓 | 某节太长 | 某处失去耐心 | 合并或删减（尤其是后半段重复的技术解释） |\n| 结尾无力 | 缺传播力 | 不会转发 | 重写为一句可截图传播的判断 |\n| 概念跳跃 | 逻辑有断层 | 某处\"突然看不懂了\" | 补过渡句或背景解释 |\n\n### 第二步：执行修改\n\n根据反馈重写文章。核心修改原则：\n\n1. **编辑和读者都指出的问题，必须改**\n2. **只有编辑指出的问题，大概率要改**（编辑的专业判断通常准确）\n3. **只有读者指出的问题，视情况改**（读者反馈代表真实体验，但不一定每条都需要响应）\n4. **两者矛盾时，偏向读者**（编辑追求完美，但读者体验是最终标准）\n\n### 第三步：提取配图\n\n论文解读类文章必须在定稿前完成配图提取：\n\n1. **渲染**：`pdftoppm -png -r 900 -f {页码} -l {页码} 论文.pdf /tmp/page`（900 DPI起步，如果图片不到500KB则升到1200或1500 DPI）\n2. **定位**：先用150 DPI渲染全页，目视确认各图表的像素坐标\n3. **裁切**：用 PIL 按坐标裁切，`compress_level=1` 保存，确保每张 ≥ 500KB\n4. **存储**：保存到 `assets/{主题简称}/` 目录，命名为 `fig{序号}-{描述}.png`\n5. **插入**：文章中用 `![描述](../../assets/{主题简称}/fig{序号}-{描述}.png)` 引用\n\n### 第四步：产出最终文件\n\n将定稿保存为 md 文件，文件末尾附上论文/资料原文链接：\n\n```markdown\n**论文原文：**\n- arXiv: {链接}\n```\n\n---\n\n## 文件命名与存储\n\n| 类型 | 路径 | 命名格式 |\n|------|------|---------|\n| 技术主题 | `reports/AI产业研究/` | `公众号-{主题关键词}-{YYYYMMDD}.md` |\n| 投资主题 | `reports/{公司名}/` | `{公司名}-公众号-{YYYYMMDD}.md` |\n| 通用主题 | `reports/` | `公众号-{主题关键词}-{YYYYMMDD}.md` |\n\n---\n\n## 写作红线\n\n1. **不虚构数据**。引用的数据必须有来源，搜不到就标注\"估计\"\n2. **不用AI腔调**。禁止\"让我们一起来看看\"、\"值得关注的是\"、\"不得不说\"等套话\n3. **不过度承诺**。技术文章不说\"颠覆性的\"、\"革命性的\"，用数据说话\n4. **公式必须配大白话**。每个公式后面都要有一段\"翻译成人话就是……\"\n5. **公式必须用LaTeX**。`$$...$$` 格式，禁止纯文本公式\n6. **配图必须实际插入**。论文解读类从PDF提取高清原图（≥500KB），禁止用 `[图X]` 占位符\n7. **表格括号注释要精确**。描述概念时用准确的定义，不用模糊的动宾短语（如\"文本来自教师\"而非\"学教师的文本\"）\n8. **类比要一以贯之**。全文用一个主线类比，不要每节换一个新类比\n9. **结尾必须有传播力**。最后一句话要值得被单独截图转发\n","category":"codex-skills","tokens":1454},{"name":"SKILL.md","path":"codex-skills/thesis-tracker/SKILL.md","title":"thesis-tracker Skill","content":"---\nname: thesis-tracker\ndescription: \"AI Berkshire skill: 投资论文追踪：买入后的纪律系统. Source: skills/thesis-tracker.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/thesis-tracker.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 投资论文追踪：买入后的纪律系统\n\n对 $ARGUMENTS 执行投资论文追踪检查。\n\n**支持输入格式**：\n- `公司名` — 首次使用时建立投资论文，后续使用时追踪检查\n- `公司名 建立论文` — 强制重新建立投资论文\n- `公司名 季度检查` — 基于最新财报进行论文检查\n\n> \"买入只是开始。真正的工作是持有期间的持续跟踪。\" —— 李录\n>\n> \"当事实改变时，我就改变想法。你呢？\" —— 凯恩斯\n\n## 设计理念\n\n大多数投资者的流程是：研究 → 买入 → 祈祷。缺少买入后的系统化跟踪，导致：\n- 该卖的时候舍不得卖（\"再等等，会涨回来的\"）\n- 不该卖的时候恐慌卖出（\"跌了20%，是不是我错了\"）\n- 忘记了当初为什么买的（\"我买这个是因为什么来着？\"）\n\n巴菲特和李录的做法是：**买入前就写下卖出条件**。然后每个季度检查论文是否完整。\n\n## 执行流程\n\n### 第一步：判断操作模式\n\n检查是否已存在该公司的投资论文文件（`reports/{公司名}-thesis.md`）：\n- 如果不存在 → 进入**建立论文**模式\n- 如果存在 → 进入**追踪检查**模式\n- 如果找不到但用户表示已有 → 询问文件路径\n\n---\n\n## 模式A：建立投资论文\n\n### A0：数据收集\n\n使用 WebSearch 获取当前股价、估值指标（PE/PB/股息率）、最新财报核心数据，用于填写估值锚点。如果已有该公司的 `/investment-research` 或 `/investment-team` 报告，优先从中读取。\n\n使用 `tools/financial_rigor.py verify-valuation` 校验估值数据。\n\n### A1：核心论文（必须用200字以内写清楚）\n\n投资论文必须回答以下5个问题，每个问题一句话：\n\n```\n我以 ___元 买入 ___公司，因为：\n1. 这门生意的本质是___，我理解它的赚钱方式\n2. 它的护城河是___，而且在变宽/稳定\n3. 管理层___，值得信赖的原因是___\n4. 当前价格相当于内在价值的___折，安全边际来自___\n5. 即使我错了，下行风险可控，因为___\n```\n\n**如果5句话写不完整，这个论文本身就有问题——说明买入决策不够清晰。**\n\n### A2：核心假设清单\n\n把投资论文拆解成可验证的具体假设：\n\n| # | 核心假设 | 验证方式 | 验证频率 | 当前状态 |\n|---|---------|---------|---------|---------|\n| 1 | 例：收入增速维持15%+ | 季报收入增速 | 每季度 | 🟢 成立 |\n| 2 | 例：毛利率稳定在60%+ | 季报毛利率 | 每季度 | 🟢 成立 |\n| 3 | 例：管理层持续回购 | 回购公告/现金流表 | 每季度 | 🟢 成立 |\n| 4 | 例：竞争对手未取得突破 | 行业数据/竞对财报 | 每半年 | 🟢 成立 |\n| 5 | ... | ... | ... | ... |\n\n通常3-7个假设。太少说明思考不够深入，太多说明论文不够聚焦。\n\n### A3：红线清单（触发任何一条 = 必须重新评估）\n\n| # | 红线条件 | 严重程度 | 触发后动作 |\n|---|---------|---------|-----------|\n| 1 | 例：管理层诚信出问题（财务造假、关联交易） | 致命 | 立即清仓 |\n| 2 | 例：核心业务连续2季度收入下滑 | 严重 | 减仓50%，重新评估 |\n| 3 | 例：护城河被明确突破（竞对获得同等能力） | 严重 | 启动深度研究，考虑退出 |\n| 4 | 例：监管政策根本性改变商业模式 | 严重 | 重新评估内在价值 |\n| 5 | 例：管理层大规模减持（非计划性） | 警告 | 深入调查原因 |\n\n**段永平**：\"卖出只有三个理由：1.发现买错了；2.公司基本面变了；3.找到了更好的。\"\n\n### A4：估值锚点\n\n| 指标 | 买入时 | 乐观目标 | 中性目标 | 悲观情景 |\n|------|-------|---------|---------|---------|\n| 股价 | | | | |\n| PE | | | | |\n| 市值 | | | | |\n| 内在价值估算 | | | | |\n| 安全边际 | | | | |\n\n### A5：保存论文\n\n将投资论文写入 `reports/{公司名}-thesis.md`，包含：\n- 建立日期\n- 买入价格和仓位\n- 核心论文（5句话）\n- 核心假设清单\n- 红线清单\n- 估值锚点\n- 追踪记录表（初始为空）\n\n---\n\n## 模式B：追踪检查\n\n### B1：读取现有论文\n\n读取 `reports/{公司名}-thesis.md`，加载：\n- 核心论文\n- 核心假设清单\n- 红线清单\n- 上次检查记录\n\n### B2：收集最新数据\n\n使用 WebSearch 收集：\n1. 最新财报数据（如果有新的季报/年报）\n2. 近期重大事件（管理层变动、监管政策、竞争动态）\n3. 当前股价和估值指标\n4. 内部人交易记录（大股东增减持）\n\n### B3：逐条检查核心假设\n\n对每个核心假设，用最新数据验证：\n\n| # | 核心假设 | 上次状态 | 最新证据 | 当前状态 | 变化 |\n|---|---------|---------|---------|---------|------|\n| 1 | 收入增速15%+ | 🟢 成立 | Q4收入增速12% | 🟡 边际弱化 | ⚠️ |\n| 2 | 毛利率60%+ | 🟢 成立 | 毛利率61.2% | 🟢 成立 | — |\n| 3 | ... | ... | ... | ... | ... |\n\n状态定义：\n- 🟢 **成立** — 最新数据支持该假设\n- 🟡 **边际弱化** — 数据仍在可接受范围，但趋势不利\n- 🔴 **受损** — 数据明确不支持该假设\n- ⚫ **破裂** — 假设已被推翻\n\n### B4：红线检查\n\n逐条检查红线清单：\n\n| # | 红线条件 | 是否触发 | 证据 |\n|---|---------|:-------:|------|\n| 1 | 管理层诚信问题 | ❌ 未触发 | — |\n| 2 | 核心业务连续2季下滑 | ❌ 未触发 | — |\n\n**任何一条红线触发 → 在报告中用醒目标注，给出明确的行动建议。**\n\n### B5：估值更新\n\n| 指标 | 买入时 | 上次检查 | 当前 | 变化 |\n|------|-------|---------|------|------|\n| 股价 | | | | |\n| PE(TTM) | | | | |\n| 内在价值估算 | | | | |\n| 安全边际 | | | | |\n\n### B6：输出追踪报告\n\n#### 报告结构\n\n```\n一、论文健康度评分（满分10分）\n二、核心假设检查结果（表格）\n三、红线检查结果（表格）\n四、本期关键变化（不超过500字）\n五、估值更新\n六、结论与行动建议\n七、下次检查需关注的重点\n```\n\n#### 论文健康度评分标准\n\n| 评分 | 含义 | 建议动作 |\n|:----:|------|---------|\n**计算公式**：健康度 = 10 - (⚫破裂假设数×3) - (🔴受损假设数×2) - (🟡弱化假设数×1) - (红线触发数×5)，最低1分最高10分。\n\n| 评分 | 含义 | 建议动作 |\n|:----:|------|---------|\n| 9-10 | 所有假设成立，论文比买入时更强 | 考虑加仓 |\n| 7-8 | 核心假设成立，个别边际弱化 | 继续持有 |\n| 5-6 | 1-2个假设受损，但核心逻辑未变 | 持有但提高警惕 |\n| 3-4 | 多个假设受损，论文基础动摇 | 考虑减仓 |\n| 1-2 | 红线触发或核心假设破裂 | 强烈建议卖出 |\n\n#### 结论必须明确回答\n\n1. **论文还完整吗？** 完整 / 边际弱化 / 受损 / 破裂\n2. **该怎么做？** 加仓 / 持有 / 减仓 / 清仓\n3. **下次检查时间**：下一个季报发布后 / 某个特定事件后\n\n### B7：更新论文文件\n\n将本次检查记录追加到 `reports/{公司名}-thesis.md` 的追踪记录表中：\n\n| 检查日期 | 健康度 | 核心变化 | 动作建议 |\n|---------|:------:|---------|---------|\n| 2026-04-09 | 7/10 | 收入增速放缓至12%，但利润率改善 | 持有 |\n\n---\n\n## 关键原则\n\n- **买入前就写好卖出条件** — 冷静时做的决策比恐慌时做的好\n- **论文要具体到可验证** — \"公司很好\"不是论文，\"ROE>25%且趋势稳定\"才是\n- **红线一旦触发就行动** — 最怕的是\"再等等看\"，这是亏大钱的开始\n- **论文破裂 ≠ 股价下跌** — 股价跌30%不一定要卖，论文破裂才要卖\n- **诚实面对错误** — 论文建错了就承认，不要为了面子硬撑\n","category":"codex-skills","tokens":1300},{"name":"SKILL.md","path":"codex-skills/thesis-drift/SKILL.md","title":"thesis-drift Skill","content":"---\nname: thesis-drift\ndescription: \"AI Berkshire skill: 投资论文漂移检测：分清事实变化与措辞变化. Source: skills/thesis-drift.md.\"\n---\n\n## Codex adapter note\n\nThis skill is generated from `skills/thesis-drift.md` so Claude Code and Codex users share one canonical workflow.\n\n- Treat `$ARGUMENTS` as the user's request in the current Codex thread.\n- When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.\n- Use shared project tools from `tools/` in this repository. Prefer running commands from the repository root with paths like `python3 tools/financial_rigor.py ...`; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.\n- Before starting research, run the `date` command to confirm today's date; treat it as the baseline for \"latest\" data and state the data cutoff date in the report header. Never assume the current date from training data.\n- Preserve the research quality rules from `AGENTS.md`: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.\n\n# 投资论文漂移检测：分清事实变化与措辞变化\n\n对 $ARGUMENTS 执行投资论文漂移检测。\n\n**支持输入格式**：\n- `公司名 旧报告路径 新报告路径` — 指定两份研究报告或论文快照进行对比\n- `公司名 reports/{公司名}-thesis-旧日期.md reports/{公司名}-thesis-新日期.md` — 对比两份带日期的论文快照\n- `公司名` — 自动查找 `reports/{公司名}-thesis.md` 及同目录历史快照；如果没有基线则转入缺失基线处理\n\n> \"当事实改变时，我就改变想法。你呢？\" —— 凯恩斯\n>\n> \"股价波动不是论文漂移，事实变了才是。\" —— AI Berkshire\n\n## 设计理念\n\n长期持仓最难的不是每天读新闻，而是区分三件事：\n- **事实改变**：收入、利润率、竞争格局、管理层行为、资本配置发生可验证变化\n- **价格改变**：市场情绪或估值倍数变化，但生意本身未变\n- **措辞改变**：两份报告表达不同，但底层证据和判断没有变化\n\n投资论文漂移检测的目标是：**只在证据变化时承认论文变化**。不能因为报告换了写法就制造漂移，也不能因为股价涨跌就误判基本面。\n\n本 Skill 依赖 `/thesis-tracker` 输出的结构化维度：核心假设清单、红线清单、估值锚点、追踪记录表。没有这些结构时，先补齐基线，再做漂移检测。\n\n## 执行流程\n\n### 第一步：判断操作模式\n\n解析 `$ARGUMENTS`：\n- 如果提供两份报告路径 → 进入**指定报告对比**模式\n- 如果只提供公司名 → 查找 `reports/{公司名}-thesis.md` 及历史快照，进入**自动快照对比**模式\n- 如果只找到一份报告或没有历史基线 → 进入**缺失基线处理**模式\n- 如果两份报告不是同一家公司 → 停止并要求用户确认，不做跨公司漂移判断\n\n---\n\n## 模式A：指定报告对比\n\n### A1：读取并校验两份报告\n\n读取旧报告和新报告，提取：\n- 报告日期、公司名、股票代码\n- 核心论文（5句话）\n- 核心假设清单\n- 红线清单\n- 估值锚点\n- 追踪记录表\n- 管理层质量判断\n- 竞争护城河判断\n- 当前建议动作（买入 / 持有 / 观察 / 减仓 / 清仓）\n\n如果报告缺少关键结构，先标注\"结构缺失\"，但仍尽量从正文中抽取证据；抽取不到的维度标为\"无法判断\"，不能编造结论。\n\n### A2：证据归一化\n\n把两份报告中的事实证据整理成同一张表：\n\n| 维度 | 旧报告证据 | 新报告证据 | 数据来源 | 是否可验证 |\n|------|-----------|-----------|---------|-----------|\n| 估值锚点 | | | | |\n| 核心假设 | | | | |\n| 红线 | | | | |\n| 管理层质量 | | | | |\n| 竞争护城河 | | | | |\n\n**只比较证据，不比较文风。** 如果新旧报告只是同义改写、排序变化、语气变化，但事实数据和判断阈值没有变化，判定为 Unchanged。\n\n### A3：数值与估值校验\n\n所有数值变化必须使用 `tools/financial_rigor.py` 做精确计算，禁止 LLM 心算：\n\n```bash\npython3 tools/financial_rigor.py verify-valuation \\\n  --price {当前价格} \\\n  --eps {EPS} \\\n  --bvps {每股净资产} \\\n  --fcf-per-share {每股自由现金流}\n```\n\n如需计算市值、百分比变化、目标价差异或情景估值，使用：\n\n```bash\npython3 tools/financial_rigor.py verify-market-cap --price {价格} --shares {股本} --reported {报告市值} --currency {币种}\npython3 tools/financial_rigor.py cross-validate --field {字段} --values '{JSON}' --unit {单位}\npython3 tools/financial_rigor.py three-scenario --price {价格} --eps {EPS} --shares {股本亿} --growth {乐观} {中性} {悲观} --pe {乐观PE} {中性PE} {悲观PE}\npython3 tools/financial_rigor.py calc --expr '{精确算式}'\n```\n\n关键财务数据必须至少两处独立来源交叉验证。来源不足、口径不一致、无法复核的数字必须标注为\"低置信度 / 待核实\"。\n\n### A4：逐维度判定漂移\n\n固定使用以下维度，不要临时增减：\n\n| 维度 | 判定重点 | Improved | Unchanged | Weakened |\n|------|---------|----------|-----------|----------|\n| 估值锚点 | 内在价值、PE/PB/FCF Yield、安全边际、目标价区间 | 安全边际扩大或内在价值上修且经工具验算 | 估值区间和安全边际无实质变化 | 安全边际收窄、内在价值下修或估值假设失效 |\n| 核心假设清单 | 收入增速、利润率、现金流、用户/订单/产能等可验证假设 | 更多假设被新证据强化 | 假设状态与证据基本一致 | 假设边际弱化、受损或破裂 |\n| 红线清单 | 诚信、监管、业务衰退、竞争突破、管理层异常动作 | 原有红线风险解除或显著下降 | 未触发且风险水平不变 | 红线被触发或触发概率上升 |\n| 管理层质量 | 诚信、资本配置、回购分红、执行力、股东友好度 | 新行为提高信任度 | 行为延续旧判断 | 行为损害信任或资本配置变差 |\n| 竞争护城河 | 市占率、定价权、网络效应、成本优势、替代威胁 | 护城河变宽或竞争优势被验证 | 格局无实质变化 | 护城河被削弱或竞对突破 |\n\n每个维度只能给出三类结论：**Improved / Unchanged / Weakened**。\n\n### A5：证据驱动规则\n\n每个非 Unchanged 的结论必须引用导致变化的具体新证据：\n- 财报行项目：例如收入增速、毛利率、经营现金流、回购金额、净现金\n- 监管披露：例如 10-K/20-F、年报、中报、港交所公告、SEC filing\n- 新闻事件：例如管理层变动、监管处罚、重大客户流失、竞品突破\n- 价格与估值：必须说明这是\"估值变化\"还是\"基本面变化\"，不能混淆\n\n如果找不到能解释变化的证据，必须判定为 **Unchanged** 或 **无法判断**，不能用措辞差异推断漂移。\n\n### A6：输出漂移报告\n\n#### 报告结构\n\n```\n一、对比对象与时间跨度\n二、总体结论：论文是否漂移\n三、维度漂移表\n四、证据差异明细\n五、估值与数值验算\n六、建议动作迁移\n七、不确定项与需补充来源\n八、下次跟踪重点\n```\n\n#### 维度漂移表\n\n| 维度 | 旧判断 | 新判断 | 漂移方向 | 触发证据 | 置信度 |\n|------|-------|-------|:--------:|---------|:------:|\n| 估值锚点 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 核心假设清单 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 红线清单 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 管理层质量 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n| 竞争护城河 | | | Improved / Unchanged / Weakened | | 高/中/低 |\n\n**Unchanged 行的触发证据写 `—`，不要为了填表编造证据。**\n\n#### 总体结论必须回答\n\n1. **论文是否漂移？** 未漂移 / 正向漂移 / 负向漂移 / 证据不足无法判断\n2. **漂移来自哪里？** 估值 / 基本面 / 管理层 / 竞争格局 / 红线事件\n3. **是事实变化还是价格变化？** 明确拆开说明\n4. **建议动作如何迁移？** 例如：Watch → Buy、Buy → Hold、Hold → Reduce、Reduce → Exit\n5. **下一步需要什么证据？** 下一份财报 / 监管披露 / 管理层说明 / 竞对数据\n\n---\n\n## 模式B：自动快照对比\n\n### B1：查找快照\n\n在 `reports/` 中查找：\n- `reports/{公司名}-thesis.md`\n- `reports/{公司名}-thesis-*.md`\n- `reports/{公司名}/` 目录下包含 `thesis`、`论文`、`追踪` 的报告\n\n选择时间最早且结构完整的文件作为旧报告，时间最新的文件作为新报告。若用户指定日期，以用户指定为准。\n\n### B2：防止错误配对\n\n对比前必须确认：\n- 公司名或股票代码一致\n- 报告日期不同\n- 两份报告都包含可抽取的论文结构或研究结论\n\n如果无法确认同一公司，停止并要求用户提供明确路径。\n\n### B3：执行模式A\n\n找到两份有效快照后，按模式A完整执行。\n\n---\n\n## 模式C：缺失基线处理\n\n如果只找到一份报告或没有找到旧快照：\n\n1. 明确说明：**缺少可比较的历史基线，不能执行漂移检测**\n2. 不要根据记忆或市场印象补造旧论文\n3. 引导用户先使用 `/thesis-tracker {公司名} 建立论文` 建立结构化基线\n4. 如果当前报告已足够完整，可建议将它保存为 `reports/{公司名}-thesis.md` 作为未来漂移检测基线\n\n输出格式：\n\n```\n无法执行论文漂移检测：缺少历史基线。\n\n已找到：\n- 当前报告：{路径 / 未找到}\n- 历史基线：未找到\n\n建议：\n1. 先运行 /thesis-tracker {公司名} 建立论文\n2. 下次有新财报或重大事件后，再运行 /thesis-drift {公司名} 旧报告 新报告\n```\n\n---\n\n## 关键原则\n\n- **证据优先于措辞** — 同义改写不是漂移，只有事实证据变化才是漂移\n- **基本面优先于股价** — 股价涨跌只影响估值锚点，不自动改变生意质量\n- **数值必须验算** — 所有百分比、估值倍数、目标价差异必须用 `tools/financial_rigor.py`\n- **不确定就标注不确定** — 来源缺失、口径不一致、无法复核时，不要硬判\n- **红线单独处理** — 红线触发优先级高于估值便宜，不能被低 PE 掩盖\n- **输出必须可复盘** — 每个 Improved / Weakened 结论都要能追溯到具体证据\n","category":"codex-skills","tokens":1500},{"name":"earnings-team.md","path":"skills/earnings-team.md","title":"earnings-team.md","content":"# 财报精读团队：四大师并行解读 + 公众号发布\n\n对 $ARGUMENTS 进行团队化财报精读分析。四位大师并行解读财报，编辑润色成文，读者评审把关质量，最终产出可直接发布的公众号文章。\n\n**支持输入格式**：`公司名 季度`，例如：`腾讯 2025Q4`、`PDD 2025年报`、`美团 最新`\n\n## 设计理念\n\n一份好的财报分析要解决两个问题：\n1. **自己能看懂未来**——需要四个不同视角的深度研究\n2. **读者能看懂价值**——需要编辑润色和读者视角的质量把关\n\n本 Skill 的流程分三阶段：\n- **阶段一·研究**：四大师并行精读财报（段永平看生意本质、巴菲特审财务质量、芒格读竞争变化、李录猎风险信号）\n- **阶段二·合成**：Team Lead 综合四个视角，产出研究报告初稿\n- **阶段三·发布**：编辑 Agent 改写为公众号文章 + 读者评审 Agent 提出修改意见 → Team Lead 定稿\n\n---\n\n## 阶段一：四大师并行研究\n\n### 第一步：获取一手资料\n\n使用 Agent 工具启动后台 Agent **并行**获取以下原始材料：\n\n| 资料类型 | 获取来源 | 优先级 |\n|---------|---------|--------|\n| 财报原文 | 公司IR页面、SEC EDGAR（美股）、港交所披露易（港股）、巨潮资讯网（A股） | 最高 |\n| 业绩电话会纪要 | Seeking Alpha、公司IR页面、雪球 | 最高 |\n| 管理层致股东信 | 年报中提取 | 高（仅年报时） |\n| 上一期财报/电话会 | 同上 | 高（用于承诺追踪） |\n\n**资料可得性评级**：\n\n| 等级 | 特征 | 影响 |\n|------|------|------|\n| A级 | 获取到完整原文 | 正常执行全部步骤 |\n| B级 | 仅获取到部分原文或第三方汇总 | 标注\"非原始来源\"，降低附注分析权重 |\n| C级 | 仅有新闻报道和数据网站摘要 | 聚焦核心数据变化，跳过附注挖掘，标注\"一手资料不足\" |\n\n将资料可得性评级告知每个 Agent，影响其分析深度。\n\n### 第二步：向用户展示团队框架\n\n| 阶段 | 角色 | 大师/定位 | 核心任务 |\n|------|------|----------|---------|\n| 研究 | **Team Lead**（你自己） | 总协调 | 统筹、合成、定稿 |\n| 研究 | 生意本质解读者 | 段永平 | 这门生意变好了还是变差了？ |\n| 研究 | 财务质量审计师 | 巴菲特 | 赚的是真钱还是假钱？ |\n| 研究 | 竞争变化解读者 | 芒格 | 竞争格局在怎么变？ |\n| 研究 | 风险信号猎手 | 李录 | 管理层在隐瞒什么？ |\n| 发布 | 编辑 | 公众号写作 | 把研究报告改写成好文章 |\n| 发布 | 读者评审 | 普通投资者 | 读者能看懂吗？有收获吗？ |\n\n### 第三步：启动4个并行研究Agent\n\n使用 Agent 工具在**同一条消息**中启动4个后台 Agent。\n\n---\n\n#### Agent 1：生意本质解读（段永平视角）\n\n**核心问题：这份财报反映的生意本质，变好了还是变差了？**\n\n> 段永平：\"投资就是买一门生意。看财报不是看数字，是看这门生意有没有变。\"\n\n分析内容：\n\n1. **收入结构拆解与解读**\n   - 分业务/分地区收入，哪些在加速、哪些在减速\n   - 不只是列数字——每个业务板块反映了什么商业逻辑\n   - 收入增长来自\"量\"还是\"价\"？哪种更健康？\n\n2. **用户/客户价值变化**\n   - DAU/MAU/付费用户等运营指标变化\n   - 用户时长、ARPU、留存率等质量指标\n   - 平台/产品对用户的价值在增强还是减弱？\n\n3. **护城河检测**\n   - 毛利率变化反映定价权是否稳固\n   - 市场份额变化反映竞争壁垒是否有效\n   - 客户转换成本/网络效应有没有被削弱的信号\n\n4. **\"好生意\"标准评估**\n   - 段永平三条件：差异化、定价权、可持续竞争优势——本期变化\n   - 生意在变\"重\"还是变\"轻\"？\n   - 如果明天公司关门，用户会不会非常痛苦？因为这份财报变了吗？\n\n5. **管理层产品直觉**\n   - 管理层讨论产品/用户时，用的是具体语言还是官僚语言\n   - 是否有令人印象深刻的产品洞察或令人担忧的脱节信号\n\n**输出要求**：每个子项标注 🟢改善 / 🟡持平 / 🔴恶化，给出段永平式总结点评。\n\n---\n\n#### Agent 2：财务质量审计（巴菲特视角）\n\n**核心问题：这家公司赚的是真钱还是假钱？安全边际变了吗？**\n\n> 巴菲特：\"我看每一份财报，第一件事就是翻到现金流量表。\"\n\n分析内容：\n\n1. **核心财务数据提取与验证**\n   - 收入、毛利、经营利润、净利润——GAAP和Non-GAAP都要\n   - GAAP vs Non-GAAP差异：差了多少、差在哪里、差距扩大还是缩小\n   - 关键数据至少两个来源交叉验证\n\n   ```bash\n   python3 tools/financial_rigor.py cross-validate \\\n     --metric \"revenue\" --values {值1} {值2} --sources \"来源1\" \"来源2\"\n   ```\n\n2. **现金流分析（最重要）**\n   - 经营现金流 vs 净利润比率（>100%佳，<80%警惕）\n   - 自由现金流 = 经营现金流 - 资本开支\n   - 资本开支构成：维护性 vs 扩张性\n   - 回购和分红金额\n\n3. **利润质量检验**\n   - 应收账款增速 vs 收入增速\n   - 存货增速 vs 收入增速\n   - 经营现金流与净利润差距趋势\n   - 资本化支出是否突然增加\n   - 非经常性收益占比\n\n4. **资产负债表健康度**\n   - 净现金/净负债变化\n   - 应收账款/存货周转天数变化\n   - 商誉及无形资产减值风险\n\n5. **估值与安全边际更新**\n\n   ```bash\n   python3 tools/financial_rigor.py verify-market-cap \\\n     --price {价格} --shares {股本} --reported {报告市值} --currency {币种}\n   python3 tools/financial_rigor.py verify-valuation \\\n     --price {价格} --eps {EPS} --bvps {每股净资产}\n   python3 tools/financial_rigor.py three-scenario \\\n     --price {价格} --eps {EPS} --shares {股本亿} \\\n     --growth {乐观} {中性} {悲观} --pe {乐观PE} {中性PE} {悲观PE}\n   ```\n\n**输出要求**：所有计算附工具输出记录，利润质量信号灯 🟢/🟡/🔴，巴菲特式总结点评。\n\n---\n\n#### Agent 3：竞争格局解读（芒格视角）\n\n**核心问题：这份财报揭示了竞争格局的什么变化？**\n\n> 芒格：\"我想知道我会死在哪里，这样我就不去那儿了。\"\n\n分析内容：\n\n1. **从财报数据推断竞争变化**\n   - 收入增速 vs 行业增速——跑赢还是跑输？\n   - 毛利率变化反映竞争加剧/缓和\n   - 营销费用率变化——需要花更多钱获客吗？\n   - 研发投入——主动投入还是被迫跟进？\n\n2. **同期竞争对手对比**\n   - 主要竞争对手同期关键指标对比（如已发布）\n   - 增速、利润率、投入力度对比\n   - 谁在赢？谁在输？\n\n3. **管理层对竞争的讨论**\n   - 电话会上如何描述竞争环境\n   - 是否点名竞争对手？语气自信还是焦虑？\n   - 有没有新的竞争威胁？\n\n4. **行业趋势信号**\n   - 技术变革（AI/新平台等）的影响\n   - 监管变化对竞争格局的影响\n   - 消费/需求端趋势\n\n5. **芒格式逆向思考**\n   - 什么会杀死这家公司？本期财报有没有指向这些威胁的信号？\n   - 5年后回看，这份财报会是\"转折点\"吗？\n\n**输出要求**：竞争格局判断（加强/持平/恶化），竞争对手对比表，芒格式逆向点评。\n\n---\n\n#### Agent 4：风险信号猎手（李录视角）\n\n**核心问题：管理层在这份财报里隐瞒了什么？哪些信号在闪烁？**\n\n> 李录：\"投资最重要的是避免永久性资本损失。\"\n\n分析内容：\n\n1. **管理层语气分析**\n   - 逐段阅读管理层讨论和电话会发言，标注信号：\n   - 🟢坦诚信号（主动承认问题）/ 🟢清晰信号（有量化目标）\n   - 🔴模糊信号（空话）/ 🔴转移信号（答非所问）/ 🔴归因外部化\n\n2. **承诺追踪**\n   - 上一期管理层具体承诺 vs 本期实际兑现，逐条对比\n   - 段永平：\"看管理层靠不靠谱，就看以前说的话做到了没有。\"\n\n3. **附注与隐藏信息**\n   - 关联交易、股权激励稀释、或有负债\n   - 会计政策变更、分部利润率差异\n   - 客户/供应商集中度变化\n\n4. **电话会Q&A精选**\n   - 最尖锐的3-5个分析师问题及管理层回答质量评分\n\n5. **永久性资本损失风险**\n   - 是否出现可能导致永久性损失的信号\n   - 监管/合规/诉讼风险新进展\n   - 管理层是否做出了不可逆的错误决策\n\n**输出要求**：管理层可信度评分★1-5，承诺兑现率，风险信号清单，李录式总结点评。\n\n---\n\n### 第四步：跟踪进度\n\n向用户实时展示：\n\n```\n📊 {公司名} {期间} 财报精读进度\n━━━━━━━━━━━━━━━━━━━━━━━\n阶段一·研究\n  ☐ 段永平·生意本质    ⏳ 分析中...\n  ☐ 巴菲特·财务质量    ⏳ 分析中...\n  ☐ 芒格·竞争格局      ⏳ 分析中...\n  ☐ 李录·风险信号      ⏳ 分析中...\n阶段二·合成            ⏸ 等待中\n阶段三·发布            ⏸ 等待中\n```\n\n每收到一份报告，更新进度并展示核心发现（3-5条）。\n\n---\n\n## 阶段二：Team Lead 合成研究报告\n\n全部4份研究报告到齐后，Team Lead 综合产出研究报告初稿。\n\n**合成要点**——不是拼报告，是找交叉和矛盾：\n\n1. **四个视角的共识点**：四位大师都同意的结论，可信度最高\n2. **四个视角的矛盾点**：比如段永平说生意变好了，但芒格说竞争在恶化——这种矛盾才是最有价值的分析\n3. **被忽略的角落**：四个人都没重点提的东西，是否恰恰是最重要的？\n\n#### 研究报告结构\n\n```markdown\n# {公司名} {期间} 财报精读报告\n**四大师并行解读 | {日期}**\n\n## 一、一句话结论\n> 50-100字：超/符/低预期，核心变化，对投资论文的影响。\n\n## 二、本期最重要的3个变化\n聚焦真正重要的变化，不罗列数据，每个变化100字以内。\n\n## 三、四大师评分表\n| 视角 | 大师 | 核心问题 | 结论 | 评分 | vs上期 |\n|------|------|---------|------|------|--------|\n\n## 四、核心数据速览\n关键财务和运营指标表格（本期 vs 上期 vs 同比）\n\n## 五、各视角深度分析\n每个视角3-5条最重要发现\n\n## 六、管理层语气与承诺追踪\n承诺兑现表 + 语气变化分析\n\n## 七、四大师会怎么做？\n| 大师 | 如果持有 | 如果没持有 | 理由 |\n\n## 八、结论\n1. 超/符/低预期？\n2. 投资论文影响：强化/无影响/削弱/破裂\n3. 下一个催化剂\n4. 操作建议\n```\n\n---\n\n## 阶段三：编辑润色 + 读者评审\n\n研究报告完成后，**并行**启动两个 Agent：\n\n### Agent 5：编辑（公众号文章改写）\n\n**定位**：把硬核研究报告改写成公众号读者爱看、能看懂的文章。\n\n**核心原则**：\n- 保留所有关键数据和结论，不降低专业深度\n- 改善表达方式，让非专业投资者也能跟上逻辑\n- 不是\"科普化\"，是\"让专业内容读起来不累\"\n\n**具体任务**：\n\n1. **标题与开头**\n   - 标题要有信息量且吸引点击，但不做标题党\n   - 好标题示例：\"快手花260亿赌AI，赌赢了吗？\"\n   - 坏标题示例：\"震惊！快手财报暴雷！\"\n   - 开头100字内讲清楚：这份财报最重要的结论是什么、为什么读者应该关心\n\n2. **结构优化**\n   - 研究报告是给自己看的，公众号文章是给别人看的——调整逻辑顺序\n   - 把\"最重要的3个变化\"放在最前面（倒金字塔结构）\n   - 表格保留但精简，大段分析改为要点式\n   - 每500字左右插入一个\"阶段性小结\"，帮读者消化\n\n3. **表达润色**\n   - 把生硬的财务术语用类比/场景解释：\"经营现金流比净利润低30%\"→\"赚了100块但口袋里只摸到70块\"\n   - 四大师的点评语录是文章的灵魂——确保每条都读起来犀利、有记忆点\n   - 段落不超过4行，句子不超过30字\n   - 适度使用对比和反差制造阅读节奏\n\n4. **读者价值检测**\n   - 每个章节自问：读者读完这段，能做什么决策？如果答案是\"什么都做不了\"，要么改写要么删除\n   - 文章末尾需要有明确的\"所以呢？\"——对持有者、观望者分别给出操作指引\n\n5. **格式适配**\n   - 微信公众号排版友好：短段落、小标题清晰、表格简洁\n   - 加入适当的分隔线和引用格式\n   - 文章长度控制在1000-3000字（太长读者会跳出）\n\n**输出**：改写后的完整公众号文章。\n\n---\n\n### Agent 6：读者评审（普通投资者视角）\n\n**定位**：以一个\"关注价值投资、有基础财务知识、持有/关注该公司\"的普通投资者身份审读文章。\n\n**评审维度**：\n\n1. **可读性（权重30%）**\n   - 读完全文需要几分钟？是否有想跳过的段落？\n   - 哪些地方看不懂或需要反复读？\n   - 节奏感如何？有没有\"读累了\"的感觉？\n\n2. **信息价值（权重30%）**\n   - 读完后，我对这家公司的理解是否加深了？\n   - 有没有\"哦原来是这样\"的瞬间？\n   - 和我在其他地方看到的分析相比，这篇有什么独到之处？\n   - 哪些信息是多余的、删掉也不影响理解？\n\n3. **可信度（权重20%）**\n   - 数据是否有来源？关键判断是否有依据？\n   - 是否呈现了正反两面？还是只在唱多/唱空？\n   - 有没有\"这也太自信了\"的判断让人不舒服？\n   - 四大师的引用是否恰当、有力？\n\n4. **行动指导性（权重20%）**\n   - 读完后我知道该怎么做吗？\n   - 对\"持有者\"和\"观望者\"的建议是否足够具体？\n   - 下一步该关注什么？（催化剂、时间节点）\n\n**输出格式**：\n\n```markdown\n## 读者评审报告\n\n### 总体评分：X/10\n\n### 优点（2-3条）\n读者视角下文章做得好的地方\n\n### 必须修改（硬伤）\n- 问题1：具体描述 → 建议修改方式\n- 问题2：...\n\n### 建议优化（锦上添花）\n- 建议1：...\n- 建议2：...\n\n### 读者最想知道但文章没回答的问题\n- 问题1\n- 问题2\n\n### 一句话总评\n```\n\n---\n\n### Team Lead 定稿\n\n收到编辑改写稿和读者评审报告后：\n\n1. **处理读者评审的\"必须修改\"项**——逐条修改\n2. **选择性采纳\"建议优化\"项**——判断是否值得\n3. **补充\"读者想知道但没回答的问题\"**——如果有数据支撑就加上\n4. **最终通读**——确保修改后全文连贯、逻辑自洽\n\n---\n\n## 输出文件\n\n```\nreports/{公司名}/\n├── {公司名}-earnings-{期间}.md           ← 最终公众号文章（定稿）\n├── {公司名}-earnings-{期间}-研究底稿.md   ← 四大师合成研究报告（自用）\n├── {公司名}-earnings-{期间}-段永平.md     ← 生意本质解读\n├── {公司名}-earnings-{期间}-巴菲特.md     ← 财务质量审计\n├── {公司名}-earnings-{期间}-芒格.md       ← 竞争格局解读\n├── {公司名}-earnings-{期间}-李录.md       ← 风险信号分析\n└── {公司名}-earnings-{期间}-读者评审.md   ← 读者评审报告\n```\n\n## 数据抽检（准出流程）\n\n对最终文章执行抽检：\n\n```bash\npython3 tools/report_audit.py extract \\\n  --report reports/{公司名}/{公司名}-earnings-{期间}.md\n\npython3 tools/report_audit.py verdict \\\n  --results '<填好的JSON>' \\\n  --report {报告文件名}\n```\n\n**【准出】** 全部通过 → 可发布；**【打回】** 有不通过 → 修正后重审。\n\n## 与现有 Skill 的关系\n\n| Skill | 定位 | 何时用 |\n|-------|------|--------|\n| `/earnings-review` | 单Agent财报精读 | 快速过一遍，只需一个视角 |\n| **`/earnings-team`（本Skill）** | **六Agent团队精读 + 公众号发布** | **重要公司的关键财报，需要深度+发布** |\n| `/investment-team` | 四Agent全面公司研究 | 首次研究一家公司 |\n\n## 关键原则\n\n- **读原文，不读摘要**：尽一切可能获取一手资料\n- **四个视角不是四个部门**：必须相互印证和挑战，不是各说各话\n- **Team Lead 的价值在于综合判断**：找交集和矛盾点，不是拼报告\n- **结论要明确**：不允许\"总体来看基本符合预期但也有一些值得关注的点\"\n- **反面检验贯穿全程**：每个积极发现都附带反面论据\n- **编辑不是降低专业度**：是让专业内容更易读，不是变成科普\n- **读者评审不是走过场**：真的站在读者角度挑毛病\n- **数据准确性**：关键数据交叉验证，使用 financial_rigor.py 工具验算\n","category":"skills","tokens":1991}]}