Codex adapter note
This skill is generated from skills/deep-company-series.md so Claude Code and Codex users share one canonical workflow.
- Treat
$ARGUMENTSas 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 likepython3 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
datecommand 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.
Write a "See Through XX" deep long-form series (3-8 articles, determined by company complexity, see "article count adaptation") for $ARGUMENTS, to be published on public channels such as WeChat Official Accounts and Video Accounts.The core IP is not "being able to write", but "being able to revise"—99% of financial articles violate the fact-checking standards of this skill。
Reference samples:reports/腾讯/《看懂腾讯》/
I. Trigger scenarios
The user wants to do "textbook-level" deep research on a company and publish it publicly in the form ofa series of long-form articles. Different from a single research report:
- 3-8 articles (8 articles for a complex company at about 120,000 Chinese characters, 3 articles for a simple company at about 30,000 Chinese characters), a complete closed loop from cognitive reset to decision framework
- Each article stands alone (suitable for individual sharing), yet runs through one set of valuation/management/price judgments
- Written for readers "willing to spend 90 minutes understanding a company", not for brokerage clients
Scenarios not suitable for this skill: single research reports, quarterly earnings commentary, industry research—use /investment-research、/earnings-review、/industry-research。
II. Series article template
Article count adapts to company complexity (determine article count first, then determine article topics)
The article count is not fixed at 8. 8 articles is a capacity only supported by companies like Tencent with "multiple businesses + a trillion-scale investment portfolio + a 20-year management story". Before writing, first ask: how many main axes can this company support, each of which can stand alone as an article around "one sharp question"? Write as many articles as there are axes.
| Complexity | Characteristics | Article count | Examples |
|---|---|---|---|
| High | Multiple business lines each constituting a business of their own + hidden assets/investment portfolio + rich management history materials | 7-8 articles | Tencent |
| Medium | 2-3 business lines + one major era variable | 4-6 articles | — |
| Low | Clear main business, few and concentrated core issues | 3 articles | Kuaishou |
Standard merging method for 3 articles(The 8 main axes below are still a checklist, all must be covered, just folded into 3 articles):
| # | Article title direction | Main axes folded in |
|---|---|---|
| 01 | You think you understand X (opening + business and moat) | Cognitive reset + moat + overview of profit engines |
| 02 | X's biggest variable (current narrative/hidden assets) | Hidden assets + AI/era variable |
| 03 | How much is worth buying, what signal must trigger selling (finance + decision finale) | Financial depth + key management points + valuation decision |
Judgment signal: if halfway through writing an article you find yourself "padding content" (the same fact repeated with different wording), it means the article count is too high—merge. Conversely, if an article exceeds 12,000 characters and still cannot fit, split it.
Full template of 8 main axes (for complex companies; for simple companies use as a folded checklist)
| # | Article title template | Core question | Character count |
|---|---|---|---|
| 01 | You think you understand X, but you don't | Cognitive reset: break 3 common illusions | 4,000-5,000 |
| 02 | X's moat—<生意本质一句话> |
How deep is the moat, and will it still be there in 5/10 years | 6,000-8,000 |
| 03 | X's biggest profit engine——<最赚钱业务> |
What is the core business, and why can it last | 6,000-8,000 |
| 04 | Another company hidden on X's books——<隐藏资产> |
Investment portfolio / subsidiaries / hidden value | 8,000-10,000 |
| 05 | In the age of AI (or the current narrative), is X a winner or a loser | Era variables: break down AI's impact by business | 8,000-10,000 |
| 06 | Break down X's financial statements the Buffett way | Financial depth: gross margin/FCF/ROE/SBC | 8,000-10,000 |
| 07 | <管理层金句>——Is X's management worth entrusting |
Capital allocation discipline + integrity check + successor | 8,000-10,000 |
| 08 | At what price is it worth buying, and what signal must trigger a sell (series finale) | DCF three scenarios + red-line checklist + position sizing framework | 10,000-12,000 |
Add one 00-系列说明.md as a table of contents index, not published.
Articles must fit the company: The template grew out of Tencent; it is not a rigid mold. If an article has no standalone content (for example, a company with no investment portfolio cannot support 04), replace it with that company's own main axis (such as Kuaishou's Kling AI, e-commerce), or fold it into a smaller number of articles using the merging method above. The test: can this article stand alone around "one sharp question"?
II.V. Within-article structure template (distilled from the 8 main articles in Understanding Tencent)
Each article is not free-form; it has a fixed skeleton. Common structure:
- Header quote block:
> 《看懂X》系列 · 第 0N 篇 · <主轴>, add reading time at the beginning - The first section is always a hook: a set of counterintuitive numbers / an anomalous curve / a number that worries the market, with no background setup
- At the end of each article:
## 本篇要点回顾(5-8 items, with numbers strictly consistent with the main text) +## 下期预告(preview with sharp questions, without spoiling the conclusion) - Two italic lines at the end:
*本文是《看懂X》系列第 0N 篇...*+*本系列基于公开信息和价值投资框架研究,不构成任何投资建议。*
Article-specific skeletons:
| Article | Skeleton |
|---|---|
| 01 Opening | The historical curve of the stock price being repeatedly "re-characterized" by the market → three common misconceptions (each debunked with financial statement data) → "how many pairs of glasses must be worn at the same time" reading map table (links to 02-08) → valuation hook number table (leave only suspense, give no conclusion) |
| 02 Moat | List of challengers' failures (with names and years) → the essence of switching costs (what users cannot migrate away from) → ecosystem flywheel → will the moat still be there in 5/10 years → a reverse thought experiment ("if I had 100 billion, could I replicate it") |
| 03 Profit engine | Open with a counterintuitive number → why the core product is evergreen (break it down to the level of pricing power) → quantify growth space (share path + counterarguments: the possibility that the story does not work) → organizational capability (why it can keep producing products) → why the market underestimates it → the impact of AI/era variables on this business → the picture 5 years from now |
| 04 Hidden assets | TOP holdings table (count only the non-consolidated portion, and explain consolidated portions separately to prevent double counting) → accounting treatment differences (which go into the income statement and which do not) → classification of "will not sell vs may reduce holdings" → why the market applies a discount (item by item) → several unexpected discoveries → a simple method for estimating the discount |
| 05 AI/era variables | The numbers that make the market worry → break down by business to identify winners/losers (severe divergence, no overall conclusion) → key counter-question ("X lost the single-point battle, can it still win?") → scenario projection of being bypassed in 5-10 years (rebut or concede point by point) → 5 scenarios → list of monitoring signals for the next year |
| 06 Financials | Open with one anomalous curve → income statement (attribution of gross margin changes) → choice of basis (Non-IFRS vs GAAP, and why) → EPS and buybacks → balance sheet (net cash) → cash flow and FCF Yield → shareholder returns by the "1-dollar test" → whether ROE changes are good or bad → valuation cross-sectional + historical comparison → go through the 10-item value investing checklist one by one → compress the financial report into three sentences |
| 07 Management | Core team table → long-term contributions of key figures (use specific decisions, not adjectives) → alignment of interests (shareholding/compensation as a share of profit) → Integrity test: pick one real crisis and look at how it was handled → 5-year promise fulfillment rate (check the original words from each year one by one) → capital allocation discipline → succession concerns (do not avoid) → "three questions about buying people" (honest/capable/passionate) → overall score |
| 08 Decision | SOTP sum-of-the-parts valuation (make clear "what exactly you are buying") → historical valuation percentile + must warn that "the rearview mirror is not a navigation device" → three-scenario table for future profit (optimistic/neutral/conservative + implied growth rate, marked "this is a forecast, not a fact") → red-line list (trigger ≠ must sell, but must be re-examined) → close with odds-based thinking |
III. Writing Style Standards
Tone
- Direct, sharp, no waffle—give a number or a counterintuitive conclusion in the first sentence
- Value investing framework—weave in the perspectives of Buffett/Munger/Duan Yongping/Li Lu (but do not pile up quotations)
- Do not preset a stance—present the data first, then reason through the logic, and finally reach a conclusion
- Present both sides—attach a counterargument of "but on the other hand..." to every core judgment
- WeChat official account feel—the first 18-20 characters must be able to stand on their own (mobile preview)
Banned words
| Banned | Reason | Replacement |
|---|---|---|
| Obviously / inevitably / certainly | Subjective absolutization | Data shows / evidence indicates |
| I think / I feel | Subjective tone | Delete or change to "according to this framework" |
| Textbook-level / stroke of genius | Traffic-bait praise | Describe specific facts |
| Severely mismatched / severely undervalued | Strongly subjective words | Give a specific discount percentage |
| Perfect / impeccable | One-sided judgment | Add the opposing observation |
Title style
- Usecontrast numbersorcounterconsensus conclusionsas hooks ("7 challenges in 15 years, all failed", "annual salary of 42.92 million, only 0.0165% of profit")
- Subtitle neutral, summarizing the content ("—
<本质判断>") - Avoid traffic-bait metaphors: "little Buffett", "China's version of X", "YYDS" should all be avoided
- Use terminology familiar to professional readers ("Berkshire" rather than "Buffett"; company names are better than personal names)
IV. Rigorous Fact-Checking Checklist (Core IP)
The "false precision" trap to be wary of before writing
- Probability-weighted expected value:
30% × A + 50% × B + 20% × C = 期望 +X%This kind of calculation is almost entirely garbage—the probability assignments are purely subjective and give readers a false sense of precision.List only scenarios + trigger conditions + direction; do not calculate weighted expectations。 - Third-party estimates of MAU/share: QuestMobile/Qimai/CBNData and other methodologies differ enormously (at the same point in time they can differ by 2-3x).Use only the two most credible comparisons as anchors; describe the rest qualitatively。
- Linear extrapolation of historical growth rates:
2025 年 +33% × 5 年复合 → 2030 年 Xis financially illiterate forecasting.Scenario assumptions + high/low range + not a commitment。 - Undisclosed shareholding percentages: shareholdings in unlisted companies such as ByteDance and Haltinever publicly disclosed。Give a range, mark as "unknowable"。
- Strong attribution: competitor failure = because of X. List all multiple causes;this article does not make a single attribution。
The 7 checks that must be run during revision
□ 1. 跨篇数字一致性:总市值、Non-IFRS 净利润、关键持股 % 全系列对齐
□ 2. 口径标注:Non-IFRS / GAAP / Non-IFRS-SBC / FCF 各用哪个,全文清楚
□ 3. 重复加计扫描:已并表子公司不在"投资组合"里、SOTP 不双算
□ 4. 横向比较公平性:不能"主业 PE(剔除现金+组合)" vs "对手 PE(不剔)"
□ 5. 概率加权全删:见上一条
□ 6. 绝对化表述全弱化:grep "显然|必然|严重|教科书|完美"
□ 7. 第三方数据来源标注:每条非财报数据后跟"(来源:X)"
Model preferences
Before writingfirst list known hard-error risks:
- Historical return multiple: must use the cumulative investment basis (e.g., Riot 33x, not 58x)
- Shareholding percentage: must use the latest Futu/financial report basis (e.g., Tencent holds 1.5% of Meituan, not 6.4%)
- "Dividend distribution" accounting treatment: deemed disposal gains are recognized on the declaration date under IFRIC 17 (e.g., JD in 2021, Meituan in 2022 but the amount was small)
- Total share capital will rebound: concentrated SBC grants at the start of the year will cause share capital to rise in the short term
V. Execution Process
Phase 1: Research (complete before writing articles 01-02)
- Read the company's annual reports for the past 5 years and the latest quarterly report
- Read at least 3 independent sell-side research reports (find consensus + counter-consensus)
- Use
/investment-teamor/investment-researchto first generate an internal research draft - Confirm with the user the core arguments of the 8 articles (to avoid discovering the direction is wrong only after finishing)
Phase 2: Writing (write in order from 01 to the final article; do not skip)
- After finishing each article, first save
reports/{公司名}/《看懂{公司名}》/0X-XX.md - Directory conflict rule: if
reports/{公司名}/《看懂{公司名}》/already exists (old version series), do not overwrite and do not mix—write the new series into a new folder with a date suffixreports/{公司名}/《看懂{公司名}》-{YYYYMMDD}/, and keep the old folder as is - Do not immediately push to GitHub—wait for user review
- Revise after the user provides revision comments
- Only git push after revisions are complete
Phase 3: Cross-article consistency scan (after all articles are written)
Dispatch Explore agents to scan the entire series in parallel and perform the following checks:
- Whether the same number (market cap, net profit, shareholding percentage) is consistent across articles
- Whether the same term (FBS, SBC, Non-IFRS) is explained when it first appears
- Citation relationships: whether article 02 saying "see article 06 for details" really corresponds
- Whether the key points review and the main text have consistent numbers
Phase 4: Final check before publication
# 推送前必须本地 grep 一次(按 ai-berkshire 隐私规则)
grep -r "<本机用户名>\|/Users/\|<个人身份信息>" reports/ | head
Only after confirming there are no errors, git pull --rebase && git commit && git push。
VI. Revision Comment Handling Process
When the user provides revision comments, handle them in the following order:
1. First verify the facts (do not directly edit)
If the user says "the X data is wrong," first use Bash/Read to find the raw data for cross-verification:
- Look at the earnings/financial report for the same company in the ai-berkshire project
- Look at Futu/official disclosures
- Provide a three-way comparison of "the data the user mentioned vs. the data I found vs. the data I previously used"
2. Determine the revision level
| Level | Type | Handling |
|---|---|---|
| 🔥 Hard error | Wrong number, wrong attribution, wrong basis | Must fix, no hesitation needed |
| ⚠️ Subjectivization | Strongly subjective words, absolutes, clickbait-style metaphors | Weaken or delete |
| 🔬 Granularity | Source labeling, basis refinement | Low priority, balance based on readability |
| ❓ Unreliable | Large discrepancies in third-party estimates | Deleting is safer than revising(explicit user instruction) |
3. Linked checks after revision
Before fixing one place, first think "where else will this number/concept still be referenced." Example:
- Changed total market cap → update PE / core business PE / discount / FCF Yield across the entire series
- Changed ownership % → update TOP 10 ranking + historical ownership table + reduction list
- Changed terminology basis → update first definition + subsequent references + key points review
4. Report immediately after pushing
推送成功(commit hash)。
[N] 处修订总结 [带表]:
- 改了什么
- 联动改了什么
- 还有什么没改
下一步等指示。
VII. What this skill does not do
- Does not make investment decisions for readers——"Not investment advice" at the end of every piece
- Does not predict stock prices——Only provides "scenarios + trigger conditions"
- Does not calculate weighted "expected annualized return"——Subjective probability allocation would mislead readers
- Does not write "Big Shot X also holds this" —— Using someone else's holdings to endorse your own judgment is anti-value investing
- Does not force all 8 pieces to be written——If a piece does not have enough independent content (e.g., a company's management is not distinctive enough), merge it into another piece or reduce the number of pieces
VIII. Compliance and privacy
- All public reportsUse only public information(financial reports, official disclosures, brokerage research reports, well-known third-party institutions)
- Do not use anyuser personal information(company nicknames, internal IM, undisclosed holdings information)
- Before pushing, must use grep to scan local username /
/Users// real name and other privacy fields - Public bylines follow the user's multi-layer identity strategy, do not mix them
One-sentence summary
The core ability for writing the "Understanding X Series" ≠ writing well, but revising rigorously—— 89% of long-form finance articles die from pseudo-precise numbers, subjective weighted expected values, and absolute statements. The purpose of this skill is to mark all these pitfalls: avoid them before writing, and clean them up after writing.