Skip to content

Commit 4ffed75

Browse files
committed
feat: define cross-agent public evidence contract
1 parent 8a2a3d0 commit 4ffed75

41 files changed

Lines changed: 4797 additions & 3100 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

catalog/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ provenance, lifecycle, and distribution.
99
- `fixtures/` — valid/invalid examples per schema
1010
- `schemas/aether.social-campaign-handoff.v1.schema.json` — closed review,
1111
approval, immutable-export, and external-publication receipt contract
12+
- `schemas/aether.cross-agent-evidence-packet.v1.schema.json` — public evidence,
13+
exact-span, provenance, review, lifecycle, and least-authority packet contract
14+
- `schemas/aether.sanitized-research-request.v1.schema.json` — separately
15+
reviewed public request contract for outbound research boundaries
16+
- `schemas/aether.evidence-projection.v1.schema.json` — provider, MCP, A2A,
17+
filesystem, and queue projection authority ceiling
18+
- `evidence-packets/` — deterministic importer, usage, and synthetic legal and
19+
software fixtures with adversarial mutation cases
1220
- `schemas/aether.repository-release.v1.schema.json` — repository profile,
1321
semantic-version, changelog, delivery, evidence, and manual-handoff contract
1422
- `first-party/catalog.v1.json` — canonical compatibility catalog for the current specification and skill corpus

