# Zopu Work OS — Agent Context > **Purpose:** compact bootstrap context for Codex/OMP/OpenCode/FLUE workers contributing to Zopu. > **Usage:** read this first, then load only task-relevant documents and repository files. ## 1. Mission Build Zopu: a Work OS that turns conversation and external Signals into durable, verified outcomes. ```text Signal → Work → Definition → Design → Vertical Slices → Resolver → Attempts → Verification → Delivery → Result → Learning ``` The product is not chat threads, an issue tracker, a harness UI, or an autonomous PR factory. ## 2. Source-of-truth order ```text 1. current accepted Work/Question/Decision 2. approved Work Definition 3. approved Design Packet + current Slice 4. repository tests/types/code 5. product.md 6. tech.md 7. design.md 8. dev-loop.md 9. slices.md 10. dev-plan.md 11. glossary.md 12. evaluation.md ``` When sources conflict, report the conflict. Do not silently choose a convenient interpretation. ## 3. Current product target Initial user: ```text technical founder / small engineering team one project + one Git repository web chat + Work cards manual merge ``` Initial complete loop: ```text message → Signal → approved Work → approved Design Packet → one bounded coding slice → independent verification → exact verified commit → real PR → human intervention/resume ``` ## 4. Non-negotiable invariants 1. Work is a durable outcome, not a chat/session/issue/PR. 2. Exact Signal provenance is preserved. 3. State transitions are explicit commands/events. 4. FLUE/model output is validated proposal data, not authority. 5. Rivet actors own serialized lifecycle/recovery. 6. Harnesses and runtimes are replaceable adapters. 7. One mutating Attempt owns one isolated worktree. 8. Every Attempt is bounded and terminally classified. 9. Builder output remains candidate output until independent verification. 10. Evidence binds to exact revision and environment. 11. Published PR head equals verified integrated SHA. 12. Human questions/approvals are durable objects. 13. Retry/restart must not duplicate Work, commits, PRs, or deployments. 14. Merge/deploy remain human-gated initially. 15. Completion requires outcome evidence, not an agent’s “done.” ## 5. System ownership ```text Work OS durable intent/state/evidence/policy Rivet actors identity, serialization, timers, recovery FLUE domain agents/workflows and typed proposals Harness bounded coding/tool loop Sandbox filesystem/process/network isolation Git source history ArtifactStore durable output/evidence UI/Buzz interaction surfaces, not workflow truth ``` ## 6. Initial actor shape ```text ProjectActor ├── project config + active Work index WorkActor ├── definition/design/slices ├── resolver state ├── questions/approvals ├── artifacts/result AttemptActor ├── runtime lease ├── harness session ├── normalized events ├── timeout/cancellation/outcome ``` Add Verification/Integration/Result actors only when their lifecycles justify separation. ## 7. Initial adapters Preferred first implementation: ```text FLUE definition/design/resolver support Rivet actors CubeSandbox full Linux runtime OMP first coding harness, replaceable Git forge branch/commit/PR Convex durable application data/projections where used Effect application ports/layers/errors/scopes/streams ``` Do not import provider-specific types into domain modules. ## 8. Working protocol for every code task ### Before editing 1. Identify current vertical slice and acceptance criteria. 2. Read relevant docs and repository rules. 3. Inspect current architecture, tests, and existing abstractions. 4. State impacted modules and risks. 5. Produce/confirm a small implementation plan. 6. Ask a Question only when ambiguity changes behavior, security, data, or architecture. ### During implementation 1. Stay within the current slice. 2. Preserve dependency direction. 3. Prefer existing patterns over parallel frameworks. 4. Add typed boundaries and tagged errors. 5. Make external effects idempotent. 6. Add cancellation/timeouts for long-running operations. 7. Record exact revisions/provider identifiers. 8. Add tests with the implementation. 9. Do not weaken unrelated tests or hide failures. 10. Explain intentional Design Packet deviations. ### Before declaring candidate ready Run task-relevant checks: ```text format/lint/typecheck focused unit/integration tests behavioral/live check security/secret check where relevant design-conformance review ``` Report: ```text files changed behavior implemented checks run + results known risks/deviations artifacts/revision remaining blockers ``` Never claim verified unless the independent verification path ran. ## 9. Code organization rule Use logical separation: ```text domain/ pure types/state/invariants application/ use cases/commands ports/ Effect services adapters/ FLUE/Rivet/Cube/OMP/Git implementations ``` Keep the initial package count practical. A folder boundary is enough until independent reuse/lifecycle exists. ## 10. State modeling rule Prefer explicit state machines over booleans. Bad: ```ts isRunning: boolean isDone: boolean hasError: boolean ``` Good: ```ts type AttemptStatus = | "queued" | "running" | "succeeded" | "retryable_failure" | "needs_input" | "blocked" | "verification_failed" | "budget_exhausted" | "cancelled" | "permanent_failure" ``` Transitions must validate current version/state. ## 11. Model/agent output rule Agents return schemas such as: ```text SignalProposal WorkDefinitionProposal DesignPacketProposal ResolverDecisionProposal VerificationAssessment LearningProposal ``` Application code decodes, authorizes, and executes commands. Agents do not directly mutate arbitrary state. ## 12. Quality rule For every behavior, identify: ```text acceptance criterion implementation evidence independent check exact candidate revision review requirement ``` Tests prove immediate behavior. Design review protects maintainability and future change cost. Both matter. ## 13. UI rule Expose: ```text outcome phase latest meaningful update next action/blocker slice progress evidence delivery/result ``` Hide low-level harness noise by default. Preserve raw logs in diagnostics. ## 14. Scope control Do not implement unless required by the current slice: - dynamic Kit Builder; - multiple harness providers; - large fleets; - autonomous merge/deploy; - universal workflows; - automatic canonical-memory mutation; - sophisticated multi-tenancy. Design replaceable boundaries, then ship one path. ## 15. Task completion template ```md ## Implemented - ... ## Behavior - ... ## Verification run - `command` — pass/fail - ... ## Evidence - candidate SHA/artifacts - ... ## Design deviations - none / ... ## Remaining risks or blockers - none / ... ``` ## 16. Required reading by task type | Task | Read | |---|---| | product/domain | product.md, glossary.md | | UI | design.md, product.md | | actors/state | tech.md, glossary.md | | orchestration | dev-loop.md, tech.md | | current sequencing | slices.md, dev-plan.md | | verification/evals | evaluation.md, dev-loop.md | | provider adapter | tech.md plus provider docs | | broad feature | agent-context.md + all relevant sections | ## 17. Stop and escalate when - accepted definition/design is missing or contradictory; - required permission is unavailable; - worktree/revision identity is uncertain; - a destructive action is outside policy; - verification cannot bind to exact candidate; - implementation requires expanding scope materially; - a retry would repeat a non-transient failure; - repository state suggests another active mutating owner. Return a precise Question or blocker, not a guess.