Skill Harness

Skill Efficacy Reporting Standard (SERS)

Machine-readable receipt for a skill efficacy verdict. A missing number is a typed refusal, never an invented score. The evidence admissibility gate uses that qualified term only.

The machine-readable schema is published beside these pages as sers.schema.json. Receipts are validated against it at build time by the same code that writes these pages, so a published page and a validated receipt are the same event.

Required fields

Closed vocabularies

Every vocabulary below is fixed by the schema and checked against the code enums in continuous integration, so a value can drift in neither direction without failing a build.

sers_version

SERS vocabulary generation. Receipts from different sers_version values are not comparable.

verdict

Operator-facing keep/cut outcome. KEEP = measurably worth its slot; CUT = remove (see cut_sub_reason); CANT_TELL_YET = evidence does not support a keep/cut call.

cut_sub_reason

Qualifies CUT. Required non-null iff verdict is CUT; must be null otherwise. subsumed = model already does the task without the skill; no_lift = measured where help was needed and the skill did not deliver; harmful = skill made outcomes measurably worse.

unmeasured_sub_reason

Qualifies an UNMEASURED / cannot-score path when applicable. Mirrors UnmeasuredSubReason exactly. null when the receipt is not an unmeasured refusal path (e.g. a measured KEEP or CUT).

value_class

Skill value kind. Screen-path CUT(subsumed) is valid only for transformative-lift; other classes route above-bar p0 to CANT_TELL_YET (wrong instrument). null = unclassified.

outcome_type

The scoring-oracle kind the record authorises. pass_fail = legacy conjunction oracle; invariant = split invariant + completion oracle. Required for trap-discipline; null on pass_fail records.

evidence_admissibility.status

admissible = all cited evidence cleared the evidence admissibility gate; inadmissible = evidence present but gated out of aggregation; mixed = both; not_applicable = no store-backed evidence (prose-only / mechanical).

measurements.go_nogo

Pre-stated GO/NO-GO apparatus gate when one was registered.

delivery.channel

Which of the skill's two products carried the measured value. 'description_only' = the standing description line was read but the body was never loaded (pi_c = 0 with full exposure); 'body_and_description' = invocations are present so the body was read; 'not_instrumented' = receipts minted before detector v2.

expiry_state

Expiry state of the result, read from the frozen_cases_with_currency VIEW. 'current' = metric version and implementation hash match the current metric version; 'stale' = a newer version exists or the hash mismatches; 'no_current_metric_version' = no audited valid metric version exists.

claim_level

Ledger claim ladder above KEEP. KEEP = one admissible registration; REPLICATED = 2+ independently designed families; ROBUST = 3+ materially distinct families with at least one independent designer. null = not yet classified.

verdict_scope.estimand

Registered estimand from the run's RegisteredScope (semantics.py).

verdict_scope.delivery_mechanism

Registered delivery mechanism from the run's RegisteredScope (semantics.py).

currentness.state

Whether the verdict is currently supported: VALIDATED = full re-validation passed; CARRIED_FORWARD = sentinel/canary passed but no full re-run; STALE = sentinel or canary failed, model changed, or max_age elapsed.

currentness.basis

How the currentness was established: FULL_VALIDATION = a full paired run; SENTINEL_PASS = sentinel and canary checks passed; NONE = no check performed or checks failed.

token_figure.refusal

rate_or_refusal.refusal