catalog/evidence-packets/README.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Cross-agent public evidence packets
2+
3+
This directory contains the deterministic reference importer and synthetic
4+
fixtures for `aether.cross-agent-evidence-packet/v1`.
5+
6+
The importer validates local bytes only. It does not fetch immutable references,
7+
execute source content, call a model, authorize a capability, or transport a
8+
packet.
9+
10+
Validate the synthetic legal-source packet:
11+
12+
```bash
13+
python3 catalog/evidence-packets/validate.py \
14+
--packet "catalog/evidence-packets/fixtures/legal-source-packet.json" \
15+
--attachments-root "catalog/evidence-packets/fixtures"
16+
```
17+
18+
Validation establishes artifact integrity. Admission additionally fails closed
19+
unless the caller supplies the destination, externally admitted policies, and
20+
current session capabilities:
21+
22+
```bash
23+
python3 catalog/evidence-packets/validate.py \
24+
--packet "catalog/evidence-packets/fixtures/legal-source-packet.json" \
25+
--attachments-root "catalog/evidence-packets/fixtures" \
26+
--admit \
27+
--destination "egohygiene/realm#25" \
28+
--admitted-policy-id "egohygiene/hygiene#39" \
29+
--session-capability "public-evidence-import"
30+
```
31+
32+
Validate the separately reviewed outbound request:
33+
34+
```bash
35+
python3 catalog/evidence-packets/validate.py \
36+
--request "catalog/evidence-packets/fixtures/sanitized-request.json"
37+
```
38+
39+
Validate a transport projection against its packet:
40+
41+
```bash
42+
python3 catalog/evidence-packets/validate.py \
43+
--projection "catalog/evidence-packets/fixtures/filesystem-projection.json" \
44+
--packet-for-projection "catalog/evidence-packets/fixtures/legal-source-packet.json"
45+
```
46+
47+
Admission to a real destination still requires external policy and session
48+
capability checks. A valid packet or projection never grants those capabilities.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{
2+
"schema_version": "aether.evidence-adversarial-cases/v1",
3+
"base_packet": "legal-source-packet.json",
4+
"cases": [
5+
{
6+
"id": "prompt-injection-as-instructions",
7+
"operation": "replace",
8+
"pointer": "/payload/evidence/attachments/0/content_treatment",
9+
"value": "instructions",
10+
"expected_error": "untrusted-evidence"
11+
},
12+
{
13+
"id": "private-facts-indicator",
14+
"operation": "replace",
15+
"pointer": "/payload/policy/contains_private_data",
16+
"value": true,
17+
"expected_error": "False was expected"
18+
},
19+
{
20+
"id": "oversized-attachment",
21+
"operation": "replace",
22+
"pointer": "/payload/evidence/attachments/0/bytes",
23+
"value": 8192,
24+
"expected_error": "above limit"
25+
},
26+
{
27+
"id": "path-traversal",
28+
"operation": "replace",
29+
"pointer": "/payload/evidence/attachments/0/path",
30+
"value": "../private.txt",
31+
"expected_error": "traversal-free"
32+
},
33+
{
34+
"id": "digest-mismatch",
35+
"operation": "replace",
36+
"pointer": "/payload/evidence/attachments/0/digest/value",
37+
"value": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
38+
"expected_error": "digest mismatch"
39+
},
40+
{
41+
"id": "stale-authority-marked-current",
42+
"operation": "replace",
43+
"pointer": "/payload/lifecycle/freshness/valid_until",
44+
"value": "2026-01-01T00:00:00Z",
45+
"expected_error": "stale authority"
46+
}
47+
]
48+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Section 1. Covered employers must provide synthetic notice.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Version 2.0 removes the deprecated synthetic endpoint.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"schema_version": "aether.evidence-projection/v1",
3+
"projection": {
4+
"id": "projection/synthetic-legal-filesystem",
5+
"adapter_kind": "filesystem",
6+
"adapter_id": "example/immutable-file-export",
7+
"created_at": "2026-09-04T12:10:00Z"
8+
},
9+
"packet_ref": {
10+
"id": "packet/synthetic-legal-source",
11+
"schema_version": "aether.cross-agent-evidence-packet/v1",
12+
"digest": {"algorithm": "sha256-canonical-json", "value": "cfc04a1dd14c7274e7f21221d4fa9285e76efb80e50fc48910b0cb403a1278d3"}
13+
},
14+
"authority": {
15+
"destination_scope": ["egohygiene/realm#25"],
16+
"maximum_sensitivity": "public",
17+
"required_policy_ids": ["egohygiene/hygiene#39"],
18+
"required_session_capabilities": ["public-evidence-import"],
19+
"grants_capabilities": false,
20+
"content_transformation": "none"
21+
}
22+
}
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
{
2+
"schema_version": "aether.cross-agent-evidence-packet/v1",
3+
"packet": {
4+
"id": "packet/synthetic-legal-source",
5+
"version": "1.0.0",
6+
"producer": "egohygiene/akashic",
7+
"workflow_id": "legal-source-snapshot-export",
8+
"revision": "synthetic-revision-1",
9+
"created_at": "2026-09-04T12:00:00Z"
10+
},
11+
"payload": {
12+
"request": {
13+
"id": "task/synthetic-legal-research",
14+
"objective": "Identify the bounded notice rule in the supplied public source.",
15+
"scope": ["synthetic employment notice rule"],
16+
"public_inputs_only": true
17+
},
18+
"evidence": {
19+
"attachments": [
20+
{
21+
"id": "attachment/legal-source",
22+
"kind": "relative-file",
23+
"path": "attachments/legal-source.txt",
24+
"url": null,
25+
"media_type": "text/plain",
26+
"bytes": 60,
27+
"digest": {"algorithm": "sha256-bytes", "value": "a99140e4dee296af73cbdd7cd93a32f3583fd1e7c05e73ca496260ac4ea12fe5"},
28+
"sensitivity": "public",
29+
"content_treatment": "untrusted-evidence"
30+
}
31+
],
32+
"sources": [
33+
{
34+
"id": "source/synthetic-statute",
35+
"url": "https://example.invalid/law/synthetic-statute",
36+
"stable_source_id": "synthetic-statute-section-1",
37+
"authority": "primary",
38+
"jurisdiction_id": "US-MA",
39+
"retrieved_at": "2026-09-04T11:00:00Z",
40+
"effective_at": "2026-01-01T00:00:00Z",
41+
"rights": "Synthetic fixture; unrestricted test use.",
42+
"digest": {"algorithm": "sha256-bytes", "value": "a99140e4dee296af73cbdd7cd93a32f3583fd1e7c05e73ca496260ac4ea12fe5"},
43+
"attachment_ids": ["attachment/legal-source"],
44+
"excerpts": [
45+
{
46+
"id": "excerpt/synthetic-notice-rule",
47+
"attachment_id": "attachment/legal-source",
48+
"start_byte": 0,
49+
"end_byte": 60,
50+
"digest": {"algorithm": "sha256-bytes", "value": "a99140e4dee296af73cbdd7cd93a32f3583fd1e7c05e73ca496260ac4ea12fe5"}
51+
}
52+
]
53+
}
54+
]
55+
},
56+
"findings": {
57+
"items": [
58+
{
59+
"id": "finding/synthetic-notice",
60+
"statement": "The synthetic source states a notice requirement for covered employers.",
61+
"status": "supported",
62+
"evidence_refs": ["source/synthetic-statute", "excerpt/synthetic-notice-rule"],
63+
"uncertainty": "",
64+
"limitations": ["Synthetic source; not legal advice."]
65+
}
66+
],
67+
"rejected_claims": ["The fixture establishes any real-world legal duty."],
68+
"overall_limitations": ["No real jurisdictional applicability is inferred."]
69+
},
70+
"provenance": {
71+
"transformations": [
72+
{
73+
"id": "transform/exact-byte-span",
74+
"operation": "select-exact-byte-span",
75+
"input_refs": ["attachment/legal-source"],
76+
"output_refs": ["excerpt/synthetic-notice-rule"]
77+
}
78+
],
79+
"tools": [{"name": "akashic", "version": "synthetic"}]
80+
},
81+
"policy": {
82+
"destination_scope": ["egohygiene/realm#25"],
83+
"maximum_sensitivity": "public",
84+
"required_policy_ids": ["egohygiene/hygiene#39"],
85+
"required_session_capabilities": ["public-evidence-import"],
86+
"grants_capabilities": false,
87+
"max_attachment_count": 4,
88+
"max_attachment_bytes": 4096,
89+
"contains_private_data": false
90+
},
91+
"review": {
92+
"human": {"status": "approved", "reviewer": "fixture-reviewer", "reviewed_at": "2026-09-04T12:05:00Z", "evidence": "review/synthetic-legal"},
93+
"sanitization": {"status": "approved", "reviewer": "fixture-reviewer", "reviewed_at": "2026-09-04T12:05:00Z", "evidence": "review/synthetic-legal"},
94+
"declassification": {"status": "not-applicable", "reviewer": null, "reviewed_at": null, "evidence": null}
95+
},
96+
"lifecycle": {
97+
"state": "ready",
98+
"freshness": {"status": "current", "evaluated_at": "2026-09-04T12:00:00Z", "valid_until": "2027-01-01T00:00:00Z"},
99+
"expires_at": "2027-01-01T00:00:00Z",
100+
"superseded_by": null,
101+
"revocation": null,
102+
"incompatibility": null,
103+
"partial_failures": []
104+
}
105+
},
106+
"integrity": {
107+
"envelope_digest": {"algorithm": "sha256-canonical-json", "value": "cfc04a1dd14c7274e7f21221d4fa9285e76efb80e50fc48910b0cb403a1278d3"},
108+
"signature": {"status": "unsigned", "algorithm": null, "key_id": null, "value": null}
109+
}
110+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"schema_version": "aether.sanitized-research-request/v1",
3+
"request": {
4+
"id": "request/synthetic-public-law-search",
5+
"version": "1.0.0",
6+
"producer": "example/confidential-workflow-boundary",
7+
"created_at": "2026-09-04T10:00:00Z"
8+
},
9+
"payload": {
10+
"objective": "Find official public sources describing a synthetic notice rule.",
11+
"public_queries": ["site:example.invalid synthetic notice rule"],
12+
"destination_scope": ["public-research-zone"],
13+
"required_policy_ids": ["egohygiene/hygiene#39"],
14+
"required_session_capabilities": ["public-web-search"],
15+
"maximum_sensitivity": "public",
16+
"contains_private_data": false,
17+
"contains_credentials": false,
18+
"review": {
19+
"sanitization": {
20+
"status": "approved",
21+
"reviewer": "fixture-reviewer",
22+
"reviewed_at": "2026-09-04T10:05:00Z",
23+
"evidence": "review/synthetic-request",
24+
"reviewed_digest": {"algorithm": "sha256-canonical-json", "value": "e1a0b0cc091cde72f955d3524c675eb24159f2d4dbc86eb2c93530e423df589f"}
25+
},
26+
"declassification": {
27+
"status": "approved",
28+
"reviewer": "fixture-reviewer",
29+
"reviewed_at": "2026-09-04T10:05:00Z",
30+
"evidence": "review/synthetic-request",
31+
"reviewed_digest": {"algorithm": "sha256-canonical-json", "value": "e1a0b0cc091cde72f955d3524c675eb24159f2d4dbc86eb2c93530e423df589f"}
32+
}
33+
}
34+
},
35+
"integrity": {
36+
"envelope_digest": {"algorithm": "sha256-canonical-json", "value": "3e89b101f15b34e2dfd36c9f51f4a6d5090665c2f51de13fe4e220fab39944bd"}
37+
}
38+
}
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
{
2+
"schema_version": "aether.cross-agent-evidence-packet/v1",
3+
"packet": {
4+
"id": "packet/synthetic-software-research",
5+
"version": "1.0.0",
6+
"producer": "example/research-agent",
7+
"workflow_id": "software-release-review",
8+
"revision": "synthetic-revision-2",
9+
"created_at": "2026-09-04T13:00:00Z"
10+
},
11+
"payload": {
12+
"request": {
13+
"id": "task/synthetic-software-research",
14+
"objective": "Identify the bounded compatibility statement in the supplied public release note.",
15+
"scope": ["synthetic endpoint compatibility"],
16+
"public_inputs_only": true
17+
},
18+
"evidence": {
19+
"attachments": [
20+
{
21+
"id": "attachment/software-source",
22+
"kind": "relative-file",
23+
"path": "attachments/software-source.txt",
24+
"url": null,
25+
"media_type": "text/plain",
26+
"bytes": 55,
27+
"digest": {"algorithm": "sha256-bytes", "value": "272936643ef588a6c5ca28e504417a0debf83b057c64cb985b0b962fa4006aa0"},
28+
"sensitivity": "public",
29+
"content_treatment": "untrusted-evidence"
30+
}
31+
],
32+
"sources": [
33+
{
34+
"id": "source/synthetic-release-note",
35+
"url": "https://example.invalid/software/releases/v2",
36+
"stable_source_id": "synthetic-software-v2",
37+
"authority": "official",
38+
"jurisdiction_id": "GLOBAL",
39+
"retrieved_at": "2026-09-04T12:50:00Z",
40+
"effective_at": "2026-09-01T00:00:00Z",
41+
"rights": "Synthetic fixture; unrestricted test use.",
42+
"digest": {"algorithm": "sha256-bytes", "value": "272936643ef588a6c5ca28e504417a0debf83b057c64cb985b0b962fa4006aa0"},
43+
"attachment_ids": ["attachment/software-source"],
44+
"excerpts": [
45+
{
46+
"id": "excerpt/synthetic-endpoint-removal",
47+
"attachment_id": "attachment/software-source",
48+
"start_byte": 0,
49+
"end_byte": 55,
50+
"digest": {"algorithm": "sha256-bytes", "value": "272936643ef588a6c5ca28e504417a0debf83b057c64cb985b0b962fa4006aa0"}
51+
}
52+
]
53+
}
54+
]
55+
},
56+
"findings": {
57+
"items": [
58+
{
59+
"id": "finding/synthetic-removal",
60+
"statement": "The synthetic version 2.0 note states that an endpoint was removed.",
61+
"status": "partial",
62+
"evidence_refs": ["source/synthetic-release-note", "excerpt/synthetic-endpoint-removal"],
63+
"uncertainty": "The fixture does not identify a replacement endpoint.",
64+
"limitations": ["Synthetic release note only."]
65+
}
66+
],
67+
"rejected_claims": ["The fixture proves all callers are incompatible."],
68+
"overall_limitations": ["No runtime behavior was tested."]
69+
},
70+
"provenance": {
71+
"transformations": [{"id": "transform/exact-byte-span", "operation": "select-exact-byte-span", "input_refs": ["attachment/software-source"], "output_refs": ["excerpt/synthetic-endpoint-removal"]}],
72+
"tools": [{"name": "example-research-tool", "version": "1.0.0"}]
73+
},
74+
"policy": {
75+
"destination_scope": ["example/software-consumer"],
76+
"maximum_sensitivity": "public",
77+
"required_policy_ids": ["example/public-evidence-policy/v1"],
78+
"required_session_capabilities": [],
79+
"grants_capabilities": false,
80+
"max_attachment_count": 2,
81+
"max_attachment_bytes": 4096,
82+
"contains_private_data": false
83+
},
84+
"review": {
85+
"human": {"status": "pending", "reviewer": null, "reviewed_at": null, "evidence": null},
86+
"sanitization": {"status": "approved", "reviewer": "fixture-reviewer", "reviewed_at": "2026-09-04T13:05:00Z", "evidence": "review/synthetic-software"},
87+
"declassification": {"status": "not-applicable", "reviewer": null, "reviewed_at": null, "evidence": null}
88+
},
89+
"lifecycle": {
90+
"state": "partial",
91+
"freshness": {"status": "current", "evaluated_at": "2026-09-04T13:00:00Z", "valid_until": "2026-12-01T00:00:00Z"},
92+
"expires_at": "2026-12-01T00:00:00Z",
93+
"superseded_by": null,
94+
"revocation": null,
95+
"incompatibility": null,
96+
"partial_failures": ["Replacement endpoint was not supplied."]
97+
}
98+
},
99+
"integrity": {
100+
"envelope_digest": {"algorithm": "sha256-canonical-json", "value": "f72de0ae26fcf103e168621f3e6aab2bc9c07b373aaa866f19a885813dd0cad1"},
101+
"signature": {"status": "unverified", "algorithm": "example-signature", "key_id": "fixture-key", "value": "synthetic-signature"}
102+
}
103+
}

0 commit comments

Comments
 (0)