Fleet Schemas ↑↓ move within a pane · ←→ move between panes · Enter opens · Esc backs out
CaseReplayExperimentProtocol 40 fields

laws-core/CaseReplayExperimentProtocol

schema exactly "laws-core/CaseReplayExperimentProtocol"
Declared protocol schema used by the experiment kind registry.
required
hypothesis non-empty string
The case-replay claim under test, stated precisely enough to be judged.
required
protocol object
Invariant block; its exact bytes must match across paired conditions.
required
input object
Kind-specific case replay input.
required
case non-empty string
Case id whose violating turn supplies the replay input.
required
model non-empty string
Canonical gen model id fired for every replicate.
required
harness one of: claude | codex
The harness whose captured system prompt and tools wrap the replay; omitted means claude, and the choice changes the fire recipe hash.
fires integer > 0
Number of independent replicates in this condition.
required
temperature number
Sampling temperature held invariant across paired conditions.
required
judge non-empty string
Observable predicate assigning one legend color to each raw reply.
required
treatment object (additional keys allowed)
Historical treatment keys before 7c0dcb8c remain unchanged; the binding refuses undeclared keys on new input. Declared prompt variables and admission inputs, outside the invariant block. The selected model remains protocol.model; assembly proves the law substitution and optional deletion separately. Everything assembly needs to rebuild the dispatched prefix lives here, so re-running this recipe dispatches byte-identical messages.
4,080
harnessDeletion object
no description declared
omittedHarnessSpan non-empty string
no description declared
required
controlFire non-empty string
Exact baseline fire supplying the model source and unchanged replay for this treatment; absent on a cure arm that declares its law blocks without a pinned baseline.
laws map of string
Exact citation-to-law-block replacements delivered by boot replacement; empty values delete a cited law. Present on a compound or cure arm, absent on a trim-only treatment. Recorded here rather than only on the fire receipt so re-running this recipe rebuilds the same replaced boot instead of a plain control.
banSentence non-empty string
One verbatim operative ban sentence inside the replacement block, required byte-present in the rebuilt standing context. Required for a compound treatment, which the fire CLI enforces; a laws-only cure arm declares none.
requiredConductStrings list of non-empty string
Reviewer-declared strings preserved through trim; an empty array declares none. Required by the binding for new input; absent only on historical records before 7c0dcb8c (2026-09-05).
trim object
The declared context reduction; omitted for a full-context peel.
keepLaws list of non-empty string
Laws retained after trim; empty when the proposal deletes the case's only cited law.
required
toolResults exactly "on-path"
no description declared
required
buckets non-empty list of one of: catalog | laws | tool-results
Named trim subset; absence selects all buckets for historical compatibility.
place one of: in-place | last-system | before-final-input
Law-block placement; absence is in-place. Persisted because placement changes the measured prompt independently of text, as recorded at https://wsh.md/laws/laws-cure/CONTRIBUTING.md/#2026-09-11-14-49-omitted-urls-revoked-after-four-judge-sentences-the-definitional-question-was-the-panels-not-the-packets-and-the-revocation-writer-refuses-any-repeated-fire-id
prefixOmission object
The prefix spans this recipe deletes before dispatch. Declared here, not only on the fire receipt, because the spans change the dispatched bytes: a re-run that could not read them would rebuild the full prefix and silently become a plain control. Carries no flag or file path - a caller's span-file path is not reproducible evidence, the spans and their hashes are.
bootStrip boolean
Whether the second boot message was replaced by the pinned law block the way a quick screen replaces it.
required
spans non-empty list of object
Every stripped span, in declaration order.
required
messageIndex integer >= 0
Index into the assembled replay prefix, counting the captured harness prompt as message 0.
required
byteStart integer >= 0
First UTF-8 byte offset removed from that message.
required
byteEnd integer >= 0
UTF-8 byte offset just past the last byte removed.
required
sha256 string matching /^sha256:[a-f0-9]{64}$/
SHA-256 of exactly the removed bytes, checked against the assembled prefix before dispatch.
required
prefixSha256Before string matching /^sha256:[a-f0-9]{64}$/
The retired fire receipt's evidence hash: SHA-256 of the serialized replay prefix before any omission. Recoverable from no other retained field, so it moved here when the receipt's prefixOmission was deleted; absent on a recipe written after that field was retired.
prefixSha256After string matching /^sha256:[a-f0-9]{64}$/
The retired fire receipt's evidence hash: SHA-256 of the serialized replay prefix after the spans and any boot strip. Recoverable from no other retained field, so it moved here when the receipt's prefixOmission was deleted; absent on a recipe written after that field was retired.
docBlock object
One document-block substitution inside the replayed prefix, outside the invariant block, naming either one tool result or one system message. Absent means no doc block: every record written before this field is absent-by-default and pairs exactly as today.
tool non-empty string
Tool name whose result carries the substituted bytes, exactly as the assistant's tool call names it; present exactly when `system` is absent.
path non-empty string
Path argument identifying which invocation of that tool, matched against the call's own arguments; present exactly when `system` is absent.
system non-empty string
A byte string carried by exactly one system message of the replayed prefix, selecting the boot copy to rewrite instead of a tool result; present exactly when `tool` is absent, because a model that answers from the boot copy never reads the tool result.
anchor non-empty string
Exact byte string inside the one named message that the replacement takes the place of; must occur exactly once there.
required
replacement non-empty string
Exact bytes substituted for the anchor; the block is present once in the dispatched trimmed prompt.
required
legend object
Optional case-specific observable meanings for the required RED and GREEN verdicts.
0
RED non-empty string
no description declared
required
GREEN non-empty string
no description declared
required

Checks

  • _checkDeclaredTreatment

Defects

Checked 200 of 6,748 records (the per-store cap is 200), so this is a sample, not a whole-store verdict.

No defects in the 200 records checked.

Where it lives

Bound bylaws-cases
Declared in~/mnt/laws/laws-cases/assets/schemas/case-replay-experiment-protocol.ts
BindingcaseReplayExperimentProtocolDataStore
Directory~/runs/autoresearch-experiments
Files*/*/*/artifacts/experiment-case-replay.yml
Referenced ascase-replay-experiment-protocol