# Method preregistration — template v1.0

Fill this in **before** the first measurement. Then hash sections 1–10 and paste the hash
into your run log. Everything after the frozen line is append-only.

Delete nothing from this template. A section you decided not to use should say so, and why —
an absent section reads as an oversight, a declined one reads as a decision.

---

## 1 · The question

One paragraph. What is being asked, in a form that has a wrong answer.

If you cannot state an outcome that would disappoint you, you are not running a study.

## 2 · Hypotheses (written before the run)

- **H1 …**
- **H2 …**
- **H0 (null)** — the outcome under which nothing here matters. Write it explicitly; it is
  the thing your design has to be capable of showing.

Mark any hypothesis you already have a single prior observation for. Extending a sample is
a different act from discovering an effect, and readers deserve to know which one this is.

## 3 · Fixed inputs, sample size, and matrix

State the full matrix and the resulting N. State how many times each cell is measured, and
**how repeats are combined** — mode, median, mean — and why. Discrete outcomes have no
meaningful mean; say so rather than letting a spreadsheet decide.

Ensure cells cannot shadow one another: independent identifiers, independent inputs.

## 4 · Controls that must pass, or the run is void

| Control | Expected | What it proves |
|---|---|---|
| C1 | | The environment itself works |
| C2 | | Pre-existing state is uncontaminated by the test material |
| C3 | | A negative result is a genuine negative, not a catch-all |
| C4 | | Removing the test material restores the baseline |

**Validity floor:** all controls must meet expectation for this run to be valid. Any control
failing voids the run: **the data is not published**, and the attempt is recorded as
did-not-complete.

> **This rule applies to the present run.** Say this sentence, in these words or your own.
> Without it, the floor can be reinterpreted after the results are visible.

## 5 · Metrics, instrument, and the reading table

The exact command or procedure, quoted, including flags that affect the result.

Every result row records: identifier · input · run number · raw observation · verdict ·
run ID · script version · **the full command as actually executed**.

**Verdict enumeration — exactly three values, no fourth:**

| Value | Means |
|---|---|
| `effective` | Behaved as specified |
| `silently-ignored` | Did not work **and produced no error signal** |
| `not-observable` | Preconditions unmet — this cell has no measurement |

`not-observable` is **not a zero and not a failure.** A prerequisite failing does not entitle
you to score everything downstream as terrible. Report its count even when it is zero.

**Reading table** — write, before the run, which observation maps to which verdict. Be
specific about what would distinguish a real success from a coincidental one: a status code
alone rarely does, and a body that is merely non-empty proves less than a body whose
provenance you checked.

## 6 · Environment, and its limits

Tool and version. Host. Whether this is production or a simulation.

**Declare the limit before running, not after.** If this is a simulation, write plainly that
no claim is made about production, and write it where a reader hits it first — not in a
footnote.

Then answer, still before running: **why is this worth doing despite the limit?** If the only
honest answer is "because it was convenient," that is useful to know now.

## 7 · Stop-loss rules

- No valid response within N minutes → record did-not-complete, **do not retry, do not
  switch tools**.
- A cell producing K different results in K attempts → record it `not-observable`. **Do not
  pick the best one. Do not widen the sample until it stabilises.**
- Total elapsed over T minutes → stop; record completed work, mark the rest
  `not-observable`.

> **These rules apply to the present run.**

## 8 · What may and may not be concluded

- **Permitted:** statements bounded by the environment and version measured.
- **Forbidden:** universal claims about a product or vendor.
- **Forbidden:** rankings, unless the preregistered validity floor for ranking is met.
- **Required:** if the result contradicts a hypothesis, or contradicts an earlier finding of
  ours, it is published anyway, and the earlier finding is flagged for re-check.

That last clause is the entire point. Preregistration is what makes an inconvenient result
publishable.

## 9 · Dataset

Which raw files are kept, where, and under what licence. Raw data lives in the project's
evidence tree; published assets are a separate, curated surface.

## 10 · Independent review

The reviewer must be **a different model family, or a different person, from the producer**.
A producer cannot certify itself.

Review reports carry a provenance header: **reviewer identity · dispatch command · baseline
commit · verdict · remediation commit.** If the value of the review is that an independent
party looked, then who looked is the finding.

Consider two reviewers in parallel. In our own experience, two independent reviewers of the
same artefact overlapped on a minority of their most serious findings.

---
<!-- FREEZE LINE — hash everything above. Append below, never edit above. -->

## Deviation log (filled after the run; nothing above is edited)

See `deviation-log-template.md`.
