agentleFS
GoodnessmbakaraGoodnessmbakara/codex-skills/skills/xcost-estimate/SKILL.md

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.

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
  1. Distinctive:

    Must-have features for this bid (MVP / pilot / full)

    line 67
  2. Very specific:

    If a PDF is image-only, convert pages (pdftoppm) and read them.

    line 73
  3. Very specific:

    Read references/rate-card.md and references/workstreams.md.

    line 77
  4. Distinctive:

    If design is not supplied by the client, add UX hours (see rate-card).

    line 102
  5. Distinctive:

    Always list what the client / sponsor must provide: Figma or brief, Apple/Play accounts, payment merchant KYC, SMS sender ID, hosting/AWS, …

    line 132
  6. Distinctive:

    Never: write the quote into the git working tree unless the user asks.

    line 143
  7. Distinctive:

    Do not pad silently — put padding in contingency and P90.

    line 149
  8. Distinctive:

    Do not price ops hiring, agent salaries, or ministry change-management as eng fees unless asked (list under Out of scope / client ops).

    line 150
  9. Distinctive:

    If AI-assisted delivery is assumed, say so.

    line 151
  10. Distinctive:

    Prefer one clear bid package (e.g.

    line 152

≈ “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

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

  1. Quote ≠ rebuild cost. Price the agreed scope, risk, and delivery role — not LOC that does not exist yet.
  2. Always give a range. P10 (tight / optimistic) / P50 (recommended) / P90 (padded / pessimistic).
  3. Scope is the product. List inclusions, exclusions, and assumptions explicitly. Ambiguity becomes contingency, not silent optimism.
  4. Two currencies when relevant. USD primary; add NGN at a stated FX if the buyer is Nigeria-local.
  5. Two-sig-figs on money. $12,000 not $12,347.82.
  6. Say what role you are pricing. Solo engineer implementing designs vs full product team (PM + design + eng + QA).

When to refuse / redirect

AskAction
"What did this existing repo cost to build?"Use cost-estimate instead
Scope is a one-liner with no featuresAsk ≤5 clarifying questions, then estimate with loud assumptions
User wants a single exact number onlyStill give P10/P50/P90; mark P50 as the bid

Bundled resources

  • references/rate-card.md — hourly bands, complexity tiers, contingency
  • references/workstreams.md — common module hour baselines
  • assets/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.md

Step 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):

TierTypicalExamples
T1 StarterLanding + forms + CMS-ishWaitlist, brochure, simple CRUD
T2 MVPAuth + 1–2 roles + core loopMarketplace v1, booking MVP
T3 PilotMulti-role + payments + admin + opsRegulated marketplace pilot
T4 PlatformScale, multi-region, heavy complianceStatewide 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.40

Sum → 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 / 28

Propose 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.

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.