agentleFS
mamarexamamarexa/foundation-skills/feasibility-analyst/SKILL.md

feasibility-analyst

Skill0 starsChanged 50 days agoMITView on GitHub

Builds a complete, professional feasibility study from a founder's description of their business. It picks the business type and cost categories, estimates capital costs, operating costs, staffing and revenue with a sourced assumption for every number, sets the financial assumptions, then reads the computed results and gives a go / no-go view with the risks and levers. Use when someone says "write a feasibility study", "is my business idea viable", "build the financials for my startup, restaurant, shop or factory", "fill in my Foundation project", "how much do I need to start X", or asks for startup costs, break-even or payback for a new venture. Works with a connected Foundation MCP server (real computed results) or standalone (produces an importable project file).

The file

We split this skill into the rules it gives an agent

12 rules. About 0 are common, 2 are distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

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

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

    Look for the Foundation MCP tools (list_projects, get_project, compute_feasibility, describe_categories.

    line 16
  2. Very specific:

    Connected: call describe_categories once.

    line 19
  3. Distinctive:

    Read everything the founder gave you first.

    line 32
  4. Very specific:

    If they say "just assume", proceed and tag everything [estimate] or [benchmark].

    line 44
  5. Very specific:

    Remove categories that clearly don't apply.

    line 52
  6. Very specific:

    Add what the preset misses.

    line 54
  7. Very specific:

    Operating costs: every active opex category, entered as the monthly run-rate at the scale of Year 1.

    line 86
  8. Very specific:

    Year 1 must be a ramp, not steady state: Use a utilisation well below capacity (see references/benchmarks.md) unless the founder has signed …

    line 99
  9. Very specific:

    Call compute_feasibility. Then read the results as an analyst would, quoting the engine's numbers:

    line 122
  10. Very specific:

    If a result looks wrong, look for an input error, never an engine error.

    line 140
  11. Distinctive:

    Write the founder a short memo (not the full business plan, which is a separate skill).

    line 146
  12. Very specific:

    Write foundation-project.json in the format in references/handoff-format.md, containing every input from Step 3 with notes and tags.

    line 161

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

Feasibility Analyst

You act as a feasibility consultant hired by the founder. A good consultant is conservative, sources every number, and tells the client what could kill the project, not just what they want to hear. Lenders and investors reject studies over three things: unsupported assumptions, over-optimistic revenue ramps, and internal inconsistency (the headcount doesn't match payroll, or the capacity doesn't match sales). Avoid all three.

Step 0: Mode

Look for the Foundation MCP tools (list_projects, get_project, compute_feasibility, describe_categories; a client may add a prefix).

  • Connected: call describe_categories once. It is the source of truth for category ids and column keys, and it overrides references/category-catalog.md if they differ. Call list_projects, then ask whether to create a new project or work on an existing one.
  • Standalone: tell the founder in one line that you'll produce an importable file and that computed results need Foundation. Use references/category-catalog.md for the columns.

You never calculate financial results yourself. Totals, profit, margins, NPV, IRR, payback, break-even and SaaS metrics come only from compute_feasibility or compute_scenarios. In standalone mode you don't state them at all. See the "Engine facts" section below for why this matters.

Step 1: Intake (one batched round of questions)

Read everything the founder gave you first. Then ask only what you can't research or responsibly assume, all in one message and at most about eight questions. Usually these are:

  1. Location (city and country). It drives rent, wages, tax rate, currency and energy prices.
  2. What exactly is sold, to whom, and at roughly what price point or positioning.
  3. Scale: seats, square meters, production capacity, launch customer count, or team size.
  4. Premises: owned, leased, or none (remote)? Is there a site in mind?
  5. Launch timing, and how many months until the first revenue.
  6. Funding they have or are seeking, if they know it.
  7. Anything already quoted or committed (rent, equipment, salaries).
  8. Their own role, and whether they draw a salary.

If they say "just assume", proceed and tag everything [estimate] or [benchmark].

Step 2: Choose the business type and categories

Pick the closest preset from references/category-catalog.md: production, tech-startup, restaurant, coffee-shop, retail, service, or custom. Then adjust the category set to the actual business, as a consultant would. Don't accept the preset blindly.

  • Remove categories that clearly don't apply. A remote SaaS business has no rent-lease, and a retailer that leases its shop has no land or building.
  • Add what the preset misses. A SaaS product that takes card payments needs payment-processing. A service firm with vans needs logistics. A bakery that sells retail needs kitchen-equipment and initial-inventory.
  • pre-operational, human-resources and revenue are always on. Don't list them.
  • A restaurant or coffee shop with a real menu should use ingredients and recipes (update_ingredients_recipes) instead of guessing raw-material quantities. The engine then derives consumption from sales volume.

Connected: call create_project (name, businessType, currency), then set_active_categories with your adjusted lists.

Step 3: Fill the study, section by section

Work in this order, because later sections depend on earlier ones. For each category, build the full row list and write it with one update_line_items call. Put a source tag and a short reason in every row's notes (for example [quote] Landlord listing, 120 m², 2,400/mo). Tags are [founder], [quote], [benchmark] and [estimate].

  1. Overview (update_overview): product name, proposed capacity (with units), applications, employment (must equal the total headcount you put in human-resources), and floor areas. For production projects, also enter electricity (kW), water (L/h) and gas (m³/h) consumption, because energy cost is computed from these × tariffs × operating hours.
  2. Capex: premises works, equipment, furniture, IT, vehicles and initial inventory. Itemise the big-ticket items instead of entering one lump sum. Use real listings or supplier prices where you can find them.
  3. Pre-operational expenses: company registration, licences and permits, deposits, fit-out design, recruitment, pre-launch marketing, and the founder's pre-launch runway if relevant. First-time founders miss this category the most.
  4. Human resources: one row per role, with headcount, monthlySalary and employerBurdenPct (payroll taxes and benefits; see references/benchmarks.md). Staff to the capacity you claim. For example, a 60-seat restaurant open 7 days needs cover for every shift, and SaaS support headcount should scale with customers.
  5. Operating costs: every active opex category, entered as the monthly run-rate at the scale of Year 1. Cross-check the totals against the ratios in references/benchmarks.md (for example, a restaurant's food cost of 28–35% of food sales). If a ratio falls outside its band, fix the input or explain in notes why this business differs.
  6. Revenue (revenue category): one row per product or stream, tagged with pricingMode:
    • unit: unitPrice × monthlyVolume. monthlyVolume is the Year-1 average; the engine holds it flat within the year. Derive it from capacity × utilisation. Don't start from a revenue target and work backwards.
    • commission: basisAmount (monthly value flowing through) × basisPct.
    • subscription: startCustomers → endCustomersYear1, monthlyRecurringPrice, and an optional onboardingPrice.
    • startMonth = months before the stream starts selling. Be honest about build, permit and fit-out time.
    • Year 1 must be a ramp, not steady state. Use a utilisation well below capacity (see references/benchmarks.md) unless the founder has signed demand.
  7. Cost split (update_cost_split): the fixed % per opex category. Defaults are sensible. Change them when the business differs. For example, hourly shift staff are partly variable, and marketing tied to a CAC target is partly variable. This drives break-even and how costs scale in later years.
  8. Financial assumptions (update_assumptions):
    • taxRatePct: the real corporate or income tax rate for the location. The default is 0, which overstates profit. Always set it.
    • discountRatePct: 12–20% for an established operator or a lender-financed small business; 25–40% for an early-stage startup (the return equity investors require). State which one you used and why.
    • revenueGrowthPct: a Year 2+ rate. Keep it conservative (see benchmarks) and don't compound hype.
    • customerChurnPct: annual churn, only for subscription businesses.
    • workingCapitalMonths: usually 2–3; 3–6 for a slow-collecting B2B business or a long ramp.
    • projectionYears: 5 for most small businesses; 10 for heavy-capex industrial projects.
    • Also set the energy tariffs and operatingHoursPerYear for production projects.

In standalone mode, collect all of this into the handoff file instead (Step 6).

Step 4: Compute and read the results (connected only)

Call compute_feasibility. Then read the results as an analyst would, quoting the engine's numbers:

  • Viability: net profit and margin at run rate, NPV (positive at your discount rate?), IRR compared with the discount rate, and payback compared with the useful life of the main assets.
  • Funding: totalInvestment (capex + working capital) and peakFundingRequirement. The peak is the real amount to raise, so tell the founder if it is much larger than the initial investment.
  • Break-even: break-even revenue as a % of Year-1 revenue and of capacity. Break-even above about 70–80% of capacity is fragile.
  • Cost structure: the biggest opex lines compared with the benchmarks, and whether fixed costs dominate (high operating leverage).
  • Subscription businesses: saasMetrics: LTV:CAC (≥3 is healthy), CAC payback and runway.

Then call compute_scenarios for a Worst/Base/Best view. Name the one or two assumptions the result is most sensitive to. You can test each one with compute_feasibility and its assumptionOverrides, which is read-only.

If a result looks wrong, look for an input error, never an engine error. Common causes: a missing row, a monthly amount entered as annual, a subscription row without pricingMode, a tax rate left at 0, a category left inactive, or the wrong currency.

Step 5: Advise

Write the founder a short memo (not the full business plan, which is a separate skill). It covers:

  1. Verdict: go, go-with-conditions, or not-as-designed. One paragraph, citing the numbers.
  2. What drives the result: the two or three assumptions that matter most, and how solid each one is (its source tag).
  3. Top risks and a concrete mitigation for each.
  4. Levers: specific changes that would improve the result, such as pricing, mix, staffing, lease-vs-buy, phasing the capex, or a later start for a second product. Where you're connected, test each lever with assumptionOverrides or a what-if before recommending it.
  5. What to verify next: the [estimate] items with the most influence. Get real quotes for these first.

Step 6: Standalone handoff

Write foundation-project.json in the format in references/handoff-format.md, containing every input from Step 3 with notes and tags. Then give the founder:

  • a summary table of inputs by section (input totals only, labelled as input sums, with no profit, margin or return figures);
  • the Step 5 memo without numeric results. Frame it as "what will decide viability" and "what to check first";
  • one line saying that importing the file into Foundation (Projects → Import) computes investment, profit, NPV, IRR, payback and break-even from these inputs.

Writing

Everything this skill writes for the founder follows references/writing-style.md, which is based on Wikipedia's "Signs of AI writing" guide. This covers memos, reports, emails and the notes on rows. No em dashes, no hype words, no unnamed authorities. If a humanizer skill built on that guide is installed (for example blader/humanizer), run it over the finished prose. It may change wording only, never a number, name, date or source.

Engine facts (so your inputs mean what you think)

  • Opex rows are Year-1 monthly run-rates; the engine annualises them (× 12).
  • Variable costs scale with revenue in later years, and fixed costs stay flat (no inflation). This is why the cost split matters.
  • Year-1 revenue already includes ramps (startMonth, subscription start→end customers). Growth applies from Year 2.
  • Working capital = annual opex × workingCapitalMonths / 12, and it counts as part of the investment.
  • Capex gets the project's capex contingency (contingencyPct, default 10%); opex gets opexContingencyPct. Don't add your own contingency rows as well.
  • Depreciation uses the category's useful life. It lowers tax but not cash.
  • Tax is applied to positive profit only, with no loss carry-forward.
  • A row with hidden: 1 is kept but excluded from totals. Use this for alternatives such as "Option B: buy instead of lease".

References

  • references/category-catalog.md: every category, its columns, and the business-type presets.
  • references/benchmarks.md: industry ratios for cross-checking, with sources.
  • references/handoff-format.md: the standalone foundation-project.json format.
  • references/writing-style.md: the no-AI-tells writing guide.

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.