Skip to content

Glossary

Canonical terms. When a word is overloaded, the definition here wins.

The evaluation engine / harness. Not an ops tool, and not named after any use-case or cover identity.

An imported real app plus its problem domain, hosted inside SREForge (e.g. booklogr). It keeps its real identity; cover identities and personas are retired.

The source application a scenario runs on: a real, lesser-known public app imported into the forge with its real git history kept. The realistic backdrop — never the task itself.

The one-time act of bringing a real upstream app into the local Git forge with full history keptgit clone --mirror + push, or Gitea’s API migration. Not a github.com fork. The result is the substrate repo.

The per-run isolated copy of the substrate repo, checked out from the local forge (so its origin is the forge). It is deployed, faulted, edited by the agent, and redeployed.

The running services built from a run workspace — where alerts fire and the agent investigates.

An authored incident or task. Carries a profile.

patch (static repo + hidden tests, DeepSWE-style) or incident (live deployment + behavioural verify, SREGym-style). See Taxonomy & profiles.

The short signal that starts a run (e.g. a firing Prometheus alert). The agent gets only this plus assembled context — not the diagnosis.

A verifier. Returns a structured verdict from (solution, trajectory, duration).

A weighted composition of oracles across the SRE lifecycle (detect → diagnose → mitigate). v1 ships the contract but implements only the mitigation dimension.

Fix → deploy → re-verify under still-active fault. The alert clears only because the deployed fix works. SREForge’s defining property and its anti-cheat.

How a fix deploys in v1, via the local Gitea forge + Actions: the agent submits → CI runs build + tests → on green it auto-merges → CD-on-merge redeploys. The agent never deploys.

The v1 fault shape: a fault edited into the substrate’s existing code (e.g. weakening a timeout on an external-API path), never a bolt-on module.

The run workspace’s git remote is the local forge, not the public upstream, so it can’t be diffed to read off the fault. Active web-fetch blocking is a conditional add-on per the substrate’s memorization score.

Substrate vetting (tools/detell-judge), all lower-is-better: rig-confidence (gated), recognizability (v1 report-only), memorization (v1 report-only, the decisive selection axis).

The rule for realism-on-demand: keep a realism feature only if the agent can observe it and its absence would reveal the harness.

The invariant that the incident/feature is invented by the scenario author (with private tests/oracle), never a pre-existing public bug. The source of contamination-freeness.

The agent’s “done, here’s my fix” signal (optionally passing --rca). It is an engine handoff, not a forge push: the agent commits to a local branch and drops a completion sentinel; the engine captures the diff and owns the forge push / PR / CI. The sandbox has no forge access.

The canonical artifact emitted per run (the on-disk record is snake_case run-record.v1; the in-memory TypeScript RunRecord type is camelCase), containing identity, the agent’s trajectory, diff, CI/CD results, scores, and timings.

A copy of the run record stripped of trajectory.transcript and the raw payload (raw_text/raw_json) of agent_transcript, but retaining agent_transcript’s identity header (harness, model, provider, session, confinement (host-open | host-sandboxed | in-box), run_id, captured_at) plus a full_record_sha256 reference, committed to the scenario’s records/ directory.

The private, content-addressed durable store (prismalens/sreforge-runs) for full, transcript-bearing run records (records/<sha256>.json) and raw campaign evidence (evidence/<campaign-id>/), keyed by full_record_sha256 and cataloged in an append-only index.json. Governed by ADR-0026 §7 and the public/private boundary rule: A file may be committed to the public sreforge repo iff it contains no agent transcript, no raw model output, and no reference-solution content. Anything transcript-bearing goes to sreforge-runs and is referenced from public only by full_record_sha256 + run_url. When in doubt, it is private.