Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,5 @@ jobs:
cache: npm
- name: Install dependencies
run: npm ci
- name: Type-check
run: npm run typecheck
- name: Test
run: npm test
- name: Audit package contents
run: npm run pack:audit
- name: Validate implementation, documentation, and package
run: npm run check
12 changes: 7 additions & 5 deletions docs/CURRENT-STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
- **RC2:** Receipt V2 repaired the trust boundary, but independent validation was incomplete and compensation returned the transaction ID where correlation was required.
- **RC3:** correlation semantics and validation passed, but public-package preflight failed because licensing and prerelease packaging were not ready.
- **RC4:** Apache-2.0, public metadata, executable packaging, 46/46 AgentProof tests, 395/395 Operator tests, deterministic packing, and Developers A–D passed. Its publication request was unconsumed and superseded before publication by standalone productisation.
- **RC5:** standalone source is published at
`github.com/AyobamiH/agentproof`. The npm prerelease and GitHub Release remain
unpublished. Clean Git consumers can pin an exact repository commit; the
- **RC5 (`0.1.0-rc.5`):** standalone source, tag, and GitHub prerelease are published at
`github.com/AyobamiH/agentproof`. The npm prerelease remains unpublished.
Clean Git consumers can pin an exact repository commit; the
package builds its public exports during that source installation.

## Supported capability
Expand All @@ -21,7 +21,9 @@ The package is ESM-only and requires Node.js 22.5+, Git, and a local filesystem.

## Active gate

Source publication is complete. Registry publication and a GitHub Release
remain separate release actions and are not implied by repository availability.
Source, tag, and GitHub prerelease publication are complete. Registry publication
remains a separate release action and is not implied by repository availability.
The current integration gate is a reproducible clean consumer pinned to an
exact source commit; npm `next` publication remains separately approval-bound.

DoneState has named merge, deployment, and release receipts as its next lifecycle integration requirement. AgentProof has not added those runtime actions: production authority/signing and deterministic action-specific verification contracts remain gates. The candidate adapter boundary is documented in `docs/protocols/donestate-lifecycle-adapter.md`.
9 changes: 9 additions & 0 deletions docs/DECISION-LOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Decision log

## 2026-08-28 — Record DoneState lifecycle candidates without claiming runtime support

- **Context:** Proof & State requires AgentProof evidence for future merge, deployment, and release actions.
- **Decision:** document three separate candidate contracts and their activation gates; do not widen the RC5 runtime or receipt constants before production authority and action-specific verification canaries exist.
- **Alternatives:** add speculative generic receipts; let DoneState self-attest lifecycle effects.
- **Evidence:** current RC5 tests prove only `agentproof.repository_patch.v1`; DoneState and OpsTruth already enforce separate execution and verification planes.
- **Consequences:** the portfolio direction is durable without creating a false capability claim or weakening receipt semantics.
- **Reconsider when:** the first candidate has a prepared-action schema, production authority provider, ambiguous-effect fixtures, DoneState adapter, OpsTruth verifier fixture, and live canary.

## 2026-07-23 — Incubate separately inside OpenClaw Operator

- **Context:** AgentProof needed Operator approval dogfooding while mutating authority had to remain separate from read-only evidence tooling.
Expand Down
2 changes: 1 addition & 1 deletion docs/PROJECT-DIRECTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Its first commercial wedge is a verified local repository patch: an agent prepar

## What is proven

The local `agentproof.repository_patch.v1` lifecycle, durable SQLite state, approval replay protection, separate executor, deterministic reconciliation, independent verification, Receipt V2, append-only compensation successors, CLI/SDK package, and development-authority separation have passed automated and isolated agent validation. RC5 moves that unchanged capability into its standalone source boundary. It remains an unpublished prerelease pending one exact external approval.
The local `agentproof.repository_patch.v1` lifecycle, durable SQLite state, approval replay protection, separate executor, deterministic reconciliation, independent verification, Receipt V2, append-only compensation successors, CLI/SDK package, and development-authority separation have passed automated and isolated agent validation. RC5 moves that unchanged capability into its standalone source boundary. Its GitHub prerelease is published; npm `next` remains unpublished and separately approval-bound.

