From ddce21a23dd14239e3f743b2d38ee5fb0f1c0c50 Mon Sep 17 00:00:00 2001 From: claude-bot-go Date: Mon, 27 Jul 2026 22:16:45 +0800 Subject: [PATCH 1/2] Fix #120: Establish AEP schema scaffolding: schemas/index.json registry, schemas/aep/ directory, and valid/invalid fixture conventions --- schemas/aep/seed.schema.json | 27 +++++++++++++++++++ schemas/index.json | 16 +++++++++++ tests/fixtures/invalid/seed/example.json | 4 +++ .../fixtures/invalid/seed/extra-property.json | 6 +++++ tests/fixtures/valid/seed/example.json | 6 +++++ 5 files changed, 59 insertions(+) create mode 100644 schemas/aep/seed.schema.json create mode 100644 tests/fixtures/invalid/seed/example.json create mode 100644 tests/fixtures/invalid/seed/extra-property.json create mode 100644 tests/fixtures/valid/seed/example.json diff --git a/schemas/aep/seed.schema.json b/schemas/aep/seed.schema.json new file mode 100644 index 0000000..389d549 --- /dev/null +++ b/schemas/aep/seed.schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://wasmagent.dev/schemas/aep/seed.schema.json", + "title": "SeedEvidence", + "description": "Template seed schema establishing the AEP evidence JSON Schema baseline. Demonstrates the pinned-draft, $id, title, type, required, properties, and additionalProperties:false convention for all AEP evidence schemas. Future Milestone 4 evidence schemas (e.g. checkpoint-evidence) mirror this structure.", + "type": "object", + "required": ["schema_version", "seed_id", "created_at_ms"], + "properties": { + "schema_version": { + "type": "string", + "description": "Schema version identifier, e.g. seed/v0.1" + }, + "seed_id": { + "type": "string", + "description": "Unique identifier for this evidence record" + }, + "created_at_ms": { + "type": "number", + "description": "UTC epoch milliseconds when the record was created" + }, + "label": { + "type": "string", + "description": "Optional human-readable label for categorization" + } + }, + "additionalProperties": false +} diff --git a/schemas/index.json b/schemas/index.json index 2bc43b1..43e563f 100644 --- a/schemas/index.json +++ b/schemas/index.json @@ -41,6 +41,22 @@ ], "summary": "Shared envelope base for all AEP evidence records \u2014 schema_version, trace_id, created_at_ms, and optional signature." }, + { + "id": "seed", + "title": "SeedEvidence", + "path": "schemas/aep/seed.schema.json", + "canonical_id": "https://wasmagent.dev/schemas/aep/seed.schema.json", + "version": "seed/v0.1", + "stability": "evolving", + "owners": [ + "wasmagent-protocol" + ], + "consumers": [ + "wasmagent-js", + "trace-pipeline" + ], + "summary": "Template seed schema establishing the AEP evidence JSON Schema baseline — pinned draft, $id convention, required, properties, additionalProperties:false." + }, { "id": "constraint-ir", "title": "ConstraintIR", diff --git a/tests/fixtures/invalid/seed/example.json b/tests/fixtures/invalid/seed/example.json new file mode 100644 index 0000000..4c6794c --- /dev/null +++ b/tests/fixtures/invalid/seed/example.json @@ -0,0 +1,4 @@ +{ + "schema_version": "seed/v0.1", + "seed_id": "seed-abc123" +} diff --git a/tests/fixtures/invalid/seed/extra-property.json b/tests/fixtures/invalid/seed/extra-property.json new file mode 100644 index 0000000..5f97cb3 --- /dev/null +++ b/tests/fixtures/invalid/seed/extra-property.json @@ -0,0 +1,6 @@ +{ + "schema_version": "seed/v0.1", + "seed_id": "seed-abc123", + "created_at_ms": 1737600000000, + "extra_unexpected_field": "this should be rejected" +} diff --git a/tests/fixtures/valid/seed/example.json b/tests/fixtures/valid/seed/example.json new file mode 100644 index 0000000..ebf64d3 --- /dev/null +++ b/tests/fixtures/valid/seed/example.json @@ -0,0 +1,6 @@ +{ + "schema_version": "seed/v0.1", + "seed_id": "seed-abc123", + "created_at_ms": 1737600000000, + "label": "example seed evidence" +} From 3c5d16b558b058a50bc526cad10fc3a333319930 Mon Sep 17 00:00:00 2001 From: claude-bot-go Date: Tue, 28 Jul 2026 04:10:57 +0800 Subject: [PATCH 2/2] Fix #120: Establish AEP schema scaffolding: schemas/index.json registry, schemas/aep/ directory, and valid/invalid fixture conventions --- .claude-bot/verify.yml | 7 +++++-- schemas/aep/fixtures/seed/invalid/example.json | 4 ++++ schemas/aep/fixtures/seed/valid/example.json | 6 ++++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 schemas/aep/fixtures/seed/invalid/example.json create mode 100644 schemas/aep/fixtures/seed/valid/example.json diff --git a/.claude-bot/verify.yml b/.claude-bot/verify.yml index 662e614..70ea112 100644 --- a/.claude-bot/verify.yml +++ b/.claude-bot/verify.yml @@ -5,7 +5,10 @@ version: 1 setup: - - python3 -m pip install --quiet --upgrade jsonschema referencing build + # --break-system-packages keeps this robust under PEP 668 externally-managed + # environments (the Debian/Ubuntu Python the merge gate runs in). In a normal + # or venv-managed environment the flag is a harmless no-op. + - python3 -m pip install --quiet --upgrade --break-system-packages jsonschema referencing build steps: - name: schema-conformance @@ -15,5 +18,5 @@ steps: - name: python-wheel-import run: | python3 -m build --wheel - python3 -m pip install --quiet --force-reinstall dist/*.whl + python3 -m pip install --quiet --force-reinstall --break-system-packages dist/*.whl python3 -c "from wasmagent_protocol import get_schema; assert get_schema('aep-record')['title']=='AEPRecord'" diff --git a/schemas/aep/fixtures/seed/invalid/example.json b/schemas/aep/fixtures/seed/invalid/example.json new file mode 100644 index 0000000..4c6794c --- /dev/null +++ b/schemas/aep/fixtures/seed/invalid/example.json @@ -0,0 +1,4 @@ +{ + "schema_version": "seed/v0.1", + "seed_id": "seed-abc123" +} diff --git a/schemas/aep/fixtures/seed/valid/example.json b/schemas/aep/fixtures/seed/valid/example.json new file mode 100644 index 0000000..ebf64d3 --- /dev/null +++ b/schemas/aep/fixtures/seed/valid/example.json @@ -0,0 +1,6 @@ +{ + "schema_version": "seed/v0.1", + "seed_id": "seed-abc123", + "created_at_ms": 1737600000000, + "label": "example seed evidence" +}