At 11:41 on a Saturday night in Nashville, Luis takes a photo of a bar tab. He's a trip host for Last Call Co., which runs bachelor weekends, and the tab for fourteen groomsmen is handwritten in pen under a string of Edison bulbs. He snaps it with Halvsies, the bill-splitting app his company is piloting, and taps send.
The tab says $1,140. The app's AI reads the handwritten "1" as a "7." Thirteen groomsmen get a request for $612 each, and two of them pay it from saved cards before the best man types "$612 FOR BRISKET??" into the group chat.
By Sunday night the best man's TikTok has a few hundred thousand views. Ten days later it has 1.4 million. The groom's mother calls the owner of Last Call Co., who doesn't email Halvsies' product team about it. He emails the CEO, who he used to tend bar with.
None of it is real. Halvsies, Last Call Co., and everyone in this story are made up. But the system the PM uses to dig out of that week is real. Download the example or start with the blank OS using the links above.
What Builder OS is
Builder OS is a folder of markdown files you open in Claude Code. It holds what you own, who you work with, what you decided and why, and what happened this week. On top of that sits a set of slash commands that read those files and write back to them.
The commands themselves are short because the folder does the heavy lifting. When you ask for a meeting prep, Claude already knows that this person wants the bottom line first, what you promised them last week, and which decision they haven't heard about yet.
I built it for builders, meaning anyone who ships things with other people. The example follows a product manager because PMs juggle the most moving parts, but the blank version starts by interviewing you about your actual job, so it works for engineers, designers, founders, marketers, ops, sales, support, and data people too.
There are two downloads:
- The example: Jules Adeyemi's full OS, frozen at 8:30am on the Thursday after the Nashville tab. Open it and replay her day yourself.
- The blank OS: same structure, empty. Type
/onboardand it interviews you to fill itself in.
The folder in sixty seconds
builder-os/
├── CLAUDE.md ← who you are + map of the folder. Claude reads it first.
├── MISSION.md ← what you own, this quarter's projects, your team at a glance
├── SPRINT.md ← this week: commitments, waiting-on, parked
├── BACKLOG.md ← everything else
│
├── projects/ ← one folder per project
│ └── halvsies-host/
│ ├── README.md ← the problem, what done looks like, assumptions to test
│ ├── decisions.md ← every call we've made, newest first
│ ├── research/ ← interviews, data, field notes
│ └── artifacts/ ← scope docs, drafts, decks
│
├── team/ ← one file per person: how they like information, what they care about
├── memory/ ← daily/, meetings/, 1on1s/, done/
├── runbooks/ ← repeat work with its own rules (weekly update, incidents)
├── context/ ← company, product, customers, glossary, metrics, voice
├── templates/ ← starting points for new files
├── inbox/ ← dump anything, sort later
├── CONFIG.md ← what's connected
├── CHANGELOG.md ← how your OS has changed over time
└── .claude/
├── settings.json ← loads SPRINT.md into every new session
└── skills/ ← the slash commands
If you've worked on a software team, most of these words already mean something to you, and that's on purpose. A few ideas hold it together.
Context and memory are separate. context/ is the stuff that rarely changes: your company, your product, your metrics, how you write. memory/ is what happened: every day, every meeting, every 1:1. Claude reads both, but only memory/ grows every day.
Decisions are files. Every project has a decisions.md. Three weeks from now, when someone asks why you launched with a confirm step instead of waiting, the answer is a dated entry with the options you rejected and what would have changed your mind.
Your team is context. The team/ folder holds a file for every person you work with, customers included. Each one says how that person likes to get information and what they care about. This is the folder that turns a generic meeting prep into one that sounds like you've known them for a year.
Everything writes back. Every command saves what it produces to a file, so the next command can build on it. The brief lands in today's daily note, the prep lands in the meeting file, and the debrief adds notes under the prep in that same file.
Jules's Thursday
Jules is Lead PM at Halvsies, a 41-person startup in Brooklyn. Halvsies is a bill-splitting app with 2.3 million monthly users. You snap a receipt, an AI model reads it, and everyone gets a payment request. Jules owns two things: Halvsies Host, a new paid product for people who plan group trips for a living, and Auto-Split v2, the one-tap feature that read the Nashville tab.
It's twelve days after the brisket. Last Call Co.'s pilot renewal is due October 30. Her manager wants a launch decision on Auto-Split by Friday. The CEO wants to know if she should call the owner herself.
I ran these commands against the example folder. Every terminal output below is real, trimmed for length.
8:30 AMClaude already knows the week
Jules opens Claude Code in her Builder OS folder. Before she types anything, a small hook in .claude/settings.json has already loaded SPRINT.md into the session: her commitments, who she's waiting on, and the week's focus line.
It's a one-line SessionStart hook, and it means Claude never starts cold. It's the cheapest upgrade in the whole system.
8:41 AM/brief
/brief
# Brief · Thursday, Oct 22
The one thing: Call Gus at 11:00, then send him the timeline and
make-good in writing before you leave. You promised it for today.
## Calendar
- 9:30 · Product sync · Hana owes the pay-by-link estimate.
- 10:15 · 1:1 Coco · Bring a launch recommendation, not a menu. Tell
her about Gus before Bea does, since Bea Slacked at 7:12am asking
if she should call him. Ask about Imani's 2-months-free.
- 11:00 · Gus · Straight talk, with dollars rather than percentages.
The timeline and make-good are drafted.
- 13:30 · Rafa data review · His export is overdue. Leave with a date.
- 16:30 · Bea sync · Answer her Gus question after the 11:00 call.
## Stuck
- 🧊 Dev's error analysis · 6 days · blocked on Rafa's export.
Unstick it at 1:30.
## Projects at risk
- Auto-Split v2 🔴 · Dev can't pick the confidence cutoff without
the export.
What just happened. The brief read
SPRINT.md, the projects inMISSION.md, yesterday's end-of-day notes, the team file for everyone on the calendar, and a Slack message sitting ininbox/. It noticed that Dev is stuck because Rafa is stuck, and that Rafa is on the calendar at 1:30. "Bring a launch recommendation, not a menu" comes from Coco's team file, where Jules wrote down what Coco said two days ago. "Dollars rather than percentages" comes from Gus's.
No calendar connection was needed for this. The example has today's schedule written into the daily note, and every command falls back to files when a connection isn't there. With Google Calendar connected, it pulls the real schedule.
10:50 AM/prep gus-ferreira
Ten minutes before the call that decides whether her biggest pilot renews.
/prep gus-ferreira
# Prep · Gus Ferreira · 2026-10-22, 11:00
Goal: He hears straight what happened and what we're doing. He leaves
ready to read the written follow-up and decide on Oct 30.
Open with: "Gus, here's what happened. Luis's handwritten $1,140 tab
read as $7,140. A '1' with a serif looked like a '7', and the app
called the receipt printed. That's why $612 requests went out instead
of $97.71. Both refunds ($1,224) are done. I'm sending you the full
timeline today."
He'll probably ask
- Handwriting thing or app-is-broken thing? Handwriting is the
trigger, and the model has seen very few handwritten tabs (~1% of
training). The honest part is that it misread the total,
misclassified the receipt, and one-tap sent it anyway.
- What's changing? For the model fix, I have {number: check Dev's
error analysis}. It's blocked on Rafa's export, so don't promise
a date.
Careful
- Coco hasn't OK'd the make-good. Settle that at the 10:15 1:1
before you offer it.
- Use dollars, not percentages. No spin and no long emails.
- The groom's mom called him, not you.
11:35 AMWhat just happened. Gus's team file says "straight talk" and "hates percentages without dollars attached," so the prep opens with a plain account in dollars. The serif detail and the $97.71 came from the engineer's read log in the project's
research/folder. Look at{number: check Dev's error analysis}: the file didn't have that number, so instead of guessing, the prep left a hole and told Jules where to fill it. The warning about the make-good came from a rule in the incident runbook that says anything public needs her manager's sign-off.
/debrief
The call went better than expected. Jules pastes her notes exactly as she typed them, typos and all:
/debrief gus call
gus call 11am. way calmer than last wk. read the timeline, said "ok so
its a handwriting thing not a your app is broken thing" lol
- he wants: the receipt photo with the number circled before anything
sends. "dont tell me $612 show me the receipt"
- his trip hosts (luis etc) do all the snapping. half the guests never
open the app, they just want a link to pay. !!! guests-wont-download
thing again
- renewal: "if the handwriting thing is fixed before my new years trips
im in." first NYE trip leaves dec 29
- asked if he can talk to dev directly about the model
- me: send him the fix plan in writing by tues oct 27
- he'll send me photos of ~40 handwritten tabs from past trips
Filed
- memory/meetings/2026-10-22-gus-ferreira.md: added Notes, Decisions
and Commitments under your existing prep.
- SPRINT.md: added a commitment to send Gus the fix plan by Tue 10-27.
Under Waiting on, added Gus's photos of about 40 handwritten tabs.
- team/gus-ferreira.md: added 6 dated notes. Open loops updated.
- projects/halvsies-host/research/field-notes.md: added 4 Gus quotes
and the guests-won't-download point, which bears on assumption 4.
Needs a call
- Gus talking to Dev: I didn't promise anything. Check with Dev first.
- Oct 30 renewal vs. Dec 29: his yes depends on the fix, but the
renewal decision is Oct 30. Decide how you frame this in the written
plan, and don't promise a date.
Team files
- Luis (his trip host, 200+ weekends) has no team file. Should I
create one? He seems to matter, since he does the snapping.
12:30 PMWhat just happened. Messy notes turned into four filed updates and a receipt Jules can check in ten seconds. Gus's quotes went into the project's research folder, where this afternoon's synthesis will find them. The debrief also caught something Jules hadn't noticed: Gus just moved the real deadline from October 30 to December 29. It flagged the conflict instead of quietly rewriting her goals. And it noticed that Luis, the person actually holding the phone, doesn't have a team file.
/decide
Coco said "bring me a call, not a menu." Jules has made her call. Now it needs to exist somewhere other than her head.
/decide should Auto-Split v2 launch on Nov 5? My call: ship Nov 5 with
Dev's confirm-before-send guardrail; pilots get it Oct 28; retrain on
handwritten tabs for January.
It writes this to projects/auto-split-v2/decisions.md (trimmed):
## 2026-10-22 · Launch Auto-Split v2 on Nov 5?
Call: Ship Nov 5 with Dev's confirm-before-send guardrail; Host pilots
get it Oct 28; retrain on handwritten tabs for January
Made by: Jules Status: decided
Options considered:
- A. Ship Nov 5 as planned, one-tap everywhere (a second overcharged
group is a kill criterion, and 22% of pilot reads are hard receipts)
- B. Delay until the retrain lands (needs ~5,000 labeled handwritten
tabs and 3 to 4 weeks; misses Nov 5 and Friendsgiving)
- C. Guardrail, then retrain: on handwritten, faded or dark receipts,
low confidence, or a share 3x the group's usual, don't send. Show
the photo with the total circled and make the payer confirm.
- D. Show the top two readings (people pick fast at 1am)
Be honest about: the guardrail doesn't raise the exact-total rate. The
98% target in the README is not met on Nov 5; it routes hard receipts
to confirmation instead of fixing them. The retrain is what closes
that gap.
Revisit: 2026-10-28 (pilot rollout); go/no-go for Nov 5 on 2026-11-03
Who needs to know: Coco, Dev, Hana, Tamsin, Bea → [ ] told
2:00 PMWhat just happened. Every number in that record came from a file: the 22% from the data analyst's read-quality report, the 5,000 tabs from the engineer's model notes, and the 3x rule from his guardrail proposal. Option A, doing nothing, is on the list on purpose, because seeing the cost of inaction written down makes the other options easier to judge. Then there's the "Be honest about" line, which Jules didn't ask for. Her own project README says the target is 98% on every receipt type, and the record points out that her decision doesn't hit it. Better that Coco hears it from Jules than finds it later. The "Who needs to know" line also became tell-them commitments in
SPRINT.md, each due when that person needs it.
/research
Jules has a two-hour focus block and a design review tomorrow. On Monday her designer, Ollie, asked her a question she couldn't answer: "Who's actually holding the phone at the bar at midnight?"
/research halvsies-host
Sample size: N is 4 (three pilot interviews and one running
field-notes file). That's really 3 customers. The headline says so.
Findings
- Guests won't download the app (4 of 4, strong). Gus, Imani and Pete
each said it in their own words.
- They want the unpaid list, not the multi-trip dashboard (3 of 4,
strong). Gus has opened the dashboard twice in three weeks.
- The receipt photo next to the number builds trust (3 of 4, strong).
- Auto-Split is trusted on printed receipts and breaks on handwritten
ones (3 of 4, emerging).
- All three say they'll pay, with conditions (4 of 4, strong on
intent). Nobody has paid yet.
| # | Assumption | Result |
|---|---|---|
| 1 | Pay $49/month per business | Supported, with conditions |
| 2 | Dashboard is the core value | Weakened |
| 3 | Auto-Split accuracy carries over | Weakened for handwritten |
| 4 | Guests will download the app | Weakened, strongly |
What just happened. This is where the system pays for itself. The full synthesis file has a direct quote under every finding, tagged with the interview it came from, so nothing in it is vibes. ("Wedding guests are 22 to 85. Grandma isn't downloading Halvsies.") Then it went back to the four assumptions in the project's
README.mdand graded each one, and three of the four came back weakened. Host was scoped as a dashboard for planners. The evidence says it's a way for guests to pay without installing anything, with the receipt photo attached.
Jules doesn't stop at the synthesis. She hands it straight back with a detailed prompt, because the scope doc in artifacts/ was written in September, before anyone talked to a planner:
Rewrite projects/halvsies-host/artifacts/v1-scope.md using the synthesis
you just wrote (projects/halvsies-host/synthesis.md), the decisions in
projects/halvsies-host/decisions.md, and the Auto-Split launch decision
in projects/auto-split-v2/decisions.md.
Rules:
1. Every item in the "What's in" table needs a "Why" column that cites
a specific quote (with the interview file it came from) or a dated
decision. If an item has no evidence behind it, move it to "Later"
and say so.
2. Re-rank priorities based on the findings, not on the original
scope. If the synthesis weakened an assumption, the items that
depended on it should drop.
3. Add a "What changed since v1" section at the top: three to five
bullets, each naming the finding that caused the change.
4. Keep anything Bea or Coco already decided (pricing unit, annual
discount) exactly as decided. Don't reopen it.
5. List the open questions this creates, each with an owner from
team/ and a due date before the Nov 10 paid launch.
6. Don't invent numbers. If an item needs a number we don't have,
write {number: ask Rafa} and keep going.
Save the old version as v1-scope-2026-09-01.md and write the new one
as v1-scope.md. Then give me a five-line summary I can paste to Ollie
before tomorrow's 2pm review.
The new scope leads with pay-by-link and the receipt photo, and the multi-trip dashboard drops to "Later." Ollie gets his answer the night before his review.
Friday, 3:00 PM/weekly
The weekly update is a runbook: a folder with its own CLAUDE.md, a list of readers, a list of sources, the shape the update should take, and every update Jules has sent before. /weekly runs it one step at a time and stops after each.
- Gather pulls from
SPRINT.md, the done log, the week's daily notes, meeting notes, and decisions. Then it asks: "Which two or three of these does Coco need to know?" - Draft writes for the readers in
readers.md. Coco gets the bottom line first. Bea gets one moment with a real planner, because her team file says a story beats a dashboard. The engineers get named when their work moved something. - Polish runs her voice rules.
- Send happens only after Jules sends it herself. The final copy goes into
sent/, where next week's draft reads it for tone.
The checkpoints are the point. Claude never runs all four steps in a row, because the useful part is Jules deciding what matters between steps.
/polish
Before anything goes to another human, it goes through context/voice.md: Jules's rules, her banned words, the habits she wants caught, and three messages she's actually written. Here's a real run on a draft that sounds like it came out of a press release:
| Draft | After /polish |
|---|---|
| "I wanted to provide a quick update on the Auto-Split situation." | Cut. Opens with the news. |
| "we have decided to leverage a confirmation step to mitigate risk" | "Auto-Split is getting a confirmation step... to cut the risk" |
| "Several pilot customers expressed concerns regarding the dashboard" | "Several pilot customers had concerns about the dashboard" |
| "surfaced some interesting learnings around guest behavior" | "turned up some things about guest behavior" |
| "circle back with additional updates as appropriate" | "I'll send more as I have it" |
Then it did the part I like most. It didn't make the update sound better by inventing details. It told Jules where the draft was still thin:
Where it's still thin
Your voice rules want numbers over adjectives and the bad news said
plainly. The draft has none to work with, and I didn't add any.
- Accuracy: a figure, like your "58% of handwritten tabs" style.
- Which customers: names instead of "several pilot customers."
- Guest behavior: the actual finding in place of "some things."
/new-skill scan
Last stop. Jules asks the OS to look at her own week and find work she keeps doing by hand.
/new-skill scan
I scanned memory/daily/ and memory/meetings/. That's only about 12
days of notes, so counts are small.
1. Pilot check-in write-up (how's it going, usage, moment that
mattered, price reaction, renewal odds, asks). Your 10-20 note says
"third time this week I wrote one up by hand in the same shape."
2. "Tell X about the call" follow-ups, in each person's format. Your
sprint has Coco, Dev, Hana, Tamsin, Bea and Gus waiting on the same
Auto-Split decision.
3. Ask someone for data, then track it. Mostly covered by /eod.
4. Pattern-spotting across pilots. Better as /research.
I'd start with #1. The shape is identical each time, the inputs are
the same, and you flagged it yourself.
What just happened. The OS read its own memory and proposed new commands Jules didn't know she needed. It also talked her out of two of them, because existing commands already cover them. Number 2 is the sleeper. Six people need to hear about one decision, and six people want it six different ways. That turns into one command, and it only works because the team files exist.
Jules builds /checkin. /new-skill asks her six questions, writes the skill, adds it to the command table in CLAUDE.md, logs it in CHANGELOG.md, and runs it once on yesterday's call notes so she can fix the wording. Then she runs /eod, which updates SPRINT.md, writes the day to memory/, and leaves a carry-forward list that tomorrow's /brief will start from.
Mod it
The OS ships with a starter set of commands, but the ones you'll use most are the ones you build, because they encode how you work.
/new-skill is the front door. Point it at something you keep doing or let it scan your memory folder. It interviews you, decides whether the job needs a skill (one sitting, one output) or a runbook (several steps with checkpoints and its own reference files), writes it, wires it into CLAUDE.md, and test-runs it on your real files.
Jules built /incident this way after her third customer fire of the year. It has its own runbook folder with a make-good menu sized to what the customer lost, plus a rule that her manager gets a two-line Slack within 30 minutes of any fire. That rule exists because of one bad Sunday, and now it's permanent.
If you want to skip the scan and go straight to building, give /new-skill everything up front. The more you tell it, the fewer questions it asks:
/new-skill Build me a command called /checkin for pilot and customer
check-in calls.
Trigger: I'll type /checkin <customer name> and paste my raw call
notes (or a transcript) underneath.
What it should do:
1. Find the customer's file in team/ and the project they belong to in
projects/. If either is missing, ask before creating anything.
2. Write the call up in memory/meetings/YYYY-MM-DD-checkin-<name>.md
using this exact shape: How's it going / Usage (what they actually
use, not what they say) / Moment that mattered / Price reaction /
Renewal odds (yes, likely, coin flip, unlikely, no) / Asks.
3. Copy any direct quotes into the project's research/field-notes.md,
newest on top, with the date.
4. If they said yes, no, or changed their renewal terms, log it in the
project's decisions.md and update the tally in MISSION.md (for
example "2 of 3 pilots in"). Ask me before changing MISSION.md.
5. Add anything I promised to SPRINT.md under Commitments with a due
date, and anything they promised under Waiting on.
6. Add new facts about how this person works to their team file under
"Notes over time," dated.
Checkpoint: show me the filed receipt (every file touched and what
changed) before you change MISSION.md.
Rules: never invent a quote, number, or date. If my notes are unclear
about who said something, mark it (unclear who). Keep the write-up
under 200 words.
When it's written, test it on memory/meetings/2026-10-21-pilot-checkin-pete.md
so I can see the output, then ask me what to change.
Three rules make a skill good inside Builder OS:
- Point at files instead of pasting knowledge in. The skill says "read the team file." The knowledge lives in the folder, where every other command can use it.
- Degrade gracefully. If the calendar isn't connected, say so in one line and use the files.
- Write the output to a file, so the next command can build on it.
Builder OS and Shipforward
If you've seen Shipforward, my agent software factory for Claude Code, you might be wondering how the two fit. They're built to work together, and they solve different problems.
Builder OS is your desk. It's personal, it runs every day, and it lasts longer than any one project. It knows your people, your week, your commitments, and why every call got made. It's where you figure out what to build and why.
Shipforward is the factory floor. It runs inside a codebase, one product at a time, and moves work down a line: idea, PRD, spec, tickets, code. It's where the what becomes something people can use.
Builder OS · your desk
team/ · memory/ · SPRINT.md
projects/<x>/research/
projects/<x>/decisions.md
Shipforward · the factory
idea → PRD → spec
→ tickets → build → ship
The handoff runs both ways.
Going out: when a project's research and decisions are solid, /handoff out packages them into one file: the problem, who has it, the evidence with quotes, the decisions that are already final, the constraints, and the open questions. Shipforward starts from that file instead of from a blank PRD, so the spec is grounded in what users actually said.
Coming back: building always surfaces decisions nobody planned for. The confirm screen ships a day late. A scope cut happens in a ticket thread. Engineering picks a 0.97 confidence cutoff instead of 0.95. Paste those into /handoff in and they land in the project's decisions.md, the dates land in SPRINT.md, anything that shipped goes into memory/done/, and anyone who needs to hear about it gets a tell-them commitment. Friday's /weekly picks all of it up without you retyping a thing.
In Jules's world, the Auto-Split guardrail is a perfect example. She made the call on Thursday in Builder OS. The confirm screen gets specced, ticketed, and built in Shipforward. When it ships to the pilots on October 28, the build's decisions flow back, and her update to Coco writes itself from files.
Here's the prompt Jules would use to kick off that handoff:
/handoff out auto-split-v2
Package this project for the build. Context for whoever picks it up:
we decided on 2026-10-22 to ship Auto-Split v2 on Nov 5 with a
confirm-before-send guardrail, give it to the three Host pilots on
Oct 28, and retrain on handwritten tabs in January.
Make sure the handoff file includes:
1. The Nashville incident in plain words, using the read log in
research/nashville-tab-read-log.md as the only source for times
and amounts.
2. Rafa's exact-total rates by receipt type from
research/read-quality-2026-10-11.md, with his caveat about the
small handwritten sample copied word for word.
3. The three guardrail triggers exactly as Dev wrote them in
artifacts/model-notes.md (hard receipt type, confidence below the
cutoff, any share over 3x the group's usual), and mark the cutoff
(0.95 vs 0.97) as an open question owned by Dev.
4. Gus's quote "dont tell me $612 show me the receipt" as the design
north star for the confirm screen.
5. Every constraint the build has to respect: the Oct 28 pilot date,
the Nov 5 launch, the Nov 13 feature cutoff, the Dec 14 code
freeze, and that Tamsin needs final user-facing wording by Oct 29.
6. A "Do not reopen" list with every decision from decisions.md.
Don't design the confirm screen. Don't invent numbers. If the build
will need something we don't have, put it under Open questions with
the person in team/ who can answer it.
Builder OS is free, and it's useful on its own whether or not you ever use Shipforward. If you're building software and want the factory too, that's what Shipforward is for.
Not a PM? Start with /onboard
The blank OS starts with one command. /onboard is an interview, not a form: one or two questions at a time, about fifteen minutes total, writing files as it goes so nothing is lost if you stop halfway.
It covers seven short sections:
- You: your role, and what you'd tell a new teammate you actually do all day
- Goals: what you're on the hook for, your biggest current project, and what you're explicitly not doing
- Team: your manager and the people you work with every week, with how each one likes to get information
- Rhythm: your recurring meetings and the work you produce on repeat
- Tools: what's connected, what could be, and what stays as files
- Voice: you paste a few things you've written, and it pulls out your rules
- Pack: it suggests runbooks built for your kind of work
That last step uses role packs. Here's a sample of what each one includes:
| Role | Runbooks it suggests |
|---|---|
| Product manager | Problem brief, launch checklist, roadmap narrative |
| Engineer / tech lead | Incident review, PR story, on-call handoff |
| Designer | Critique prep, design rationale, handoff notes |
| Founder / operator | Investor update, hiring loop, board prep |
| Marketing / growth | Campaign brief, content calendar, experiment readout |
| Sales / support / partnerships | Account prep, QBR, deal review, customer incident |
| Program / ops | Status rollup, RAID log, dependency check, retro |
| Data / analytics | Analysis brief, findings memo, metric definitions |
If your role isn't on the list, it builds a pack from the repeat work you described in the rhythm section.
Set it up
- Download the blank OS and unzip it somewhere you'll keep it.
- Open a terminal in the folder and run
claude. - Type
/onboard. - Tomorrow morning, type
/brief.
If you'd rather look around first, the example download will let you open the files in Claude Code and replay Jules's Thursday. Its README lists the commands in order and includes the exact notes to paste into /debrief.
Questions people ask
- Do I need to connect my calendar and task tracker?
- No. Every command works from the files alone. Connections make
/briefand/weeklypull live data, and/onboardchecks what's available and offers to use it. - Won't the files go stale?
- That's what the daily loop is for.
/debriefupdates team files and commitments after every meeting,/eodupdatesSPRINT.mdat the end of the day, and/cleanupruns once a week to catch stale projects, aging waiting-on items, and an inbox that's getting full. The OS stays current because the commands you already use keep feeding it. - Does this work outside Claude Code?
- The core is just markdown in a folder, so any AI tool that reads local files can use it. The slash commands, the session hook, and connections are what make it smooth in Claude Code.
- How is this different from a Notion second brain?
- A second brain is something you maintain so you can read it later. Builder OS is something Claude reads and writes as part of doing the work. You rarely file anything by hand.
- Do I need Shipforward to use Builder OS?
- No. Builder OS works on its own for any role. Shipforward is for people turning ideas into shipped software, and
/handoffconnects the two when you use both. It also works with any other build workflow: the handoff file is plain markdown. - Can I put work information in it?
- It's local files on your machine. Follow your company's rules about what can go where, the same as you would for any notes.
Jules's Thursday started with a missed deadline, a viral TikTok, and a CEO who wanted to step in. It ended with a renewal back on the table, a launch call written down with its weak spot admitted, and a product direction that came straight from the planners. The folder didn't make those calls. What it did was make sure she walked into every room already knowing what she needed to know.