CommunityResearch & Data Analysisgithub.com

2016judea/buffett-checklist

Apply Warren Buffett's investment framework as a discipline lens when weighing a buy, hold, or sell decision — circle of competence, economic moat, owner earnings & intrinsic value, margin of safety, management/capital-allocation quality, and market psychology (Mr. Market, fear vs greed, temperament). Use when asked to "run this through Buffett", "what would Buffett say", "does this pass the moat test", "is this cheap enough", or for a second, more skeptical read on a name being evaluated or already held. This is a discipline overlay, not a replacement for a strategy — it applies the Buffett lens to how someone actually invests, rather than issuing generic advice.

What is buffett-checklist?

buffett-checklist is a Claude Code agent skill that apply Warren Buffett's investment framework as a discipline lens when weighing a buy, hold, or sell decision — circle of competence, economic moat, owner earnings & intrinsic value, margin of safety, management/capital-allocation quality, and market psychology (Mr. Market, fear vs greed, temperament). Use when asked to "run this through Buffett", "what would Buffett say", "does this pass the moat test", "is this cheap enough", or for a second, more skeptical read on a name being evaluated or already held. This is a discipline overlay, not a replacement for a strategy — it applies the Buffett lens to how someone actually invests, rather than issuing generic advice.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/2016judea/brick-mortar-skills/tree/HEAD/skills/buffett-checklist

Installed? Explore more Research & Data Analysis skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Buffett checklist

A checklist for running a name through Warren Buffett's actual methodology — not the internet-meme version ("buy what you know," "hold forever"), but how he and Munger really filtered, valued, and sized positions, per the shareholder letters and interviews. The canonical primary source for anything cited here is the shareholder-letter archive at berkshirehathaway.com; verify against the actual letter before quoting Buffett anywhere it matters.

The honest tension to hold onto: if the book you're checking is concentrated, early-cycle and thematic — a structural macro thesis that hasn't been recognized yet — Buffett's strike zone is close to the opposite: simple, already-proven, wide-moat cash generators he can hold forever (Coke, Amex, See's). Don't force an early-thesis book to pass a strict circle-of-competence and 10-year-predictability test. Most of it won't, and that isn't automatically a verdict. Use the parts of Buffett's discipline that transfer regardless of style: not overpaying, judging whether management is a good steward of capital, and the temperament rules around not selling into fear. Flag the parts that don't transfer rather than pretending they do.

