Agent Skillsxbtlin/ai-berkshire › thesis-drift

thesis-drift

GitHub

执行投资论文漂移检测,区分事实、价格与措辞变化。支持指定报告或自动快照对比,校验核心假设、红线及估值锚点。通过精确计算验证数据,确保仅在证据实质改变时判定论文漂移,避免误判。

codex-skills/thesis-drift/SKILL.md xbtlin/ai-berkshire

Trigger Scenarios

用户要求对比两份投资研究报告的异同 用户询问某公司投资论点是否发生实质性变化 用户需要检查持仓逻辑是否因基本面改变而失效

Install

npx skills add xbtlin/ai-berkshire --skill thesis-drift -g -y
More Options

Non-standard path

npx skills add https://github.com/xbtlin/ai-berkshire/tree/main/codex-skills/thesis-drift -g -y

Use without installing

npx skills use xbtlin/ai-berkshire@thesis-drift

指定 Agent (Claude Code)

npx skills add xbtlin/ai-berkshire --skill thesis-drift -a claude-code -g -y

安装 repo 全部 skill

npx skills add xbtlin/ai-berkshire --all -g -y

预览 repo 内 skill

npx skills add xbtlin/ai-berkshire --list

SKILL.md

Frontmatter
{
    "name": "thesis-drift",
    "description": "AI Berkshire skill: 投资论文漂移检测:分清事实变化与措辞变化. Source: skills\/thesis-drift.md."
}

Codex adapter note

This skill is generated from skills/thesis-drift.md so Claude Code and Codex users share one canonical workflow.

  • Treat $ARGUMENTS as the user's request in the current Codex thread.
  • 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.
  • 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.
  • 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.
  • 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.

投资论文漂移检测:分清事实变化与措辞变化

对 $ARGUMENTS 执行投资论文漂移检测。

支持输入格式

  • 公司名 旧报告路径 新报告路径 — 指定两份研究报告或论文快照进行对比
  • 公司名 reports/{公司名}-thesis-旧日期.md reports/{公司名}-thesis-新日期.md — 对比两份带日期的论文快照
  • 公司名 — 自动查找 reports/{公司名}-thesis.md 及同目录历史快照;如果没有基线则转入缺失基线处理

"当事实改变时,我就改变想法。你呢?" —— 凯恩斯

"股价波动不是论文漂移,事实变了才是。" —— AI Berkshire

设计理念

长期持仓最难的不是每天读新闻,而是区分三件事:

  • 事实改变:收入、利润率、竞争格局、管理层行为、资本配置发生可验证变化
  • 价格改变:市场情绪或估值倍数变化,但生意本身未变
  • 措辞改变:两份报告表达不同,但底层证据和判断没有变化

投资论文漂移检测的目标是:只在证据变化时承认论文变化。不能因为报告换了写法就制造漂移,也不能因为股价涨跌就误判基本面。

本 Skill 依赖 /thesis-tracker 输出的结构化维度:核心假设清单、红线清单、估值锚点、追踪记录表。没有这些结构时,先补齐基线,再做漂移检测。

执行流程

第一步:判断操作模式

解析 $ARGUMENTS

  • 如果提供两份报告路径 → 进入指定报告对比模式
  • 如果只提供公司名 → 查找 reports/{公司名}-thesis.md 及历史快照,进入自动快照对比模式
  • 如果只找到一份报告或没有历史基线 → 进入缺失基线处理模式
  • 如果两份报告不是同一家公司 → 停止并要求用户确认,不做跨公司漂移判断

模式A:指定报告对比

A1:读取并校验两份报告

读取旧报告和新报告,提取:

  • 报告日期、公司名、股票代码
  • 核心论文(5句话)
  • 核心假设清单
  • 红线清单
  • 估值锚点
  • 追踪记录表
  • 管理层质量判断
  • 竞争护城河判断
  • 当前建议动作(买入 / 持有 / 观察 / 减仓 / 清仓)

