DocsOpen the app →

Switch to game mode?

The arcade opens on its menu.

Switch

How the loop works

The loop in three drawings — its six stages and who acts at each, the pull requests you will see, and which skill runs which.

One PRD goes around one loop, from an idea to a retro. At three points it waits for a person; everywhere else, agents do the work, and write down every decision they took without you. This page shows the loop three ways: its stages, its pull requests, and its skills. Use cases then says what to type for each thing you want to do.

The loop, stage by stage

IDEAtalked throughwith Claudeno file yetPRDspec, plan andbefore/afterphase-0 PRINBOXapproved, andready to builddelivery/inbox/OUTBOXbeing built; theagents' questionsfeature PR, draftSHIPPEDmerged into thedefault branchdelivery/shipped/RETROhow it went, andwhat it taughtretro + knowledgeYOU + CLAUDE/omni:brainstormwrites the PRDYOUreview, mergethe phase-0 PRAGENTS/omni:yolo <n>you start it; they planand build every sliceYOUanswer the outbox/omni:yolo-fix <n>merge feature PROMNI APPopens the retro+ knowledge PRsKNOWLEDGEwhat it taughtshapes the next ideaWHO ACTSyou: a person decidesagents: Claude buildsOmni App: on GitHubOnly a person merges into the default branch.
StageWhat it meansWhere you see itWhat moves it on
ideatalked through with Claude, nothing written yetyour Claude Code session/omni:brainstorm writes the PRD; a vast idea goes through /omni:think-big first
PRDa spec, a plan and a before/after page, waiting for a person's approvalthe PRD issue, the phase-0 pull requestyou merge the phase-0 pull request
inboxapproved, ready to build.omni-loop/delivery/inbox//omni:yolo builds it
outboxbeing built; what the agents decided alone waits for youthe feature pull request, a draftyou answer the questions, then merge the feature pull request
shippedthe change is on the default branch.omni-loop/delivery/shipped/the Omni App opens the retro and knowledge pull requests
retrohow the delivery went, and what it taughtthe retro and knowledge pull requestsyou merge them, and the next idea starts from what they keep

Three rules hold the loop together:

  • The folder is the status. A PRD's folder sits in the inbox until it ships, and in the shipped folder after. omni prd followed by a PRD's number says where it is, and every skill looks there before it acts.
  • Only a person merges into the default branch. The agents merge slices into a PRD's feature branch, never further. The phase-0, feature, retro and knowledge pull requests are yours to merge.
  • Every decision an agent takes alone becomes an outbox item, which you answer or adopt. Nothing is decided behind your back, and nothing stops a build to wait for you.

Your three gates

  1. The phase-0 pull request. Merging it approves the PRD and puts it in the inbox, on the default branch (why, below). It holds documents only, no code: this is the cheapest moment to change your mind.
  2. The outbox. When the build is done, the feature pull request lists every question the agents met, in plain words, each with the option they built (always A) and the others. You answer them all in one comment, and /omni:yolo-fix rebuilds what you changed. The lighter decisions are adopted as each wave merges: they stand unless someone objects later.
  3. The feature pull request. It is marked ready for review once no question is left open. Its description says what was built, how it was checked, the risk and how to roll it back. Merging it ships the PRD.

Between two gates, nothing asks you anything. Only two things hold a slice: a confirmed rule of your knowledge base it would break, and an action only a person can take, such as adding a secret. Both come back to you with what to do.

Why the phase-0 pull request goes into the default branch

The PRD's feature branch already holds the spec, the plan and the before/after: /omni:brainstorm wrote them there. The phase-0 pull request carries the same files, byte for byte, into the default branch, and it is that merge which puts the PRD in the inbox. It matters for four reasons:

  • The inbox is read on the default branch. The folder is the status, and omni status, the status line and every teammate's checkout read the folders from the default branch. Until the phase-0 pull request is merged, they show the PRD as in review: counted apart, not yet approved. Once merged, its folder sits in .omni-loop/delivery/inbox/ for everyone: approved, ready to build.
  • The merge is the approval, on record. Only a person merges into the default branch. The merge says who approved which spec and which plan, and when, before a line of code was written.
  • The next PRDs can build on it. Every new PRD starts from the default branch, so from then on it can read this spec and this plan, and name this PRD among the ones it waits for (blocked-by), which the kit accepts only for a PRD already in the inbox or shipped.
  • The feature pull request stays about the code. Before it ships, /omni:yolo merges the default branch into the feature branch; the two copies of the documents are identical, so they reconcile to nothing. The feature pull request then shows what changed since the approval: the code, and the PRD's folder moving from inbox/ to shipped/. You read the documents once, at phase 0, and the code once, at the end.

The pull requests you will see

phase-0 PRdefault branchfeature branchfeat/<topic>sub-PRsone per slicespec, plan, before/afterYOU MERGEthe phase-0 PR:the PRD is in the inboxplan.md, draftfeature PRs1s2s3WAVE 1WAVE 2/omni:yolo: agents build and merge each sub-PRshipPR readyYOU MERGEthe feature PROMNI APPretro, knowledge

