Docs

Guides

Deploy medium work

Ship one feature or a medium project as a single tranche: several tasks in parallel, no milestone above them.

Medium work
Planner
Operator

Before you start

  • Vinaya is installed in the repository. See Get started.
  • The work is one feature or engineering need, small enough to plan in one go.

The flow

Deploy medium work · the flow
OUTSIDE VINAYA · PRODUCT MANAGEMENT · defines the what, hands specs to engineering
Engineering need
No product project behind it:tech debt, orchestration fixes,bugs found while working
STAGE 1 · THINKING · architect and planner
Planner · standalone tranche
Multi-task internal need,no Milestone above it⎇ optional tranche branch
TR-07planned
#610
#611
#612
#613
Planned tasks: each an Issue with a brief (Surface, objectives, test plan) — the contract the loop executes
STAGE 2 · EXECUTING AND RETROSPECTING · the loop, the gates, closure and the record: all automatic
Developer–Review LoopDRIVEN BY THE OPERATOR
dev-review-loop.tssends the work, reads the result, decides the next step
MULTI-AGENT ORCHESTRATION · THE DRIVER
Developer agent
implements the brief
Reviewer agents
judge it against its Surface and objectives
Atta Engine · LangGraph runtimeCHECKPOINTS · HALT AND RESUME · RECOVERY
Claude CodeSANDBOXED
CodexSANDBOXED
macOSsandbox: Seatbelt
Linux / Unixsandbox: seccomp
GATES · at every step, the doors to GitHub · same for planned and hot · cannot be skipped
Ring 0 · commit + push hooks
last door before GitHub
Ring 1 · CI on the PR
same checks, merge blocked while red
Ring 2 · audits
after merge, always on
BEFORE CLOSURE · REPLAN, RECOVER, MERGE
Ready? → Review and merge
Gates green on the pull request.Required reviews report.The Principal merges. Nobody else does.MERGED → ARCHIVE · REFUSED → EXECUTE / REPLAN
RETROSPECTING · on every merge, automatic
Archivist
Closes each task on mergeRecords what shipped and why
Tranche Archivist
Closes the tranche when its last task lands
Retrospective record
What shipped and why
STAGE 4 · SELF-IMPROVEMENT · the Log teaches the process
Report: what the Log says
Written from every run of the deploy. Example figures.
34 mintime per task
19 of 52second rounds
418problems caught
WHERE THE TIME GOES
Developer 84% · Reviewers 16% · most extra rounds come from one gate · a vague Surface doubles the rounds
Improver
Reads the report, proposes what to changeBACK TO LINEAR / JIRA · THE PRINCIPAL APPROVES
Project: run the doc gate before pushFix · cuts an expected 0.7 rounds per task
Project: surface check at planning timeFix · catches vague briefs before dispatch
Project: resume preview in StudioNew feature · shows what a ruling will change

Steps

  1. 1

    Plan the tranche

    In your agent, run /vinaya planner and describe the feature. The Planner reads the code, cuts the work into tasks, and writes each as a GitHub Issue carrying the tranche label, with dependencies and conflicts declared. You approve before anything is written.

  2. 2

    Choose where it lands

    Every Issue has a parent branch. By default it is main. To test the whole feature together first, use an integration branch as the parent of every task in the tranche. See Parent and integration branches.

  3. 3

    Run the tasks

    Run /vinaya operator. Each task runs through the same loop, in parallel where the plan allows. To run one task yourself, use vinaya task run <tranche> <n>.

  4. 4

    Rule and merge

    Answer any pause that is yours with vinaya pr rule. Merge each pull request when it is ready.

What you get

  • One reviewed pull request per task.
  • Each task closed on merge, and the tranche closed when its last task lands. There is no milestone to close.

What's next

The whole process

Every flow on one diagram, from product work to merge and back.