info-tech-canon/demand/EmissionActivityScope.md
tegwick 038677ab53 Record net-kingdom's Emission Cadence declaration and fix the stale digest (INFO-WP-0029)
net-kingdom published the first source-owned declaration (116643f). It passes
emission-review. Record it as feedback, and file its session-scoped-silence
incompatibility as demand/EmissionActivityScope.md. T02 is done, and T04 is in
progress until activity-core answers.

The adoption brief sent owners the 0.1.0 draft digest, because the candidate
promotion changed the standard's text after the digest was taken. The export
manifest also hard-coded status "draft". The manifest now derives status and
version from the standard, a test pins that, and the brief names the candidate
digest b08b4d95fc4b0bd3. The wire schema is unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 121421@bnt-lap001
Assistant-Session: 36f8657c-ebfa-4a2e-9ba0-bff06738f233
2026-09-22 16:14:10 +02:00

47 lines
2.3 KiB
Markdown

# Demand: Emission Cadence activity scope — silence while a source is not running
**Status:** proposed (change proposal to the Emission Cadence standard)
**Date:** 2026-09-21
**Source:** net-kingdom (source owner), domain `infotech`
**Owner:** InfoTechCanon Emission Cadence standard (`standards/emission-cadence`)
**Consumer evidence:** `net-kingdom/local-identity/emission-cadence-findings.md` (commit `116643f`)
**Feedback:** `feedback/2026-09-21-net-kingdom-emission-cadence-declaration.md`
**Workplan:** `INFO-WP-0029` (T04 records it; no design workplan exists yet)
---
## Demand signal
The first source-owned declaration came from a source that can emit only while
an attended process runs: `local-identity serve`, plus operator-invoked CLI
commands. For such a source, silence has two meanings. Silence while the
process runs may be a finding. Silence while the process is not running
carries no information. The contract cannot tell the two apart:
- `expected-rate` needs a floor. `expected_min: 0` is the only honest value,
and with it silence means nothing.
- `heartbeat-or-reconciliation` with a heartbeat assumes a process that can
emit `nothing-to-report`. Outside a session no such process exists.
The consumer fell back to reconciliation only. That preserves correctness but
leaves the observer unable to bound silence at all.
## Options named by the consumer
1. An **activity-scope** or session-bounded form. The source emits start/stop
(or open/close) markers, and the cadence expectation applies only inside the
bounded interval.
2. An explicit statement in the standard that session-scoped sources are out
of scope. Such sources would then declare reconciliation only, and observers
would not evaluate their silence.
## Constraints on a disposition
- A new form changes the wire schema (`0.1`). Under the `0.x` rules that is
allowed with migration guidance. Existing declarations stay valid only if the
form is additive.
- Declarations pinned before the change stay pinned to their digest. Stable
promotion needs declarations against one fixed reading of the contract, so
a schema change before stable resets which pin later evidence should use.
- This demand is not accepted. Choosing between the options, or rejecting both,
is a canon-owner decision.