---
name: estimate
type: workflow
description: "Produces time and complexity estimates for features, tasks, or sprints using story points, t-shirt sizing, or day estimates. Use when the user asks for an estimate, wants to size a feature, or mentions estimation or planning poker."
argument-hint: "[task-description]"
user-invocable: true
allowed-tools: Read, Glob, Grep
effort: 1
when_to_use: "When estimating task effort, complexity, or duration for planning purposes"
When this skill is invoked:
Read the task description from the argument. If the description is too
vague to estimate meaningfully, ask for clarification before proceeding.
Read CLAUDE.md for project context: tech stack, coding standards,
architectural patterns, and any estimation guidelines.
Read relevant design documents from design/docs/ if the task relates
to a documented feature or system.
Scan the codebase to understand the systems affected by this task:
- Identify files and modules that would need to change
- Assess the complexity of those files (size, dependency count, cyclomatic
complexity)
- Identify integration points with other systems
- Check for existing test coverage in the affected areas
Read past sprint data from production/sprints/ if available:
- Look for similar completed tasks and their actual effort
- Calculate historical velocity (planned vs actual)
- Identify any estimation bias patterns (consistently over or under)
Analyze the following factors:
Code Complexity:
- Lines of code in affected files
- Number of dependencies and coupling level
- Whether this touches core/engine code vs leaf/feature code
- Whether existing patterns can be followed or new patterns are needed
Scope:
- Number of systems touched
- New code vs modification of existing code
- Amount of new test coverage required
- Data migration or configuration changes needed
Risk:
- New technology or unfamiliar libraries
- Unclear or ambiguous requirements
- Dependencies on unfinished work
- Cross-system integration complexity
- Performance sensitivity
Generate the estimate:
## Task Estimate: [Task Name]
Generated: [Date]
### Task Description
[Restate the task clearly in 1-2 sentences]
### Complexity Assessment
| Factor | Assessment | Notes |
|--------|-----------|-------|
| Systems affected | [List] | [Core, business, UI, etc.] |
| Files likely modified | [Count] | [Key files listed below] |
| New code vs modification | [Ratio, e.g., 70% new / 30% modification] | |
| Integration points | [Count] | [Which systems interact] |
| Test coverage needed | [Low / Medium / High] | [Unit, integration, manual] |
| Existing patterns available | [Yes / Partial / No] | [Can follow existing code or new ground] |
**Key files likely affected:**
- `[path/to/file1]` -- [what changes here]
- `[path/to/file2]` -- [what changes here]
- `[path/to/file3]` -- [what changes here]
### Effort Estimate
| Scenario | Days | Assumption |
|----------|------|------------|
| Optimistic | [X] | Everything goes right, no surprises, requirements are clear |
| Expected | [Y] | Normal pace, minor issues, one round of review feedback |
| Pessimistic | [Z] | Significant unknowns surface, blocked for a day, requirements change |
**Recommended budget: [Y days]**
[If historical data is available: "Based on [N] similar tasks that averaged
[X] days actual vs [Y] days estimated, a [correction factor] adjustment has
been applied."]
### Confidence: [High / Medium / Low]
**High** -- Clear requirements, familiar systems, follows existing patterns,
similar tasks completed before.
**Medium** -- Some unknowns, touches moderately complex systems, partial
precedent from previous work.
**Low** -- Significant unknowns, new technology, unclear requirements, or
cross-cutting concerns across many systems.
[Explain which factors drive the confidence level for this specific task.]
### Risk Factors
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| [Specific risk] | [High/Med/Low] | [Days added if realized] | [How to reduce] |
| [Another risk] | [Likelihood] | [Impact] | [Mitigation] |
### Dependencies
| Dependency | Status | Impact if Delayed |
|-----------|--------|-------------------|
| [What must be done first] | [Done / In Progress / Not Started] | [How it affects this task] |
### Suggested Breakdown
| # | Sub-task | Estimate | Notes |
|---|----------|----------|-------|
| 1 | [Research / spike] | [X days] | [If unknowns need investigation first] |
| 2 | [Core implementation] | [X days] | [The main work] |
| 3 | [Integration with system X] | [X days] | [Connecting to existing code] |
| 4 | [Testing and validation] | [X days] | [Writing tests, manual verification] |
| 5 | [Code review and iteration] | [X days] | [Review feedback, fixes] |
| | **Total** | **[Y days]** | |
### Historical Comparison
[If similar tasks exist in sprint history:]
| Similar Task | Estimated | Actual | Relevant Difference |
|-------------|-----------|--------|-------------------|
| [Past task 1] | [X days] | [Y days] | [What makes it similar/different] |
| [Past task 2] | [X days] | [Y days] | [What makes it similar/different] |
### Notes and Assumptions
- [Key assumption that affects the estimate]
- [Another assumption]
- [Any caveats about scope boundaries -- what is included vs excluded]
- [Recommendations: e.g., "Consider a spike first if requirement X is unclear"]
- Output the estimate to the user with a brief summary: recommended
budget, confidence level, and the single biggest risk factor.
Guidelines
- Always give a range (optimistic / expected / pessimistic), never a single
number. Single-point estimates create false precision.
- The recommended budget should be the expected estimate, not the optimistic
one. Padding is not dishonest -- it is realistic.
- If confidence is Low, recommend a time-boxed spike or prototype before
committing to the full estimate.
- Be explicit about what is included and excluded. Scope ambiguity is the
most common source of estimation error.
- Round to half-day increments. Estimating in hours implies false precision
for tasks longer than a day.
- If the task is too large to estimate confidently (more than 10 days
expected), recommend breaking it into smaller tasks and estimating those
individually.
- Do not pad estimates silently. If risk exists, call it out explicitly in
the risk factors section so the team can decide how to handle it.
Protocol
- Question: Reads task description from argument; asks for clarification if scope is too vague to estimate
- Options: Skip — single analysis path
- Decision: Skip — estimate is advisory
- Draft: Full estimate shown in conversation only
- Approval: Skip — read-only; no files written
Output
Deliver exactly:
- Estimate: X days (rounded to half-day increments)
- Confidence: High / Medium / Low with one-sentence reason
- Risk factors: explicit list — no silent padding
- Recommendation: proceed / run a spike first / break into smaller tasks
1---2name: estimate3description: ---4---5---6name: estimate7type: workflow8description: "Produces time and complexity estimates for features, tasks, or sprints using story points, t-shirt sizing, or day estimates. Use when the user asks for an estimate, wants to size a feature, or mentions estimation or planning poker."9argument-hint: "[task-description]"10user-invocable: true11allowed-tools: Read, Glob, Grep12effort: 113when_to_use: "When estimating task effort, complexity, or duration for planning purposes"14---1516When this skill is invoked:17181. **Read the task description** from the argument. If the description is too19 vague to estimate meaningfully, ask for clarification before proceeding.20212. **Read CLAUDE.md** for project context: tech stack, coding standards,22 architectural patterns, and any estimation guidelines.23243. **Read relevant design documents** from `design/docs/` if the task relates25 to a documented feature or system.26274. **Scan the codebase** to understand the systems affected by this task:28 - Identify files and modules that would need to change29 - Assess the complexity of those files (size, dependency count, cyclomatic30 complexity)31 - Identify integration points with other systems32 - Check for existing test coverage in the affected areas33345. **Read past sprint data** from `production/sprints/` if available:35 - Look for similar completed tasks and their actual effort36 - Calculate historical velocity (planned vs actual)37 - Identify any estimation bias patterns (consistently over or under)38396. **Analyze the following factors**:4041 **Code Complexity**:42 - Lines of code in affected files43 - Number of dependencies and coupling level44 - Whether this touches core/engine code vs leaf/feature code45 - Whether existing patterns can be followed or new patterns are needed4647 **Scope**:48 - Number of systems touched49 - New code vs modification of existing code50 - Amount of new test coverage required51 - Data migration or configuration changes needed5253 **Risk**:54 - New technology or unfamiliar libraries55 - Unclear or ambiguous requirements56 - Dependencies on unfinished work57 - Cross-system integration complexity58 - Performance sensitivity59607. **Generate the estimate**:6162```markdown63## Task Estimate: [Task Name]64Generated: [Date]6566### Task Description67[Restate the task clearly in 1-2 sentences]6869### Complexity Assessment7071| Factor | Assessment | Notes |72|--------|-----------|-------|73| Systems affected | [List] | [Core, business, UI, etc.] |74| Files likely modified | [Count] | [Key files listed below] |75| New code vs modification | [Ratio, e.g., 70% new / 30% modification] | |76| Integration points | [Count] | [Which systems interact] |77| Test coverage needed | [Low / Medium / High] | [Unit, integration, manual] |78| Existing patterns available | [Yes / Partial / No] | [Can follow existing code or new ground] |7980**Key files likely affected:**81- `[path/to/file1]` -- [what changes here]82- `[path/to/file2]` -- [what changes here]83- `[path/to/file3]` -- [what changes here]8485### Effort Estimate8687| Scenario | Days | Assumption |88|----------|------|------------|89| Optimistic | [X] | Everything goes right, no surprises, requirements are clear |90| Expected | [Y] | Normal pace, minor issues, one round of review feedback |91| Pessimistic | [Z] | Significant unknowns surface, blocked for a day, requirements change |9293**Recommended budget: [Y days]**9495[If historical data is available: "Based on [N] similar tasks that averaged96[X] days actual vs [Y] days estimated, a [correction factor] adjustment has97been applied."]9899### Confidence: [High / Medium / Low]100101**High** -- Clear requirements, familiar systems, follows existing patterns,102similar tasks completed before.103104**Medium** -- Some unknowns, touches moderately complex systems, partial105precedent from previous work.106107**Low** -- Significant unknowns, new technology, unclear requirements, or108cross-cutting concerns across many systems.109110[Explain which factors drive the confidence level for this specific task.]111112### Risk Factors113114| Risk | Likelihood | Impact | Mitigation |115|------|-----------|--------|------------|116| [Specific risk] | [High/Med/Low] | [Days added if realized] | [How to reduce] |117| [Another risk] | [Likelihood] | [Impact] | [Mitigation] |118119### Dependencies120121| Dependency | Status | Impact if Delayed |122|-----------|--------|-------------------|123| [What must be done first] | [Done / In Progress / Not Started] | [How it affects this task] |124125### Suggested Breakdown126127| # | Sub-task | Estimate | Notes |128|---|----------|----------|-------|129| 1 | [Research / spike] | [X days] | [If unknowns need investigation first] |130| 2 | [Core implementation] | [X days] | [The main work] |131| 3 | [Integration with system X] | [X days] | [Connecting to existing code] |132| 4 | [Testing and validation] | [X days] | [Writing tests, manual verification] |133| 5 | [Code review and iteration] | [X days] | [Review feedback, fixes] |134| | **Total** | **[Y days]** | |135136### Historical Comparison137[If similar tasks exist in sprint history:]138139| Similar Task | Estimated | Actual | Relevant Difference |140|-------------|-----------|--------|-------------------|141| [Past task 1] | [X days] | [Y days] | [What makes it similar/different] |142| [Past task 2] | [X days] | [Y days] | [What makes it similar/different] |143144### Notes and Assumptions145- [Key assumption that affects the estimate]146- [Another assumption]147- [Any caveats about scope boundaries -- what is included vs excluded]148- [Recommendations: e.g., "Consider a spike first if requirement X is unclear"]149```1501518. **Output the estimate** to the user with a brief summary: recommended152 budget, confidence level, and the single biggest risk factor.153154### Guidelines155156- Always give a range (optimistic / expected / pessimistic), never a single157 number. Single-point estimates create false precision.158- The recommended budget should be the expected estimate, not the optimistic159 one. Padding is not dishonest -- it is realistic.160- If confidence is Low, recommend a time-boxed spike or prototype before161 committing to the full estimate.162- Be explicit about what is included and excluded. Scope ambiguity is the163 most common source of estimation error.164- Round to half-day increments. Estimating in hours implies false precision165 for tasks longer than a day.166- If the task is too large to estimate confidently (more than 10 days167 expected), recommend breaking it into smaller tasks and estimating those168 individually.169- Do not pad estimates silently. If risk exists, call it out explicitly in170 the risk factors section so the team can decide how to handle it.171172## Protocol173174- **Question**: Reads task description from argument; asks for clarification if scope is too vague to estimate175- **Options**: Skip — single analysis path176- **Decision**: Skip — estimate is advisory177- **Draft**: Full estimate shown in conversation only178- **Approval**: Skip — read-only; no files written179180## Output181182Deliver exactly:183184- **Estimate**: X days (rounded to half-day increments)185- **Confidence**: High / Medium / Low with one-sentence reason186- **Risk factors**: explicit list — no silent padding187- **Recommendation**: proceed / run a spike first / break into smaller tasks