Conformance is determined solely by a machine-runnable test suite, versioned with the Canonical Data Model. Two levels exist — Core (the wire contract plus event and provenance integrity) and Full (Core plus interoperability mapping and behavioural semantics). The suite reports pass, fail, or not-applicable per requirement and computes the highest level fully satisfied. There is no rounding up.
The normative levels and the suite live in conformance/ of concerthq/signet-standard at v0.17.1. This page renders directly from them.
Levels
Core and Full
Generated from the normative conformance/levels.md.
Specification v0.1 (Working Draft) Steward: Concert Foundation Tier: Normative Licence: Apache-2.0 (suite) · CC0-1.0 (this document)
This document defines what it means for a document or an implementation to conform to the SIGNET standard, the conformance levels, and the neutrality rules that govern certification. It is the companion to the SIGNET Canonical Data Model specification (CDM §13 Conformance) and the Concert IP & Licensing Policy.
The accompanying machine-runnable suite (conformance/) tests every requirement
below. A claim of conformance is only meaningful when accompanied by a passing
report from that suite (report-schema.json).
1. Conformance targets
Two things can conform:
- A document — a single CDM instance (an Invoice, a Decision, …). Document conformance is purely structural (CDM §13.1).
- An implementation — a system that reads, writes, and changes CDM documents. Implementation conformance additionally covers behaviour: round-trip fidelity, mapping fidelity, and event/provenance integrity (CDM §13.2).
Only implementations are certified. Document conformance is a building block of implementation conformance.
2. Conformance levels
2.1 SIGNET Core v0.1
The floor. An implementation is Core-conformant if it satisfies every MUST in:
- C-DOC — Document conformance. Every document it emits validates against the published JSON Schema for its declared version, and it rejects documents that do not (CDM §13.1). Tested by: positive fixtures must validate; negative fixtures must be rejected.
- C-EVT — Event & audit integrity (Layer 3). Every material change produces
an append-only Event carrying Provenance; Events hash-chain via
previousEventHashso tampering is evident (CDM §1.7, §7.1, §7.2). Tested by: a valid chain verifies; a tampered chain is detected. - C-PROV — Provenance presence. Every Decision and every Event carries a
provenanceobject identifying what generated the assertion and when (CDM §6.4, §7.2). Tested by: provenance presence and shape checks.
Core corresponds to Layer 1 (Wire Contract) + Layer 3 (Event & Audit) of the SIGNET architecture.
2.2 SIGNET Full v1.0
Core, plus:
- F-MAP — Interoperability mapping fidelity (Layer 4). The implementation performs the normative §8 standards mappings without loss of mapped fields. For v0.1 the tested mapping is Invoice → Peppol BIS Billing 3.0 (EN 16931): the projection must preserve every mapped Business Term and the monetary totals must reconcile (CDM §8, §13.2(b)). Tested by: the mapping-conformance cases.
- F-SEM — Behavioural semantics (Layer 2). Policy objects carry both an
executable
expressionand ahumanReadablestatement; Mandates bound agent actions; Decisions reference the inputs and policies they applied (CDM §6.3–6.5, §13.2). Tested by: the semantics cases.
Full corresponds to Core + Layer 2 (Behavioural Semantics) + Layer 4 (Interoperability).
2.3 Reporting
The suite reports, per requirement, pass | fail | not-applicable, and computes
the highest level fully satisfied: Full, Core, or none. A partial result
(e.g. Core met, Full partially met) is reported honestly as Core with the
failing Full requirements listed. There is no rounding up.
not-applicable is narrow, and it never contributes to a level. A requirement
is not-applicable only where the implementation does not exchange the object
class the requirement constrains at all — the case F-MAP raises for an
implementation that never handles invoices. It is not available for a requirement
the implementation would rather not meet, and an implementation cannot reach
Full on a set of results in which a Full requirement is not-applicable: it
reaches Core, with the not-applicable requirement recorded as such. A level
is claimed on what passed, never on what was skipped. Where a whole class of
implementation cannot reach Full for this reason, the answer is a profile
(docs/profiles/), which names the subset that applies to it — not an N/A that
rounds up.
2.4 Endorsements — a second axis (proposed, not yet in force)
Some properties are worth certifying but do not belong on the Core/Full axis at all, because they are not universally applicable: an implementation may run synthetic agents but hold no access-controlled documents, or the reverse. Putting such a property in Core would fail implementations for which it is irrelevant.
Endorsements are the second axis. An endorsement is prefixed E-, is earned
only if every one of its checks passes, and is additive: it changes neither
Core nor Full, blocks nobody from certifying, and is inert where unearned. An
implementation either holds an endorsement or does not, so no not-applicable
arises on this axis. Admission to the closed
endorsement register requires the
three-part test in the mark grammar R2: the
property must be orthogonal to the level axis, not universally applicable, and
machine-testable under CN-1.
Two endorsements are proposed:
| Endorsement | Checks | What it establishes | Proposal |
|---|---|---|---|
E-MDT Mandate Enforcement | E-MDT-1…7 | The limits a Mandate expresses are respected, not merely cited | CP-Mandate-enforcement |
E-CNS Consent Enforcement | E-CNS-1…5 | The terms a Consent expresses are honoured in the implementation's own authorisation decisions | CP-Consent-revocation |
Both proposals are drafts. Their checks are implemented and runnable today
(node conformance/rules/check-endorsements.js) so the gap they close is
demonstrable rather than argumentative, but they decide nothing: they are not
run by run-conformance.js, do not appear in a conformance report, and no
endorsement may appear in a mark until the corresponding proposal carries and its
register entry moves to active.
2.5 Requirements outside the level axis
| Rule | Requirement | Status |
|---|---|---|
| GRT-1 | Withdrawal of a grant-type object (Consent, Mandate) MUST be expressed as an appended event; the object MUST NOT be mutated in place (CDM §7.4). | Normative in the specification. Exercised only by the endorsement checks above, which are not in force — so it is modelled and specified, not yet certified. |
Stating this plainly is the point. A MUST that no suite exercises is a MUST no certification establishes, and the distance between the two is exactly what §5 records.
3. Certification neutrality rules (CN)
These rules are the operational expression of the governance firewall in the IP & Licensing Policy. They bind Concert as the certifier.
- CN-1 — Machine-runnable. Conformance is determined solely by the machine-runnable suite. No subjective assessment, interview, or discretionary judgement contributes to a pass/fail. If the suite cannot decide a requirement, that requirement is not part of certification.
- CN-2 — Identical suite. Every implementer is assessed against the byte-for- byte identical suite at a given version. There is no bespoke, relaxed, or extended suite for any party.
- CN-3 — No preferential path. No implementer — including Score Networks — receives early access to the suite, pre-graded fixtures, a privileged certification route, or any advantage in the process. The suite is public.
- CN-4 — Reproducible & publishable. A conformance result is reproducible by any third party from the published suite and the implementation's adapter, and the result report is publishable. Certification records which suite version and which CDM version were used.
A certification that cannot cite a passing, reproducible suite report under these rules is invalid.
4. Versioning
The suite is versioned with the CDM. A certification is always qualified by both versions, e.g. "SIGNET Full — CDM v0.1, suite v0.1". A new CDM major version requires re-certification; minor/patch suite updates that only add or clarify tests do not invalidate existing certifications but may be required at renewal.
The canonical form of a mark, and what may be abbreviated where, is fixed by the mark grammar.
5. What certification establishes — and what it does not
Three statements are routinely run together, always in the direction that overstates. They are different claims:
- Modelled — the CDM represents it. Says nothing about whether any implementation does it.
- Tested — the public suite exercises it against the implementation's own behaviour.
- Certified — a passing, reproducible report is on the registry against a named CDM and suite version.
CN-1 says conformance is decided solely by the machine-runnable suite. It does not say that every MUST in the specification is decided that way. The suite decides the requirements listed in §2, and those only.
Two governance properties are currently modelled but not tested, and therefore not certified:
| Property | Modelled | Tested | Note |
|---|---|---|---|
Consent terms have consequence — access is gated by a live grant, revocation takes effect, Document.accessGrant is honoured | Yes (CDM §7.3, §7.4) | No | Consent is validated structurally by C-DOC and nothing more. Addressed by E-CNS. |
| Mandate limits are respected — not merely cited | Yes (CDM §6.3–6.5) | No | F-SEM requires a Decision to cite policiesApplied; nothing requires the limits in those policies to have been applied. Addressed by E-MDT. |
A reader treating a Full certification as evidence that human oversight was enforced would be relying on something this suite does not establish. Concert's own reference implementation demonstrates the mandate gate, and CI runs that demonstration on every commit — but a demonstration binds only the code demonstrated, not every certified implementation.
Nothing above is a defect in what the suite reports. It is a limit on what the report may be read to mean, and it is stated here so that no positioning copy has to be trusted to state it.
Endorsements — proposed, not in force
A second axis, and what it does not certify
Endorsements certify properties that do not belong on the Core/Full axis because they are not universally applicable. Neither entry below is in force: their checks run today, but they decide no level, appear in no conformance report, and license no mark until the corresponding proposal carries and its register entry moves to active.
Register version: v0.1
Class: Normative. Closed and append-only.
Status: Established under the interim-committee bootstrap clause. Both entries are proposed;
no endorsement is earnable and none may appear in a mark until its entry is active.
Steward: Concert Foundation
Licence: CC0-1.0
Governs: the endorsement-list production in mark grammar §4.
An endorsement certifies a property that is worth certifying but does not belong on the
Core/Full level axis, because it is not universally applicable. Endorsements are additive: they
change neither Core nor Full, nobody is blocked from certifying without one, and an unearned
endorsement is inert. See conformance/levels.md §2.4.
1. Register mechanics
Closed. An endorsement exists only if it appears below. An implementation may not coin one, and a profile may not add one.
Append-only. Entries are added, never removed or renamed. Withdrawing an endorsement means
marking its entry withdrawn and stating the date; marks already issued keep naming it, and the
register keeps explaining what it meant.
Admission is a Standards Committee act, at a suite minor-version boundary only. Every admission records the three-part test (§2) against the entry, which makes admission auditable rather than discretionary.
Ordering is register order, not alphabetical. The endorsement-list in a mark string MUST
follow the order below. Register order keeps a given set of endorsements rendering identically as
the register grows.
Registry entries record the register version in force at issuance. The register is append-only, so without this every certification issued before a later admission would appear deficient against a register that grew after the fact. That unfairness is created automatically by append-only design unless entries are dated against it.
2. The three-part test (normative)
An endorsement may enter this register only where the property is:
- (a) genuinely orthogonal to the Core/Full level axis — it is not a stronger version of a level requirement, and adding it to a level would be wrong rather than merely aggressive;
- (b) not universally applicable — some conformant implementations have no occasion to exhibit it, so requiring it at a level would fail them for an irrelevance; and
- (c) machine-testable under CN-1 — a public, reproducible check decides it, with no discretionary judgement.
A property failing (a) belongs in a level. A property failing (b) belongs in a level. A property failing (c) belongs nowhere in certification, and should be said out loud as a scope limit instead.
3. Entries
E1 — Mandate Enforcement
| Field | Value |
|---|---|
| Mark string | Mandate Enforcement |
| Requirement ID | E-MDT |
| Checks | E-MDT-1 … E-MDT-7 |
| Admitted at | suite v0.2 (proposed) |
| Status | proposed — pending ballot of CP-Mandate-enforcement |
| Adapter | agent adapter — conformance/adapter/endorsement-adapters.md |
| Tested by | conformance/rules/check-endorsements.js |
Three-part test. (a) Orthogonal — Core and Full concern document structure, event integrity,
provenance, mapping fidelity, and the form of policies and decisions; whether an agent's action
was refused when it exceeded its mandate is a behavioural property of a different kind.
(b) Not universally applicable — an implementation that runs no synthetic agents has no mandates to
enforce. (c) Machine-testable — the harness supplies the Mandate and the Policy objects, so it
knows the expected outcome of each scenario, and the Policy carries an executable expression an
assessor can re-evaluate independently.
What it establishes. That the boundary sits where the mandate says it does: an action beyond an
approvalThresholds policy does not complete on the agent's own authority; actions within all
thresholds proceed without demanding approval; capability, scope, and effectiveness limits
refuse; a constraints policy is a hard limit that humanApproval cannot cure; and every refusal
is evented, so refused and never attempted are distinguishable in the record.
What it does not establish. That the implementation's mandates are well drafted, that its policies express the organisation's actual delegation of authority, or anything about actions taken outside the SIGNET record.
It also establishes nothing about human oversight having occurred — only that autonomous completion did not. A conformance run is unattended, so the suite never observes an approval and does not test what happens after one: real flows resume, and that resumption is out of scope. Nothing here speaks to the identity, authority, or existence of any approver; identity-proofing is outside the standard. An implementation MUST NOT represent this endorsement as evidence that a human reviewed anything.
E2 — Consent Enforcement
| Field | Value |
|---|---|
| Mark string | Consent Enforcement |
| Requirement ID | E-CNS |
| Checks | E-CNS-1 … E-CNS-5 |
| Admitted at | suite v0.2 (proposed) |
| Status | proposed — pending ballot of CP-Consent-revocation |
| Adapter | consent adapter — conformance/adapter/endorsement-adapters.md |
| Tested by | conformance/rules/check-endorsements.js |
Three-part test. (a) Orthogonal — C-DOC validates a Consent structurally and says nothing
about whether the grant has any consequence. (b) Not universally applicable — an implementation may
hold no access-controlled documents at all. (c) Machine-testable — the harness supplies the grant,
the event stream, and the evaluation time, so effectiveness is deterministic and reproducible under
CN-4.
Scope limit (normative for this entry). E-CNS certifies the interoperability of the grant
— its representation, its projection from the event stream, and the temporal and party evaluation
the model defines. It does not certify runtime access enforcement: whether a production system
physically refuses a read is a security-posture property assessed under ISO 27001 and SOC 2 regimes.
Concert does not claim to certify it, and no positioning copy may imply otherwise. This limit is why
the endorsement is named Consent Enforcement and not Data Sovereignty: a badge reading Data
Sovereignty would assert precisely the thing the proposal declines to assert.
What it does establish, stated positively so the limit does not read as a bare deficiency: grant
terms are represented interoperably; the implementation's own authorisation decisions honour those
terms as the model defines them; revocable acquires its first enforced consequence; and because
the effective/not-effective determination is reproducible from the published event stream, a third
party can verify after the fact whether access decisions were consistent with the grants then in
force.
4. Why two entries and not one
A single "governance" badge covering both properties was considered and rejected. The decisive argument is not accuracy but that a merged badge has no coherent earning rule: the two properties are independently applicable — an implementation may run agents but hold no access-controlled documents, or the reverse. A conjunction rule would make the badge unearnable for most implementations; a disjunction rule would award it on the strength of the half not done.
5. Change log
| Register version | Change |
|---|---|
| v0.1 | Register established. E1 Mandate Enforcement and E2 Consent Enforcement entered as proposed. |
Rendered verbatim from governance/endorsement-register.md at v0.17.1.
The governance firewall, operationalised
How certification stays neutral
Four neutrality rules bind Concert as the certifier. They are the operational face of the governance firewall: no implementer — including Score Networks — gets a bespoke suite, a preferential path, or a private assessment.
CN-1Machine-runnable
Conformance is determined solely by the machine-runnable suite. No subjective assessment, interview, or discretionary judgement contributes to a pass/fail. If the suite cannot decide a requirement, that requirement is not part of certification.
CN-2Identical suite
Every implementer is assessed against the byte-for- byte identical suite at a given version. There is no bespoke, relaxed, or extended suite for any party.
CN-3No preferential path
No implementer — including Score Networks — receives early access to the suite, pre-graded fixtures, a privileged certification route, or any advantage in the process. The suite is public.
CN-4Reproducible & publishable
A conformance result is reproducible by any third party from the published suite and the implementation's adapter, and the result report is publishable. Certification records which suite version and which CDM version were used.
Reproducible proof
The suite discriminates
The same harness run against two adapters. The reference implementation reaches Full; a deliberately broken implementation reaches none — failing exactly at event-chain integrity (C-EVT) and mapping fidelity (F-MAP). Anyone can reproduce this from the published suite.
reference-adapter.jsC-DOCCore · CDM 13.1C-EVTCore · CDM 1.7,7.1C-PROVCore · CDM 6.4,7.2F-MAPFull · CDM 8,13.2(b)F-SEMFull · CDM 6.3-6.5broken-adapter.jsC-DOCCore · CDM 13.1C-EVTCore · CDM 1.7,7.1C-PROVCore · CDM 6.4,7.2F-MAPFull · CDM 8,13.2(b)F-SEMFull · CDM 6.3-6.5The process
Self-test, submit, reproduce, issue
Generated from conformance/certification.md — identical for every implementer.
Steward: Concert Foundation · Tier: Process · Licence: CC0-1.0
Certification turns a passing conformance result into the right to use the
"SIGNET Certified" mark. This document describes the process. It is governed
by the neutrality rules (CN-1…CN-4) in levels.md and the Concert IP & Licensing
Policy. The process is identical for every implementer, including Score Networks.
1. What certification asserts
SIGNET Certified: Core or SIGNET Certified: Full asserts that, against a
stated CDM version and suite version, the implementation produced a passing
conformance report at that level from the public, machine-runnable suite. It
asserts nothing more: it is not a security audit, or a guarantee of fitness.
Nor does it assert that every MUST in the specification was met — only the
requirements in levels.md §2, which the suite decides. Two governance
properties are modelled but untested at any level, and levels.md §5 says which
and why. A Full certification is not evidence that human oversight was
enforced.
2. The process
- Self-test. The implementer writes a conformance adapter for their system
(see
adapter/adapter-contract.md) and runs the public suite:
This produces a report conforming tonode conformance/runner/run-conformance.js --adapter <their-adapter>report-schema.json. - Submit. The implementer sends Concert the report, the adapter source, and the suite + CDM versions used. Because the suite is public and the result is reproducible (CN-4), no private assessment is needed.
- Reproduce. Concert re-runs the identical suite against the submitted adapter and confirms the report. The check is mechanical (CN-1).
- Issue. On a confirmed pass, Concert records the certification (implementer,
level, CDM version, suite version, date, report hash) in the public registry —
certification-register.md— and licenses the "SIGNET Certified" mark for that level and version. - Publish. The report is publishable; the registry entry is public.
There is no committee judgement, interview, or discretionary gate at any step.
The register is empty. No certification has been issued to anyone, including Score
Networks, so no mark is licensed and no short form resolves today. It is empty as a
statement of fact, not as a placeholder: this document specified a public registry from the
moment it was written, and for as long as no artifact existed a mark string had nothing to
resolve to (governance/defects.md D-44).
3. Marks and their use
The form of every mark Concert issues is fixed by the mark grammar, which is normative for licensees. In outline:
- The canonical implementation mark is
SIGNET Certified: <Core|Full>[; <endorsements>] (CDM vX.Y, suite vX.Y)— for exampleSIGNET Certified: Full (CDM v0.1, suite v0.1). Mark strings are ASCII, and the punctuation is fixed so the form can be linted in CI (npm run lint:marks). - The registry record is the source of truth; the string is a projection. No
mark string is authored by hand. The registry is
certification-register.md. - Short forms resolve or they are not licensed.
SIGNET Certified: Fullis permitted only alongside a resolvable link to the registry entry; the bare badge only as a hyperlink. Print, slides, and spoken claims require the canonical form — the qualification is the claim. - An endorsement MUST NOT appear without a level.
- The mark licence is granted under the IP & Licensing Policy, on identical terms to all implementers, and is conditional on a current passing report.
- Misuse — claiming a level not achieved, or omitting the version qualification in a way that misleads — is grounds for withdrawal of the mark licence, under the complaint-driven escalation in mark grammar R5.
Anyone may say they implement SIGNET. The artifacts are CC0, so "Implements
SIGNET CDM v0.1" and "Self-assessed against the SIGNET conformance suite v0.1 —
Core" need no permission. What requires a licence is the assertion that Concert
assessed you. The qualifier self-assessed is mandatory in that construction.
3.1 Registry entries
The registry is certification-register.md: closed,
append-only, and currently empty.
A registry entry records the implementer, the level, the CDM and suite versions, the date, the report hash, any endorsements held — and the endorsement register version in force at issuance. The endorsement register is append-only, so without that last field every certification issued before a later admission would appear deficient against a register that grew after the fact.
Failed attempts are not published. An implementation that tries, fails, fixes, and retries is behaviour worth encouraging.
4. Renewal and versioning
- A certification is valid for its stated CDM + suite versions.
- A new CDM major version requires re-certification.
- A suite minor/patch update (added or clarified tests) does not invalidate an existing certification immediately, but the current suite applies at renewal.
- Concert publishes the current versions and a deprecation window for superseded ones.
- A mark for a superseded CDM major version is not false, but it is misleading in any form that hides the version — so it survives in canonical form only, and the short and minimal forms are withdrawn (mark grammar §9).
5. Fees and neutrality
Certification may carry a fee that funds Concert's neutral stewardship. The fee is published, identical for all implementers at a given level, and unrelated to the outcome (you pay to be assessed, not to pass). No implementer — including Score Networks — receives a discount, a fast track, or any other preference (CN-3). Fees are the Foundation's primary sustaining revenue, by design, so that the standard itself can remain free.
6. Disputes
Because conformance is mechanical and reproducible, a dispute is resolved by re-running the public suite. If an implementer believes a test is wrong (rather than their implementation), they raise it through the normal standard change-control process; the suite is corrected for everyone or not at all (CN-2).