seed-terms
Term Sheet Reader. Reads a SAFE or a term sheet in plain English, does the dilution math and flags the clauses to ask a lawyer about. Works out what a post-money SAFE owns at its cap and what it conve
SKILL.mdseed-terms/SKILL.md
GitHubseed-terms
The Term Sheet Reader is for the day an investor says yes and sends paper. It does two jobs. First the arithmetic: what a SAFE really owns, what a priced round does to the cap table, and how much of "the valuation" is quietly paid by the founders through a bigger option pool. Then the reading: it walks through the document and flags the clauses founders most often regret, in plain words, with the exact question to put to a lawyer.
Not legal advice, and not investment advice. It is arithmetic and a keyword reader. A startup lawyer should read every document before the user signs anything, and the scanner only flags clauses it knows.
${CLAUDE_SKILL_DIR} below is this skill's folder (where this SKILL.md lives).
python3 "${CLAUDE_SKILL_DIR}/terms.py" safe --investment 500k --cap 10m # 5.00% at the cap
python3 "${CLAUDE_SKILL_DIR}/terms.py" safe --investment 500k --cap 10m --other 1m@10m # the whole SAFE round
python3 "${CLAUDE_SKILL_DIR}/terms.py" safe --investment 500k --cap 10m --discount 20 --round-pre 24m --round-raise 6m --pool 10
python3 "${CLAUDE_SKILL_DIR}/terms.py" round --pre 6m --raise 1.5m --pool 10 --shares 7000000
python3 "${CLAUDE_SKILL_DIR}/terms.py" round --pre 24m --raise 6m --pool 10 --cap-table seed/terms/cap-table.json
python3 "${CLAUDE_SKILL_DIR}/terms.py" scan term-sheet.txt # exit 3 = a high flag
Amounts: 500k, 1.5m, $1,500,000. Percentages: 20 or 20%. A SAFE:
[name=]investment[@cap][:discount], like Northlight=500k@10m or
250k@8m:20. Add --write to save seed/terms/safe.json,
seed/terms/round.json or seed/terms/scan-<name>.md; --json on scan.
What it reads and writes
| file | what |
|---|---|
| a term sheet or SAFE as text | for scan: paste the PDF's text into a .txt file first |
--cap-table FILE.json |
optional: {"holders": [{"name", "shares"}], "pool_unissued", "safes": [{"name", "investment", "cap", "discount"}]} |
seed/terms/safe.json, round.json |
with --write: every input and every number shown |
seed/terms/scan-<name>.md |
with --write: the flags, the excerpts and the questions |
The method
- Post-money SAFE (Y Combinator's standard form). Ownership at the cap = investment / post-money cap. It converts at the lower of the cap price (cap / company capitalization: every share, option, the unissued pool and all converting SAFEs, but not the new money or a pool top-up made for the round) and the discount price (the round price x (1 - discount)). With post-money caps, every extra SAFE dilutes the founders, not the other SAFE holders.
- Priced round. Price per share = pre-money / fully diluted pre-money shares, where that count already includes the converted SAFEs and the new pool. The pool target is the unissued pool as a share of the post-money count. That is the option-pool shuffle: the pool is carved out before the money comes in, so only existing holders pay for it. The tool prints the effective pre-money (pre-money minus the pool top-up at the round price).
- The math is exact (fractions), shares are rounded down to whole shares at the end. Real documents round the price first; expect a few shares of drift.
- The scanner splits the text into clauses and flags, by rules: a liquidation preference over 1x, participating preferred (capped or not), full-ratchet or narrow-based anti-dilution, redemption rights, cumulative dividends, investor control of the board (it counts the seats), protective provisions that reach into the budget, hiring or debt, pay-to-play, a drag-along the preferred alone can trigger, a no-shop over 30 days (60 or more is high), a deadline of 48 hours or less, a founder vesting reset, super pro rata, MFN, and a new pool counted in the pre-money. Severity is high (push back), medium (understand it, likely negotiate) or low (common, know it). The standard versions (1x non-participating, broad-based weighted average, no redemption, founder board majority, a 30-day no-shop) are listed as standard.
Steps
- Ask for the document and the numbers (the raise, the valuation or cap, the pool, the current shares). For a PDF, extract the text into a .txt.
terms.py scan FILE. Read every flag back in plain words: what it means, then the question for the lawyer. Never tell the user a clause is fine to sign; say what is standard and what is not.- Run the math:
safefor a SAFE (with--otherfor the rest of the round),roundfor a priced round. Show the founders' percentage before and after and the effective pre-money. Try the counter-offer too (a smaller pool, a higher cap) so the user sees what each ask is worth. - Write the questions into a short list for the lawyer. Recommend a startup lawyer before signing, every time.
- Hand off: /seed-dataroom for the confirmatory diligence that follows a
signed term sheet (
share-list --stage after), and /seed-updates to keep the other investors posted.
Example: the reel
Leashly (fictional) raises its $1.5M seed. As post-money SAFEs at an
illustrative $10M cap, safe --investment 500k --cap 10m --name Northlight --other 1m@10m shows Northlight's $500,000 owning 5.00% at the cap, the whole
$1.5M owning 15.00%, and the founders keeping 85.00% before the next round.
Priced instead, at $6M pre-money with a 10% pool: round --pre 6m --raise 1.5m --pool 10 --shares 7000000 gives $0.7500 a share, 2,000,000 new shares for the
investors (20.00%), a 1,000,000-share pool (10.00%), and the founders at
70.00%. The pool's $750,000 comes out of the founders' side: the effective
pre-money is $6,000,000 - $750,000 = $5,250,000.
A tough (synthetic) term sheet with a 2x participating preference, a full ratchet, investor board control, a 60-day no-shop and a 48-hour deadline comes back with 11 high flags; the founder-friendly version comes back with standard terms and two low notes.
What it never does
- Never says "sign it", never calls a term sheet good or bad overall.
- Never presents its math as the official cap table: the company's lawyer and cap-table records are the source of truth.
- Never treats a clause it did not flag as safe. Not legal advice; not investment advice.