7.1 KiB
Agent Development Process
Date: 2026-03-30
Status: active
Purpose: define the working split between sw, tester, and review/management roles so each phase and slice has a clear delivery path
Why This Exists
The project is now beyond pure exploration.
The expensive part is no longer only writing code. The expensive part is:
- delivery
- review
- fixes
- re-review
So the process must reduce repeated full-stack review and make each role responsible for a distinct layer.
Roles
manager
Primary role:
- phase/plan owner
Responsibilities:
- define the phase/slice direction and scope
- accept the planning package before coding starts
- decide whether a carry-forward is acceptable or must become a gate
- perform the final round review for overall logic, omissions, and product-path fit
architect
Primary role:
- plan and technical reviewer
Responsibilities:
- review the plan before implementation starts
- tighten algorithm wording, scope edges, and expectation framing
- review technical correctness during implementation
- review API/state/resource/fail-closed behavior
- catch semantic drift, scope drift, and V1/V1.5 leakage
sw
Primary role:
- implementation owner
Responsibilities:
- implement the accepted slice
- state changed contracts
- state fail-closed handling
- state resources acquired/released
- state carry-forward items
- add or update tests
tester
Primary role:
- evidence owner
Responsibilities:
- define what the slice must prove before implementation starts
- maintain the failure-class checklist
- define reject conditions and required test level
- confirm that implementation claims are actually covered by evidence
Default Routine
Each slice should follow this order:
managerdefines the plan directionarchitectreviews and tightens the plan / algorithm / expectation framingtesterwrites the expectation templatemanageraccepts the package and records it in the phase docsswimplements and submits with the delivery templatearchitectreviews the technical layer until clean enoughtesterperforms validation and evidence closuremanagerperforms round-two review for overall logic and omissions
Urgent exception:
- if early work already shows major scope drift, protocol contradiction, or V1/V1.5 leakage, architecture review may short-circuit before implementation grows further
Delivery Template For sw
Each delivery should include:
- changed contracts
- fail-closed handling added
- resources acquired/released
- test inventory
- known carry-forward notes
- reuse note:
- files updated in place
- files used as references only
- files copied and why
This template is required between:
- implementation
- implementation/fail-closed review
It should accompany the delivery before reviewers start detailed review.
Suggested format:
Changed contracts:
- ...
Fail-closed handling:
- ...
Resources acquired/released:
- ...
Test inventory:
- ...
Carry-forward notes:
- ...
Reuse note:
- ...
Phase Doc Usage
Use the three phase documents differently:
phase-xx.md
Use for:
- current execution direction
- current scope
- current guardrails
- current accepted status
- current assignments
Keep it short and execution-oriented.
phase-xx-log.md
Use for:
- detailed planning evolution
- review feedback
- carry-forward discussion
- open observations
- why wording or scope changed
- slice-level reuse instructions:
update in placereference onlycopy is allowed
This document may be longer and more detailed.
phase-xx-decisions.md
Use for:
- durable phase-level decisions
- accepted boundaries that later rounds should inherit
- gate decisions
- decisions that should not be re-argued without new evidence
This document should stay compact and hold only the more important global decisions.
Expectation Template For tester
Before or at slice start, tester should define:
- must-pass expectations
- failure-class checklist
- required test level for each behavior
- reject conditions
tester should re-engage after technical review is mostly clean, to confirm final evidence closure before the manager's second-round review.
Suggested format:
Expectation:
- ...
Required level:
- entry path / engine / unit
Reject if:
- ...
Failure classes covered:
- ...
Review Checklist For architect
Review these first:
- nil handling
- missing-resource handling
- wrong-state / wrong-kind rejection
- stale ID / stale authority rejection
- resource pin / release symmetry
- plan/execute/complete argument correctness
- fail-closed cleanup on partial failure
Failure-Class Checklist
This checklist should be kept active across phases.
Minimum recurring classes:
- changed-address restart
- stale epoch / stale session
- missing resource pin
- cleanup after failed plan
- replay range mis-derived
- false trusted-base selection
- truncation missing but completion attempted
- bounded catch-up not escalating
Process Rules
Rule 1: Do not wait until the end to define proof
Each slice should begin with a statement of:
- what must be proven
- which failure classes must stay closed
Rule 2: Do not let convenience wrappers silently become model truth
Any convenience flow must be explicitly classified as:
- test-only convenience
- stepwise engine task
- planner/executor split
Rule 3: Prefer evidence quality over object growth
New work should preferentially improve:
- traceability
- diagnosability
- failure-class closure
- adapter contracts
not just add:
- more structs
- more states
- more helper APIs
Rule 4: Use V1 as validation source, not architecture template
Use:
learn/projects/sw-block/weed/storage/block*
for:
- constraints
- failure gates
- implementation reality
Do not use them as the default V2 architecture template.
Rule 5: Reuse reality, not inherited semantics
When later implementation reuses existing Seaweed / V1 paths:
- reuse control-plane reality
- reuse storage/runtime reality
- reuse execution mechanisms
but do not silently inherit:
- address-shaped identity
- old recovery classification semantics
- old committed-truth assumptions
- old failover authority assumptions
Any such reuse should be reviewed explicitly as:
- safe reuse
- reuse with explicit boundary
- temporary carry-forward
- hard gate before later phases
Rule 6: Every substantial slice should declare reuse instructions
Before implementation grows, the slice package should state:
- which existing files are expected to be updated in place
- which existing files are reference-only
- whether any copying is allowed and why
This helps prevent:
- accidental scope growth
- unclear ownership of old files
- hidden semantic inheritance from V1/V1.5 paths
Current Direction
The project has moved from exploration-heavy work to evidence-first engine work.
From Phase 06 onward, the default is:
- plan first
- review plan before coding
- implement
- review technical layer
- close evidence
- do final manager review