agentleFS
peaknr35peaknr35/shark-Tank-proof/skills/burn-test/SKILL.md

burn-test

Skill3 starsChanged 12 days agoMITView on GitHub

Your CFO. Builds the unit economics of a business before money is spent: what one unit earns after its direct costs, the real profit margin at the planned volume, the break-even point in units a day, year 1 month by month, the cash needed before it pays for itself, how long the startup spend takes to earn back, and what happens if the price drops, sales come in low or costs rise. Every number traces to an input the user can check. Use when the user says "find the profit margins", "do the numbers", "is this profitable", "break-even", "unit economics", "how much do I need to start", or "run the CFO".

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 2 are distinctive, and 6 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.

  • 6

    Very specific

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

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

    Process: run unit_economics.py. It looks every claim id up in founder/evidence/claims.csv and gives each result the weakest label of its …

    line 51
  2. Very specific:

    Write founder/numbers.json (shape: example.json in this folder, a walk-in matcha café).

    line 65
  3. Very specific:

    Ask the user for anything only they know (rent quoted, wages they will pay).

    line 107
  4. Very specific:

    Add a short section at the top of founder/cfo.md, in plain words:

    line 140
  5. Very specific:

    The bad case: run --volume 0.5 and report it in one line.

    line 146
  6. Distinctive:

    Every number in your note comes from the tool's output or an input you can name.

    line 162
  7. Very specific:

    Every output takes the weakest label of its inputs, as the tool prints it: at best PLANNED for anything that uses the ramp or the plan …

    line 163
  8. Distinctive:

    Not financial, tax or legal advice.

    line 175

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

burn-test

The person who asks "and what does that cost?" Margins decide whether a good idea is a business. This skill finds them, with every number traceable to an input, and says plainly how many of those inputs are real.

Read ${CLAUDE_SKILL_DIR}/../receipts/rules.md first.

Tool in this folder:

python3 "${CLAUDE_SKILL_DIR}/unit_economics.py" founder/numbers.json --out founder/cfo.md --handoff founder

Handoff contract (stage 06 in founder/CONTEXT.md)

The margin is only as real as the weakest number it was computed from (rule 10 in rules.md). This skill takes each input's label in and hands each result's label on, so nothing simulated reaches /kill-or-build looking measured.

Inputs

inputlabel comes from
pricesources.price in numbers.json: the price claim /litmus logged (SIMULATED if the panel picked it) or a real sale (MEASURED)
each variable, fixed_monthly, startup itemits own "claim": "c.." (a quote or invoice is MEASURED) or "status"
plan_per_day, ramp_per_day, days_per_month, capacity_per_daysources.<field>; a ramp from the panel's buy rate is SIMULATED
anything with no sourcePLANNED

Break-even takes its label from the price and the costs only (selling days just restate it per day). Quote every cost and back the price with a real sale, and break-even is MEASURED. The margin at plan also uses plan_per_day and the selling days, and year 1 uses the ramp: each result takes the weakest label of its own inputs, so those stay PLANNED unless their volumes have a stronger source.

Process: run unit_economics.py. It looks every claim id up in founder/evidence/claims.csv and gives each result the weakest label of its inputs.

Outputs

outputlabel
founder/cfo.mdopens with "How we know each number": every result, its label, and the input that set it
founder/handoff/06_burn-test.jsonthe same, as a file the next stage reads: each result's value, label and set_by. A what-if is never handed off
the results you log in the ledgerledger.py add ... --from <the input claim ids>, no --status

Step 1: gather the inputs

Write founder/numbers.json (shape: example.json in this folder, a walk-in matcha café). It needs:

