Form is heartbeat **plus** reconciliation, not rate monitoring.
```yaml
form: heartbeat-or-reconciliation
event_class: <name>
evidence_class: load-bearing
rate_monitoring: forbidden
heartbeat:
event_class: <name>.heartbeat # or a dedicated heartbeat class
interval: 24h
assertion: nothing-to-report
missing: finding
reconciliation:
compare_local: source transition counts per class
compare_observed: evidence-engine counts per class
divergence: finding
undrained_local: lag-not-divergence
```
A missing heartbeat, or a reconciliation divergence, is a finding about the
stream. None of these are informational logs.
## 3. Worked example — `qonto-assistant`
The one real source this draft is written against.
| Event class | Evidence class | Form | Why |
| --- | --- | --- | --- |
| `audit.allow` | attributive | expected-rate (SHOULD) | Forensic reconstruction; no control branches on presence. Completeness is not claimed. The rate row is here so the volume form is specified, not because qonto traffic is currently a meaningful volume class. |
| `audit.deny` | load-bearing | heartbeat-or-reconciliation (MUST) | Deny-escalation and posture branch on deny presence/absence. Statute §9.6 names denials as load-bearing. Denials are infrequent, so rate monitoring is the wrong form. |
| `audit.heartbeat` | load-bearing | the positive claim | `nothing-to-report` plus per-class counts since the previous heartbeat. |
Machine-readable worked example consumed by the local evaluator (draft-shaped,
not a competing schema): `src/kings_guard/fixtures/qonto_assistant_cadence.json`.
Until `qonto-assistant` publishes the declaration and emits heartbeats, no
argument may assume this surface is live on that source. kings-guard can
still observe the audit events it does emit; stream completeness for the
deny class stays `unknown` or `degraded` until the positive claim exists.
## 4. Consumer obligations (kings-guard)
- Copy the declared evidence class onto each observation; do not infer it.
- Evaluate the stream against the declaration, not only each record.
- Carry completeness separately from record richness in posture output.
- Treat stream findings as distinct from content findings.
- Open no Tooling client to obtain the stream. The source publishes it.
## 5. Handover
Sent to `gate-house`, `net-kingdom`, and `info-tech-canon` for ownership.
kings-guard will consume whatever Taxonomy publishes; it will not fork this