The filter, in order

  1. Circle of competence. Can you explain in one paragraph, without jargon, exactly how this company makes money and why it'll still be making money the same way in 10 years? If not, it's in the "too hard" pile — that's a real answer, not a cop-out. Buffett's own circle expanded slowly and only with deep study (Apple wasn't evaluated as "tech," it was evaluated as a consumer-loyalty business).

  2. Economic moat. What specifically stops a competitor from taking this company's margin? Buffett's four moat types: pricing power/brand (raise price, keep customers — See's Candies), low-cost production (Costco, GEICO), switching costs (enterprise software, banking rails), network effects (Amex). Quantitative tell: ROIC consistently >15% over 10 years and gross margins >40% without competitors eroding them. A moat you can't point to a mechanism for is a story, not a moat.

  3. Owner earnings & intrinsic value. Buffett doesn't use EBITDA or consensus FCF. His formula: Owner Earnings = Net Income + D&A − maintenance capex (capex to sustain the current competitive position, not growth capex). Discount future owner earnings back at a conservative rate — historically the 10-yr Treasury yield, bumped to a 7–10% hurdle when rates are artificially low, precisely so you don't fool yourself into overpaying because money is cheap. No CAPM, no beta — Buffett's explicit view is volatility ≠ risk.

  4. Margin of safety. Buy meaningfully below your intrinsic-value estimate — historically Buffett has looked for 30–40% discounts, not 5%. "You build a bridge that can carry 30,000 pounds and drive 10,000-pound trucks across it." This is the check against your own projection error, not a pricing nicety — apply it hardest to names whose growth assumptions are most aggressive.

Management & capital allocation

  • Integrity, intelligence, energy — in that order. "If they don't have the first, the other two will kill you." Look for candor: do they admit mistakes on earnings calls, or is it always the weather / the macro / one-time items? Heavy reliance on adjusted-EBITDA or non-GAAP framing to paper over a GAAP loss is a red flag, not a nuance.
  • The $1 test. Over a 5–10yr window, has $1 of retained earnings produced at least $1 of market-cap growth? Management reinvesting at mediocre returns instead of returning cash is value destruction dressed up as "growth."
  • Buybacks vs. dividends. Buybacks are only value-accretive below intrinsic value — buybacks at a stretched multiple mostly offset options dilution and flatter EPS, and Buffett is on record hating that pattern. Dividends are a management's admission it has run out of high-return uses for cash — not inherently bad, just a tell about the growth runway.
  • Institutional imperative. Munger and Buffett's term for management that imitates peers, chases acquisitions to "use up" cash, or resists changing course out of inertia rather than analysis. Watch for a CEO who can articulate why not as clearly as why.

Red flags / the "too hard" pile

High leverage without a matching float-like funding source; convoluted financial structure or a business model you can't explain simply; frequent management/CFO turnover; heavy stock-based comp excluded from "adjusted" earnings; commodity economics without being the low-cost producer; capital-intensive businesses where profit gets plowed right back into equipment just to stay in place (steel, and — Buffett's own cautionary tale — textiles, which is literally the original Berkshire Hathaway). Airlines are his favorite personal example of breaking his own rule (bought 2016, sold at a loss in the 2020 panic) — evidence that even Buffett's framework doesn't override a genuinely bad structural business.

Temperament

For most people running a concentrated book, this is the highest-value section, because the documented leak is usually exits, not picks — cutting losers near local bottoms. If a backtest of your own closed losing lots (see backtest_holding.py in this repo) shows you'd have done better holding, that's this section, quantified.

  • Mr. Market allegory: the market is a manic-depressive business partner who quotes you a price every day. You're never obligated to trade at his price — his mood swings are information about him, not about the business, unless something about the business actually changed.
  • Fear vs. greed: "Be fearful when others are greedy, greedy when others are fearful." A drawdown with no thesis-breaking news is Mr. Market having a bad day — the hamburger analogy: if you're still buying, falling prices should make you happy, not scared.
  • Temperament over IQ: "Investing is not a game where the guy with the 160 IQ beats the guy with the 130 IQ... what you need is the temperament to control the urges that get other people into trouble." The skill isn't spotting the moat — plenty of people can do that. It's sitting through a 40% drawdown on a name you underwrote correctly without flinching.
  • When Buffett actually does sell (the counter-check against "hold forever" becoming an excuse): the moat is structurally broken (not just the stock is down), he concludes the original thesis was wrong (the 2020 airline exit — a real mistake, admitted plainly, not rationalized), or a dramatically better opportunity needs the capital. This maps directly onto a written thesis-invalidation rule per position — the Buffett version and the journal version are the same rule stated two ways.

Concentration & sizing

Buffett's "diversification is protection against ignorance — it makes little sense if you know what you're doing" is a defense of concentration, not of diversification, for anyone doing real underwriting. Berkshire holds ~40 names but the top 5 are ~70% of the equity book. The "punch card" framing (20 lifetime swings, so make them count) and the Ted Williams happy-zone analogy (only swing at pitches in your sweet spot) both argue for concentration around conviction.

Where Buffett's sizing discipline differs from most concentrated retail books: he sizes only after the margin-of-safety test clears. If you run without stop-losses, position size is your only risk control, which puts far more weight on the sizing decision than his process does. Name that difference plainly rather than blurring it.

How to actually run it

When invoked on a specific name (held or candidate):

  1. State the circle-of-competence answer in plain language — or say explicitly "this doesn't pass, it's a thematic bet, evaluate it as one."
  2. Name the moat mechanism, or say there isn't one yet. Early-cycle names often don't have a moat yet — that's the bet, be honest about it.
  3. Owner-earnings / valuation check — run intrinsic-value, don't estimate it here. That skill owns the arithmetic (owner earnings, return on tangible capital, the reverse DCF, the margin-of-safety ladder) and the refusal rules that stop a goodwill impairment or a carve-out year from being valued as earnings. It also carries the calibration rule: never deliver an absolute "fair value" without running the same model on a business Buffett actually owns — un-calibrated, this model called Coca-Cola more overvalued than the name being screened. For pre-moat or early-cycle names it will refuse outright ("too hard"); substitute "what has to be true" and say so plainly.
  4. Margin-of-safety read: is the current price already assuming the thesis plays out, or is there room for the thesis to be right and the stock to re-rate?
  5. Management / capital-allocation quick read if public filings support one.
  6. Temperament check — if this is a "should I sell" question during a drawdown, lead with Mr. Market and fear-vs-greed and the written invalidation rule before anything else.
  7. Say plainly where Buffett's framework and the actual strategy diverge on this name, rather than forcing a fit.

Tooling

Refresh or verify any specific Buffett quote, letter, or recent Berkshire move before citing it — positions and public statements change, and this file is a framework snapshot, not a live feed.

  • The valuation arithmetic, and the data behind it: intrinsic-value and sec-financials. This file is the lens; those two are the numbers.
  • Current positions and weights: etrade-pull.
  • The temperament section, quantified against trades actually made: realized-pnl — its counterfactual is what turns "you cut losers too early" from an accusation into a number.
  • Where a name sits in its own cycle, for the margin-of-safety read: price-history.
  • A written invalidation to check the "when Buffett actually sells" test against: trade-journal.

Invoked as one step of portfolio-review, which decides when a skeptical read is the thing that's needed.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

2016judea/ascii-charts

Build charts as plain Unicode-block text — bar, range, bullet, gap-bracket, star-histogram, heatmap, line, Venn, pie, donut and scatter — with a dependency-free Python script, for anywhere only monospace text survives (newsletter code blocks, Markdown, terminals, plain-text email, chat). Use when a chart has to embed as literal text instead of an image or a third-party chart service, or when you want a hand-made terminal look with no branding footer.

2016judea/image-riff

Turn one or more reference images into original art in that reference's own visual language, then cut it to whatever surface it's for. Use when you paste or point at art and say "use this as the base image", "generate art from this", "riff on this", "some creative ideation with these images", "make me a channel banner / avatar / cover / plate", "wilder version of this", or want a spread of options off one piece of reference. This is the TASK skill; the engine is the `make-art` tool skill.

2016judea/leonardo

Draw the way Leonardo da Vinci drew — a study sheet, a notebook folio, a red-chalk or silverpoint study, a machine cutaway, a storm of vortices — in his real materials and page-logic, generated with the make-art engine and anchored on fifteen of his actual (public-domain) sheets. Use when you say "Leonardo", "da Vinci", "like his notebooks", "a codex page of X", "draw this as one of his study sheets", "sanguine", "silverpoint", or wants a design, diagram, or illustration in that hand. Also a reading guide to his notebooks (Richter's 1883 public-domain translation) for "what did Leonardo say about shadow / trees / water". This is a TASK skill; the engine is `make-art`.

2016judea/mcp-stack

Which free MCP server or framework to reach for, and its traps — finance/gov data (SEC EDGAR, Yahoo, SAM.gov, USAspending), web research (Exa, Firecrawl, Crawl4AI, Jina reader), design/art/brand (Canva, Inkscape, Penpot, Figma, Orshot, Hugging Face image gen, vectorizing, charts), data/spatial (DuckDB spatial, live ArcGIS layers, OpenStreetMap/Overpass, Census, MapLibre), and ops (PostHog, iMessage, context7 docs). Use when making a social post, OG card, poster, logo/vector, chart, map, or brand asset; when querying parquet/geojson/duckdb or a city's open-data layer; when an MCP "needs authentication" or fails; or when asked "what tools do we have", "is there an MCP for X", "should we add X".

2016judea/records-request

Get a specific record out of a US government office by public-records request — "request the assessor's model", "file a data practices request", "FOIA this", "open records request", "can we just ask the county for it", "who do I write to at <county>", "chase that request", "did they ever answer". Covers checking the website first, finding the right office and statute, the carve-out paragraph that makes a request answerable instead of refused, web-form traps (hidden character caps, WAFs that reject apostrophes), chasing (there is usually no deadline), whether what comes back may be republished, and parsing multi-year tables without silent errors.

2016judea/sms-native-product

Build a product whose interface is text messages rather than an app or a website — "no app, no website", "they just text a number", "chat with our agent natively in Text Messages", "can we do this over text", "an SMS bot", "a Telegram bot", "make it a group chat", "minimum viable friction". Fires equally when it has already gone wrong — "my campaign got rejected", "our number is blocked", "the texts aren't arriving", "why do I need to register". Covers the gate that decides whether such a product can send at all (US A2P 10DLC registration, SHAFT content rules, permanent rejection codes), group MMS from code, what each channel can't do, an architecture that survives losing the channel, and guarding model-rewritten user content.

2016judea/vertical-market-agent

Build a chat agent that knows one industry in one metro better than any general model because it carries a precomputed digest of real public records (or a mined review corpus) and can pull live records mid-conversation — finding the moat, building a byte-stable substrate, enumerating what the records can't, the data traps that produce plausible wrong numbers, deterministic math in tools, measured prompt cost and cache TTL, shipping as an ad destination, an off-sector ending, and a precomputed spatial "what is this next to" layer. Use when building a vertical AI agent grounded in records rather than general knowledge.

Related Skills