Conformance
Conformance classes§
| Class | What it does | What is tested |
|---|---|---|
| Verifier | Runs the recognition function with a policy and prints the explanation. | Result, status, confidence and the ordered rule identifiers on every vector. |
| Issuer | Emits claims, evidence bundles and credentials. | Canonical form and hashes; the bundle hash recomputes. |
| Attestor | Signs blind marks. | Commit and reveal; signature verification. |
| Log | Serves checkpoints and proofs. | Inclusion and consistency proofs. |
| Indexer | Lists opt-in skill cards. | Returns sets, never rankings; honours consent. |
The test vectors§
Each vector contains a policy, a claim, evidence, attestations and the expected result. The cases include: no evidence; practice only; one examiner where two are needed; two agreeing examiners; disagreeing examiners; a declared conflict of interest; stale evidence; a tampered hash; inference to prerequisite skills; and a strict and a loose policy over the same evidence.
Run the reference verifier§
The reference implementation (TypeScript, no dependencies) is in reference/ of the project repository, with a ready-built module. Clone the repository and run:
node reference/verify.mjs
It prints PASS or FAIL for each of the 20 vectors with the rule identifiers of the explanation, and exits with code 0 only if all pass. reference/README.md explains how a second implementer reproduces the worked example of Appendix A. The vectors are also in this site's source at reference/vectors.json.
How to test your implementation§
- Obtain
vectors.jsonfor the version you implement. - Run your implementation on every vector.
- Compare the full result, including the ordered
explanationrule identifiers, with the expected result. - Publish your result and the version of the vectors you used.
Versions§
A change that alters the expected result of any vector is a new minor version. The text of a version is frozen once published.