如果报告缺少关键结构,先标注"结构缺失",但仍尽量从正文中抽取证据;抽取不到的维度标为"无法判断",不能编造结论。

A2:证据归一化

把两份报告中的事实证据整理成同一张表:

维度 旧报告证据 新报告证据 数据来源 是否可验证
估值锚点
核心假设
红线
管理层质量
竞争护城河

只比较证据,不比较文风。 如果新旧报告只是同义改写、排序变化、语气变化,但事实数据和判断阈值没有变化,判定为 Unchanged。

A3:数值与估值校验

所有数值变化必须使用 tools/financial_rigor.py 做精确计算,禁止 LLM 心算:

python3 tools/financial_rigor.py verify-valuation \
  --price {当前价格} \
  --eps {EPS} \
  --bvps {每股净资产} \
  --fcf-per-share {每股自由现金流}

如需计算市值、百分比变化、目标价差异或情景估值,使用:

python3 tools/financial_rigor.py verify-market-cap --price {价格} --shares {股本} --reported {报告市值} --currency {币种}
python3 tools/financial_rigor.py cross-validate --field {字段} --values '{JSON}' --unit {单位}
python3 tools/financial_rigor.py three-scenario --price {价格} --eps {EPS} --shares {股本亿} --growth {乐观} {中性} {悲观} --pe {乐观PE} {中性PE} {悲观PE}
python3 tools/financial_rigor.py calc --expr '{精确算式}'

关键财务数据必须至少两处独立来源交叉验证。来源不足、口径不一致、无法复核的数字必须标注为"低置信度 / 待核实"。

A4:逐维度判定漂移

固定使用以下维度,不要临时增减:

维度 判定重点 Improved Unchanged Weakened
估值锚点 内在价值、PE/PB/FCF Yield、安全边际、目标价区间 安全边际扩大或内在价值上修且经工具验算 估值区间和安全边际无实质变化 安全边际收窄、内在价值下修或估值假设失效
核心假设清单 收入增速、利润率、现金流、用户/订单/产能等可验证假设 更多假设被新证据强化 假设状态与证据基本一致 假设边际弱化、受损或破裂
红线清单 诚信、监管、业务衰退、竞争突破、管理层异常动作 原有红线风险解除或显著下降 未触发且风险水平不变 红线被触发或触发概率上升
管理层质量 诚信、资本配置、回购分红、执行力、股东友好度 新行为提高信任度 行为延续旧判断 行为损害信任或资本配置变差
竞争护城河 市占率、定价权、网络效应、成本优势、替代威胁 护城河变宽或竞争优势被验证 格局无实质变化 护城河被削弱或竞对突破

每个维度只能给出三类结论:Improved / Unchanged / Weakened

A5:证据驱动规则

每个非 Unchanged 的结论必须引用导致变化的具体新证据:

  • 财报行项目:例如收入增速、毛利率、经营现金流、回购金额、净现金
  • 监管披露:例如 10-K/20-F、年报、中报、港交所公告、SEC filing
  • 新闻事件:例如管理层变动、监管处罚、重大客户流失、竞品突破
  • 价格与估值:必须说明这是"估值变化"还是"基本面变化",不能混淆

如果找不到能解释变化的证据,必须判定为 Unchanged无法判断,不能用措辞差异推断漂移。

A6:输出漂移报告

报告结构

一、对比对象与时间跨度
二、总体结论:论文是否漂移
三、维度漂移表
四、证据差异明细
五、估值与数值验算
六、建议动作迁移
七、不确定项与需补充来源
八、下次跟踪重点

维度漂移表

维度 旧判断 新判断 漂移方向 触发证据 置信度
估值锚点 Improved / Unchanged / Weakened 高/中/低
核心假设清单 Improved / Unchanged / Weakened 高/中/低
红线清单 Improved / Unchanged / Weakened 高/中/低
管理层质量 Improved / Unchanged / Weakened 高/中/低
竞争护城河 Improved / Unchanged / Weakened 高/中/低

