OUTSIDE VINAYA · PRODUCT MANAGEMENT · defines the what, hands specs to engineering
Linear
Initiative → Project → Project milestone → IssueProject = the specced featureTeams own Issues; Cycles time-box them
Jira
Initiative → Epic → Story / Task / Bug → Sub-taskEpic = the specced feature · Release (Fix version)Jira Project = container, like a Linear Team · Sprints
Engineering need
No product project behind it:tech debt, orchestration fixes,bugs found while working
STAGE 1 · THINKING · architect and planner
Architect
Execution Milestone: code direction+ tranche intents (drafts)⎇ milestone integration branch
Planner · per tranche
Reads real specs + real code,materialises intent into tasks⎇ tranche branch → milestone branch
TR-02planned
#418
#419
#420
#421
Planner · standalone tranche
Multi-task internal need,no Milestone above it⎇ optional tranche branch
TR-07planned
#610
#611
#612
#613
Planner · backlog Issue
One-off found while working;or added to an open tranchelighter planning, no tranche
#1000
backlog
Resume refuses kept workopened · no tranche
Hot Issue
No planner. Issue opened hot,light briefsame gates, still recorded
#1001
hot
Fix flaky CLI test nowopened · no tranche
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
Hot ModeDEV + ONE AGENT
DIRECT CHAT · LIGHT BRIEF · DEV DRIVESANY CHAT SURFACECLI · desktop app · IDENo loop, no engine.Sandbox is the agent's own setting.The gates still apply.
Claude Code· atta-labs/shop · mainsonnet 5.5
Claude Code · atta-labs/shop · main
The CLI test fails one CI run in five. Open it hot.
Claude
Two tests share TMPDIR. One objective, one file, a test plan. Hot Issue #1001 written.
Reply… · ⌘⏎ to send
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
Brief no longer fits? → Replan
Pause affected work. The Planner repairsthe plan: brief, dependencies, conflicts.Nothing runs on a stale brief.↻ BACK TO THINKING → EXECUTING
Interrupted or stuck? → Recover
Execution stops at an explicit pausethat names who must act.A ruling is posted; the loop resumesfrom the record, not from memory.↻ BACK TO EXECUTING
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
Milestone close
When its tranches have closed
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