Fundamentals
Skill748 starsChanged 3 months agoMITView on GitHub
基本面这一维的取数与判定——用分部收入回答钱从哪来,用利润率与现金流的趋势回答赚得怎么样,用净现金与偿债指标回答撑不撑得住,用增长来源回答还能不能持续。每一项都要落到"这家公司现在处于什么状态",不是把财报数字抄一遍
Files
基本面分析 Skill
回答四个问题:钱从哪来、赚得怎么样、钱够不够、还能不能接着赚。
边界:估值倍数、对标与合理价区间在 valuation-audit;份额、切换成本、认证周期这类护城河来源在 moat;稀缺与差异化的判断口径按 hari-invest 框架 2;四档结论与置信度按 hari-invest 的 references/decision-rubric.md。财报数字的期间/单位/GAAP 口径四要素标注、金额换算、hone_ttm 与 hone_forward 不得混用,运行时已经在强制,这里不重写。「X 技术分析」默认按技术能力归入基本面,口径见 stock_research。
罗列与判断的分界(这一条决定这篇及不及格)
每一块至少有一句同时说清三件事:
- 方向——在变好还是变坏,用趋势不用单点;
- 幅度或阈值——从多少到多少,或者跨没跨过某条线(毛利率跌破前四季区间下沿、现金低于短期债务、经营现金流由正转负);
- 后果——这决定了公司接下来能不能做成某件具体的事:继续扩产、不靠增发撑过下一年、维持定价不打折、把订单转成收入。
三件缺一,这块算没写完。自查办法:把这段里的数字全部遮住,如果剩下的文字读者仍然知道公司处在什么状态、方向是好是坏,就是判断;如果只剩「营收同比增长、毛利率有所变化、现金流保持正数」,那就是罗列。
评测里被判"罗列"的三条,对照着看该怎么改:
| 标的 | 罗列的写法 | 判断的写法 |
| 腾讯 | 单季营收 2047.85 亿、毛利率 57.83%、经营现金流 527.10 亿、Capex 477.20 亿、FCF 49.90 亿 | Capex 已经吃掉单季经营现金流的九成,FCF 从常年数百亿压到 49.9 亿——公司正在把利润换成算力,这就是市场给低倍数的直接原因;FCF 恢复到什么水平之前,估值折价不会消失 |
| AAOI | 现金 2585 万、总债务 9837 万(短债 6845 万)、单季 FCF −3375 万 | 现金不到短债的四成,单季还净流出 3375 万,撑不满一个季度——增发是必然选项而不是意外事件,讨论股价必须先假设稀释 |
| 零跑 | 营收同比增长、毛利率环比改善、净亏损收窄 | 毛利率仍在个位数、且改善来自规模摊薄而非提价,说明公司在一个靠价格换量的市场里没有定价权,这是它的估值上限,不是暂时状态 |
表里的数字来自评测样本,只用于标定写法;每一轮都必须用本轮取到的数字重新算、重新判断,不得照抄。
一、钱从哪来:收入结构
data_fetch(data_type="segments") 取 product_segmentation(产品线)与 geographic_segmentation(地区),两张都要,缺哪张说哪张。
- 先给占比最大的一两块业务及其占比,再给最近一期占比变化最大的那块——增量在哪里比存量在哪里更能说明问题。
- 地区拆分要点名集中度与地缘敞口(单一地区占比过半、受出口管制或关税覆盖的收入占比)。
- 收入结构与市场定价方式不一致时必须点破(收入结构上是 A 类生意、股价按 B 类叙事定价),并把这条结论交给
valuation-audit的"一问:这是一家什么类型的公司"。 - 分部数据取不到时,用
profile与最近一期transcript/press_releases给定性拆分,并写明"本轮未取到分部收入",不要用行业印象编占比。
二、赚得怎么样:盈利质量
- 利润率看趋势,不看单点:用
hone_quarterly_income_statement(或income_quarter)排出最近 4–8 个季度的毛利率与营业利润率,说出当前值处在这段区间的哪一端;hone_ttm.gross_margin_pct/operating_margin_pct作为同口径锚(标注period_ends)。只写一个当期毛利率不构成盈利质量分析。 - 毛利率变了要说清是谁在变:产品结构(高毛利品类占比)、单价、成本(利用率、良率、上游价格)、一次性项目。说不清来源就写"变化来源本轮未核实"。
- 首次写出 GAAP 盈利就要交代成色:当期 GAAP 净利 / EPS 含营业外损益、公允价值变动或持股重估、税项一次性调整、剥离或和解收益时,第一次给出这个数就一并写明来源与规模,并给出剔除后的经营口径;同一段里 Adjusted / Non-GAAP 不与 GAAP 混排比较。受一次性项目污染的口径标注了也不能当锚:评测里出现过已注明净利被非经常收益抬高,却仍拿由它算出的 TTM P/E 当估值参照——要么换剔除口径重算,要么写明这个倍数本轮不可用。
- 现金与利润的背离必须检查:把
hone_latest_quarter.operating_cash_flow与同期net_income放在一起。经营现金流长期显著低于净利,要去hone_quarterly_balance_sheet看应收账款与存货是不是在涨得比收入快——那是"增长靠放账期和压货买来的"信号;反过来现金流远高于净利,通常是折旧摊销重或预收款多,说明这门生意的真实回款好于报表利润。这条要落到周转天数上才算查过:DSO = 应收账款 ÷ 当季营收 × 91、DIO = 存货 ÷ 当季营业成本 × 91、DPO = 应付账款 ÷ 当季营业成本 × 91,CCC = DSO + DIO − DPO(年度口径把 91 换成 365);四项都给最近 4 个季度的序列,单点看不出方向。CCC 拉长的天数 × 日均营收 = 被多占住的营运资金,按上面的方向/幅度/后果写完——拉长了多少天、这笔钱本来能拿去做什么(多买一条产线、少发一次债)。同期把**合同负债(预收)**当成一条独立序列一起看:预收与营收同向增,回款和能见度是真的;营收在增而预收在缩,是把已经收到的钱确认成了收入,下一段增长没有预付款托着。 - FCF 要算完并说明用途:现金流量表里有
freeCashFlow就直接引用,没有再用operatingCashFlow − capitalExpenditure并注明是自算。FCF 转负时区分"扩产性转负"(Capex 拉高,对应可核验的产能或订单)与"经营性转负"(经营现金流本身在恶化)——两者对结论的方向完全相反。
三、钱够不够:资产负债与偿债
- 净现金 / 净负债:现金及短期投资 − 有息总债务(含短债、长债、租赁负债与可转债本金),从
hone_quarterly_balance_sheet取,写出用来相减的两个数。 - 短期偿债:短期债务与一年内到期部分,对照现金余额与最近四季 FCF。断言"可由现金覆盖"之前先做减法。烧钱公司再补一句现金跑道:现金 ÷ 单季净流出 = 几个季度,并说明这个跑道决定了它会不会增发。
- 利息覆盖:优先用
valuation的 ratios-ttm 里的官方口径;没有再用营业利润 ÷ 利息支出并注明自算。高负债公司这一条不能省。 - 股权激励要还原成成本:从现金流量表取股权激励(SBC)金额,算 SBC ÷ 营收 与 SBC ÷ 经营现金流两个比(TTM 或最近 4 个季度)。SBC 在经营现金流里是加回项——这两个比越高,报表上那笔经营现金流里由老股东稀释买单的部分就越大;SBC 吃掉经营现金流一半以上时,"经营现金流为正"不能直接读成"这门生意能自己养活自己"。本节只负责把这两个比例和方向摆出来,摊薄怎么进算式交给
valuation-audit的完全摊薄股本口径。 valuation的financial_scores:引用 Altman Z 与 Piotroski 时,必须一起给出hone_score_semantics的区间(Altman:>2.99 安全区、1.81–2.99 灰区、<1.81 困境区;Piotroski 0–9 分,≥7 稳健、≤3 偏弱)和适用性限制——Altman 模型面向制造业,对金融、地产和部分轻资产科技公司解释力有限,这类公司要么不用、要么明说这个限制。分数只作为交叉印证,不能替代上面三项的具体数字,也不能改写成自制评级。
四、还能不能接着赚:增长的来源与可持续性
本轮提示里出现【本轮相关行业】时,「增长从哪来」这一问先用行业块的底层估值逻辑与需求传导链回答(从有效 AI 任务 → 资源强度 → 物理需求 → 合格供给 → 产能释放,量化关系照抄公式里的变量名):链条上游的量(token、集群规模、云厂 capex)对同一行所有公司共用,这家公司拿到多少由份额、认证、产能或合约决定。把行业增速直接写成公司增速,是这一节最常见的失败。行业块带「上游最近动作」时,这一问的第一句就是那条最近动作(带日期与数字,原样引用),第二句写它怎么传到这家,第三句写本轮用 earnings_outlook(ticker=X) 核对后有没有更新的一季(有则以更新为准并改日期)。要展开这一行的完整变量表与取数位置时加载 industry-map。
- 用
hone_latest_quarter的revenue_yoy_pct与revenue_qoq_pct判断在加速还是减速(两者方向不一致时先看季节性),用hone_financial_growth(季度序列)看增速的趋势而不是单期。 - 增长来自哪里:量、价、新品类还是新地区——用第一部分的分部同比拆开回答。说不出来源的增长率不构成可持续性判断。
- 增长的质量:收入增速与毛利率、经营现金流是否同向。收入涨而毛利率与现金流反向,说明增长是买来的;三者同向才是"赚得更多也收得回来"。
- 领先指标是线索不是业绩:backlog / ARR / RPO / 长协覆盖量是"已签未确认",不能当成收入能见度或增长确定性直接用。要拿它支撑可持续性判断,补一句历史转化率(过去几年实际转成收入的比例、取消或重排的幅度),拿不到就写"转化节奏本轮未核实"。确认周期与它能不能进估值算式,按
valuation-audit红旗自检里"价值锚"那一条,不在这里重写。 - 未来窗口:需要引用
hone_forward的一致预期时,写出forward_period_ends与分析师家数,并标明这是预期不是已实现业绩。
生成时的数值自洽自检
写完每一块,立刻用你自己刚写下的那些数字互相验算一遍。这是生成过程中的一次回读,不是发送前的门禁;对不上就当场改数或删掉那句结论,不要留下一个没有出处的第三个数。
- 减法要真的做:净现金 = 现金 − 有息债务,写出的净额必须等于你列出的两数之差且符号一致,算出来是负的就写净负债。(评测里出现过现金 4696 亿、总债务 4717 亿,结论写"净现金 2571 亿"。)
- 大小比较要真的比:说"覆盖""充裕""无偿债压力"之前,把两个数摆在一起看谁大。(评测里出现过现金 2585 万却说能覆盖 6845 万短期债务。)
- 同一个量全文只有一个值:现金不能这一段是 2585 万、下一段变成 2.6 亿;2.6 亿是市值就写市值。
- 口径不混排:
financials的资产负债表科目与valuation的净债务/企业价值是两套口径,同一段里都用到时要写清每个数出自哪一套。 - 单位与币种:万/亿/万亿、人民币/美元/港元;报表原币与股价币种不同时逐处标注,跨币种不做加减。
- 比率能被自己的分子分母还原:文中出现的毛利率、利润率、增速,用同一段里给出的金额除一遍应能还原。
缺数据与产出形态
hone_statement_coverage 标为 unavailable 的那张表才是真正的缺口,其余口径都算本轮已在手的证据,不要用"未核验"带过。真缺的那块写清缺什么、影响哪个判断("缺季度资产负债表,净现金与偿债结论未做"),并给出补上之后结论会怎么变。
- 被单独调用时:按四块各写一段,每段以那句三件套判断收口,最后一段给基本面这一维的整体状态(赚钱方式稳不稳、质量在变好还是变坏、财务撑不撑得住当前战略),并交接口——哪些数字可以直接当
valuation-audit的分母,哪些事实可以进moat的证据栏。不写九段模板,不自带数据时间首行(那由主 Agent 负责)。 - 作为一段嵌进更大回答时:压到 4–8 句,四块各一句判断,去掉取数说明,保留数字与三件套结构。
sector-to-stock对比表里的"基本面"列与"财务"列按这里的口径填。
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- staskh/trading_skills★ 399same name
- ancs21/ai-sub-invest★ 19same name
- DojoCodingLabs/code-sensei★ 14same name
- Yafan-Yang/ai-trading★ 4same name
- wewpellex21/code-sensei★ 3same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository37 other files it gives its agents.
- AGENTS.mdAGENTS.md
- memory/agents.mdAGENTS.md
- alipay-aipaySkill
- event-engine-baseline-testingSkill
- event-engine-push-reviewSkill
- Formal ReleaseSkill
- Analyst CoverageSkill
- Chart VisualizationSkill
- Company Latest DevelopmentsSkill
- Company PortraitSkill
- company-thesis-ratingsSkill
- Deep Stock ResearchSkill
- Earnings ReadoutSkill
- earnings-researchSkill
- ETF AnalysisSkill
- First PrinciplesSkill
- Gold AnalysisSkill
- hari-investSkill
- Hone AdministratorSkill
- Image GenerationSkill
- Image UnderstandingSkill
- Industry MapSkill
- Influencer ViewsSkill
- Market AnalysisSkill
- Missed Digest ItemsSkill
- Moat AnalysisSkill
- Notification PreferencesSkill
- Options AnalysisSkill
- PDF UnderstandingSkill
- Portfolio ManagementSkill
- Position AdviceSkill
- Scarcity DifferentiationSkill
- Scheduled Task ManagementSkill
- Sector To StockSkill
- Skill ManagementSkill
- Stock ResearchSkill
- Valuation AuditSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

