npm package: @rhinehart514/founder-os
Description: A product engineering brain for Claude Code. 28 skills and 7 agents that make Claude think like a co-founder — walk the product, grill the frame, name real users, kill the weakest feature, write the launch post. Runs locally, no SaaS.
Author: Laney Fraass
Latest version: 5.4.2

# founder-os

> Shipping 15 products in a year doesn't make you better at shipping the 16th. You just get faster at repeating the same mistakes. The moat in 2026 isn't speed — it's a brain that remembers what last week's version of you already tried.

For the vibe coder on their 16th product this year, founder-os is the brain that remembers the other 15 — so attempt #16 starts with calibrated taste instead of from zero.

28 skills and 7 agents for Claude Code. Walk the product as a user, grill your frame like a YC partner, name ten real humans to reach, kill the weakest feature, write the launch post. Lives in `.claude/`, runs locally, writes to `PRODUCT.md`. No SaaS, no login, no billing.

## What it looks like

```
founder-os  ·  Thu Apr 9                                    1 products

● founder-os         shipped        ◐ 25 of 25   — (OSS)        → first-clone feedback
```

That's `bin/os.sh` — every product with a `PRODUCT.md` in one glanceable view. Run any skill in any product and it writes back to the notebook so the next skill starts sharper.

## Install

```bash
# npm — installs skills, agents, hooks, and scripts globally
npm i -g @rhinehart514/founder-os
```

Or from source:

```bash
git clone https://github.com/rhinehart514/founder-os.git
cd founder-os && bash bin/install.sh
```

Restart Claude Code after installing. Skills appear in the slash-command menu.

## One-minute try

```bash
cd your-project
```

Then in Claude Code:

```
/see        # walk the product, create PRODUCT.md
/founder    # Monday-morning verdict on the shape
/first-ten  # find 10 specific humans who should see it
/hitman     # kill the weakest feature
```

Every skill writes to `PRODUCT.md`. The next skill reads what the last one wrote. That's the whole mechanism.

```bash
bin/os.sh ~/projects   # dashboard across every product you're building
```

## The 25-person company

Eight departments, 28 skills, 7 agents. Use them like consultants you can call in any project.

| Department | Skills |
|---|---|
| Strategy | `/founder` · `/partner` · `/investor` · `/chief-of-staff` |
| Narrative | `/editor` · `/storyteller` · `/namer` · `/ghostwriter` · `/launcher` |
| Growth | `/first-ten` · `/reply-guy` · `/curator` |
| Taste | `/craft` · `/stranger` · `/screenshotter` |
| Product | `/see` · `/ship` · `/hitman` · `/user-zero` · `/biographer` |
| Code | `/architect` · `/janitor` |
| Money | `/pricer` · `/accountant` |
| Reality | `/demand` · `/scout` · `/predict` · `/kill` |

### Compound agents — the moat

Four memory-backed agents that sharpen with every ship:

- **tastemaker** — anti-slop library, accumulates your specific template rhymes and dead phrases
- **archaeologist** — surfaces the loop you keep running across projects
- **scavenger** — indexed parts bin across every past repo
- **graveyard-keeper** — warns when the current product is rhyming with a dead one

Plus three domain specialists — **craft-eye** (visual quality), **explorer** (market research), **product-engineer** (walks products as a user).

## Why it works

Every skill is `f(PRODUCT.md) → verdict`. Good notebook in, good verdict out. The founder writes into `## Notes` reflexively (`bash bin/note.sh "the empty state feels cold"`); skills turn notes into structure; compound agents build cross-project intelligence on top. The moat is the notebook, and the notebook lives on your machine.

Every skill shares one output contract — a four-line verdict box (verdict, why, next, logged) — so reading skill output is instant no matter which skill fired.

## What it isn't

- **Not a SaaS.** Everything runs locally. Your notebook never leaves your machine.
- **Not a prompt library.** The 10 reflexes in `CLAUDE.md` fire from the first message; skills are heavy-machinery homes for behaviors that exceed conversation.
- **Not prescriptive.** Skills seed the lens; the model brings judgment. No step-by-step procedures, no railroading, no `# Refuse` sections.

## Built in a day

v5.3.0 shipped in one session. Three reference skills (`/founder`, `/first-ten`, `/hitman`) plus one reference agent (`tastemaker`) written by hand in the Boris Cherny + Thariq voice. Then 7 parallel builder sub-agents produced the remaining 18 skills and 3 compound agents, each reading `/founder` as its reference. Voice held under parallelism because the grammar carried the coherence, not the author.

The repo ships the rest of itself by running itself. Meta move that keeps on giving.

## Requirements

- [Claude Code](https://claude.ai/code)
- [Playwright MCP](https://github.com/anthropics/anthropic-quickstarts/tree/main/mcp-playwright) — for `/see`, `/craft`, `/ship`, `/stranger`, `/screenshotter`, `/curator`, `/user-zero`
- `jq` — for vault scripts
- `bash` 3.2+ — tested on macOS default bash
- Obsidian vault at `~/obsidian-vault/` — optional, for cross-project agent memory

## Contribute

House voice is Boris Cherny + Thariq: terse, imperative, specifics beat abstractions, delete more than you add, no `# Refuse` sections, examples over rules. See [CONTRIBUTING.md](./CONTRIBUTING.md) for how to add a skill in the reference shape.

Every PR that adds a sharp skill in the voice is welcome. Every PR that adds a generic wrapper or a checklist gets a thoughtful redirect.

## Update

```bash
npm update -g @rhinehart514/founder-os
```

## Docs

- [CLAUDE.md](./CLAUDE.md) — the 10 reflexes, the default behavior
- [PRODUCT.md](./PRODUCT.md) — founder-os dogfooding itself
- [CONTRIBUTING.md](./CONTRIBUTING.md) — house voice, how to add a skill
- [examples/](./examples/) — sample PRODUCT.mds from fresh idea, mid-build, and dying stages
- [AGENTS.md](./AGENTS.md) — every agent, what it reads, what it accumulates
- [docs/vision.md](./docs/vision.md) — the longer story
- [docs/history.md](./docs/history.md) — how it got here

## License

MIT — see [LICENSE](./LICENSE).