A startup operating system for AI agents.
Twelve skills that run the business jobs a founder actually does, tuned to your company in about ten minutes.
Ask any model to write you a cold email and you get competent business-to-business filler, because the model has no idea what your company is. founder-os fixes that structurally: the skills never mention your company, and every fact they need lives in one directory you fill in once.
Extracted from the private operating playbook of a working pre-seed startup, then stripped of everything specific to it.
One rule, and the whole thing follows from it:
Skills hold logic.
company/holds facts. Never mixed.
No skill contains a company name, a price, a customer, or a proof point. When a
skill needs a fact, it reads the file in company/ that owns it.
Three consequences:
- It adapts to any startup without editing a skill.
- A fact cannot drift between twelve copies of itself. Change your pricing in one file and every skill is correct on its next run.
- You can pull updates to this repo without a merge fight, because your changes and mine never touch the same files.
Put it at the root of the directory that holds your company's repos, one level
above api/, web/, infra/. The skills then load in every session, whichever
repo you are working in.
Into an existing company directory:
git clone https://github.com/vmihalis/founder-os /tmp/founder-os
/tmp/founder-os/install.sh ~/work/my-companyIt copies four things and never overwrites a file you already have.
Or start fresh:
git clone https://github.com/vmihalis/founder-os my-company
cd my-companyEither way you end up with:
my-company/
├── AGENTS.md # agent operating guide, the map
├── CLAUDE.md # points at AGENTS.md
├── company/ # your facts, the only thing that differs per company
├── .claude/skills/ # the logic, identical for everyone
├── api/ # your repos, untouched
├── web/
└── infra/
cd ~/work/my-company
claude/setup
Because it installs at your org root, setup reads your sibling repos first -
READMEs, package.json, your www/ copy, existing docs - and drafts the profile
from them. Then it asks what else exists (a site, a deck, an accelerator
application) and reads that too.
Only then does it ask you anything, and only the handful it could not infer, showing its draft so you are correcting rather than composing.
$ /setup
> Reading 4 sibling repos and 1 URL...
> Inferred 14 of 22 fields. 8 questions left.
Q1. Who feels the pain first?
a) solo practitioners b) a team lead
c) an exec buyer [my guess: (a)]
...
✓ wrote company/profile.md (6 TODO markers)
✓ wrote company/icp.md (3 TODO markers)
Gaps fill in as you work.
You do not have to finish. Anything left <!-- UNFILLED --> gets asked later
by whichever skill needs it. Run /cold-email and it notices icp.md has no
trigger events, asks those two questions, and writes the answer back. The profile
densifies through use rather than through a wizard you abandon at question twelve.
Re-run /setup refresh after a pivot, a raise, or a repositioning.
After setup there is nothing to remember. Claude Code loads CLAUDE.md at the
start of every session, which pulls in AGENTS.md, so the agent already has the
map, the load order, and the hard rules before you type anything.
Describe the job in plain language and the right skill fires:
| You say | What runs |
|---|---|
| "I need to find first customers" | lead-sourcing |
| "write an email to this person" | cold-email, then the house-style gate |
| "what should I focus on this week?" | ceo-os |
| "can I post this?" | house-style |
| "log that call with Northwind" | pipeline |
| "they went quiet after the demo" | founder-sales |
| "should I hire an engineer yet?" | hiring |
| "tighten this landing page copy" | copy-editing |
Slash commands (/cold-email, /ceo-os) still work when you want a specific
skill, but they are the override, not the normal path.
Run it from the company root, the directory holding your repos, so the skills
and AGENTS.md are both in scope. You can still work on code in any subdirectory
from there.
Two habits worth forming:
- Anything going outside the company, ask "can I send this?" That runs the
house-stylegate. It returns PASS or FAIL with fixes and never sends. - When you learn something real on a call, say so. "Northwind said their actual blocker is onboarding time." It gets written to the file that owns it, and every later artifact is sharper for it.
Setup and gate
| Skill | What it does |
|---|---|
setup |
The onboarding interview. Reads what exists, asks the rest, writes company/. |
company-context |
Loads the right company facts for the job at hand. Every other skill starts here. |
house-style |
The gate. PASS/FAIL on voice and redaction before anything goes external. |
The work
| Skill | What it does |
|---|---|
ceo-os |
What to do this week. Decision discipline, one-way doors, hard cofounder conversations. |
lead-sourcing |
Fills an empty pipeline with evidence-backed prospects from public signals. |
cold-email |
Outreach and follow-up sequences that read like a person wrote them. |
founder-sales |
Coaches the founder-led motion: discovery, qualification, stuck deals, onboarding. |
pipeline |
A markdown CRM in git. Stages, deal records, weekly snapshot. |
product-discovery |
Customer interviews, willingness-to-pay tests, reading pull versus push. |
sales-enablement |
Decks, one-pagers, objection docs, demo scripts. |
copy-editing |
Seven-sweep editing pass on copy you already have. |
hiring |
Role spec through offer, including whether to hire at all yet. |
They compose in one direction:
lead-sourcing ──▶ cold-email ──▶ house-style ──▶ [YOU SEND] ──▶ pipeline
▲ │
└── founder-sales coaches ─────┘
the motion, never sends
The skills are written for agents to read cheaply, which is most of why this works at all:
AGENTS.mdis the map, around 110 lines, routing only. It is the one file loaded every session.profile.mdis the anchor, deliberately short, because it is paid for on every job. Depth lives in the other eight files.- Every skill declares
reads:in its frontmatter. The routing table maps job to skill to only the extra files that job needs. Most jobs need two files, not nine. - Deep material sits in
references/and loads on demand, not by default. company/files are fixed schemas, not prose, with<!-- UNFILLED -->and<!-- INFERRED -->markers so an agent knows when to ask instead of guess.
The human gate. No skill sends an email, publishes a post, moves money, or commits equity. They draft to 90%; you edit the last 10% and ship. This is not a limitation to route around. It is the reason you can let agents near your outbound at all.
Storing is not shipping. company/ holds real names, roles, work emails, and
call notes, because a CRM that cannot name a contact is not a CRM. External copy
holds none of it. house-style hard-fails any draft that names an individual.
The two rules are different, and collapsing them is the specific failure this is
built to prevent: a name that is correct in your pipeline is a leak in a launch
post.
- Edit
company/freely. That is the point. - Try not to edit the skills. If a skill is wrong for you, it is usually
because a
company/file is thin. Fix the fact, not the logic. - Delete skills you do not need. They are independent. Only
company-contextandhouse-styleare load-bearing for the others. - Commit
company/. It is meant to be its own git repo. It is the memory that survives a cleared context window, a new laptop, and a cofounder joining.
Built for Claude Code, where .claude/skills/
gives you /setup, /cold-email, and the rest as slash commands.
The logic is plain markdown, so it works with any agent that can read a
directory. AGENTS.md is the portable entry point, and it carries the routing
table, the load order, and the hard rules.
Agents that read AGENTS.md natively need nothing extra. For anything else,
open with:
Read AGENTS.md and follow it for this session.
Then talk to it exactly as above.
Method adapted from four MIT-licensed collections:
- marketingskills by Corey Haines
- lenny-skills by Refound AI
- wshobson/agents by Seth Hobson
- codex-first-customer-finder-skill by Francesco Mistero
NOTICE.md records what came from where and what changed. MIT licensed; see LICENSE.