Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a1029d-2c93-7500-a0e0-e3e089668b29
3.8 KiB
local-identity emission cadence — fit findings (INFO-WP-0029-T02)
Declaration: local-identity/emission-cadence.yaml, currently pinned to
InfoTechCanon candidate bundle b08b4d95fc4b0bd3 (document 0.2.0, wire schema
0.1). The September 21 evaluation used 972c0b6701d1693f, then incorrectly
labelled 0.2.0 by the owner brief; that digest actually identifies the 0.1.0
draft. The owner corrected the brief on September 22. The schema bytes are
unchanged, and the historical findings below remain valid.
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.yamlthroughtools/emission-cadence-profile(contract_valid: true). Theinfo_tech_canon emission-reviewCLI could not be run locally becauseinfospace-bench==0.1.0is 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 recordsheartbeat_emitted: falseinstead of declaring a heartbeat that does not exist.
Incompatibilities found
- Silence is scoped to process lifetime, and the contract has no field for
that.
serve/*events can occur only while an attendedlocal-identity serveprocess is running. CLI events occur only when an operator runs a command. Neitherexpected-rate(there is no floor rate:expected_min: 0would 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. - 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, socompare_observedis a declared reference and not an existing feed. - Completeness cannot be claimed. Failed
audit.log_eventwrites are not retained, so the local count can under-count. Since 2026-10-03 failures emit a fixed warning without event contents or exception details; this diagnostic does not recover the missing event or supply an observer feed.completeness_claimed: falseis 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.
Pin correction and revalidation — 2026-09-28
The current declaration now uses the owner-published candidate bundle digest
b08b4d95fc4b0bd3. Schema SHA-256 remains
6d52692eb1e4d1325e0d6062d95acded98beddaae5bcfe24c6f0e91f1b6be6ae.
Revalidated against the owner schema with both documented classes explicitly
supplied as rare load-bearing: generic-valid, with exactly two
rare-heartbeat-missing findings. All 15 focused checker tests pass. No
heartbeat, observer feed or runtime emission change is implied by this pin fix.
Explicit incompatibility disposition — 2026-10-03
The process-scoped bootstrap source remains generic-valid and fails both rare heartbeat obligations. Retain it as an adoption incompatibility with no completeness claim; do not weaken the rare-class conjunction or count it as profile-wide adoption. Starting/stopping the tool does not provide an independent observer activity-scope contract. Audit I/O failures now produce a sanitized warning while preserving the existing nonblocking operation behavior; missing event custody and heartbeat/feed integration remain unresolved.