Repository navigation
[spec] Nothing states when an event must be emitted, and that condition belongs to the licence #42
Description
Specification section
5.7 Conformance levels, and 5.7.1 to 5.7.3
What you observed
Section 5.7 defines conformance as capability rather than coverage. Emitters "advertise a standard capability tier", "a level proves the emitter produces that event and everything below it", the levels "describe what an emitter reports", and the Citation level "proves citation support, not full retrieval-to-engagement coverage".
Every MUST in 5.7.1 to 5.7.3 is about the shape of an event once it is sent. Set source_role on content_retrieved events. Include at least one of content_url or content_id on every event. Emit content_grounded events with data.scope. These say what a valid event looks like. None of them says an event must be sent when the thing it records actually happens.
I looked for the vocabulary that would carry such a rule anywhere in the specification. "Obligation", "obliged", "eligible", "qualifying", "trigger" and "completeness" appear zero times across all 1,447 lines. "Applicable" appears twice, once in "a Citation emitter SHOULD emit them when applicable", and is not defined. The nearest thing to a rule is "emitters SHOULD produce the events that reflect what actually happened", which is a SHOULD about fidelity of ordering rather than a requirement to report.
The consequence is that an emitter which grounds a thousand pieces of content and sends one content_grounded event appears fully conformant at Grounding level. I cannot find the sentence it breaches.
Relatedly, the fourth conformance question in SCOPE.md asks whether "all qualifying events were reported". That phrase appears twice in the project, in this conformance question and in the README's open question on verification of grounding and citation, and is defined in neither place. The README asks for input on what a verification layer should cover and says mechanisms testing completeness are of particular interest, which is what this issue is about.
Why it matters
We need to settle how "qualifying" events is defined.
Everything downstream assumes coverage. Attribution, reporting and any commercial settlement computed from these events only mean something if the events are reasonably complete. A count of grounding events is not a measure of grounding, it is a measure of what an emitter chose to send.
The emitter is the only party that knows what it actually did. If the specification does not state the condition, the emitter sets it, and a content owner has no basis in the text to say the set was short. That asymmetry is not created by bad faith, it is created by silence.
It also means two honest implementers can read section 5.7, build very different things, and both conform. One emits per grounding, one emits per session, one emits per licensed domain only. Nothing in the text separates them, and nothing lets a consumer tell which they are looking at.
To be clear about the fix I am asking for, because it is not the obvious one. I am not asking the specification to state centrally when each event is owed. That runs into the same wall as defining centrally what each event means, which is that no single rule fits every licence, and it is the point I have raised in #4. The condition belongs in the licence, alongside the meaning.
What the specification needs to do is state that the event vocabulary is a shared set of names and loose descriptions, that the operative definition of what an event means and when it must be sent comes from the governing terms, and that the reference to those terms travels with the event so a reader can find which definition applied. That is a small change to section 5.7 and it costs the standard nothing it currently delivers, because section 5.7 already declines to require coverage. It would only be saying out loud what the text already does, and pointing at where the missing half lives.
The standard being silent on the matter is the one option that does not work, because silence defaults to whoever is sending it and their incentives.
Your perspective
Standards / policy
Activity
jalexspringer commentedon Aug 14, 2026
Adopted: each core event now has a stated occurrence boundary in 4.3, "qualifying occurrence" is defined, 5.7 states that a conformance level is a capability claim and not a coverage claim, and coverage is an explicit declaration (new 5.7.6):
complete,sampled,aggregatedorselected, over a stated relationship scope, with the rule for the last three objectively decidable at emission time and disclosed to the receiving party. Manifests MAY declare the modes machine-readably (8.5). A consumer MUST NOT treat the absence of an event as evidence that no occurrence happened except under complete coverage.Refused: moving event definitions into the licence. Per-licence meaning makes emitters' events incomparable, and the boundary recorded in SCOPE.md (#4) stands — governing terms select events and coverage; they do not redefine semantics.
One limitation: an emitter under no governing terms still selects its own relationship scope. The disclosure rules make that selection visible, not impossible. Whether reporting in fact met a declared coverage is verification and audit work, outside core — the evidence profile's remit. Implemented in PR #45.
jwrosewell commentedon Aug 15, 2026
#45 answers this issue, and I support closing it when that merges.
The two sentences that do the work are in 5.7.6. An emitter "MUST NOT declare or describe its reporting as
completefor an event type unless every qualifying occurrence is emitted", and a consumer "MUST NOT treat the absence of an event as evidence that no occurrence happened except where complete coverage applies". With "qualifying occurrence" now defined, and an occurrence boundary stated per event in 4.3, the emitter in my example that grounds a thousand items and sends one event is no longer conformant once it declares complete coverage or reports under terms that require it, and where it declares nothing, its silence now reads as nothing rather than as zero.That is a different route from the one I proposed, since the definitions stay in the specification rather than moving to the governing terms, but the outcome I filed this issue for is delivered. The condition is stated, the coverage claim is explicit, and silence no longer defaults in the emitter's favour. The remaining question, whether reporting in fact met a declared coverage, is verification work, and 5.7.6 says so plainly.
Terms, coverage and identity: terms_ref, occurrence boundaries, acces…
jalexspringer commentedon Aug 18, 2026
Merged in #45: occurrence boundaries (4.3) and coverage declarations (5.7.6).