Every PRD opens the same few issues and pull requests, each with its label:

LabelWhat it isOpened byMerged by
omni:prdthe PRD's issue: its number is the PRD's number/omni:brainstormclosed when the PRD ships
omni:phase-0the PRD's folder alone: spec, plan, before/after/omni:brainstormyou, into the default branch
omni:featurethe whole change: a draft until no question is open/omni:plan, run by /omni:brainstormyou, into the default branch
omni:subone slice, or one rework/omni:wave, /omni:do-workthe loop, into the feature branch
omni:retrohow the delivery wentthe Omni App, once shippedyou
omni:knowledgethe decisions you settled, written back into the knowledge basethe Omni App, once shippedyou

The retro and knowledge pull requests open only when the delivery taught something worth keeping. Three more labels say a state rather than a kind:

  • omni:in-progress: an agent is working on this pull request right now. Leave it be.
  • omni:needs-fix: a slice or a check stayed red after its tries. Its status comment says what a person must do.
  • omni:outbox-go: a person lets the outbox gate pass while questions are still open. The loop never adds it.

Each of the loop's pull requests carries a status comment, kept current: where it is, and the steps left to a person.

Slices and waves

The PRD's plan, plan.md, cuts it into thin slices. Each slice has a territory, the files it may touch; the slices it waits for; and a wave. The slices of a wave are built side by side, each by its own agent in its own copy of the repository, each ending in its own sub-pull request. The loop merges them into the feature branch one at a time, checks the wave as a whole, then starts the next wave.

A slice that stays red after its tries gets omni:needs-fix; it holds only the slices that wait for it, and the rest go on. To see a PRD's slices, which are merged, in flight, stuck, ready or waiting, and what can run next:

TERMINALCODING AGENT
omni board 7

Which skill runs which

you type ita skill runs it/omni:brainstorm/omni:yolo <n>/omni:yolo-fix <n>/omni:dossier-open/omni:dossier-push/omni:plan <n>/omni:wave <n>/omni:do-workits pagethen plans itno plan yet?each waveone agentper sliceone perrework/omni:prevery PR the skills open: the claim, the body, the status comment, CI until greenYOURS, ANY TIME/omni:invadethe knowledge base/omni:statuswhere the PRDs are/omni:helpevery command/omni:ask onanswer on a web page
SkillType it whenIt ends with
/omni:think-bigyou have a vast idea, one that would take several PRDs, and want to see bold directions before any is cutthe concept pull request, with its vision tour and its areas; its last line is the /omni:brainstorm --concept line of the first area
/omni:brainstormyou have an ideathe PRD issue, the phase-0 pull request and the draft feature pull request; its last line is the /omni:yolo line
/omni:yolo <n>the phase-0 pull request is mergedevery slice merged into the feature branch; the feature pull request ready, or questions for you
/omni:yolo-fix <n>you answered the questionswhat you changed rebuilt, and the feature pull request ready
/omni:plan <n>a PRD has no plan yet; /omni:yolo runs it for youplan.md, and the draft feature pull request
/omni:wave <n>you want one wave at a time; /omni:yolo runs it for youthe wave's slices merged into the feature branch
/omni:do-work <n> <slice>you want one slice alone; /omni:wave runs it for youone sub-pull request into the feature branch
/omni:pra pull request of the loop is red or conflicts; the skills run it for youthe pull request green, or stuck, with the reason
/omni:invadeonce, after the install; with --refresh when the repository has changed a lotone docs pull request: the knowledge base
/omni:statusyou want to see where the PRDs areone screen
/omni:helpyou want to know what a command doesone screen
/omni:ask onyou would rather answer Claude's questions on a web pagethe page's link
/omni:dossier-open, /omni:dossier-pushnever: /omni:brainstorm, /omni:think-big and /omni:plan run themthe PRD's page on the Omni page

Every skill, what it does and when to use it: Skills.

Given a name, /omni:help explains one skill or command: /omni:help yolo.

In a terminal

A few omni commands are for you, in a terminal at the root of the repository or from Claude Code with ! before them. None of them changes anything, except omni signin and omni update.

CommandWhat it says
omni statuswhere the repository's PRDs are, read from git; with --fetch, fetched first
omni status 7whether PRD 7 still has open questions: its outbox gate
omni prd 7where PRD 7 lives, and its files
omni board 7PRD 7's slices, and what can run next
omni kb show briefingone form of the playbook, as the agents read it: briefing, testing…
omni knowledge BR-QUOTE-1one rule of the knowledge base, by its id
omni signinsigns this laptop in to the Omni page
omni versionwhich kit the repository runs, and whether a newer one exists
omni updateopens the pull request that brings the repository to the newer kit
omni helpevery command, on one screen

The skills run the others themselves, such as omni ship or omni adopt: you never need to.

Next → Your first PRD