thesis-drift について
thesis-drift は、同一企業の新旧レポートや投資仮説のスナップショットを比較し、検証可能な証拠によって投資判断が変化したかを調べるスキルです。ファンダメンタルズの変化を株価や表現の変化と区別し、数値検証を求めます。
主な機能
- 01指定レポートの比較または過去版の検索
- 02仮説・レッドライン・評価基準の抽出
- 03固定した観点で変化を判定
- 04判断変更に具体的な証拠を要求
- 05ツールで数値と評価を検証
活用シーン
- 01新たな企業調査後に投資仮説を再評価
- 02株価変動と事業実態の変化を切り分け
- 03経営陣や競争優位の重大な変化を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ xbtlin/ ai-berkshire --skill thesis-driftインストール後、Claude Code で/thesis-driftを入力して読み込まれたか確認します。
詳細
Codex adapter note
このスキルはskills/thesis-drift.mdから生成されており、Claude CodeとCodexのユーザーが同じ標準ワークフローを共有します。
$ARGUMENTSは、現在のCodexスレッドにおけるユーザーのリクエストとして扱います。- ソースにTask、Agent、WebSearch、Bash、Read、WriteなどClaude専用の機能が記載されている場合は、このセッションで利用できる最も近いCodexの機能を使用します。利用可能であればサブエージェントを使い、必要に応じてウェブ検索を行い、ローカルツールにはシェルコマンドを使い、ワークスペース内のファイルは通常の編集方法で編集します。
- このリポジトリ内の
tools/にある共通のプロジェクトツールを使用します。リポジトリのルートからpython3 tools/financial_rigor.py ...のようなパスでコマンドを実行してください。現在のスレッドがリポジトリの外から始まった場合は、固定されたホームディレクトリのパスを想定せず、まず実際のチェックアウト先を特定してください。 - 調査を始める前に
dateコマンドを実行して今日の日付を確認し、「最新」データの基準日として扱い、レポートのヘッダーにデータのカットオフ日を明記します。学習データから現在の日付を推測してはいけません。 AGENTS.mdにある調査品質のルールを守ります。財務データを照合し、評価や計算には正確な計算ツールを使い、不確実性や情報源の不足を明確に示してください。
投資論文のドリフト検出:事実の変化と表現の変化を見分ける
$ARGUMENTSに対して投資論文のドリフト検出を実行します。
対応する入力形式:
会社名 旧レポートのパス 新レポートのパス— 2つの調査レポートまたは投資論文のスナップショットを指定して比較会社名 reports/{会社名}-thesis-旧日付.md reports/{会社名}-thesis-新日付.md— 日付付きの2つの投資論文スナップショットを比較会社名—reports/{会社名}-thesis.mdと同じディレクトリ内の過去のスナップショットを自動検索。基準がない場合は基準欠落時の処理に移行
「事実が変われば、私は考えを変える。あなたはどうする?」 —— ケインズ
「株価の変動は投資論文のドリフトではない。事実が変わって初めてドリフトだ。」 —— AI Berkshire
設計理念
長期保有で最も難しいのは毎日ニュースを読むことではなく、次の3つを見分けることです。
- 事実の変化:収益、利益率、競争環境、経営陣の行動、資本配分に検証可能な変化がある
- 価格の変化:市場心理やバリュエーション倍率が変化したが、事業そのものは変わっていない
- 表現の変化:2つのレポートで表現は異なるが、根拠となる証拠と判断に変化がない
投資論文のドリフト検出の目的は、証拠が変化した場合にのみ、投資論文の変化を認めることです。レポートの書き方が変わっただけでドリフトを作り出してはいけません。また、株価の上昇や下落を理由に、ファンダメンタルズが変化したと誤って判断してはいけません。
このSkillは、/thesis-trackerが出力する構造化された項目に依存します。具体的には、主要仮説の一覧、レッドラインの一覧、バリュエーションの基準点、追跡記録表です。これらの構造がない場合は、まず基準を整えてからドリフト検出を行います。
実行手順
最初のステップ:操作モードを判定する
$ARGUMENTSを解析します。
- レポートのパスが2つ指定されている場合 → 指定レポート比較モードに進みます
- 会社名のみが指定されている場合 →
reports/{会社名}-thesis.mdと過去のスナップショットを検索し、自動スナップショット比較モードに進みます - レポートが1つしか見つからない場合、または過去の基準がない場合 → 基準欠落時の処理モードに進みます
- 2つのレポートが同じ会社のものでない場合 → 停止し、ユーザーに確認を求めます。異なる会社間のドリフト判定は行いません
モードA:指定レポート比較
A1:2つのレポートを読み込み、検証する
旧レポートと新レポートを読み込み、以下を抽出します。
- レポートの日付、会社名、ティッカー
- 中心となる投資論文(5文)
- 主要仮説の一覧
- レッドラインの一覧
- バリュエーションの基準点
- 追跡記録表
- 経営陣の質に関する判断
- 競争上の堀に関する判断
- 現在の推奨アクション(買い / 保有 / 注視 / 一部売却 / 全売却)
レポートに重要な構成要素が欠けている場合は、まず「構造の欠落」と記載します。そのうえで、本文から可能な限り証拠を抽出してください。抽出できない項目は「判断できない」とし、結論を捏造してはいけません。
A2:証拠を標準化する
2つのレポートにある事実の証拠を、次の同じ表に整理します。
| 項目 | 旧レポートの証拠 | 新レポートの証拠 | データソース | 検証可能か |
|---|---|---|---|---|
| バリュエーションの基準点 | ||||
| 主要仮説 | ||||
| レッドライン | ||||
| 経営陣の質 | ||||
| 競争上の堀 |
比較するのは証拠であり、文体ではありません。 新旧のレポートが同義語での言い換え、並べ替え、語調の変更だけで、事実データと判断のしきい値に変化がない場合は、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 '{精确算式}'
重要な財務データは、少なくとも2つの独立した情報源で照合する必要があります。情報源が不十分な数字、定義が一致しない数字、再確認できない数字には、「低信頼度 / 要確認」と明記します。
A4:項目ごとにドリフトを判定する
以下の項目を必ず使用し、臨時に追加・削除しないでください。
| 項目 | 判定の重点 | Improved | Unchanged | Weakened |
|---|---|---|---|---|
| バリュエーションの基準点 | 内在価値、PE/PB/FCF Yield、安全余裕、目標株価レンジ | 安全余裕が拡大した、または内在価値が上方修正され、ツールで検証済み | バリュエーションのレンジと安全余裕に実質的な変化がない | 安全余裕が縮小した、内在価値が下方修正された、または評価の前提が成り立たなくなった |
| 主要仮説の一覧 | 収益成長率、利益率、キャッシュフロー、ユーザー数 / 注文数 / 生産能力など、検証可能な仮説 | 新たな証拠によって裏付けられた仮説が増えた | 仮説の状態と証拠がおおむね一致している | 仮説が弱まり、損なわれ、または破綻した |
| レッドラインの一覧 | 誠実さ、規制、事業の衰退、競争上の突破、経営陣の異常な行動 | 既存のレッドラインのリスクが解消した、または大幅に低下した | 発動しておらず、リスク水準にも変化がない | レッドラインが発動した、または発動確率が上昇した |
| 経営陣の質 | 誠実さ、資本配分、自社株買いと配当、実行力、株主重視の姿勢 | 新たな行動によって信頼度が高まった | 行動が従来の判断どおりに続いている | 行動によって信頼が損なわれた、または資本配分が悪化した |
| 競争上の堀 | 市場シェア、価格決定力、ネットワーク効果、コスト優位性、代替の脅威 | 競争上の堀が広がった、または競争優位性が検証された | 競争環境に実質的な変化がない | 競争上の堀が弱まった、または競合他社が突破した |
各項目の結論は、Improved / Unchanged / Weakenedの3種類のみとします。
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 行的触发证据写 —,不要为了填表编造证据。
总体结论必须回答
- 论文是否漂移? 未漂移 / 正向漂移 / 负向漂移 / 证据不足无法判断
- 漂移来自哪里? 估值 / 基本面 / 管理层 / 竞争格局 / 红线事件
- 是事实变化还是价格变化? 明确拆开说明
- 建议动作如何迁移? 例如:Watch → Buy、Buy → Hold、Hold → Reduce、Reduce → Exit
- 下一步需要什么证据? 下一份财报 / 监管披露 / 管理层说明 / 竞对数据
模式B:自动快照对比
B1:查找快照
在 reports/ 中查找:
reports/{公司名}-thesis.mdreports/{公司名}-thesis-*.mdreports/{公司名}/目录下包含thesis、论文、追踪的报告
选择时间最早且结构完整的文件作为旧报告,时间最新的文件作为新报告。若用户指定日期,以用户指定为准。
B2:防止错误配对
对比前必须确认:
- 公司名或股票代码一致
- 报告日期不同
- 两份报告都包含可抽取的论文结构或研究结论
如果无法确认同一公司,停止并要求用户提供明确路径。
B3:执行模式A
找到两份有效快照后,按模式A完整执行。
模式C:缺失基线处理
如果只找到一份报告或没有找到旧快照:
- 明确说明:缺少可比较的历史基线,不能执行漂移检测
- 不要根据记忆或市场印象补造旧论文
- 引导用户先使用
/thesis-tracker {公司名} 建立论文建立结构化基线 - 如果当前报告已足够完整,可建议将它保存为
reports/{公司名}-thesis.md作为未来漂移检测基线
输出格式:
无法执行论文漂移检测:缺少历史基线。
已找到:
- 当前报告:{路径 / 未找到}
- 历史基线:未找到
建议:
1. 先运行 /thesis-tracker {公司名} 建立论文
2. 下次有新财报或重大事件后,再运行 /thesis-drift {公司名} 旧报告 新报告
关键原则
- 证据优先于措辞 — 同义改写不是漂移,只有事实证据变化才是漂移
- 基本面优先于股价 — 股价涨跌只影响估值锚点,不自动改变生意质量
- 数值必须验算 — 所有百分比、估值倍数、目标价差异必须用
tools/financial_rigor.py - 不确定就标注不确定 — 来源缺失、口径不一致、无法复核时,不要硬判
- 红线单独处理 — 红线触发优先级高于估值便宜,不能被低 PE 掩盖
- 输出必须可复盘 — 每个 Improved / Weakened 结论都要能追溯到具体证据