thinking-margin-of-safety — Claude Code skill
Makes the agent add a buffer to capacity, timeouts and schedule estimates, scaled by leftover uncertainty and the cost of a breach instead of the optimistic edge.
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-margin-of-safety -a claude-codeWhat thinking-margin-of-safety does
The skill kicks in when you ask the agent to size capacity, a connection pool, queue depth, storage or an SLA under load uncertainty, or to commit on a timeline or budget. It starts with a bare point estimate in explicit units and a confidence label. Then it names the uncertainty drivers and what a miss would cost: downtime, a delayed launch, lost data.
Margins follow bands: about 1.2–1.5× for well-known low-consequence cases, 1.5–2× for reversible work with unknowns, 2–3× for a new domain with irreversible consequences. Where a breach could cause ruin, the buffered number must keep even the worst plausible miss above the failure threshold. If that buffer is unaffordable, redesign: shed load, degrade, stage the rollout.
Output is a short block: base estimate, drivers, threshold, multiplier, final commitment, a ruin check and a monitor metric with triggers. The skill also pushes back on padding. It tells the agent not to inflate a limit that can be retuned instantly at no cost, and not to guess when the real number is cheap to measure. A multiplier with no stated breach cost is just habit.
What it helps with
- size service capacity when peak traffic is still unknown
- set timeouts and pool sizes with dependency variance in mind
- defend a project timeline against an optimistic estimate
- tell a real margin from reflexive over-provisioning
- decide when to measure first and when to buffer outright
Example prompts for the agent
- Size the capacity for a new API: how many RPS can it take with an unclear traffic profile? Apply a margin and give me the failure threshold
- How many weeks should the database migration get if some dependencies are unverified? Add a buffer using the margin of safety skill
- Check my connection pool math and tell me whether the buffer is bloated, plus which metric would show it
How to install thinking-margin-of-safety
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-margin-of-safety -a claude-code2Manually: put the files in place
~/.claude/skills/thinking-margin-of-safety/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/thinking-margin-of-safety/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-margin-of-safety -a codex2Manually: put the files in place
.agents/skills/thinking-margin-of-safety/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-margin-of-safety -a cursor2Manually: put the files in place
.cursor/skills/thinking-margin-of-safety/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tjboudreaux/cc-thinking-skills thinking-margin-of-safety2Manually: put the files in place
.github/skills/thinking-margin-of-safety/SKILL.md1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-margin-of-safety -a gemini-cli2Platform CLI
gemini skills install https://github.com/tjboudreaux/cc-thinking-skills --path skills/thinking-margin-of-safetyManually: put the files in place
.devin/skills/thinking-margin-of-safety/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-margin-of-safety -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about thinking-margin-of-safety
How do I install thinking-margin-of-safety in Claude Code?
Run npx skills add tjboudreaux/cc-thinking-skills --skill thinking-margin-of-safety -a claude-code. The skill lands in ~/.claude/skills/thinking-margin-of-safety/SKILL.md.
What does thinking-margin-of-safety do?
It has the agent commit a buffered number whose size follows residual uncertainty and breach cost. You get the final figure, the failure threshold and a metric that would reveal a thin or excessive margin.
When does this skill get in the way?
When a breach is caught at once and fixed for near-zero cost (fast auto-scaling, a live-tunable limit), or when the buffer costs more than the expected breach. Then the skill says to measure the real number rather than pad it.
Source text
SKILL.md · MIT
---
name: thinking-margin-of-safety
description: When provisioning, setting a limit, or committing an estimate under uncertainty, size a buffer to residual error and the cost of breach—not to the optimistic edge.
disable-model-invocation: true
---
# Margin of Safety
Core rule: commit a buffered number when residual uncertainty plus breach cost can cause ruin or costly failure. Margin covers estimation error; it is not free slack for laziness.
## When to Use
- Capacity, timeouts, pool sizes, queue depths, storage, or SLA numbers under load uncertainty
- Timeline or budget commitments where underestimation is costly
- Architecture headroom when scaling or recovery is slow
- Any public or production commitment where being wrong has asymmetric downside
## When NOT to Use
- Breach is detected immediately and fixed near-zero cost (fast auto-scale, live-tunable limit)—static fat buffers waste resources
- `cost(buffer) > P(breach) × cost(breach)`—right-size or measure instead of maxing out
- Uncertainty is eliminable by measurement or lookup—get the real number first
- Stopping-criterion / search budget problems—use bounded rationality, not padding
- Fully known parameters and low stakes where edge optimization is the goal
## Procedure
1. **Point estimate without padding.** State the base requirement in explicit units (RPS, weeks, GB, ms) and confidence (high / medium / low).
2. **Uncertainty and breach cost.** List drivers (spike, growth, unknowns, dependency variance). State what fails if undershot: outage, missed launch, data loss, reputation—and whether failure is recoverable or ruinous.
3. **Size the buffer.** Multiply or add margin to residual uncertainty and stakes—not to vanity. Typical bands (adjust with evidence):
- Well-known, low consequence: ~1.2–1.5×
- Familiar with unknowns / reversible: ~1.5–2×
- New domain, external deps, SLA, irreversible: ~2–3×
Cap or cut when buffer cost exceeds expected breach cost.
4. **Ruin constraint.** If a breach can cause irreversible harm, size so the worst plausible miss still stays above the failure threshold; if that buffer is unaffordable, change the design (shed load, degrade, stage) rather than pretend precision.
5. **Strongest countercase.** Challenge both under-buffering ("we will scale later") and over-buffering (idle cost, complexity). Prefer measure-then-trim when history exists.
6. **Commit and monitor.** Publish the buffered commitment, the failure threshold, and the metric that would prove margin excessive or thin. Stop when the number is set and monitorable.
## Output
```text
Base estimate: … (units, confidence)
Uncertainty drivers: …
Breach cost / failure threshold: …
Margin applied: …× (or absolute buffer …)
Buffered commitment: …
Ruin check: pass | redesign needed
Cost of margin vs expected breach cost: …
Monitor: metric … ; thin if … ; excessive if …
```
## Verification
- **Falsify:** If the buffered number equals the optimistic point estimate, no margin was applied—or if margin was added with zero stated breach cost, it is cargo-cult padding.
- **Stop:** Once commitment, threshold, and monitor exist, stop stacking multipliers without new uncertainty evidence.
- **Over-application guard:** Do not pad when adjustment is free and instant, or when the real number is cheaply measurable. Do not confuse search-stopping with capacity buffers.
© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills