From 2f2ea59b4011f4692cbdcb98e50b57c3f33a93e4 Mon Sep 17 00:00:00 2001 From: Claude Bot Date: Thu, 23 Jul 2026 14:14:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs(roadmap):=20add=20Milestone=204=20?= =?UTF-8?q?=E2=80=94=20evidence=20types=20beyond=20execution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Memory/Replay/Checkpoint/Artifact enter AEP as new evidence record types under the shared signature envelope, not as a protocol rename. Records the rejected ARP rename rationale. Also ticks the now-shipped M1/M2 items (0.1.x published, wasmagent-js strip, train-replay AEP alignment). --- docs/15-milestones.md | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/docs/15-milestones.md b/docs/15-milestones.md index 8717205..2de62ad 100644 --- a/docs/15-milestones.md +++ b/docs/15-milestones.md @@ -12,9 +12,9 @@ bullets into issues. Each bullet is scoped to concrete files. (PyPI); machine-readable registry at `schemas/index.json`. - [x] Conformance harness: every schema well-formed, refs resolve, valid/invalid fixtures per schema (`tests/conformance.py`). -- [ ] Publish `@wasmagent/protocol@0.1.0` to npm and `wasmagent-protocol==0.1.0` +- [x] Publish `@wasmagent/protocol@0.1.0` to npm and `wasmagent-protocol==0.1.0` to PyPI; record both in the org release ledger. -- [ ] Strip local schema copies from `wasmagent-js` (`packages/compliance/schemas/`, +- [x] Strip local schema copies from `wasmagent-js` (`packages/compliance/schemas/`, `packages/core/src/ranking/schemas/rollout-wire.schema.json`) and depend on the npm package. - [ ] Strip local schema copies from `trace-pipeline` (`schemas/*.schema.json`) @@ -25,7 +25,7 @@ bullets into issues. Each bullet is scoped to concrete files. - [ ] Migrate `wasmagent-proxy` Rust `aep-core` types to generate from / validate against `schemas/aep/aep-record.schema.json`. -- [ ] Point `wasmagent-train-replay` `EpochEvidenceBundle` at the shared AEP +- [x] Point `wasmagent-train-replay` `EpochEvidenceBundle` at the shared AEP record schema for its evidence envelope. - [ ] Map `open-agent-audit` `schemas/v0.1/*` adapter onto the canonical AEP record; document the version-skew adapter. @@ -40,3 +40,32 @@ bullets into issues. Each bullet is scoped to concrete files. Python `TypedDict`s so consumers get types, not just validation. - [ ] Add a conformance test suite consumers can run against their own emitters (`aep-conformance` fixtures published in the package). + +## Milestone 4 — Evidence types beyond execution + +AEP today covers **execution** evidence (`aep-record`: actions, capability +decisions, verifier results). As the runtime matures, other agent facets become +things you must be able to *prove*, not just run. Each enters the protocol as a +new **evidence record** under AEP — sharing the signature/trust envelope — rather +than as a rename. **AEP (Agent Evidence Protocol) stays the name**; "Evidence" is +the moat, and these are all evidence of something. (See the boundary note: the +protocol is *sedimented from shipping products*, so each lands only once the +runtime feature it describes is real — not designed up front.) + +- [ ] `memory-evidence` — tamper-evident record of agent memory reads/writes + (provenance of what the agent remembered and when). Sediment from + wasmagent-js memory work (RFC shared-state epic). +- [ ] `replay-evidence` — deterministic-replay attestation: inputs, seeds, and + the digest chain that proves a run reproduces. +- [ ] `checkpoint-evidence` — signed checkpoint/fork records so a resumed or + forked run carries proof of its ancestry. +- [ ] `artifact-attestation` — provenance + signature for produced artifacts + (files, patches, outputs) linking them back to the run that made them. +- [ ] Shared `EvidenceEnvelope` base schema factored out so every evidence type + reuses one signature/trust-log/version structure. + +Rejected alternative (recorded for posterity): renaming AEP → "ARP / Agent +Runtime Protocol". Rejected — it would dilute the *provable* positioning into a +generic "runtime" one, and trigger an org-wide breaking rename of already-shipped +schema `$id`s, package names, and cross-repo docs. AEP already subsumes these +types. From 9143684a634b0ca0a467535684ae29d1a3914fb3 Mon Sep 17 00:00:00 2001 From: Claude Bot Date: Thu, 23 Jul 2026 14:16:25 +0800 Subject: [PATCH 2/2] docs(roadmap): make M4 bullets bot-executable (one-line, path-scoped, pre-split) msBulletRE captures only the first line of a bullet, so multi-line bullets get truncated when the bot converts them to issues. Rewrite each M4 item as a single self-contained line scoped to a concrete schema file + keys + fixture requirement, pre-split into one-schema-per-bullet. --- docs/15-milestones.md | 40 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/docs/15-milestones.md b/docs/15-milestones.md index 2de62ad..07443ba 100644 --- a/docs/15-milestones.md +++ b/docs/15-milestones.md @@ -43,29 +43,17 @@ bullets into issues. Each bullet is scoped to concrete files. ## Milestone 4 — Evidence types beyond execution -AEP today covers **execution** evidence (`aep-record`: actions, capability -decisions, verifier results). As the runtime matures, other agent facets become -things you must be able to *prove*, not just run. Each enters the protocol as a -new **evidence record** under AEP — sharing the signature/trust envelope — rather -than as a rename. **AEP (Agent Evidence Protocol) stays the name**; "Evidence" is -the moat, and these are all evidence of something. (See the boundary note: the -protocol is *sedimented from shipping products*, so each lands only once the -runtime feature it describes is real — not designed up front.) - -- [ ] `memory-evidence` — tamper-evident record of agent memory reads/writes - (provenance of what the agent remembered and when). Sediment from - wasmagent-js memory work (RFC shared-state epic). -- [ ] `replay-evidence` — deterministic-replay attestation: inputs, seeds, and - the digest chain that proves a run reproduces. -- [ ] `checkpoint-evidence` — signed checkpoint/fork records so a resumed or - forked run carries proof of its ancestry. -- [ ] `artifact-attestation` — provenance + signature for produced artifacts - (files, patches, outputs) linking them back to the run that made them. -- [ ] Shared `EvidenceEnvelope` base schema factored out so every evidence type - reuses one signature/trust-log/version structure. - -Rejected alternative (recorded for posterity): renaming AEP → "ARP / Agent -Runtime Protocol". Rejected — it would dilute the *provable* positioning into a -generic "runtime" one, and trigger an org-wide breaking rename of already-shipped -schema `$id`s, package names, and cross-repo docs. AEP already subsumes these -types. +AEP today covers execution evidence (`aep-record`). Memory / Replay / Checkpoint +/ Artifact each enter the protocol as a **new evidence record under AEP** sharing +one signature envelope — not a rename to "ARP" (rejected: dilutes the provable +positioning and forces an org-wide breaking rename). Each bullet below is a +single self-contained schema deliverable; land one only after the runtime +feature it describes is real (protocol is sedimented, not designed up front). + +- [ ] Add `schemas/aep/evidence-envelope.schema.json` — shared base (schema_version, signature{alg,key_id,sig}, trace_id, created_at_ms) that every evidence record `$ref`s; register in `schemas/index.json` with a valid+invalid fixture under `tests/fixtures/`. +- [ ] Refactor `schemas/aep/aep-record.schema.json` to `$ref` the shared `evidence-envelope` for its signature/version fields; keep field set identical (no breaking change), add fixture proving equivalence. +- [ ] Add `schemas/aep/memory-evidence.schema.json` — tamper-evident memory read/write record (keys: mem_ref, op enum[read,write], digest, prior_digest, timestamp_ms); register in index + valid/invalid fixtures. +- [ ] Add `schemas/aep/replay-evidence.schema.json` — deterministic-replay attestation (keys: run_id, seed, input_digests[], output_digest, engine_version); register in index + valid/invalid fixtures. +- [ ] Add `schemas/aep/checkpoint-evidence.schema.json` — signed checkpoint/fork record (keys: checkpoint_id, parent_run_id, fork_of, state_digest, created_at_ms); register in index + valid/invalid fixtures. +- [ ] Add `schemas/aep/artifact-attestation.schema.json` — produced-artifact provenance (keys: artifact_uri, digest, produced_by_run_id, tool_name, signature); register in index + valid/invalid fixtures. +- [ ] Update README + `docs/CONTRACT-CHANGE-PROCESS.md` to list the new evidence types and their consumer repos once each ships.