fix(compliance-cli,schemas): stop making a chain and a payment rail conformance bars - #103
Open
ucekmez wants to merge 1 commit into
Open
Conversation
9 tasks
…onformance bars Three manifest fields tied EEP conformance to specific vendor ecosystems: - `reputation` is OPTIONAL in `eep-manifest.json`, but the runner called `fail()` when a manifest lacked `reputation.contract` — an ERC-8004 Ethereum registry. The conformance bar was stricter than the schema, and a publisher with no blockchain involvement could not reach Full conformance. - `pqc_ready` and `x402_enabled` were in the schema's `required` array, so every EEP manifest had to declare a payment-rail flag whether or not it had anything to do with payments. For a protocol positioning itself as neutral infrastructure and heading to a standards body, hard-wiring one chain and one payment rail into the conformance bar is a strategic liability rather than a bug. Changes: - `reputation` is reported, not required: present → pass with the contract, absent → skip with the reason. - `pqc_ready` and `x402_enabled` move out of the schema's `required` and gain `"default": false`. Relaxing `required` never invalidates a document that was already valid, so every deployed manifest keeps validating. A value that is present but not a boolean still fails. - §11.6 no longer says a non-PQC node "MUST set `pqc_ready: false` (not omit the field)". Omission and `false` are now equivalent, and neither affects conformance at any tier — PQC readiness is a capability a publisher advertises, not a bar it must clear. - IETF draft updated to match, which the parity gate added in the previous PR caught automatically. Refs: EEP audit 2026-08 finding A6 Signed-off-by: Ugur Cekmez <ucekmez@gmail.com>
ucekmez
force-pushed
the
fix/devendor-conformance-criteria
branch
from
August 26, 2026 19:39
26d91a7 to
8d392ab
Compare
Contributor
Author
|
Pushed a fix: The test now asserts the four remaining required fields, and additionally pins that My mistake in the original push: I ran |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR 11 of a stacked series. Base is #102. Not for merge without review.
Three manifest fields tied EEP conformance to specific vendor ecosystems.
1. The runner was stricter than the schema.
reputationis OPTIONAL ineep-manifest.json, butcompliance-clicalledfail()when a manifest lackedreputation.contract— an ERC-8004 Ethereum registry:A publisher with no blockchain involvement could not reach Full conformance.
2. The schema required a payment-rail flag.
pqc_readyandx402_enabledwere both in the manifest'srequiredarray, so every EEP manifest had to declare an x402 flag whether or not it had anything to do with payments.For a protocol positioning itself as neutral infrastructure — and heading to a standards body at v0.2 — hard-wiring one chain and one payment rail into the conformance bar is a strategic liability rather than a bug.
What changed
reputationis reported, not required: present → pass with the contract, absent → skip with the reason. On-chain reputation stays fully supported for publishers who use it.pqc_ready/x402_enabledmove out ofrequiredand gain"default": false. A value that is present but not a boolean still fails — this relaxes what must be declared, not what a declaration means.pqc_ready: false(not omit the field)". Omission andfalseare now equivalent, and neither affects conformance at any tier — PQC readiness is a capability a publisher advertises, not a bar it must clear.Scope
Checklist
requirednever invalidates a document that was already valid — every deployed manifest keeps validating, and every publisher that passed conformance still passes. The change is strictly permissive: manifests that previously failed may now pass.Verification
tests/@eep-dev/middleware@eep-dev/compliance-clicompliance-cli --fixturescheck-draft-schema-paritycodegen-schema-types --checkNotes for reviewers
The parity gate from #96 paid for itself here. Relaxing the schema's
requiredimmediately failed the build:That is exactly the drift class this whole series exists to close, caught automatically instead of at IETF review.
Two judgement calls worth confirming:
requiredis safe in the strict sense (no previously-valid document becomes invalid), but it is a normative change to a published v0.1 artifact and belongs in the CHANGELOG. If you'd rather keep the schema as-is for 0.1 and only fix the CLI, say so and I'll split it.eep-manifest.jsonstill carriesx402,payment_networksandreputationas optional property definitions. I left those alone — offering a field is fine; requiring it was the problem.