# local-identity emission cadence — fit findings (INFO-WP-0029-T02) Declaration: `local-identity/emission-cadence.yaml`, pinned to InfoTechCanon emission contract digest `972c0b6701d1693f` (document 0.2.0, wire schema 0.1). Emitter: `local-identity/src/local_identity/audit.py`. ## Validation (2026-09-21) - **Generic contract: valid.** Checked against `info-tech-canon/infospace/schemas/emission-cadence.schema.yaml` through `tools/emission-cadence-profile` (`contract_valid: true`). The `info_tech_canon emission-review` CLI could not be run locally because `infospace-bench==0.1.0` is not installable from the package index. - **NetKingdom security profile v0.1: not conformant.** Both entries raise `rare-heartbeat-missing` (MUST): rare load-bearing evidence requires a positive heartbeat, and local-identity emits none. The declaration records `heartbeat_emitted: false` instead of declaring a heartbeat that does not exist. ## Incompatibilities found 1. **Silence is scoped to process lifetime, and the contract has no field for that.** `serve/*` events can occur only while an attended `local-identity serve` process is running. CLI events occur only when an operator runs a command. Neither `expected-rate` (there is no floor rate: `expected_min: 0` would make silence carry no meaning) nor a heartbeat outside a session expresses "silent because not running". The contract needs an activity-scope or session-bounded form, or an explicit statement that session-scoped sources are out of scope. 2. **Only reconciliation fits, and it needs an observer that does not exist.** The local count is the append-only `audit.log`, which is mode 600 on the operator's machine. No observer ingests it, so `compare_observed` is a declared reference and not an existing feed. 3. **Completeness cannot be claimed.** `audit.log_event` drops I/O failures without reporting them, so the local count can under-count. `completeness_claimed: false` is recorded. ## What would close the NetKingdom profile gap To close the gap, `serve` would have to emit a periodic `nothing-to-report` heartbeat and a start/stop pair so that observers can bound the silence. That is a code change to a bootstrap-only tool and is not planned. This file records the incompatibility as the adoption result.