fieldwhat goes in it
unitwhat one sale is: a cup, an order, a client-month, a seat
priceprice per unit before tax
variablethe cost of ONE unit: ingredients, packaging, shipping, card fees, per-sale commissions
fixed_monthlywhat you pay every month regardless: rent, salaries, software, insurance
startupone-off spend before opening: deposits, build-out, equipment, first inventory, launch ads
plan_per_daythe volume once it is up and running
ramp_per_day12 numbers: realistic volume in each month of year 1
capacity_per_daythe most you can physically sell in a day, if there is a limit
units_per_customerunits in a new customer's first order (default 1)
backend_per_customerwhat a customer leaves after costs from what they buy next, in their first year (from /dealbreaker's next sale; default 0)
acquisition_costwhat it costs now to win one customer: ad or outreach spend divided by the customers it brought in (only once you have run a test)

Where the numbers come from, in this order:

  1. The user's own quotes, invoices, leases and supplier price lists.
  2. Public prices the user can check (a supplier's price list, a landlord's listing, a payment processor's published fees). Write the source next to the number in founder/cfo-sources.md.
  3. Your estimate, clearly marked as an estimate, with the reasoning. Never present an estimate as a fact.

Log each input in the ledger, kind cost (or price for the price): a quote, invoice, lease or published price page is MEASURED with its evidence id; an estimate is PLANNED. The plan reports how many costs are backed.

Then write each claim id into numbers.json, so the label travels with the number:

"price": 6.50,
"sources": {"price": "c08", "ramp_per_day": "c11", "days_per_month": "PLANNED"},
"variable": [{"label": "Matcha (ceremonial, 2g)", "cost": 0.92, "claim": "c04"}]

A source is a claim id, a status, or a list of them (the weakest wins). Leave it out and the number is PLANNED.

Ask the user for anything only they know (rent quoted, wages they will pay). Use the price from founder/pricing.md or founder/pitch.md if those exist.

The ramp is where plans lie. Month 1 is almost never the plan volume. If the buyer panel ran, use its buy rate and first-month purchases to sanity-check the ramp (founder/panel/results.md), and say how you did it. The panel's numbers are an upper bound; if no real buyer has committed yet, the honest ramp is lower than the panel suggests, never higher. A ramp worked out from the panel is SIMULATED: say so in sources.ramp_per_day.

Step 2: run it

python3 "${CLAUDE_SKILL_DIR}/unit_economics.py" founder/numbers.json --out founder/cfo.md

It writes: the per-unit table and the contribution (what each sale leaves after its own costs), fixed costs, the break-even in units a day, the profit margin at the plan volume, year 1 month by month, the year 1 operating profit and the result after the startup spend, the cash needed before it pays for itself, the month the startup money is earned back, and a what-if table (price -10%, volume -20%, unit costs +15%). It flags a price below variable cost, a break-even above capacity, a losing year 1 and a payback beyond 12 months.

What-ifs without editing the file:

python3 "${CLAUDE_SKILL_DIR}/unit_economics.py" founder/numbers.json --price 7.00
python3 "${CLAUDE_SKILL_DIR}/unit_economics.py" founder/numbers.json --volume 0.8

Step 3: the CFO's note

Add a short section at the top of founder/cfo.md, in plain words:

  • The hard truth: the number most likely to sink it, and how many of the inputs are quotes versus estimates ("4 of 11 costs are quoted; the ramp is a guess"). If the margin is SIMULATED, say which input made it so ("the margin is SIMULATED because the price came from the panel [c08]").
  • The bad case: run --volume 0.5 and report it in one line. If there is no real demand evidence yet, this is as likely as the plan.
  • The margin: the profit margin at plan, and the contribution per unit.
  • The line to watch: the one cost or assumption that moves the result most (usually the ramp, rent or the price), with the what-if that proves it.
  • Cash: how much money the founder needs before it pays for itself.
  • What a customer is worth (Ready, Fire, Aim, rule 11 in rules.md): the most the business can spend to win one customer, from the tool, and what it costs now if a test has run. If no next product is planned, say so: the first sale then has to pay for everything, which is the hardest way to grow.
  • Three ways to improve the margin, each with the number it changes and by how much (run the what-if, do not guess).
  • Whether the board's conditions about money (founder/board.md) are met.

Rules

  • Every number in your note comes from the tool's output or an input you can name.
  • Every output takes the weakest label of its inputs, as the tool prints it: at best PLANNED for anything that uses the ramp or the plan volume, and SIMULATED whenever a simulated input is under it. Never write a stronger label than the tool printed, and never call a projected margin "the real margin" or a result.
  • Log a result with --from and no --status, so the ledger works the label out and refuses a leak:

    python3 "${CLAUDE_SKILL_DIR}/../receipts/ledger.py" add --claim "Contribution per cup" --kind cost --use PRIVATE --number "$4.76" --from c08,c04,c05
  • Revenue is before tax; say if the user's market adds sales tax on top.
  • Not financial, tax or legal advice. Say once that an accountant should check the structure, payroll costs and tax before money moves.

Output

founder/numbers.json, founder/cfo.md, founder/cfo-sources.md. Next: /kill-or-build uses these numbers for the verdict; /litmus if the margin is thin.

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.