## Non-negotiable boundaries

Expand Down
2 changes: 1 addition & 1 deletion docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
3. **Verified repository-change usage.** Measure successful actions, duplicate prevention, false-success detection, verification latency, compensation, and recovery.
4. **Adoption repairs.** Fix documentation, packaging, portability, and protocol ambiguity demonstrated by those installations.
5. **Production authority and signing provider.** Add an explicit production provider without weakening development/production separation.
6. **One evidence-demanded action.** Select only after repeated users identify the same consequential action and verification contract.
6. **One evidence-demanded action.** DoneState has nominated merge, deployment, and release as separate lifecycle candidates. Select and canary only one at a time after production authority/signing and deterministic verification evidence exist.
7. **Wider integrations.** Add protocol or platform adapters after adoption is repeatable.

Not active: dashboards, payments, a generic marketplace, a broad agent operating system, a connector catalogue, an unrelated MCP directory, or speculative action types. Reconsider only with recorded adoption or buyer evidence.
13 changes: 13 additions & 0 deletions docs/protocols/donestate-lifecycle-adapter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# DoneState lifecycle adapter boundary

Status: candidate contract; no runtime action enabled

DoneState has selected three future consequential action classes for AgentProof integration:

- `agentproof.github_merge.v1` — one exact pull-request head into one exact base head;
- `agentproof.deployment.v1` — one exact immutable artifact or commit into one named environment;
- `agentproof.release.v1` — one exact tag, package artifact, provenance set, and destination.

Each action must preserve the existing five-role separation: proposer, approval authority, executor, receipt signer, and offline verifier. Approval must bind the prepared subject, effect destination, policy, expiry, nonce, and idempotency key. Execution must durably record intent before the external effect and reconcile provider state after ambiguous responses. The receipt signer may sign only after action-specific postconditions are observed. OpsTruth then independently re-observes the public or brokered subject; an AgentProof receipt alone cannot produce `VERIFIED`.

No action is added to the public CLI, SDK, schema constants, or runtime by this candidate. Activation requires a production authority/signing provider, an action-specific threat model and schema, ambiguous-effect fixtures, a DoneState adapter, an OpsTruth verification fixture, and one exact canary. Merge, deployment, and release are separate authority classes and may be enabled independently.
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
"demo": "npm run build && node dist/demo.js",
"verify-receipt": "npm run build && node dist/verify-receipt.js",
"pack:audit": "npm pack --dry-run",
"docs:check": "node scripts/check-documentation-closure.mjs",
"check": "npm run typecheck && npm test && npm run docs:check && npm run pack:audit",
"schemas:generate": "node scripts/generate-schemas.mjs",
"fixtures:generate": "npm run build && node scripts/generate-rc3-fixtures.mjs"
},
Expand Down
11 changes: 11 additions & 0 deletions scripts/check-documentation-closure.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { access, readFile } from "node:fs/promises";

for (const file of ["README.md", "CHANGELOG.md", "docs/CURRENT-STATUS.md", "docs/ROADMAP.md", "docs/DECISION-LOG.md", "docs/protocols/donestate-lifecycle-adapter.md", "AGENTS.md"]) {
await access(new URL(`../${file}`, import.meta.url));
}
const status = await readFile(new URL("../docs/CURRENT-STATUS.md", import.meta.url), "utf8");
if (status.includes("GitHub Release remain\n unpublished")) throw new Error("AgentProof status still claims the GitHub prerelease is unpublished");
for (const subject of ["0.1.0-rc.5", "npm prerelease remains unpublished", "repository_patch.v1"]) {
if (!status.includes(subject)) throw new Error(`current status is missing required subject: ${subject}`);
}
console.log("documentation closure: ok");
Loading