From praxis
Forces rigorous, multi-step estimation before quoting effort or cost. Decomposes work, anchors on reference data, produces ranges, and checks for planning fallacies.
How this skill is triggered — by the user, by Claude, or both
Slash command
/praxis:estimationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step.
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step. Do not skip steps. Do not combine steps. Do not summarize. Work through each gate in order.
You are about to attach a number to future work. Unexamined estimates are optimism with a unit. Follow this protocol before any number reaches the user.
Break the work into pieces. Apply the test to EACH piece: "Can I state a bounded estimate for this piece and say why?" If you cannot, it is not broken down enough — split it again. Repeat until every leaf piece passes.
A piece that resists decomposition ("integrate with their API... somehow") is not an estimation problem, it is an unknown. Move it to STEP 3's unknowns list and, if it dominates the total, recommend a timeboxed spike BEFORE estimating the rest.
For each piece, ask in order: Has this agent done comparable work this session? In this codebase? Is there a well-known reference class (e.g., "CRUD endpoint", "schema migration", "OAuth integration")?
Tally the counts: N pieces REF-BACKED, M pieces GUESSED. You will need this in STEP 5.
For the total, state LOW and HIGH bounds, not one number. Then name the SPECIFIC unknowns that widen the range — each unknown must be a noun you could investigate ("their API's rate-limit behavior"), not a vibe ("some risk").
If asked for a single number anyway, give the range and say which bound you would commit to and why. Never collapse the range silently.
Ask explicitly: "What is usually forgotten in estimates like this?" Check each:
For each that applies, ADD it to the estimate as a named line item with its own range. Do not "hope it fits in the buffer" — an unnamed buffer is the first thing negotiated away. If nothing on this list applies, state why — that claim is itself suspect.
ESTIMATE: [work]
├── Range: [LOW] – [HIGH] [unit]
├── Breakdown: [piece → range → REF-BACKED or GUESSED, one line each]
├── Reference classes used: [what comparable work anchored which pieces]
├── Key unknowns widening the range: [specific, investigable items]
├── Planning-fallacy additions: [named line items from STEP 4]
└── Confidence: [HIGH / MEDIUM / LOW]
Confidence is TIED to the STEP 2 tally:
A single-point estimate with no range and no named uncertainty is a protocol violation, even if the user asked for "just a number."
Red flags that this skill catches:
After the estimate is presented and the user accepts a bound to plan against:
If Superpowers is installed → invoke Skill(superpowers:writing-plans) with the
breakdown, ranges, and named unknowns as input — each GUESSED piece should surface in
the plan as an early de-risking task. PRAXIS estimates. Superpowers plans.
If Superpowers is NOT installed → write the plan yourself, sequencing the biggest unknowns first so the estimate can be corrected earliest.
npx claudepluginhub xd4o/praxis --plugin praxisReplaces single-point guesses with structured three-point PERT estimates (best/likely/worst) including confidence intervals, unknowns, and assumptions. Useful for effort estimation, story pointing, or t-shirt sizing.
Estimate AI-assisted and hybrid human+agent development work with research-backed PERT statistics and calibration feedback loops
Apply evidence-based estimation methods (story points, t-shirt sizing, planning poker) to reduce uncertainty. Use when sizing work for sprints or releases.