SPEC-OPS-005: Feature Health Evidence
| Reference Number | Version | Effective Date | Supersedes | Authority Level |
|---|---|---|---|---|
| SPEC-OPS-005 | 1.3 | 2026-09-21 | 1.2 | Normative |
Public request monitoring is governed by DOM-OPS-001 and SPEC-OPS-006. This document retains internal integrity evaluator requirements only; those evaluators are not prerequisites for publishing numerical request cards.
I. Purpose
Define how Operations evaluates internal feature integrity from naturally occurring application activity without synthetic users, business mutations, or a second source of domain truth. An internal assessment describes observed runtime integrity within a declared evidence window; it does not certify every user journey.
II. Scope
This contract governs the five internal feature keys login, attendance,
payroll, roster, and classroom_economy, their bounded internal
evidence, and their optional reduction to an internal health endpoint. It does not
define the underlying domain invariants, alter owning FEATs, create canonical
incidents, or authorize external status infrastructure to read tenant state.
III. Authority Level
Normative SPEC tier, subordinate to DOM-OPS-001 and the owning domain and
FEAT contracts. An evaluator consumes existing authoritative execution and
verification results; it does not reinterpret business rules or repair state.
IV. Dependencies
docs/DOMAIN/DOM-OPS-001_OPERATIONS_DOMAIN.mddocs/DOMAIN/DOM-OPS-002_AUDIT_LINEAGE_INTEGRITY.mddocs/SPEC/SPEC-OPS-002_EXTERNAL_STATUS_PERSISTENCE_MODEL.mddocs/SPEC/SPEC-OPS-003_APPLICATION_OBSERVABILITY_CONTRACT.mddocs/FEATURE-EXECUTION/FEAT-PROD-001_RECORD_ATTENDANCE_SESSION.mddocs/FEATURE-EXECUTION/FEAT-PROD-004_COMPLETE_PAYROLL_CYCLE.mddocs/STANDARD_OPERATING_PROCEDURES/OPERATIONS/SOP-OPS-001_SERVICE_STATUS_AND_INCIDENT_COMMUNICATION.mddocs/SPEC/SPEC-OPS-006_PUBLIC_REQUEST_MONITORING.md
V. Closed evaluator registry
Each registered evaluator MUST declare its owning execution boundary, what
counts as relevant real activity, the qualifying SYSTEM_FAILURE outcomes,
the owning verifier for state and transition validity, the required lineage
and reconciliation proof, its window and freshness class, and its internal
wording. An undeclared or unevaluated dimension is missing evidence, not a
passing check. The initial five keys and required evidence families are:
| Key | Relevant activity | Required affirmative evidence |
|---|---|---|
login |
completed real sign-in attempt | Identity-owned execution result and bounded identity/claim-state validity |
attendance |
real attendance session command | Productivity-owned execution result, lawful state transitions, actor/target/class attribution, temporal validity, and attendance projection reconciliation |
payroll |
completed real payroll cycle | Productivity-owned execution result, lawful cycle state/transitions, Ledger-owned posting lineage and duplicate/orphan checks, and balance/projection reconciliation |
roster |
real roster provisioning or edit command | Identity/Class-owned execution result, lawful seat/claim state and class isolation, and roster projection reconciliation |
classroom_economy |
a registered real economic command | owning FEAT result, applicable Ledger/Obligations/Store/Class verifier results, and required cross-domain lineage/reconciliation |
The classroom_economy key is a composite. It MUST remain UNKNOWN until
the implementation registry names the included command families and every
required owning verifier; a successful sample from only one family cannot
make the whole composite PASS. Likewise, a payroll check that sees no
recent completed cycle cannot infer health from a clean error log.
The verifier for each row MUST be the owning domain’s lawful proof surface,
not a new Operations SQL reconstruction of its business rules. Expected
business denial is not a system failure (SPEC-OPS-003 §VI), but it also
does not establish successful feature activity.
VI. Evaluation
Each evidence item carries an observation/check time, source, class-bound execution provenance internally, probe/evaluator version, and a closed result code. The internal evaluator may consume only authorized one-class verification results. An Operations coordinator receives redacted outcomes through opaque work items and MUST NOT issue a cross-class domain query.
Produce an independent result for each (feature, evaluation_window, check_type) key. Here check_type is the declared dimension, READINESS
or CORRECTNESS, not a second alias for the feature. Evidence and current
results from one dimension MUST NOT overwrite or satisfy the other. Within
each dimension:
- A fresh proven execution failure, invalid state/transition, broken
lineage, or failed reconciliation yields
FAIL + KNOWN, even if another required check in that dimension is unavailable. Preserve the distinct underlying evidence; this reduction is only a current assessment. - Otherwise,
PASS + KNOWNrequires relevant real activity and fresh affirmative results for every required check in that dimension. A zero-error count alone is never affirmative evidence of correctness. - Otherwise, return
UNKNOWN + UNAVAILABLE. This includes no recent activity, incomplete coverage, stale results, unavailable sources, skipped checks, and failed dispatch. Do not turn an idle period into a failure or a pass.
Disagreement about the same condition is preserved as derived conflict, not encoded as a raw result or settled by choosing the passing source.
The internal capability assessment is a separate step over the required
dimension results, following the retained internal policy in Batch B §3.2. A fresh,
proven failure remains visible even when the other dimension is unavailable;
it supports DEGRADED, or UNAVAILABLE only with proof of unusability.
AVAILABLE requires fresh affirmative results for both dimensions and no
unresolved disagreement. Otherwise the projection is UNKNOWN, including
conflicting evidence about the same condition. Retain both dimension results
and their separate reasons; a capability projection never replaces them.
Each feature dimension uses the explicit freshness mapping in Batch B §3.3.
Readiness uses REALTIME (one-minute cadence, five-minute maximum age);
state/transition/reconciliation correctness uses PERIODIC_CORRECTNESS
(15-minute cadence, 30-minute maximum age). Required audit-lineage proofs
retain DEEP_INTEGRITY (hourly cadence, two-hour maximum age) independently.
Every required proof must satisfy its own age limit; a fresh summary timestamp
cannot refresh an older proof or borrow its longer lifetime. Missing or stale
required evidence prevents that dimension, and hence the capability, passing.
An evaluator MUST NOT backdate a current result or substitute an old
successful run for recent activity.
VII. Internal persistence and optional evidence transport
The following bounded transport rules apply only where internal integrity evidence is explicitly transported. They do not require the public request collector to fetch or persist feature evaluator results. SPEC-OPS-006 is the sole numerical public monitoring contract; these assessments do not gate its cards or history.
Application/Operations health evidence is append-only within its retention
class. A replaceable current assessment MAY be derived from it. An internal
health endpoint is a pure GET: it reads a bounded assessment and MUST NOT
execute a FEAT, repair a record, or start a verifier. If internal results are transported, the authorized collector
receives only capability key, observation class, lawful outcome/epistemic
pair, checked-at time, a closed diagnostic code, and the bounded evaluator
version when a registered feature evaluator ran. The collector derives the
bounded evidence source from the validated signal origin and stamps its own
transport probe_version; neither value substitutes for the owning evaluator
version. An unregistered UNKNOWN has no evaluator version. No class/user/seat
identifier, contact detail, credential, financial value, row ID, free-form
exception, or raw verifier result crosses that boundary.
For every external observation, including a transported application result,
the collector supplies the bounded latency/result metadata required by
SPEC-OPS-002 §5.1. The closed metadata contains transport_latency_ms
(finite nonnegative elapsed milliseconds measured with the collector’s
monotonic clock for that fetch, at most 600000; null if not measurable within
that bound) and transport_http_status (integer 100–599 when a response was
received, otherwise null). Null never means zero latency or HTTP success.
These fields describe transport only, never evaluator duration or business
success. Records from the same fetch may share this metadata without sharing
feature evidence, check times, or outcomes. The application supplies no raw
response, arbitrary metadata, or inferred latency; evaluator provenance and
its original checked-at time remain unchanged.
The external status service stores observations and projects communication; it does not become the authority for Identity, Productivity, Ledger, or canonical Operations incidents.
Transport is not provenance: the external collector’s fetch of an
application-reported feature result does not make that result an independent
EXTERNAL_PROBE. Feature results MUST retain the distinct bounded evidence
source APPLICATION_RUNTIME_EVIDENCE in external observation records.
The collector’s own HTTP reachability result remains EXTERNAL_PROBE.
Neither source may overwrite the other’s evidence or freshness timestamp.
The collector derives APPLICATION_RUNTIME_EVIDENCE only from a validated,
closed application signal; it derives EXTERNAL_PROBE only from its own
reachability check. The observation probe_version identifies the collector
transport protocol, not the feature evaluator. A feature evaluator MUST
provide a separately bounded and validated evaluator version in the
application-to-collector signal before its result can be registered as PASS
or FAIL. The external observation stores that version separately from
probe_version. Until that producer and transport field are implemented,
its internal result remains CHECK_NOT_REGISTERED / UNKNOWN.
VIII. Internal assessment wording
The internal assessment headline MUST name the feature, not promise that every operation
works. A PASS detail may say, “Recent activity completed without detected
integrity failures.” A FAIL detail says that a problem was detected,
without exposing internal evidence. An UNKNOWN detail says, “Not enough
recent evidence to verify.” The assessment MUST NOT say “Payroll works” from
silence or imply universal availability from one observed class.
IX. Validation
Targeted tests MUST cover each registered evaluator’s real-activity
threshold, qualifying system failure, expected denial, every required
validity/lineage/reconciliation dimension, missing/stale evidence, conflict,
one-class authorization, redaction at the external boundary, and internal
wording. An evaluator is not registered merely because a key appears in the
internal assessment UI. Until its evidence producer and tests exist, its signal
remains UNKNOWN/UNAVAILABLE with CHECK_NOT_REGISTERED.
X. Amendment
Changing the closed keys, required evidence families, internal assessment meaning, or
cross-boundary payload requires a version increment and review against
DOM-OPS-001, the owning domain/FEAT, SPEC-OPS-002, and
SOP-OPS-001. Update the documentation index.
Last updated: 2026-09-22