4Benchmark design
The dataset has 58 items and 644 scored questions: 0 choice, 644 noul, and 0 score. Each line is self-contained: the state, the recipe's fixed question set, a gold label for every question, its source, and a one-line rationale. Other implementations can score it without this harness.
0 items reproduce the worked examples in the agent kit's playbook and sit in dev; the other 58 were written for this benchmark. Items are split into dev (27 items, for tuning) and test (31 items, for reporting), stratified so that every label of every question appears in both. The dataset card below answers the datasheet questions of [12].
dev and test.Label balance
| Question | Gold label | Meaning | dev | test |
|---|---|---|---|---|
domain/tooling | True | The note calls for `domain/tooling`: Build, CI, observer, TTS pipeline, dev-time tools | 11 | 12 |
layer/infra | True | The note calls for `layer/infra`: Build, CI, deployment infrastructure | 3 | 2 |
type/code | True | The note calls for `type/code`: Code architecture, autoloads, conventions, tooling. Carries `code-refs:`. (e.g. `Code/Autoloads — Disturbance.md`) | 2 | 6 |
False | The note has no reason to carry `type/code` | 21 | 21 | |
type/decision | True | The note calls for `type/decision`: Architectural or design decision made by an agent during a session. Written to `docs/vault/Decisions/`. (Agent notes only — spec 080.) | 5 | 3 |
False | The note has no reason to carry `type/decision` | 20 | 24 | |
type/design | True | The note calls for `type/design`: Design intent, player-facing concepts, world lore. (e.g. `Design/World Model.md`) | 4 | 4 |
False | The note has no reason to carry `type/design` | 12 | 23 | |
type/discovery | True | The note calls for `type/discovery`: Non-obvious constraint, gap, or conflict found by an agent during a session. Written to `docs/vault/Discoveries/`. (Agent notes only — spec 080.) | 4 | 5 |
False | The note has no reason to carry `type/discovery` | 20 | 21 | |
type/moc | False | The note has no reason to carry `type/moc` | 21 | 21 |
type/reference | True | The note calls for `type/reference`: Glossary, decision log, open questions, epics. (e.g. `Reference/Glossary.md`) | 3 | 4 |
False | The note has no reason to carry `type/reference` | 21 | 19 | |
type/session-log | True | The note calls for `type/session-log`: Session activity log; permanent audit trail. Written to `docs/vault/Sessions/`. Append-only, never pruned. (Agent notes only — spec 080.) | 4 | 5 |
False | The note has no reason to carry `type/session-log` | 16 | 23 | |
type/spec | False | The note has no reason to carry `type/spec` | 23 | 27 |
type/system | True | The note calls for `type/system`: A bounded subsystem with implementation. Carries `code-refs`, `spec-refs`, `implements:` frontmatter. (e.g. `Systems/Audio — Car Radio.md`) | 4 | 3 |
False | The note has no reason to carry `type/system` | 18 | 19 | |
concept/horror | True | The note calls for `concept/horror`: Horror register and dread design | 1 | 2 |
domain/narrative | True | The note calls for `domain/narrative`: Tone, horror register, forest transmissions narrative, Gary/KTLK | 2 | 2 |
type/principle | True | The note calls for `type/principle`: Governance and constitutional notes. Non-negotiable rules. (e.g. `Governance/Constitution.md`) | 1 | 1 |
False | The note has no reason to carry `type/principle` | 22 | 25 | |
domain/governance | True | The note calls for `domain/governance`: Constitution, phased spec, policies | 7 | 6 |
type/vision | False | The note has no reason to carry `type/vision` | 22 | 25 |
domain/world | True | The note calls for `domain/world`: World model, biomes, terrain, procedural generation, weather | 5 | 4 |
layer/gdscript | True | The note calls for `layer/gdscript`: GDScript (Godot scene-tier logic) | 2 | 6 |
status/reviewed | True | The note calls for `status/reviewed`: Agent-created note verified against codebase within its creating session. Eligible for auto-injection in subsequent task dispatches. (Agent notes only — spec 080.) | 8 | 7 |
concept/disturbance | True | The note calls for `concept/disturbance`: The disturbance mechanic thread (Article X) | 1 | 1 |
domain/player | True | The note calls for `domain/player`: Player mode, input, controls, camera, exit/entry | 2 | 3 |
domain/audio | True | The note calls for `domain/audio`: Audio systems: world ambient, radio, transmissions, buses, pipeline | 4 | 2 |
concept/ephemeral-world | True | The note calls for `concept/ephemeral-world`: Run-reset, transient worlds (Article IV Rules 6–7) | 1 | 1 |
status/draft | True | The note calls for `status/draft`: Authoring in progress, not yet verified | 3 | 4 |
domain/vehicle | True | The note calls for `domain/vehicle`: The Samba: vehicle physics, dashboard, damage, panels | 2 | 7 |
concept/procedural | True | The note calls for `concept/procedural`: Procedural generation, seed determinism | 1 | 1 |
domain/anomalies | True | The note calls for `domain/anomalies`: Anomaly taxonomy, individual anomaly systems, spawn, behavior | 0 | 1 |
concept/governance | True | The note calls for `concept/governance`: Constitutional and governance concepts | 0 | 1 |
concept/contamination | True | The note calls for `concept/contamination`: Across-runs panel and garage degradation; the slow-horror mechanic that doesn't reset with the world | 0 | 1 |
domain/art | True | The note calls for `domain/art`: Visual direction, palettes, references, asset pipeline | 1 | 2 |
layer/rust-core | True | The note calls for `layer/rust-core`: Engine-agnostic Rust core (`rust/rust-core/`) | 0 | 1 |
concept/diegetic | True | The note calls for `concept/diegetic`: Diegetic audio / UI / world-sourced design | 1 | 1 |
Recipes
Each recipe asks the same fixed question set for every item, because ember weighs the questions in one call jointly.
Tag assignment
tag_assignment- When
- When deciding which controlled tags a vault note deserves.
- State
- A note's title and body plus the vault's controlled vocabulary (as read).
- Decides
- Which candidate tags the note deserves; the gold is the note's own vocabulary tags.
- Family
mined_vault
| Question | Type | Asks | Options |
|---|---|---|---|
domain/tooling | noul | Does this note deserve the tag `domain/tooling`? | true: The note calls for `domain/tooling`: Build, CI, observer, TTS pipeline, dev-time tools false: The note has no reason to carry `domain/tooling` |
layer/infra | noul | Does this note deserve the tag `layer/infra`? | true: The note calls for `layer/infra`: Build, CI, deployment infrastructure false: The note has no reason to carry `layer/infra` |
type/code | noul | Does this note deserve the tag `type/code`? | true: The note calls for `type/code`: Code architecture, autoloads, conventions, tooling. Carries `code-refs:`. (e.g. `Code/Autoloads — Disturbance.md`) false: The note has no reason to carry `type/code` |
type/decision | noul | Does this note deserve the tag `type/decision`? | true: The note calls for `type/decision`: Architectural or design decision made by an agent during a session. Written to `docs/vault/Decisions/`. (Agent notes only — spec 080.) false: The note has no reason to carry `type/decision` |
type/design | noul | Does this note deserve the tag `type/design`? | true: The note calls for `type/design`: Design intent, player-facing concepts, world lore. (e.g. `Design/World Model.md`) false: The note has no reason to carry `type/design` |
type/discovery | noul | Does this note deserve the tag `type/discovery`? | true: The note calls for `type/discovery`: Non-obvious constraint, gap, or conflict found by an agent during a session. Written to `docs/vault/Discoveries/`. (Agent notes only — spec 080.) false: The note has no reason to carry `type/discovery` |
type/moc | noul | Does this note deserve the tag `type/moc`? | true: The note calls for `type/moc`: Map of Content at any of three tiers (folder / domain / concept). (e.g. `Audio.md`) false: The note has no reason to carry `type/moc` |
type/reference | noul | Does this note deserve the tag `type/reference`? | true: The note calls for `type/reference`: Glossary, decision log, open questions, epics. (e.g. `Reference/Glossary.md`) false: The note has no reason to carry `type/reference` |
type/session-log | noul | Does this note deserve the tag `type/session-log`? | true: The note calls for `type/session-log`: Session activity log; permanent audit trail. Written to `docs/vault/Sessions/`. Append-only, never pruned. (Agent notes only — spec 080.) false: The note has no reason to carry `type/session-log` |
type/spec | noul | Does this note deserve the tag `type/spec`? | true: The note calls for `type/spec`: Spec document at `docs/vault/Specs/NNN Title/spec.md`. Carries `spec-refs:`. (e.g. `Specs/047 Car Radio/spec.md`) false: The note has no reason to carry `type/spec` |
type/system | noul | Does this note deserve the tag `type/system`? | true: The note calls for `type/system`: A bounded subsystem with implementation. Carries `code-refs`, `spec-refs`, `implements:` frontmatter. (e.g. `Systems/Audio — Car Radio.md`) false: The note has no reason to carry `type/system` |
Labelling protocol
- Labels were judged from
stateand the option descriptions alone, and were fixed before any model run. *(since dataset version1e1bb88d47f0)* needs_reviewis true exactly whenriskis Medium or High, andretryis true only forflakyfailures. *(since dataset version1e1bb88d47f0)*- Drafts whose evidence fit two options were rewritten or dropped while authoring, before any run. *(since dataset version
1e1bb88d47f0)* - A label changes only when a reviewer finds it wrong on its merits, never because the model disagreed. A change to any item's state, media, questions, gold, or split alters the dataset's content hash, which each run records, so runs on different label sets cannot be compared by accident; annotations (kind, tier, source, rationale) do not. *(since dataset version
1e1bb88d47f0)* - Every
scorescale runs from least to most of the quantity its instruction names; index 0 is always the least. The expected score is read in those units. A scale is never reversed to make a label read naturally. *(since dataset version1e1bb88d47f0)* - For a
noulquestion, P(true) is the probability of the condition the instruction names; the condition is phrased so thattrueis the pole that calls for caution. *(since dataset version1e1bb88d47f0)*
Policy in force: no policy slot was filled for this run, so every recipe applied its default criteria.
Dataset card
- Why was it built?
- To measure whether ember's probabilities are accurate and calibrated enough for agents to act on the agent kit's thresholds, and to compare model revisions and setups.
- What does it contain?
- 58 items across five recipes, 644 scored questions, a gold label per question, a rationale per item.
- How was it collected?
- 0 items reproduce the agent kit's worked examples; 58 were written by the ember authors. No user data.
- How was it labelled?
- From
stateand the option descriptions alone, fixed before any run, under the rules in the labelling protocol. - What is it for?
- Tune on
dev, report ontest. It is not a measure of agent behaviour, and not a training set. - How is it maintained?
- Relabelling happens only on review, changes the dataset's SHA-256, and invalidates comparisons with earlier runs.
Generated card
Generated from the dataset this run scored (ember eval dataset card), version 4049ac55a1fa; the per-label counts per split for every question are in evals/dataset/CARD.md. Label stability and inter-source agreement are unmeasured until Phase 1.
| Recipe | Items (dev / test) | Kinds | Sources | Easy | Rater count | Second review | External sources |
|---|---|---|---|---|---|---|---|
change_risk | 92 (46 / 46) | untagged 92 | authored 92 | 48 | 1 | 0 | none |
effort_approach | 76 (36 / 40) | untagged 76 | authored 76 | 25 | 1 | 0 | none |
failure_triage | 92 (46 / 46) | untagged 92 | authored 92 | 87 | 1 | 0 | none |
intent_readiness | 108 (54 / 54) | untagged 108 | authored 108 | 88 | 1 | 0 | none |
routing | 75 (38 / 37) | untagged 75 | authored 75 | 73 | 1 | 0 | none |
tag_assignment | 65 (27 / 38) | untagged 65 | mined 65 | 4 | 1 | 0 | none |
vision_choice | 8 (4 / 4) | untagged 8 | authored 8 | 8 | 1 | 0 | none |
vision_noul | 8 (4 / 4) | untagged 8 | authored 8 | 8 | 1 | 0 | none |
vision_score | 8 (4 / 4) | untagged 8 | authored 8 | 8 | 1 | 0 | none |
vision_video | 8 (4 / 4) | untagged 8 | authored 8 | 8 | 1 | 0 | none |