better-bets
Five skills for making decisions under uncertainty, based on Annie Duke's Thinking in Bets. Frame, evaluate, experiment, update, review.
Open source Open in the app JSON README (API)
About
Five skills for making decisions under uncertainty, based on Annie Duke's Thinking in Bets. Frame, evaluate, experiment, update, review.
Details
- Kind
- Plugins
- Topic
- No topic detected
- Publisher
- nikostsompanides
- Origin
- gemini
- Category
- ferramentas
- Version
- 0.1.0
- Last push
- 2026-09-04T12:56:44Z
- Repository state
- ativo
- Language
- Shell
- License
- Apache-2.0
- Added
- 2026-09-04 12:01:26
- Updated
- 2026-09-04 12:01:26
- Origin id
nikostsompanides/better-bets
README
# Better Bets [](https://skills.sh/NikosTsompanides/better-bets) Five [Agent Skills](https://agentskills.io) for making decisions under uncertainty, based on [Annie Duke's](https://www.amazon.co.uk/stores/Annie-Duke/author/B001K88E4U?ref=ap_rdr&shoppingPortalEnabled=true) [*Thinking in Bets: Making Smarter Decisions When You Don't Have All the Facts*](https://www.amazon.co.uk/Thinking-Bets-Making-Smarter-Decisions/dp/0735216355). They work in Claude Code, Codex, Cursor, OpenCode, Gemini CLI, and any other tool that reads the Agent Skills standard. Nothing to build, nothing to install but a directory copy. The framework is domain-neutral. It applies to an architecture decision, a hire, a pricing change, or whether to take the job — the shape of a decision under uncertainty is the same in all of them. ## The idea A good decision and a good outcome are different things. You can reason well and lose; you can be careless and win. If you judge your decisions by how they turned out, you learn the wrong lesson both times — Duke calls that **resulting**, and it is why experience so often fails to sharpen judgement. So these skills do not try to tell you what will happen. They make the reasoning explicit and durable enough that you can tell, later, whether it was sound. > Don't try to eliminate uncertainty. Make better decisions in spite of it. More in [docs/philosophy.md](docs/philosophy.md). ## The five skills They follow a decision's life, not the sections of one analysis. Each works on its own; together they hand off through a single file per bet. | Skill | What it does | When | | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | | `bet-frame` | Sharpens a vague or solution-shaped question into an answerable one; separates facts from assumptions, inferences, and opinions; names the unknowns that matter | Start here | | `bet-evaluate` | Confidence with its basis, stakes, blast radius, reversibility, alternatives, and how big a bet this is | Once framed | | `bet-experiment` | The cheapest test that would actually move you, with criteria set before it runs — or a plain "not worth testing" | When one unknown decides it | | `bet-update` | Commit on the evidence you have, with criteria for what would change your mind; later, revise when it does | Deciding, or evidence arrived | | `bet-review` | Judge the reasoning on what was known at the time, not on how it turned out | Outcome is in | ``` frame ──► evaluate ──► experiment ──► update ──► review ▲ │ └──────────── beliefs updated ──────────────────┘ ``` ## Install ```sh npx skills add NikosTsompanides/better-bets --skill '*' ``` That installs all five into whichever agent you pick. `--list` shows them first; `--skill bet-frame` takes just one. Or copy the directories yourself — two copies cover every tool whose path is confirmed: ```sh git clone https://github.com/NikosTsompanides/better-bets.git cd better-bets # Codex, Cursor, OpenCode, Gemini CLI mkdir -p ~/.agents/skills && cp -R skills/bet-* ~/.agents/skills/ # Claude Code — it does not read ~/.agents/skills mkdir -p ~/.claude/skills && cp -R skills/bet-* ~/.claude/skills/ ``` Per-tool paths, plugin and extension install, and which paths are confirmed against official documentation: [docs/install.md](docs/install.md). ## Using them Most of the time you say what you are deciding and the right skill activates: - *"We're thinking about moving off Postgres to DynamoDB."* - *"I've got two offers and a week to decide."* - *"Should we hire another designer or use a contractor?"* - *"That migration we did in March went badly — what should we take from it?"* Or invoke one directly: ``` /bet-frame should we split the monolith /bet-evaluate how risky is the pricing change /bet-experiment cheapest way to find out if customers want this /bet-update the pilot came back, here are the numbers /bet-review the reorg is six months old, how did we do ``` Under a Claude Code plugin install they are namespaced: `/better-bets:bet-frame`. **Depth scales with stakes.** A reversible ten-minute call gets a sentence. A one-way door gets the full treatment. See the three transcripts in [docs/transcripts/](docs/transcripts/) — same entry skill, same framework, very different responses. ## Bet files A bet is one markdown file. Each skill appends a dated section; none rewrites what an earlier one wrote. That append-only rule is the point: the file records what you believed *before* you knew the outcome, which is the only thing that makes an honest review possible later. Files go to `~/bets/`, or to a `bets/` directory that already exists in your project. **No skill will create a** `bets/` **directory in a project that does not have one** — installing this will not scatter files through your repositories. There is no index. Open bets are a search: ```sh grep -rl 'status: open' ~/bets/ ``` An index would be a second copy of facts that already live in the files, and it would start lying the first time a bet closed without it being updated. ### Keeping them private Bet files hold real decisions. `bets/` is gitignored here for that reason. Git history on them is genuinely useful, though — a commit timestamp proves you wrote the prediction before you knew the answer. To get privacy and history at once, give the directory its own repository: ```sh cd ~/bets && git init ``` ## Examples Full lifecycles across six domains, in [docs/examples/](docs/examples/): [architecture](docs/examples/software-architecture.md) · [prioritisation](docs/examples/product-prioritisation.md) · [strategy](docs/examples/business-strategy.md) · [hiring](docs/examples/hiring.md) · [AI adoption](docs/examples/ai-agent-adoption.md) · [personal](docs/examples/personal-decision.md) ## Contributing ```sh sh scripts/check.sh ``` Conformance and drift, no dependencies. Run it before opening a PR. Each skill embeds a copy of the shared bet-record protocol, marked by `<!-- shared:bet-protocol start -->` sentinels. The source of truth is [shared/bet-protocol.md](shared/bet-protocol.md) — edit there, propagate to all five, and the drift check will tell you if you missed one. The duplication is deliberate: the Agent Skills spec keeps each skill self-contained, and a check that fails loudly beats a build step that installers would have to run. If you can confirm Windsurf's skills path either way, that row in the matrix is the one piece of this that is currently a guess. ## Licence Apache-2.0. The framework is based on Annie Duke's ideas; **the mistakes in adapting it are mine.**