Separate State, Authority, and Evidence
AI-assisted development easily mixes statements such as work completed, checked, merged, deployed, and live. Keeping current state, execution authority, and verification evidence as separate records makes the system reconstructable even when several agents work in parallel or ownership changes.
- STATE — where the work is now
- The current Issue, branch, HEAD, pull request, merge state, deployment, and production state. Prefer the actual state in GitHub or the external system over a conversational self-report.
- AUTHORITY — who may change what
- Separate read, code-write, merge, deploy, publish, and destructive permissions. Having a task assignment does not automatically grant every execution right.
- EVIDENCE — what has actually been verified
- CI, review, readback, and production checks bound to an exact target such as a commit SHA or deployment ID.
A delivery ledger across five stages
| Stage | State | Authority | Evidence |
|---|---|---|---|
| Issue | Purpose and acceptance conditions | Who may start work | Recorded requirements and acceptance conditions |
| PR / HEAD | The current change version | Writer / reviewer | Exact SHA, diff, and CI |
| Merge | Whether the change is on main | Merge authority | Merge commit and required checks |
| Deploy | Which environment received the change | Deploy authority | Deployment ID and target SHA |
| Production | What the public system is serving | Post-release change authority | HTTP, UI, function, and external-state readback |
Evidence belongs to the exact version
A pull request may keep the same number while its HEAD changes. CI and review results are valid for the version they checked. Netsujo binds those results to the exact commit SHA and binds deployment evidence to both a target SHA and a deployment ID.
Field note: verify the exact SHA
When the outcome is uncertain, read state before retrying
A timeout or stopped response is not enough to prove that an external action did not happen. Netsujo may classify that situation as OUTCOME_UNCERTAIN and read GitHub, the deployment target, or the external API before another write is attempted.
Field note: stopping chat and stopping external work are different operations
Netsujo uses a Controller to keep the current state explicit
The Controller tracks state, progression conditions, and writer authority. The Orchestrator coordinates assignment, parallel execution, recovery, and independent verification. This division is a Netsujo operating model.
Field note: Controller, Evidence Ledger, and Gate