agentleFS
KirKruglovKirKruglov/claude-project-manager/skills/generate-estimate/SKILL.md

generate-estimate

Skill6 starsChanged 7 months agoMITView on GitHub

Generates a preliminary timeline and budget estimate for an IT project

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. About 0 are common, 13 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈13

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the request is in Russian → use templates with the -ru suffix

    line 31
  2. Distinctive:

    All output (headings, labels, agent messages) must match the detected language.

    line 33
  3. Distinctive:

    If the request asks for task-level detail — WBS, man-hours per task, work breakdown, hour-by-hour schedule, or detailed task list — …

    line 65
  4. Distinctive:

    Do not start the estimate workflow.

    line 67
  5. Distinctive:

    Before checking files, scan the command for explicitly provided fields:

    line 70
  6. Distinctive:

    If project type AND main deliverables are both present in the command — proceed directly to Step 2 using that data.

    line 76
  7. Distinctive:

    Wait for response. Do not proceed without at least the project type.

    line 96
  8. Distinctive:

    If project data includes explicit constraints — adjust:

    line 105
  9. Distinctive:

    If specific tools are known (from questionnaire-client.md) — use those instead.

    line 142
  10. Distinctive:

    If GTM is not in scope — zero out rows and add note.

    line 148
  11. Distinctive:

    Add a one-line agent recommendation — which scenario to treat as baseline and why.

    line 160
  12. Very specific:

    Use the xlsx skill to create preliminary-estimate.xlsx following the template structure.

    line 166
  13. Distinctive:

    Does not build a detailed WBS or task schedule

    line 208
  14. Distinctive:

    Does not account for holidays, vacations, part-time availability — unless specified in constraints

    line 209
  15. Distinctive:

    Does not auto-update after scope changes — recalculation is triggered manually

    line 210

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill: generate-estimate

Generates a preliminary timeline and budget estimate for an IT project at the Initiation phase (Phase 1). Uses analogy-based estimation with built-in knowledge of typical IT project benchmarks. Output: preliminary-estimate.xlsx with three scenarios (optimistic / realistic / pessimistic). Mode B: agent prepares draft, PM reviews and adjusts.


Triggers

Russian: «сформируй оценку сроков», «подготовь предварительную оценку», «оцени сроки проекта», «сделай оценку по аналогам», «нужна предварительная оценка», «оцени бюджет», «ballpark-оценка» English: "generate estimate", "preliminary estimate", "estimate timeline and budget", "create project estimate", "ballpark estimate", "rough estimate"


Language Detection

Determine the language of the user's request:

  • If the request is in Russian → use templates with the -ru suffix
  • Otherwise → use templates with the -en suffix
  • All output (headings, labels, agent messages) must match the detected language.

Input

DataRequiredSourceNotes
Project name and typeyesCLAUDE.md, project-charter.md, or commandTypes: MVP / redesign / integration / GTM / feature set / internal tool
Scope / key deliverablesyesquestionnaire-client.md, project-charter.md, or commandUsed to determine phases
Constraints (budget, deadline)noconstraints.md or commandIf present — adjust analogue accordingly
Team compositionnoteam-list.md or commandRoles and headcount. If absent — agent derives from analogue
Role ratesnoCLAUDE.md or commandIf not provided — use rates from estimate-analogues.md
GTM in scopenoproject-charter.md, questionnaire-client.mdAffects presence of Budget Section C

Output

FileProject pathFormat
preliminary-estimate.xlsx{project}/01-initiation/.xlsx

File structure — 3 sheets (Summary, Timeline, Budget) — described in templates/preliminary-estimate-{lang}.md.


Instructions

Step 1 — Collect Input Data

Guard-rail — check for out-of-scope requests first. If the request asks for task-level detail — WBS, man-hours per task, work breakdown, hour-by-hour schedule, or detailed task list — respond: "generate-estimate creates a phase-level preliminary estimate using the analogy method. For task-level breakdown and man-hour estimates, use generate-project-plan after this estimate is approved by the PM." Do not start the estimate workflow. Do not ask for input data.

Check for inline data in the user's command. Before checking files, scan the command for explicitly provided fields:

  • Project type → present / absent
  • Main deliverables → present / absent
  • Constraints (deadline, budget ceiling) → present / absent
  • Team composition → present / absent

If project type AND main deliverables are both present in the command — proceed directly to Step 2 using that data. Ask only for fields that are genuinely absent.

Check for files (supplement or replace inline data):

  1. 01-initiation/questionnaire-client.md
  2. 01-initiation/project-charter.md
  3. input/constraints.md
  4. input/team-list.md

Extract from available files:

  • Project type and primary goals
  • Key deliverables and scope
  • Known constraints (deadline, budget ceiling)
  • Team composition (roles, FTE)
  • Whether GTM is in scope

