agentsclimarketplace

Estimation

Skill stanislavnianko/product-discovery-claude-skills/plugins/discovery-phase/skills/estimation

[discovery-phase pack · scoping] Translates a defined scope into an effort estimate broken down by discipline (Dev / QA / BA / PM / Design) × phase, with confidence intervals and explicit assumptions. Designed to feed proposal and sow-draft. Produces estimation.md. Reads discovery-context.md and scope-doc.md.From its SKILL.md

Install
npx -y skills add stanislavnianko/product-discovery-claude-skills --skill estimation

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.3 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

Estimation

Part of the discovery-phase skill pack · scoping group · reads discovery-context.md (run profile-builder first if missing).

Agency-style estimation: effort by discipline × phase, with low / expected / high ranges, and a list of assumptions that, if violated, invalidate the estimate. The output is the heart of any commercial proposal.

Step 1 — Read context

Read discovery-context.md (sections 1. Client → Stage, 3. Engagement → Mode and Budget context, 6. Constraints) and scope-doc.md.

If discovery-context.md is missing, ask the BA inline: "(a) greenfield or migration; (b) fixed-fee or T&M?" — tag the output [ASSUMED ENGAGEMENT]. If scope-doc.md is missing, ask for in/out scope bullets per area, or fall back to a class-of-magnitude estimate (S / M / L / XL) tagged [NO-SCOPE] — not for client use without a follow-up proper estimate. Never block; recommend profile-builder / feature-scoping for high-stakes work.

Step 2 — Pick estimation method

Match to engagement timeline + scope size:

MethodWhenEffort to produce
3-point parametricStandard for proposals; S/M/L scopes30-60 min
Bottom-up by user storyDetailed scope, large engagement2-4 hours
Reference-class ("we did X for Y, multiply by Z")Repeat engagement, similar scope15-30 min
Phased gatesLong engagement; only first phase precise30 min for phase 1, range for rest

Default to 3-point parametric for discovery-phase outputs.

Step 3 — Discipline × Phase matrix

Build the matrix. Adapt phases to engagement mode:

Phase \ DisciplineBAPMDesignDev (FE)Dev (BE)QADevOpsTotal
Discovery follow-ups
Design (wireframe → high-fi)
Build phase 1
Build phase 2
QA / hardening
Launch / handoff
Total per discipline

Numbers are person-hours or person-days. Pick one unit and stick to it.

Step 4 — Three-point ranges

For every cell with non-trivial effort, capture:

  • Low — best case, no surprises
  • Expected — most likely
  • High — top 10% case (NOT worst case — worst case is "kill")

Total each row and column. Sum row totals = sum of column totals = grand total (sanity check).

Step 5 — Apply uncertainty multipliers

Per discipline, apply a multiplier reflecting estimate confidence:

ConfidenceMultiplier on Expected
Done this exact thing before1.0
Familiar pattern, slight variation1.2
Familiar tech, new domain1.5
New tech + new domain2.0
Bleeding edge / heavy R&D3.0

Show both raw and adjusted totals.

Step 6 — Assumptions that invalidate the estimate

A bullet list of what must be true. If any becomes false, the estimate is void and re-estimation is required.

Typical:

  • Scope-doc remains stable (no mid-build scope additions)
  • Client provides decisions within 2 business days
  • Existing tech stack: <X>
  • Auth uses existing SSO (no new identity provider)
  • Data volume below <N>
  • Third-party APIs: <list> available with documented contracts
  • Design assets / brand guidelines provided by client
  • Single time zone overlap of 4+ hours daily

Step 7 — Risk-driven contingency

Pull from risk-assumption-map.md (if present) the rows tagged [agency] or [shared]. For each, add a contingency line item:

RiskIf realized, additional effortOwner

This becomes the basis for proposal "contingency budget" or T&M risk-pool conversations.

Step 8 — Format for downstream skills

Format the output so proposal can pull headline numbers + assumption list verbatim, and sow-draft can pull the matrix + risk register.

Output

./discovery/estimation.md per ./template.md.

Append to _log.md: [estimation | YYYY-MM-DD] method: <method>; total: <hours/days>; multiplier: <Xx>; contingency: <Y%>.

Anti-patterns

  • Single-number estimate. Always 3-point. Stakeholders read the single number as a commitment.
  • No assumption list. An estimate without listed assumptions = a commitment. Different commercial implications.
  • Padding via vague "buffer". Be specific: "+20% because new domain", not "+20% buffer".
  • Estimating by hours when budget is in days. Match the unit the client thinks in.
  • Hiding contingency. If risks are real, name them with their cost. Hidden buffers fund themselves with worse risks later.
  • Estimating without a scope-doc. Strongly preferred to run feature-scoping first; if you proceed via inline bootstrap, the estimate inherits any vagueness in the bullets — keep it tagged DRAFT-ONLY until a real scope doc exists.

What ships with it: 1 file

1.2 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.