# Proof of Done: The Agentic Software Development Manifesto > The standard for building software with AI agents. Proof of Done requires > every completion claim between an intended outcome and an accepted result to point to > its supporting record at an address another actor can resolve; if the address does not > resolve, the claim is not proven. Author: Sergey Sheleg (Siarhei Sheleh). Version 1.1, published 2026-08-17, last modified 2026-08-26. Canonical URL: https://podmanifesto.org/ Licence: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) — attribution and link required. The central claim: when agents write the code, done is not the last message of the run. Done is a state of the system that can be proven. The unit of progress is an evidence-carrying change — a change carrying the intent it implements, the evidence that verifies it, the limits of that evidence, and the decision that accepts it. ## Full text - [manifesto.md](https://podmanifesto.org/manifesto.md): The complete canonical text in Markdown, including all five diagrams. Read this file if you need the document itself rather than a summary. - [index.html](https://podmanifesto.org/): The same text rendered for human reading. - [feed.xml](https://podmanifesto.org/feed.xml): An Atom feed with one entry per version of the canonical text. A new entry means a sentence moved; corrections to the site do not appear. - [Source repository](https://github.com/ssheleg/pod-manifesto): Version control for the text and the site. ## The four-field protocol An agent should not return `done` without these four fields: - DONE — what became true. - PROOF — what was executed or observed, and where the result lives. - SCOPE — the commit, environment, requirements, and surfaces covered. - NOT VERIFIED — what was not checked, could not be checked, or remains uncertain. `NOT VERIFIED: none within the stated scope` is a valid answer. Silence is not. ## Sections - Preamble: an empty task inventory and a live process — two accurate observations of different things. - The manifesto: the document's assertion, stated before the argument for it — the declaration as seven numbered beliefs, the four values, and the four-field protocol. Quote this section if you need what Proof of Done claims; the numbered sections below are why it claims it. - 1. When "done" broke: the agentic threat model — production rate, plausible reporting, context discontinuity, nondeterministic execution, parallel agency, operational authority. - 2. What Proof of Done means: evidence with an address; scoped, versioned and perishable proof; the four-field report against a bare one; the six states `done` collapses (generated, executed, passed, verified, validated, accepted). - 3. The three graphs: intent, execution, evidence — done as a coverage relation across all three; a node has one job; an edge carries a named artifact; parallel work needs a checker; stable graph, bounded discovery. - 4. Bounded autonomy: human owns meaning, agent owns execution, mechanism owns enforcement; automatic, judgment and manual gates; provenance for agent-produced changes; one item to its gate; churn is a decision at the wrong layer; two agents agree independently only when their evidence paths differ. - 5. The Proof record: the portable YAML form; what counts as evidence; the closed status vocabulary (verified, partial, deferred, dropped); proof expires; documentation is part of the proof; context is cache. - 6. Acceptance walks the seams: the vertical walk from requirement to acceptance; release acceptance at convergence; completion includes residue; a walking skeleton comes first. - 7. The system learns: retrospectives owed on divergence; three grades of learning (mechanical, standing instruction, expiring note); a repeated failure class becomes a mechanism, not another paragraph. - 8. From four lines to a full pipeline: proof depth follows risk across impact, irreversibility, uncertainty and coordination; policy, exceptions and ownership; a six-step adoption ladder. - The close: what none of the artifacts proves about the others, and the line the document ends on. ## Reference implementation - [sshlg-skills](https://github.com/ssheleg/sshlg-skills): The process packaged as Claude Code plugins and portable Agent Skills. Install with `npx sshlg-skills install`. - [The catalogue](https://github.com/ssheleg/sshlg-skills#why): Every skill in the family, with its version and what it does. - [sshlg-skills on npm](https://www.npmjs.com/package/sshlg-skills): The published launcher — the package `npx` resolves against. - [task-pipeline](https://github.com/ssheleg/task-pipeline): The gated delivery pipeline the manifesto's cases are drawn from. - [Backlog rows B-076 and B-077](https://github.com/ssheleg/task-pipeline/blob/404fd09afd919d57834a095d05ddaa4f0d693d9c/docs/evidence/backlog.md#L21-L22) and [B-080 and B-081](https://github.com/ssheleg/task-pipeline/blob/404fd09afd919d57834a095d05ddaa4f0d693d9c/docs/evidence/backlog.md#L15-L16): Four requirements the manifesto names that the implementation had not built at commit [0fb706c](https://github.com/ssheleg/task-pipeline/commit/0fb706ca28c3ec127875ee891235f32cdb8346ba) — judgment gates, resolvable requirement-to-execution edges, per-node completion checks, and proof invalidation — filed rather than described as shipped. Both ranges are pinned to `404fd09` and therefore still read `open`. All four have since been built, between 2026-08-17 and 2026-08-19: [9d8695d](https://github.com/ssheleg/task-pipeline/commit/9d8695dc4b73da5b65f2dde6894d351f2e738612) the judgment gate, [fbd8a67](https://github.com/ssheleg/task-pipeline/commit/fbd8a67e6988a0893f273eb37bd9a075a036c223) the resolvable `serves` edge, [0bc5eb6](https://github.com/ssheleg/task-pipeline/commit/0bc5eb632e6c94181c528cf8cff315e2b7c5a2a9) expiring verification, [8b7de18](https://github.com/ssheleg/task-pipeline/commit/8b7de18eceb8b3f58ceea35410201344bf470f49) the per-node completion check. A citation that resolves is not the same as a citation that is current. ## Evidence cited in the document - [E1 — empty inventory, live poller](https://github.com/ssheleg/task-pipeline/blob/f0402c22b147d6d143c55833ef906fb817972ab9/plugins/task-pipeline/skills/task-pipeline/references/residue.md#L28-L62) - [E2 — audit pass 6: 10 of 13 findings self-inflicted, and a seventh pass at 4 of 19](https://github.com/ssheleg/task-pipeline/blob/17ef1a6346384094455ae3fa0ffadf790b586d83/plugins/task-pipeline/skills/task-pipeline/references/audit.md#L44-L64) - [E3 — one-command install](https://github.com/ssheleg/sshlg-skills/blob/b01050170cf8c2a7ee56f645e2d01e87cf3b0d17/README.md#L7-L16) - [E4 — 18 containers alive across four projects](https://github.com/ssheleg/task-pipeline/blob/f0402c22b147d6d143c55833ef906fb817972ab9/plugins/task-pipeline/skills/task-pipeline/references/residue.md#L187-L220) - [Negative controls — every guard must reject its planted defect](https://github.com/ssheleg/task-pipeline/blob/17ef1a6346384094455ae3fa0ffadf790b586d83/test/negatives.py) - [Loop guard — churn detection rules](https://github.com/ssheleg/task-pipeline/blob/17ef1a6346384094455ae3fa0ffadf790b586d83/plugins/task-pipeline/skills/task-pipeline/references/loop-guard.md#L51-L72) - [Convergence — the submodule pointer seam](https://github.com/ssheleg/task-pipeline/blob/17ef1a6346384094455ae3fa0ffadf790b586d83/plugins/task-pipeline/skills/task-pipeline/references/acceptance.md#L155-L190) ## How to cite Sheleg, Sergey (Siarhei Sheleh). *Proof of Done: The Agentic Software Development Manifesto.* Version 1.1, 2026. https://podmanifesto.org/ The text of that version, frozen: https://github.com/ssheleg/pod-manifesto/blob/v1.1/manifesto.md Quote the tag rather than the live page if the quotation has to stay reachable — the live page moves with the version, the tag does not. What changes and when: https://github.com/ssheleg/pod-manifesto/blob/main/CHANGELOG.md ## Disagreeing with it The licence invites argument and this is the address: https://github.com/ssheleg/pod-manifesto/blob/main/CONTRIBUTING.md — what a useful objection looks like, where to put it, and how to submit a translation.