If no files exist AND inline data is incomplete — ask only for missing fields in one block:

I need a few more details to build the estimate:
[list only the fields that are absent from the command and files]

Wait for response. Do not proceed without at least the project type.


Step 2 — Identify Project Type and Apply Analogue

  1. Read templates/estimate-analogues.md.
  2. Match the project to the closest type in the analogues table.
  3. Retrieve baseline ranges: duration and rates.
  4. If project data includes explicit constraints — adjust:
    • Hard deadline → optimistic scenario must not exceed it.
    • Hard budget ceiling → record in assumptions. Calculate the estimate using the standard analogue (do not adjust numbers to fit the ceiling). If the realistic scenario total exceeds the ceiling, add a risk flag to the Summary sheet and show in chat: "Warning: Realistic scenario [$X] exceeds the stated budget ceiling [$Y]. Recommend reviewing scope, phasing delivery, or adjusting team composition — consult PM before proceeding." Do not silently reduce the estimate to fit the ceiling.
  5. Determine whether GTM (Phase 5) is in scope. If not — zero out Budget Section C.

Step 3 — Build Phase Timeline (Sheet 2: Timeline)

For each phase (1–6), determine duration in weeks across three scenarios. Baseline: analogue from Step 2. Adjust based on project data:

FactorAdjustment
Team smaller than analogue+10–20% to duration
Team larger than analogue−5–10% to duration
Hard constraintsSet realistic = constraint, pessimistic → risk flag
Complex external interface / legacy+20–30% to development phase
No prototyping in scopeZero out Phase 3

Record key deliverables for each phase from the project scope.


Step 4 — Calculate Budget (Sheet 3: Budget)

Section A: Team

  1. Determine team composition (from team-list.md or analogue).
  2. For each role: FTE × scenario duration × rate.
  3. Rates: from project data → if absent, from estimate-analogues.md.
  4. Apply rate ranges by scenario: optimistic → opt rate; realistic → real rate; pessimistic → pest rate.

Section B: Infrastructure

  1. Identify project type → take range from estimate-analogues.md.
  2. Calculate: monthly item × number of months in scenario + one-time costs.
  3. If specific tools are known (from questionnaire-client.md) — use those instead.

Section C: Marketing/GTM

  1. Include only if GTM is in scope.
  2. Take range from estimate-analogues.md based on project size.
  3. If GTM is not in scope — zero out rows and add note.

Step 5 — Fill Sheet 1 (Summary)

  1. Enter header data: project, PM, date, project type.
  2. Record assumptions (minimum 3):
    • Estimation basis (analogy method)
    • Team composition (from data or analogue)
    • Constraints, if any
  3. Fill in the scenario summary table.
  4. Add a one-line agent recommendation — which scenario to treat as baseline and why.

Step 6 — Generate xlsx File and Save

  1. Use the xlsx skill to create preliminary-estimate.xlsx following the template structure.
  2. Save to {project}/01-initiation/preliminary-estimate.xlsx.
  3. Show in chat:
    • What was created: "Estimate saved as preliminary-estimate.xlsx in 01-initiation/."
    • Summary scenario table as a chat table.
    • List of assumptions.
    • Next step: "Estimate ready. Recommended: verify rates and team composition, then pass data to generate-budget (detailed budget)."
  4. Log to logs/log.md: date, skill, created file, project type, baseline scenario.

Templates

FilePurpose
templates/preliminary-estimate-ru.mdxlsx artifact schema (RU)
templates/preliminary-estimate-en.mdxlsx artifact schema (EN)
templates/estimate-analogues.mdAnalogue benchmarks and rate reference

Dependencies

Reads:

  • 01-initiation/questionnaire-client.md — scope, constraints, project type
  • 01-initiation/project-charter.md — deliverables, goals, constraints
  • input/constraints.md — hard constraints on deadline / budget
  • input/team-list.md — team composition and roles

Passes data to:

  • generate-budget — detailed budget is built on top of this estimate
  • generate-resource-plan — resource allocation across phases

Calls:

  • xlsx skill — for generating the .xlsx file

Constraints

  • Mode B: estimate is a draft for the PM — not a final document
  • Method is analogy-based, not bottom-up; ±30–50% accuracy is normal at initiation stage
  • Does not build a detailed WBS or task schedule
  • Does not account for holidays, vacations, part-time availability — unless specified in constraints
  • Does not auto-update after scope changes — recalculation is triggered manually
  • Handles one project per invocation

Changelog

DateVersionChange
2026-04-061.0Skill created. Analogy method, 3 scenarios, 3 budget categories. Artifact templates + analogues reference.
2026-04-061.1Post-eval fixes (2/6 → 6/6 expected): added inline-data guard in Step 1 (scan command before asking); added WBS out-of-scope guard-rail in Step 1; clarified budget ceiling behavior in Step 2 (flag risk, never silently compress).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.