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

call-app-mats/ExperimentMeta

schema one of: call-app-mats/CaseReplayFire | call-app-mats/CaseReplayJudge
no description declared
required
case string matching /^[0-9]{6}[a-z]?-[a-z0-9-]+$/
The law case this fire replays, the id of its file under `laws-core/assets/cases/`.
required
arm one of: control | cure | trim | model
Which arm this fire is: `control` replays the accused session unchanged up to the cut; each other value varies exactly one thing, named under `treatment`.
2
bootChain object
What the replay loaded as the model's standing context, so a reader can check that a cited law was present, at which revision, and that nothing the accused agent had read was left out.
2
configPin string OR null
Commit of the outer config repository the global manifest was read at; null when the fire read the present-day tree.
required
revisions map of non-empty string
Repository name to the commit the boot chain was materialized at, the accused session's own pins for a control arm.
required
judgeRevisions map of non-empty string
Repository name to the commit the judge's law text was pinned at, the accused turn's time; absent when it equals `revisions`.
manifests list of non-empty string
Every file the manifest chain produced, as `<repo>@<path>`, in chain order; the audit greps a cited law id in these to prove it was in context.
required
omissions list of non-empty string
Plain sentences naming anything that could not be materialized: a manifest missing at its pin, an unreadable transcript, a body belonging to a later turn. An empty list is the claim that the chain is complete.
required
injected list of object
One entry per body spliced into the replay prefix so the model sees what the accused agent saw.
required
kind one of: slash-command | injection | skill
What kind of body the harness had injected into the accused session: an expanded slash command, a bare injection, or a Skill body fetched by a tool call.
required
command string OR null
The `/name` or skill name; null for a bare injection.
required
source non-empty string
Where the bytes came from, as `transcript:<session uuid>`.
required
bytes integer >= 0
Length of the body placed.
required
followedAssistant integer >= 0 OR null
0-based index of the assistant message the body was placed after; null when it could not be placed, which is also listed under `omissions`.
required
cutFollowup object
How the fire's replies behaved at an in-turn cut, summed over replies; present only on a fire whose case declares a cut.
2
matchedHistorical integer >= 0
Replies whose first emission was tool calls alone, every one matching a call the accused agent made later in the same turn: each was answered with the recorded output and the model generated again, and the judged unit is both emissions.
required
blackUnmatched integer >= 0
Replies whose first emission was tool calls alone with at least one call the accused agent never made: the harness stopped rather than invent a result, and the reply is BLACK.
required
none integer >= 0
Replies that carried prose or made no tool call, so no follow-up applied.
required
treatment cure OR trim OR model
What this arm varied and the measured proof that nothing else did; absent on the control arm.
0
cure object
no description declared
required
kind exactly "cure"
no description declared
required
laws non-empty list of string matching /^\$[a-z0-9-]+\/[A-Za-z0-9-]+\/[a-z0-9-]+$/
The law blocks this arm replaced; everything else in the prompt is byte-identical to the control arm.
required
rung one of: L0 | L1 | L2 | L3
Which rung of the rewrite ladder this text is: L0 the amendment at HEAD, L1 one added clause naming the trigger and the required action, L2 a bare imperative naming this case's exact situation and prescribing the reply, L3 that plus a worked example. Spec: staging.md stage 4a.
required
text non-empty string
The replacement law text verbatim, so the arm can be re-derived from this record alone; textSha256 is its hash.
required
textSha256 string matching /^sha256:[a-f0-9]{64}$/
SHA-256 of the replacement law text, so two fires of the same rung can be proven to have fired the same words; the text itself is the `text` field above.
required
lawBytes integer >= 0
Bytes that differ inside the replaced law blocks between this arm and control.
required
offLawBytes exactly 0
Bytes that differ anywhere else. Always zero: a nonzero value refuses the fire, so a stored nonzero would mean the guard was bypassed.
required
regressionOf string matching /^[0-9]{6}[a-z]?-[a-z0-9-]+$/
Present only on a regression re-fire: the case whose rewrite this fire re-checks on a different case.
trim object
no description declared
required
kind exactly "trim"
no description declared
required
keepLaws non-empty list of string matching /^\$[a-z0-9-]+\/[A-Za-z0-9-]+\/[a-z0-9-]+$/
Every law block kept byte-identical: the case's `eval.laws`, all of them, so the trim can never delete the rule that argued for the conduct.
required
removedLawBlocks integer >= 0
How many uncited law blocks were deleted from the system prompt.
required
removedToolResultBytes integer >= 0
Bytes of tool output off the path to the accused turn that were dropped from the replayed turns.
required
promptBytesBefore integer >= 0
Assembled prompt size on the paired control arm.
required
promptBytesAfter integer >= 0
Assembled prompt size on this arm.
required
model object
no description declared
required
kind exactly "model"
no description declared
required
from non-empty string
Canonical gen model id the paired control arm fired.
required
to non-empty string
Canonical gen model id this arm fired; equals the run meta `model`.
required
promptBytes exactly 0
Bytes by which this arm's assembled prompt differs from the control arm's. Always zero: only the model varies.
required
laws non-empty list of string matching /^\$[a-z0-9-]+\/[A-Za-z0-9-]+\/[a-z0-9-]+$/
The law ids whose text the judge block carried verbatim, pinned at the accused turn's revision.
2
judgeTurns non-empty list of integer > 0
The inclusive first and last turn sent as context, the last one marked JUDGED.
2
judgeSamples non-empty list of object
One row per judge sample in execution order; optional only for historical judge runs written before sample law attribution moved here.
0
runId non-empty string
Canonical gen run id of this judge sample.
required
lawId string matching /^\$[a-z0-9-]+\/[A-Za-z0-9-]+\/[a-z0-9-]+$/
Full law citation named by a RED sample; absent when the sample named no violated law.

Checks

  • _checkExperimentMeta

Defects

No defects in the 4 records checked.

Where it lives

Bound bycall-app-mats
Declared in~/mnt/mdr/skills/call-app-mats/assets/schemas/experiment-meta.ts
BindingexperimentMetaDataStore
Directory~/mnt/runs/autoresearch-experiments
Files*/*/*/artifacts/experiment-meta.yml
Referenced asexperiment-meta