Install any skill in seconds. Free to start, no credit card required.
Get Started Free →AI Berkshire skill: 组合管理:从"研究公司"到"管理组合". Source: skills/portfolio-review.md.
.claude/skills/xbtlin-portfolio-review/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | 68% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 87% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 114% | 0% |
| case-05 | ✓→✗ | ▼ Worse | 58% | 0% |
| case-10 | ✓→✗ | ▼ Worse | 12% | 0% |
This skill is generated from skills/portfolio-review.md so Claude Code and Codex users share one canonical workflow.
$ARGUMENTS as the user's request in the current Codex thread.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.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.AGENTS.md: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.对 $ARGUMENTS 执行投资组合审视与优化。
支持输入格式:
腾讯30%, 美团20%, 茅台20%, 英伟达15%, 现金15%腾讯 500股 @480港元, 美团 1000股 @130港元, ...我的持仓(如果已有保存的组合文件 reports/portfolio-latest.md)> "分散投资是对无知的保护。如果你知道自己在做什么,分散投资就没有意义。" —— 巴菲特 > > "我这辈子见过的真正好的投资机会,十个手指就数得完。" —— 李录
研究公司只是投资的一半。另一半是组合层面的决策:
巴菲特从不孤立地看一只股票——他总是在想"这是不是我能做的最好的事?"
从输入中解析出当前持仓,标准化为以下格式:
| 标的 | 代码 | 持仓量 | 成本价 | 现价 | 市值 | 占比 | 盈亏 | |------|------|--------|-------|------|------|------|------|
如果输入只有比例没有金额,按比例分析即可。
同时检查是否存在已有的组合文件(reports/portfolio-latest.md),如有则读取并更新。
使用 Task 工具启动后台 Agent,通过 WebSearch 为每个持仓并行获取:
对每个持仓使用 tools/financial_rigor.py verify-valuation 校验估值数据。对每只持仓标注信息丰富度(A/B/C级),C级持仓的分析结论标注低置信度。
对每个持仓进行快速健康检查:
| 标的 | 当前PE | 买入逻辑是否变化 | 论文健康度 | 仓位建议 | |------|:------:|:--------------:|:---------:|---------| | 腾讯 | 18x | 未变化 | 8/10 | 合理 | | 美团 | 25x | 竞争加剧 | 6/10 | 偏高,考虑减仓 |
对每个持仓回答:
段永平:"如果你不想持有一只股票10年,那就一天也不要持有。"
| 指标 | 当前值 | 建议范围 | 判断 | |------|-------|---------|------| | 第一大持仓占比 | | <40% | | | 前三大持仓占比 | | 50-80% | | | 总持仓数量 | | 5-15只 | | | 现金占比 | | 10-30%(视市场环境) | |
李录的标准:3-5只核心持仓,前3占80%+。但这要求每一只都研究透彻。
巴菲特的标准:核心持仓不超过10只,但允许更多卫星仓位。
识别持仓之间的隐性关联:
| 持仓A | 持仓B | 相关类型 | 风险 | |-------|-------|---------|------| | 腾讯 | 快手 | 同属中国互联网 | 监管风险共振 | | 英伟达 | 台积电 | AI供应链上下游 | AI Capex同向波动 | | 美团 | 拼多多 | 同属中国消费 | 宏观消费同向波动 |
检查清单:
这是巴菲特最核心的思维方式——每一块钱都应该放在回报最高的地方。
将所有持仓按"预期年化回报"排序:
| 排名 | 标的 | 当前占比 | 预期年化回报 | 确定性 | 预期回报×确定性 | |:----:|------|:-------:|:----------:|:------:|:--------------:| | 1 | | | | | | | 2 | | | | | | | ... | | | | | |
预期回报估算方法(使用 tools/financial_rigor.py three-scenario 计算):
关键问题:排名最后的持仓,预期回报是否高于现金(无风险利率~4%)?如果不是,应该卖出换成现金。
| 情景 | 假设 | 组合预计影响 | 最大回撤 | |------|------|-----------|---------| | 全球衰退 | 企业盈利下降20-30% | | | | 中美冲突升级 | 中概股折价50% | | | | 利率飙升 | 10年期国债→6% | | | | 科技泡沫破裂 | 科技股PE压缩40% | | |
对每个情景做定性+粗估评估(基于各持仓的行业属性和历史估值波动范围):
基于以上分析,给出具体的调仓建议:
| 动作 | 标的 | 当前占比 | 建议占比 | 理由 | |------|------|:-------:|:-------:|------| | 加仓 | | | | | | 减仓 | | | | | | 清仓 | | | | | | 新建仓 | | | | | | 不动 | | | | |
如果组合中有"不如现金"的仓位,或者现金占比过高,建议使用 /industry-research 或 /investment-checklist 对感兴趣的行业/公司进行系统筛选,而非在本Skill内直接推荐个股。
| 当前现金占比 | 建议现金占比 | 理由 | |:----------:|:----------:|------|
巴菲特:目前持有$3,820亿现金,占比超过总资产的25%——当找不到好机会时,现金是最好的仓位。
一、组合概览(持仓表格+饼图描述)
二、单仓位体检(每个持仓的健康状态)
三、组合分析
- 集中度:是否过度分散/集中?
- 相关性:隐性关联和风险共振
- 机会成本:排名最低的仓位是否值得持有?
- 压力测试:极端情景下的回撤预估
四、调仓建议(具体操作+理由)
五、下次审视时间和关注重点将组合信息写入 reports/portfolio-latest.md,包含:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-18 | fail→pass | 12,093 | 6,118 | -49% | 1 | 1 | 0% | 1,954 | 3,273 | +68% | 0 | 0 | — |
case-01 | fail→fail | 30,326 | 4,837 | -84% | 1 | 1 | 0% | 503 | 2,628 | +422% | 0 | 0 | — |
case-02 | fail→fail | 20,116 | 4,719 | -77% | 1 | 1 | 0% | 4,145 | 2,797 | -33% | 0 | 0 | — |
case-03 | fail→fail | 33,994 | 5,183 | -85% | 1 | 1 | 0% | 6,221 | 2,692 | -57% | 0 | 0 | — |
case-04 | fail→fail | 13,496 | 6,744 | -50% | 1 | 1 | 0% | 2,225 | 2,801 | +26% | 0 | 0 | — |
case-05 | pass→fail | 8,787 | 6,433 | -27% | 1 | 1 | 0% | 1,628 | 2,580 | +58% | 0 | 0 | — |
case-06 | pass→pass | 6,257 | 12,017 | +92% | 1 | 1 | 0% | 985 | 4,104 | +317% | 0 | 0 | — |
case-07 | fail→fail | 12,796 | 6,823 | -47% | 1 | 1 | 0% | 2,205 | 3,124 | +42% | 0 | 0 | — |
case-08 | fail→fail | 13,521 | 6,162 | -54% | 1 | 1 | 0% | 2,494 | 2,689 | +8% | 0 | 0 | — |
case-09 | fail→fail | 18,193 | 17,632 | -3% | 1 | 1 | 0% | 3,268 | 5,654 | +73% | 0 | 0 | — |
case-10 | pass→fail | 13,682 | 5,499 | -60% | 1 | 1 | 0% | 2,380 | 2,666 | +12% | 0 | 0 | — |
case-11 | pass→fail | 14,367 | 5,638 | -61% | 1 | 1 | 0% | 2,386 | 2,620 | +10% | 0 | 0 | — |
case-12 | pass→fail | 19,116 | 6,109 | -68% | 1 | 1 | 0% | 3,134 | 2,634 | -16% | 0 | 0 | — |
case-13 | pass→pass | 9,053 | 5,975 | -34% | 1 | 1 | 0% | 1,580 | 3,449 | +118% | 0 | 0 | — |
case-14 | fail→fail | 13,140 | 5,319 | -60% | 1 | 1 | 0% | 2,269 | 2,603 | +15% | 0 | 0 | — |
case-15 | fail→fail | 23,738 | 5,130 | -78% | 1 | 1 | 0% | 2,583 | 2,653 | +3% | 0 | 0 | — |
case-16 | fail→fail | 14,144 | 4,694 | -67% | 1 | 1 | 0% | 2,359 | 2,648 | +12% | 0 | 0 | — |
case-17 | fail→fail | 7,460 | 2,320 | -69% | 1 | 1 | 0% | 1,539 | 2,739 | +78% | 0 | 0 | — |
case-19 | pass→fail | 10,928 | 5,721 | -48% | 1 | 1 | 0% | 1,880 | 2,687 | +43% | 0 | 0 | — |
case-20 | fail→pass | 13,206 | 10,734 | -19% | 1 | 1 | 0% | 2,215 | 4,133 | +87% | 0 | 0 | — |
case-21 | fail→pass | 12,368 | 11,631 | -6% | 1 | 1 | 0% | 1,941 | 4,149 | +114% | 0 | 0 | — |
case-22 | fail→fail | 6,532 | 2,370 | -64% | 1 | 1 | 0% | 1,217 | 2,785 | +129% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 9 counted toward the lift figure. The other 13 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -9 percentage points is the difference between those two pass rates over the 9 comparable cases. 9 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.