using-builder-os
Skill2 starsChanged 49 days agoMITView on GitHub
Entry point to BuilderOS: briefs from project memory, checks each request against decisions and earlier conditions, routes to the lifecycle or to a method. Use when product work starts, a request needs routing, or someone asks where things are.
In this repository25 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agent-designSkill
- agents-mdSkill
- bug-diagnosisSkill
- builder-osSkill
- business-caseSkill
- delivery-disciplineSkill
- domain-modelSkill
- evidence-ledgerSkill
- gate-checksSkill
- go-to-marketSkill
- ideation-methodsSkill
- opportunity-mappingSkill
- outcome-reviewSkill
- pressure-testingSkill
- problem-framingSkill
- product-analysisSkill
- release-opsSkill
- research-methodsSkill
- spec-writingSkill
- system-designSkill
- tracking-standardsSkill
- ux-architectureSkill
- wayfindingSkill
The file
Files
Using BuilderOS
Route by the requested result, keeping the person's scope, supplied inputs, output destination and existing authorization. Requests unrelated to product work use the session's other capabilities.
Mode. A guide, diagnosis, recommendation, PRD, spec edit, plan or review is standalone unless lifecycle execution was requested: no phase files, no logged override. The boundary, and where shared resources and scripts resolve from the real installation, are in operating modes. Read state and session briefing for lifecycle routing or status; a standalone answer loads neither the initiatives nor the schema.
Procedure
- Read the context the request needs. A lifecycle or status request reads the active initiative and briefs from project memory (
scripts/bos.mjs briefcomputes it where commands run). A standalone question reads what affects the answer. Done when you know whether BuilderOS memory exists and what the request touches in it. - Run the watch below against the request. Done when every check that applies is named in at most two lines, or none applies.
- Choose the smallest useful route from the table. State it briefly when useful and start; ask only when a material ambiguity remains after reading the inputs, since an authorized task needs no repeated confirmation. Done when one route is chosen.
- Run the selected skill, passing the request and inputs verbatim and loading extra methods only for parts of the request they answer. A recommendation to build starts nothing by itself. Done when the routed skill is running.
Watch While Working
In a project with BuilderOS memory, check every product request against it before doing the work, say what you find in at most two lines, then continue. On a real project these checks would have caught scope built against the phase 2 and 3 conditions, a pilot that never started while features kept shipping, and a PRODUCT.md still describing the idea stage:
- Contradiction. The request goes against an accepted decision in
decisions/, aPRODUCT.mdnon-goal, a condition a phase artifact set ("no further scope until the pilot passes", a kill criterion) or the active spec's or build plan's out-of-scope. Name the file and line, then ask onepressure-testinground question: keep the condition, supersede it on the record, or open a new initiative for the request, as achangewhen its solution is already fixed, so the cheap path stays inside BuilderOS. New scope after the build plan is accepted becomes its own initiative or a recorded amendment. - Stale truth. What the person just decided makes
PRODUCT.md,ROADMAP.md, the spec or an evidence file wrong (a stage, a non-goal, a "Next" item already built, a superseded preference). Update it in the same step, or name it when the update is outside the authorized scope. - Shaky ground. The request builds on an
[assumption:unvalidated]or a deferred branch whose test never ran. Name it and the cheapest test. - Unread result. A shipped change whose outcome metric nobody has read, or a launch or pilot whose start conditions are still open, when the request is more work in the same area. Say the measurement comes first, or why it can wait.
- Someone else's initiative. The briefing shows the active initiative claimed by another person. Say who and since when, and ask whether to work on it anyway: their release, or a take-over with the reason (
claim --take --reason), keeps two sessions from writing one state. When you start lifecycle work on an unclaimed initiative where commands run, claim it for the person (claim --by "{person}"). - Code before an accepted plan. The request asks for product code in an initiative whose build plan is not accepted yet ("skip the rest, just write it"). This one is a gate: write no code. In one message name what the gate still needs and offer the paths, with a recommendation: finish it (often one short round), run the work as a
changewhen the solution is already fixed, or record an override with the person's own reason through the script (record {phase} --override "reason"), visible in every briefing, then build. The person's decision to skip is a reason to log: code built past an unrecorded gate is how a project ends up with features its own phase 2 said not to build.
The briefing's Attention line covers what the files decide mechanically; the first five need judgment. They inform the request without blocking it, and each is raised once per session.
Routes
| Requested result | Skill / mode |
| An idea or problem in one sentence ("I want to build X") | Lifecycle requested or project initialized: builder-os, starting with no setup questions per lifecycle setup. Otherwise problem-framing's first round inline, then offer to keep it as an initiative |
| Run or continue an initiative; explicitly request a spike | builder-os, lifecycle |
An effort too big or too foggy for one session; continue a map in .builderos/maps/ | wayfinding |
| Whether BuilderOS is installed and set up right, what an upgrade left owed | scripts/bos.mjs doctor where commands run, relayed; otherwise read the install and memory per state and session briefing |
| What to build next, the weekly or monthly product review, whether the product has reached PMF, in a project with BuilderOS memory | builder-os, product review |
| A fix, a small modification, debt, a compliance or contract change, or a removal on a product with BuilderOS memory | builder-os on the change track: mandate check, then spec, build, release |
| A tool for the builder or their own team, where what is wanted is known and how is not ("the customer is me") | builder-os on the internal track: need check, then options, spec, build, release; outcome review only if the release sets one |
| Frame a problem | problem-framing, standalone unless phase 0 requested |
| Research plan or interview guide | research-methods, standalone unless DISCOVER requested |
| Synthesize supplied research | research-methods (synthesis) |
| Compare opportunities or solution alternatives | opportunity-mapping or ideation-methods, standalone |
| What an idea is worth, a business case, which assumption carries it, whether to test before building, how much to bet | business-case, standalone |
| Go-to-market, positioning, pricing and motion, which channel first, a launch plan, how the launch went | go-to-market, standalone |
| Which stack, backend, database or hosting to use, and why | system-design (stack), standalone |
| How the backend fits together, an API's contracts, timeouts and retries, whether it will scale, a security or threat-model review | system-design, standalone |
| See design versions, choose a look or a design kit | ux-architecture (direction), standalone |
| Business rules, states and transitions, data model, what a term means | domain-model, standalone |
| Something is broken, regressed, slow or flaky | bug-diagnosis, standalone |
| A video of a feature working, a demo for a pull request or a release, an end-to-end test that records | delivery-discipline (demo), standalone |
| Draw a user flow or a lifecycle as a diagram | ux-architecture (flows) or domain-model (states), Mermaid in the answer |
| Draft or revise a specification from requirements | spec-writing, standalone; UX/tracking as needed |
| Plan, implement or review supplied build work | delivery-discipline, within the authorized mode |
| Turn what was discussed into a spec, with no interview | spec-writing, synthesis (to-spec by name) |
| Break a plan or spec into tickets | delivery-discipline, tickets (to-tickets by name) |
Write, update or prune a repository's AGENTS.md or CLAUDE.md; the agent keeps getting lost in the code | agents-md, standalone |
| A retrospective on an agent session, or what to change so the agent works better here | agents-md, retro (retro by name) |
| Deploy, go live, set up hosting, a domain, email sending or a preview link | release-ops (production), standalone |
| See the whole project on one page, or send it to someone | scripts/bos.mjs page where commands run: .builderos/index.html, and STATUS.md in Markdown |
| Prepare a release; verify an authorized release | release-ops, distinguish readiness from shipping |
| Review an initiative's shipped outcome | outcome-review, lifecycle; otherwise standalone diagnosis |
| Product health, a metric, activation or retention, growth loops, revenue or unit economics, PMF, a north star, OKRs, competitors | product-analysis, the area that answers it |
| Tracking plan or instrumentation audit | tracking-standards |
| Experiment design or result | tracking-standards (experiments) |
| Release notes, stakeholder update or other document | spec-writing (communication) |
Evidence and gate skills support the selected work; a standalone answer stays standalone. Load pressure-testing to interview the person: a brainstorm, a requested critique, or a material unresolved assumption.
Capabilities
files.read supplies context; without it, work from supplied material and name the gap. shell.exec runs the briefing; without it, read the relevant memory directly.
Watch for
| Do | Instead of |
| A standalone PRD from requirements, assumptions labeled | Treating it as an overridden SHAPE phase |
| Carry forward authorization and start | Asking again after an explicit phase request |
| Load the method the calculation needs | Turning a calculation into a full product audit |
| State the gap and ask when it blocks the result | A fabricated baseline for missing context |
| Report readiness until exposure is observed | A release plan reported as shipped |
Output Contract
An ambiguous request gets the route and its reason, then the blocking choice; an obvious one goes straight to its result. ## ROUTE CHOSEN is an optional routing marker, separate from phase completion evidence.
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
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.

