# Zopu Work OS — Software Development Loop > **Purpose:** canonical operating process for producing high-quality software with humans and agents. > **Applies to:** Zopu product development and software Work resolved by Zopu. > **Core principle:** accelerate implementation without removing design judgment, independent verification, or release learning. ## 1. The model Software delivery contains two nested loops. ### Outer product loop ```text Observe problem → define outcome → design solution → deliver slices → release → observe result → learn/revise ``` ### Inner slice loop ```text Select approved slice → prepare isolated candidate → implement → verify behavior → verify design conformance → review/resteer → integrate ``` The outer loop proves that the right problem was solved. The inner loop proves that each implementation increment is correct and preserves the intended system shape. The system optimizes: ```text verified progress / human-attention minute ``` It does not optimize commits, tokens, agents, PR count, or code volume. ## 2. Why this process exists Agent harnesses compress implementation time but do not remove these failure modes: - ambiguous requirements implemented literally; - locally correct code that damages system boundaries; - horizontal plans whose behavior is visible only at the end; - tests that pass while the user path is wrong; - builder self-certification; - parallel changes that fail when integrated; - merged code that does not solve the original problem; - lessons lost after delivery. Therefore decisions move earlier and implementation is divided into reviewable vertical slices. ## 3. Delivery routes Risk determines ceremony. ### Fast lane Use for isolated, reversible, deterministic changes. ```text Work Definition → compact design note → implement → automated verification → PR ``` Required human gate: merge or policy exception. ### Standard lane Use for normal product behavior, APIs, UI flows, and multi-module changes. ```text Work Definition → impact analysis → program design → 1–4 vertical slices → slice verification/review → integrated verification → PR ``` Required gates: definition/design approval and merge. ### Critical lane Use for authentication, authorization, billing, migrations, destructive operations, secrets, shared infrastructure, or high blast radius. ```text Work Definition approval → architecture approval → program-design approval → one slice at a time → security/rollback verification → staged release approval → observation ``` A risk classifier may recommend a lane; policy makes the final decision. ## 4. Phase A — Problem and product definition ### Inputs - user conversation; - Signals and provenance; - incidents/analytics/support; - project strategy and constraints; - existing related Work. ### Required artifact: Work Definition ```text problem affected users desired observable outcome success signals in scope / out of scope acceptance criteria constraints assumptions unresolved questions risk lane required artifacts release/rollback requirements ``` ### Rules - Acceptance criteria describe behavior, not implementation. - Assumptions are explicit and labeled. - Important ambiguity becomes a Question, not hidden prompt context. - The original Signal remains attached. - A changed definition creates a new version and invalidates dependent approvals. ### Gate Proceed when the definition is testable, important questions are resolved, and required approval exists. ## 5. Phase B — System impact and architecture ### Goal Determine how the change interacts with the existing system before code is generated. ### Required artifact: Impact Map ```text directly changed components potentially affected components data/security boundaries public contracts migrations and compatibility operational effects required verification categories ``` ### Architecture artifact Use only the detail needed for the Work: - component/sequence diagram; - API/event contracts; - data ownership; - trust and permission boundaries; - migration/rollout shape; - failure and recovery paths. Architecture describes component interaction. It does not replace program design. ### Gate Proceed when affected boundaries and externally visible contracts are understood. ## 6. Phase C — Program design ### Goal Make implementation intent cheap to review before code volume exists. ### Required artifact: Design Packet ```text architecture summary expected file-tree delta expected call-flow delta key types/interfaces/signatures dependency direction invariants error model state transitions security/operational concerns trade-offs known deviations ``` Example file-tree intent: ```diff packages/resolver/ + domain/resolution-decision.ts + application/resolve-next-slice.ts + ports/harness-runtime.ts + adapters/omp-harness-live.ts ``` Example call-flow intent: ```text WorkActor.start → resolveNextSlice → AttemptActor.start → SandboxRuntime.create → HarnessRuntime.open/prompt → normalize outcome → VerificationRuntime.execute → WorkActor.transition ``` ### Review questions - Is the dependency direction correct? - Does one module own each invariant? - Is the next likely change still local? - Is complexity introduced where it belongs? - Are persistence and external side effects idempotent? - Are failure, cancellation, and recovery explicit? - Can the behavior be verified independently? ### Gate Standard/critical Work requires an approved Design Packet. Small fast-lane Work may use a compact design note. ## 7. Phase D — Vertical slice planning ### Goal Turn design into increments that are observable, executable, and reviewable. ### Slice contract ```text objective user/system behavior exposed planned code boundaries inputs/dependencies expected outputs/artifacts verification checks review requirement budget/retry policy ``` ### Valid slice A slice: - crosses the layers needed to expose behavior; - produces evidence before later slices; - can be reverted or revised without discarding the full implementation; - is small enough for one focused review; - does not postpone all integration/testing until the end. ### Invalid horizontal plan ```text build all database code → build all backend code → build all frontend code → test at end ``` ### Preferred plan ```text Slice 1: one durable Work transition visible in UI Slice 2: one isolated execution attempt visible in UI Slice 3: independent verification visible in UI Slice 4: verified PR artifact visible in UI ``` Agents should receive only the current approved slice plus necessary surrounding context, not an invitation to redesign the whole system. ## 8. Phase E — Kit compilation ### Goal Compile approved intent into an executable, policy-bound package. ### Inputs ```text Work Definition Design Packet current Slice project/repository policy risk lane tool/runtime/harness registry previous evidence and decisions ``` ### Output: immutable Execution Kit version ```text roles context selection skills/instructions tool grants runtime capabilities harness selection source-control policy output contracts verification recipe budgets/timeouts human gates escalation policy ``` v0 uses a static Coding Kit. Dynamic selection/composition follows only after repeated runs establish useful patterns. ### Kit invariants - least-privilege tools; - no self-granted capabilities; - explicit model/runtime/harness; - bounded compute and retries; - exact expected artifacts; - verifiers separated from builders; - version recorded on every Run. ## 9. Phase F — Slice execution ### Preparation The Resolver: 1. confirms the slice and design versions are current; 2. resolves dependencies; 3. creates Run and Attempt records; 4. prepares an isolated worktree/base SHA; 5. provisions runtime; 6. injects scoped context and credentials; 7. starts the selected harness. ### Implementer contract The implementer receives: ```text current slice only accepted Work Definition relevant Design Packet excerpt repository rules completion/evidence contract known previous failures/decisions explicit forbidden actions ``` It may inspect surrounding code as needed but must not expand scope silently. ### Normalized execution events ```text MeaningfulProgress ToolStarted/Completed QuestionRaised ArtifactProduced CandidateReady AttemptFailed AttemptCancelled ``` Raw provider events remain diagnostics, not product state. ### Attempt terminal outcomes ```text Succeeded RetryableFailure NeedsInput Blocked VerificationFailed BudgetExhausted Cancelled PermanentFailure ``` No attempt remains indefinitely active. Timeouts and process death are classified outcomes. ## 10. Phase G — Independent verification ### Principle Candidate output is not complete output. ### Verification layers #### Static - format/lint/typecheck; - dependency policy; - secret/security scan; - generated-file consistency. #### Behavioral - focused unit/integration/contract tests; - new tests fail on base and pass on candidate where practical; - service startup and live API assertions; - database/migration behavior. #### Product - real browser/user path; - screenshots/video; - accessibility/visual checks; - frontend/backend interaction. #### Operational - build/start/health; - logs and failure handling; - resource limits; - rollout/rollback checks. #### Design - expected vs actual files/interfaces/call paths; - dependency graph changes; - duplicated logic; - unjustified casts/exceptions; - explicit deviations from approved design. ### Verification record Every check binds to: ```text Work/slice/run/attempt candidate SHA environment/runtime command or assertion exit/status evidence artifact timestamp verifier identity/version ``` ### Repair loop ```text failed evidence → Resolver classifies → bounded repair attempt → implementer receives exact failure → full required verification reruns ``` Passing only the failed command is insufficient when the candidate changed. ## 11. Phase H — Slice review and resteering Policy decides whether human review is required after each slice. ### Review package ```text slice objective approved design intent actual behavior meaningful code narrative verification evidence design deviations risks/questions recommended decision ``` ### Decisions ```text Accept slice Request repair Revise design Split/reorder slices Stop/cancel Work ``` Resteering updates durable definition/design/slice versions. It is not an informal chat instruction lost inside a harness transcript. ## 12. Phase I — Integration Individually valid slices may be invalid together. ### Integration flow ```text compose candidate commits → resolve conflict/overlap → produce integrated SHA → run impacted + required checks → generate integrated review package ``` ### Invariants - the PR head equals the verified integrated SHA; - checks identify exact revision/environment; - overlapping assumptions are surfaced; - no slice bypasses integrated verification; - failures return to repair/replan, not silent merge. ## 13. Phase J — Delivery ### Delivery artifacts ```text commit branch pull request preview/staging URL release notes migration/rollback plan ``` Creating a PR is a delivery transition, not completion of the original outcome. ### Human review The review experience should explain: 1. original intent; 2. accepted behavior; 3. architecture/program design; 4. slice narrative; 5. important diffs; 6. evidence; 7. deviations/risks; 8. exact revision and next action. Manual merge remains the initial policy. ## 14. Phase K — Release and observation For releasable Work: ```text verified candidate → preview/staging → approval → rollout → health observation → accept or rollback ``` Observation compares: ```text expected success signal vs actual production/user result ``` Final classifications: ```text Achieved PartiallyAchieved NotAchieved Regressed Inconclusive ``` Failure or unexpected behavior creates new Signals linked to the original Work. ## 15. Phase L — Learning After terminal Work, evaluate both output and process. ### Questions - Was intent captured correctly? - Did design predict implementation? - Which slice boundaries worked poorly? - Which attempts/retries occurred and why? - Which context/tools were missing? - Which verification found defects? - Which defects escaped? - Did human review request major changes? - Did release achieve the result? - Should project knowledge, a Kit, skill, tool, or policy change? ### Outputs Reviewable proposals: ```text knowledge update architecture decision test recipe Kit/tool/skill revision planning heuristic follow-up Work ``` No automatic mutation of canonical knowledge. ## 16. Human attention model Humans intervene at policy-defined gates, not every tool action. ### High-value gates ```text definition approval design approval risk/permission exception slice review merge/release approval result acceptance knowledge update approval ``` ### Question format ```text decision required why it blocks progress recommended answer alternatives consequences affected Work/slice/version ``` Answers are durable Decisions and resume the same Work. ## 17. Resolver decision table | Condition | Resolver action | |---|---| | executable slice exists | start bounded Attempt | | transient infrastructure/model failure | retry by policy | | candidate fails checks | create repair Attempt with evidence | | design appears invalid | enter Replanning | | required information missing | open Question; enter NeedsInput | | dependency unavailable | enter Blocked with recheck/escalation | | budget exhausted | terminal outcome with evidence | | all slices pass | integrated verification | | integrated candidate passes | publish/review | | release requires observation | enter Observing | | result established | complete and synthesize learning | ## 18. Failure and recovery rules - Durable state is written before external effects. - External provider IDs are persisted before acknowledging completion. - Commands are idempotent. - Actor/process restart resumes from checkpoints. - Leases expire and are reclaimed. - Sandbox/harness termination is best-effort plus reconciliation. - Stale callbacks are rejected by version/attempt identity. - Every terminal failure includes diagnosis, evidence, and recommended next action. ## 19. Anti-patterns Do not: - send a vague issue directly to a fleet; - let the harness own Work state; - equate tests passing with maintainability; - generate all layers before exposing behavior; - let the builder be sole verifier; - hide design changes inside implementation; - merge independently verified branches without integrated checks; - create duplicate PRs/deployments on retry; - mark Work complete at PR creation; - auto-update canonical knowledge from one run; - add agents because parallelism appears impressive. ## 20. Definition of a high-quality delivered Work ```text ✓ original evidence preserved ✓ outcome and acceptance criteria approved ✓ risk lane correct ✓ impact/design reviewed as required ✓ vertical slices independently demonstrated ✓ every Attempt terminal and auditable ✓ candidate verified independently ✓ design deviations explicit ✓ integrated SHA verified ✓ review package understandable ✓ delivery/release policy satisfied ✓ actual result assessed ✓ learning captured as proposals ``` This document is the normative delivery process. `slices.md` defines how Zopu itself is built incrementally; this file defines how Zopu and its agents should build software.