Vibestrate
Vibestrate
docs

Schematics

Every diagram in the docs on one page, in the order the pieces depend on each other.

In simple words

The drawing set. Every diagram that appears on a concept page is collected here in dependency order, so the whole system can be read in one pass rather than found a page at a time.

Tip

Each diagram links back to the page that explains it. If a picture raises a question, that page answers it.

Nothing here is new: these are the same figures, on one sheet.

The types, and what each one holds

Nine types, in the order they depend on each other.

TypeWhat it holdsWhat it points at
TaskThe intent, its checklist, its historythe runs it started
RunOne attempt: status, branch, worktree, verdicta Crew, a Task, a snapshot of a Flow
FlowThe ordered recipe, its seats and its loopits own Steps and Seats, nothing else
StepOne phase: kind, stage, inputs, outputsa Seat, when its kind takes one
SeatA label and a description. That is allnothing. It is a slot
CrewYour roster, plus two overridesits Roles
RolePrompt, permissions, skills, the seats it fillsa Profile
ProfileModel, effort, token cap, timeouta Provider
ProviderCommand, args, env, settingsthe binary or endpoint on your machine

The seam falls between Seat and Role. Everything above it is what a flow ships and can travel; everything below it is yours.

What a flow is made of

Flow seats the slots steps the order Seat Step seat Crew answered by no field here can name a model, a provider or a price

A flow is closed: its two references point at its own types. Explained on Flow.

What a profile is made of

Crew Role Profile Provider provider -> Provider model string | null power string | null maxTokens number | null timeoutMs number | null disallowedTools string[] | null The profile is the join: the only place a model, an effort level, a token cap and a timeout are named together. Five of the six default to null: whatever the provider does by default. timeoutMs unset is what an unattended run has to bound another way.

The profile is the join, and the only place a model, an effort level, a token cap and a timeout are named together. Explained on Profile.

What a run is made of

Run runId its identity status one of sixteen branchName its own branch worktreePath outside the repo flow the snapshot crewId -> Crew resumable status + loops + flow auditable events + actions enough state to be picked back up after the owning process is gone

Enough state to be resumed, and enough evidence to be audited. Explained on Run.

The default flow

Plan Implement Validate Review changes requested at most 3 passes

Four steps and one bounded cycle. Explained on Steps.

How a run is driven

vibe CLI Mission Control vibe shell run-launcher Orchestrator state, steps, budget, gates Action Broker git worktree provider CLI validation

Three front doors, one core, one boundary. Explained on Architecture overview.

What one turn does

prompt assembled permissions resolved broker: provider.spawn resilience loop normalize and assess child process group vendor CLI sub-agents nothing in here can be intercepted per tool or per request ask gates each change, never each command

The box on the right is the part Vibestrate cannot see into, which is why the permission model gates changes rather than commands. Explained on Architecture overview.

How a failed turn is resolved

turn failed typed stall? match stderr stall rate-limit transient usage-limit hard retry with backoff wait for the window fallback, then fail the stall code is read structurally, never matched as text

The class decides which rung the turn enters at, and only hard skips the ladder entirely. Explained on Safety.

© 2026 Vibestrate
v0.3.0 Shonshon - Evolving Technologies