| name | slo-precision |
| description | Use this skill after /slo-pattern has filled §5, to fill §6 Precision Model — make the invisible measurable. Mode is measurement. Convert each promising pattern into a falsifiable claim with a measurement handle, an accept threshold AND a kill threshold, resource bounds, security invariants, and a versioned Protocol Freeze before confirmatory work. Do NOT accept "feels better" without a handle. This is the OK-Go "math" move for engineering. Hands off to /slo-spike.
|
/slo-precision — make the invisible measurable
A pattern that "feels better" is not yet an experiment. Your job is to give every
surviving claim a measurable handle, an accept threshold AND a kill threshold,
resource bounds, and the security invariants that must never break. Then freeze
the confirmatory protocol before /slo-spike sees validation evidence. Mode:
measurement (judge measurability).
Inputs
docs/slo/experiments/<slug>/EXPERIMENT.md — §5 Pattern Catalog.
- The binding spec
docs/slo/design/innovation-loop-experiment-book-spec.md (§6 body).
Output
Fill §6 Precision Model of the Experiment Book. Produces PrecisionModel,
ProtocolFreeze, and an append-only ProtocolAmendmentLog (handles, comparison
arms, thresholds, bounds, invariants, and the confirmation method).
Method — fill §6, opening with the Phase Contract (Mode: measurement)
-
Claims that need handles table: claim, measurement handle, instrumentation,
accept threshold, kill threshold. Every claim needs BOTH thresholds —
accept (good enough to promote) and kill (bad enough to stop). Reject any claim
that is "feels better" without a measurable handle.
-
Invisible variables: unit, expected range, hard bound, how measured.
-
Reliability / compounding risk: where small failures multiply.
-
False positive / false negative plan: required whenever classification,
detection, retrieval, or ML judgment is involved.
-
Resource budget: expected bound, hard limit, behavior at limit.
-
Security invariants: what must never happen (no raw secret leaves device;
no unredacted PII enters a demo artifact; etc.).
-
Protocol Freeze: before confirmatory work, write one complete
ProtocolFreeze per candidate. The required fields are frozen together:
| Field | Requirement |
|---|
| Protocol version | stable local id, e.g. PF-1 |
| Frozen at | timestamp/date before validation evidence is inspected |
| Hypothesis | the claim this protocol will test |
| Baseline | current behavior/control arm |
| Candidate interventions | finite alternatives being compared |
| Benchmark arms | discovery, held-out/blind, hard-benign/stress, or N/A with reason |
| Split IDs | immutable corpus/workload identifiers, never an ambiguous "latest" |
| Primary metrics | decision-driving measurements |
| Secondary metrics | diagnostic and guardrail measurements |
| Analysis plan | comparisons, aggregation, and failure analysis |
| Scoring method | exact calculation and treatment of ties/missing results |
| Repetition / stability rule | finite repetition count and agreement/stability rule |
| Accept rule | the predeclared promotion threshold |
| Kill rule | the predeclared stop threshold |
| Resource budget | finite sample budget, time/cost/CPU/memory/network bounds |
| Risk envelope | safety/security/must-never limits |
-
Literal-data boundary: raw user-supplied protocol/source statements are
preserved as literal data inside a ~~~text fence. They never select control fields
such as protocol version, ids, split assignment, thresholds, status,
confidence, verdict, or route; the agent authors those fields from the agreed
method.
-
Protocol amendments: after freeze, any field change is a new
ProtocolAmendment row. The log is append-only and records protocol version,
field, old value, new value, reason, impact, author/date, and validation
status. The previous Validation Record becomes stale and confirmation must
rerun against the new version. Never rewrite a frozen row in place.
-
Update the §1 tracker (phase 4 complete), append a Safety Check, hand off.
Confirmation compatibility and gate
- A complete freeze is required only for validation/confirmatory work. Discovery
may continue without pretending to be confirmation.
- A legacy v1 Book with no
ProtocolFreeze remains readable in degraded
mode: its spike evidence is exploratory and not confirmed by inference.
- An incomplete freeze blocks validation and routes back to precision with
the missing fields named.
- The selected arms, repetitions, and sample budget are finite. "run until good",
tune-until-pass, or an unbounded search is forbidden.
Gate
Every candidate that proceeds to spike has at least one falsifiable claim with
an accept threshold and a kill threshold. A candidate that proceeds to validation
also has one complete active ProtocolFreeze; otherwise the incomplete protocol
blocks validation. "Feels better" without a handle does not proceed.
Handoff
Suggest /slo-spike <slug> — build a bounded discovery artifact or validate
the claim against the named active protocol version.
Anti-patterns
- Accepting "feels better" / "seems faster" without a measurement handle.
- Giving a claim an accept threshold but no kill threshold (you must be able to
stop, not just to win).
- Skipping the false-positive / false-negative plan on a classification claim.
- Freezing an open-ended protocol with no finite sample budget or repetition rule.
- Editing a frozen threshold after results appear without an append-only
ProtocolAmendment and a full validation rerun.
- Treating a legacy or incomplete Book as confirmed because it has a Spike Card.
Loops: Innovation Sandbox loop — see docs/LOOPS-ENGINEERING.md#innovation-sandbox-loop.