xcost-estimate
Skill1 starsChanged 3 months agoMITView on GitHub
Produces a forward client quote / project cost estimate from a PRD, PDF, pitch deck, Figma scope, or written brief — what to charge to build something that does not exist yet. Use when the user says xcost, xcost-estimate, cost scale, how much should I charge, project quote, client quote, bid, proposal pricing, or asks for a price on a scoped build. Distinct from cost-estimate (rebuild cost of an existing codebase). Outputs P10/P50/P90 fees, workstreams, exclusions, timeline, and a needs list.
In this repository25 other files it gives its agents.
- automateSkill
- autopilotSkill
- canvasSkill
- complex-problem-solvingSkill
- cost-estimateSkill
- create-hookSkill
- create-ruleSkill
- create-skillSkill
- create-subagentSkill
- deep-researchSkill
- large-figma-featureSkill
- loopSkill
- migrate-to-skillsSkill
- onboardSkill
- rename-chatSkill
- review-bugbotSkill
- review-securitySkill
- reviewSkill
- sdkSkill
- shellSkill
- split-to-prsSkill
- statuslineSkill
- update-cli-configSkill
- update-cursor-settingsSkill
- youspeak-aws-powerSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 8 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
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
- Distinctive: line 67
Must-have features for this bid (MVP / pilot / full)
- Very specific: line 73
If a PDF is image-only, convert pages (pdftoppm) and read them.
- Very specific: line 77
Read references/rate-card.md and references/workstreams.md.
- Distinctive: line 102
If design is not supplied by the client, add UX hours (see rate-card).
- Distinctive: line 132
Always list what the client / sponsor must provide: Figma or brief, Apple/Play accounts, payment merchant KYC, SMS sender ID, hosting/AWS, …
- Distinctive: line 143
Never: write the quote into the git working tree unless the user asks.
- Distinctive: line 149
Do not pad silently — put padding in contingency and P90.
- Distinctive: line 150
Do not price ops hiring, agent salaries, or ministry change-management as eng fees unless asked (list under Out of scope / client ops).
- Distinctive: line 151
If AI-assisted delivery is assumed, say so.
- Distinctive: line 152
Prefer one clear bid package (e.g.
≈ “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.
Files
XCost Estimate (forward quote)
Skill root: ~/.cursor/skills/xcost-estimate/
You produce a defensible client quote for work that is not yet built.
This is not cost-estimate (replacement cost of an existing repo).
Philosophy
- Quote ≠ rebuild cost. Price the agreed scope, risk, and delivery role — not LOC that does not exist yet.
- Always give a range. P10 (tight / optimistic) / P50 (recommended) / P90 (padded / pessimistic).
- Scope is the product. List inclusions, exclusions, and assumptions explicitly. Ambiguity becomes contingency, not silent optimism.
- Two currencies when relevant. USD primary; add NGN at a stated FX if the buyer is Nigeria-local.
- Two-sig-figs on money.
$12,000not$12,347.82. - Say what role you are pricing. Solo engineer implementing designs vs full product team (PM + design + eng + QA).
When to refuse / redirect
| Ask | Action |
| "What did this existing repo cost to build?" | Use cost-estimate instead |
| Scope is a one-liner with no features | Ask ≤5 clarifying questions, then estimate with loud assumptions |
| User wants a single exact number only | Still give P10/P50/P90; mark P50 as the bid |
Bundled resources
references/rate-card.md— hourly bands, complexity tiers, contingencyreferences/workstreams.md— common module hour baselinesassets/quote-template.md— output structure (copy and fill)
Workflow
- [ ] Step 0: Confirm mode = forward quote (not rebuild)
- [ ] Step 1: Ingest scope (PDF / PRD / chat / Figma notes)
- [ ] Step 2: Slice into workstreams + complexity tier
- [ ] Step 3: Estimate hours (P10 / P50 / P90) per workstream
- [ ] Step 4: Pick rate band + apply contingency
- [ ] Step 5: Calendar timeline + payment milestones
- [ ] Step 6: Needs list (client must provide)
- [ ] Step 7: Emit quote via assets/quote-template.mdStep 0 — Mode check
State in one line: "XCost forward quote for [project]. Not a rebuild-cost estimate."
Step 1 — Ingest scope
Extract:
- Problem / users / platforms (web / iOS / Android / admin)
- Must-have features for this bid (MVP / pilot / full)
- Integrations (payments, SMS, maps, KYC, gov APIs)
- Non-functional: offline, low-bandwidth, multilingual, audit logs
- Timeline hints from the deck
- Who supplies design / content / hosting accounts
If a PDF is image-only, convert pages (pdftoppm) and read them. Do not invent features not in the source — mark gaps as assumptions.
Step 2 — Tier + workstreams
Read references/rate-card.md and references/workstreams.md.
Pick one complexity tier for the bid package (not the dream end-state):
| Tier | Typical | Examples |
| T1 Starter | Landing + forms + CMS-ish | Waitlist, brochure, simple CRUD |
| T2 MVP | Auth + 1–2 roles + core loop | Marketplace v1, booking MVP |
| T3 Pilot | Multi-role + payments + admin + ops | Regulated marketplace pilot |
| T4 Platform | Scale, multi-region, heavy compliance | Statewide expansion product |
Break scope into workstreams (backend, mobile/web, admin, payments, DevOps, QA, etc.). Map each to baselines in workstreams.md, then adjust ± for novelty.
Step 3 — Hours
For each workstream:
hours_P50 = baseline_adjusted
hours_P10 = P50 × 0.75
hours_P90 = P50 × 1.40Sum → Engineering hours (P10 / P50 / P90).
If design is not supplied by the client, add UX hours (see rate-card). If design is supplied (Figma), add implementation-only UI hours, not discovery design.
Step 4 — Money
Read references/rate-card.md.
fee = hours × blended_rate × (1 + contingency)- Contingency: T1 10% · T2 15% · T3 20% · T4 25% (apply to P50 for the recommended bid; show raw and contingent).
- Pick a recommended rate with one justification sentence (e.g. solo senior Nigeria remote for ministry-adjacent pilot).
- Also show an alternate band (e.g. US remote) so the user can choose positioning.
Recommended bid = contingent P50. Show P10/P90 as negotiation / risk bounds.
Step 5 — Timeline & milestones
Convert P50 eng hours → calendar using solo efficiency ~70% of a 40h week ≈ 28 focused hrs/week:
calendar_weeks = eng_hours_P50 / 28Propose 3–4 payment milestones (e.g. 30% start / 40% beta / 20% launch / 10% hypercare).
Respect any deck phase dates only as client aspiration; call out if the bid package is Phase-1-only.
Step 6 — Needs list
Always list what the client / sponsor must provide: Figma or brief, Apple/Play accounts, payment merchant KYC, SMS sender ID, hosting/AWS, domain, legal copy, pilot users, price-regulation data, stakeholder availability.
Step 7 — Emit
Copy assets/quote-template.md structure into the chat response.
Optionally write the same markdown to a temp path via:
OUTDIR=$(python3 -c "import tempfile,pathlib,os; p=pathlib.Path(tempfile.gettempdir())/'xcost-estimate'/pathlib.Path(os.getcwd()).name; p.mkdir(parents=True,exist_ok=True); print(p)")Never write the quote into the git working tree unless the user asks.
Guardrails
- Do not pad silently — put padding in contingency and P90.
- Do not price ops hiring, agent salaries, or ministry change-management as eng fees unless asked (list under Out of scope / client ops).
- If AI-assisted delivery is assumed, say so; do not cut hours below a floor of 0.55× traditional solo estimate without stating the AI-assist assumption.
- Prefer one clear bid package (e.g. "Pilot MVP") plus optional add-ons over a vague "whole vision" number.
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
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.