Unchanged 行的触发证据写 ,不要为了填表编造证据。

总体结论必须回答

  1. 论文是否漂移? 未漂移 / 正向漂移 / 负向漂移 / 证据不足无法判断
  2. 漂移来自哪里? 估值 / 基本面 / 管理层 / 竞争格局 / 红线事件
  3. 是事实变化还是价格变化? 明确拆开说明
  4. 建议动作如何迁移? 例如:Watch → Buy、Buy → Hold、Hold → Reduce、Reduce → Exit
  5. 下一步需要什么证据? 下一份财报 / 监管披露 / 管理层说明 / 竞对数据

模式B:自动快照对比

B1:查找快照

reports/ 中查找:

  • reports/{公司名}-thesis.md
  • reports/{公司名}-thesis-*.md
  • reports/{公司名}/ 目录下包含 thesis论文追踪 的报告

选择时间最早且结构完整的文件作为旧报告,时间最新的文件作为新报告。若用户指定日期,以用户指定为准。

B2:防止错误配对

对比前必须确认:

  • 公司名或股票代码一致
  • 报告日期不同
  • 两份报告都包含可抽取的论文结构或研究结论

如果无法确认同一公司,停止并要求用户提供明确路径。

B3:执行模式A

找到两份有效快照后,按模式A完整执行。


模式C:缺失基线处理

如果只找到一份报告或没有找到旧快照:

  1. 明确说明:缺少可比较的历史基线,不能执行漂移检测
  2. 不要根据记忆或市场印象补造旧论文
  3. 引导用户先使用 /thesis-tracker {公司名} 建立论文 建立结构化基线
  4. 如果当前报告已足够完整,可建议将它保存为 reports/{公司名}-thesis.md 作为未来漂移检测基线

输出格式:

无法执行论文漂移检测:缺少历史基线。

已找到:
- 当前报告:{路径 / 未找到}
- 历史基线:未找到

建议:
1. 先运行 /thesis-tracker {公司名} 建立论文
2. 下次有新财报或重大事件后,再运行 /thesis-drift {公司名} 旧报告 新报告

关键原则

  • 证据优先于措辞 — 同义改写不是漂移,只有事实证据变化才是漂移
  • 基本面优先于股价 — 股价涨跌只影响估值锚点,不自动改变生意质量
  • 数值必须验算 — 所有百分比、估值倍数、目标价差异必须用 tools/financial_rigor.py
  • 不确定就标注不确定 — 来源缺失、口径不一致、无法复核时,不要硬判
  • 红线单独处理 — 红线触发优先级高于估值便宜,不能被低 PE 掩盖
  • 输出必须可复盘 — 每个 Improved / Weakened 结论都要能追溯到具体证据

Version History

  • 736f163 Current 2026-07-05 09:26

Same Skill Collection

codex-skills/bottleneck-hunter/SKILL.md
codex-skills/deep-company-series/SKILL.md
codex-skills/dyp-ask/SKILL.md
codex-skills/earnings-review/SKILL.md
codex-skills/earnings-team/SKILL.md
codex-skills/financial-data/SKILL.md
codex-skills/industry-funnel/SKILL.md
codex-skills/industry-research/SKILL.md
codex-skills/investment-checklist/SKILL.md
codex-skills/investment-memo-craft/SKILL.md
codex-skills/investment-research/SKILL.md
codex-skills/investment-team/SKILL.md
codex-skills/management-deep-dive/SKILL.md
codex-skills/news-pulse/SKILL.md
codex-skills/portfolio-review/SKILL.md
codex-skills/private-company-research/SKILL.md
codex-skills/quality-screen/SKILL.md
codex-skills/thesis-tracker/SKILL.md
codex-skills/wechat-article/SKILL.md

Metadata

Files
0
Version
736f163
Hash
28363374
Indexed
2026-07-05 09:26

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-08 18:34
浙ICP备14020137号-1 $Carte des visiteurs$