ember

4Benchmark design

The dataset has 65 items and 724 scored questions: 0 choice, 724 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 65 were written for this benchmark. Items are split into dev (27 items, for tuning) and test (38 items, for reporting), stratified so that every label of every question appears in both. The dataset card below answers the datasheet questions of [12].

Items per recipe and splitStacked bars of dev and test items for each recipe.dev (tuning)test (reporting)Tag assignment273865
Figure 2 Items per recipe, split into dev and test.

Label balance

QuestionGold labelMeaningdevtest
domain/toolingTrueThe note calls for `domain/tooling`: Build, CI, observer, TTS pipeline, dev-time tools1116
layer/infraTrueThe note calls for `layer/infra`: Build, CI, deployment infrastructure33
type/codeTrueThe note calls for `type/code`: Code architecture, autoloads, conventions, tooling. Carries `code-refs:`. (e.g. `Code/Autoloads — Disturbance.md`)27
FalseThe note has no reason to carry `type/code`2125
type/decisionTrueThe 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.)54
FalseThe note has no reason to carry `type/decision`2030
type/designTrueThe note calls for `type/design`: Design intent, player-facing concepts, world lore. (e.g. `Design/World Model.md`)45
FalseThe note has no reason to carry `type/design`1228
type/discoveryTrueThe 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.)45
FalseThe note has no reason to carry `type/discovery`2025
type/mocFalseThe note has no reason to carry `type/moc`2128
type/referenceTrueThe note calls for `type/reference`: Glossary, decision log, open questions, epics. (e.g. `Reference/Glossary.md`)36
FalseThe note has no reason to carry `type/reference`2122
type/session-logTrueThe 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.)45
FalseThe note has no reason to carry `type/session-log`1629
type/specFalseThe note has no reason to carry `type/spec`2332
type/systemTrueThe note calls for `type/system`: A bounded subsystem with implementation. Carries `code-refs`, `spec-refs`, `implements:` frontmatter. (e.g. `Systems/Audio — Car Radio.md`)45
FalseThe note has no reason to carry `type/system`1822
concept/horrorTrueThe note calls for `concept/horror`: Horror register and dread design12
domain/narrativeTrueThe note calls for `domain/narrative`: Tone, horror register, forest transmissions narrative, Gary/KTLK22
type/principleTrueThe note calls for `type/principle`: Governance and constitutional notes. Non-negotiable rules. (e.g. `Governance/Constitution.md`)11
FalseThe note has no reason to carry `type/principle`2232
domain/governanceTrueThe note calls for `domain/governance`: Constitution, phased spec, policies78
type/visionFalseThe note has no reason to carry `type/vision`2231
domain/worldTrueThe note calls for `domain/world`: World model, biomes, terrain, procedural generation, weather54
layer/gdscriptTrueThe note calls for `layer/gdscript`: GDScript (Godot scene-tier logic)26
status/reviewedTrueThe 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.)88
concept/disturbanceTrueThe note calls for `concept/disturbance`: The disturbance mechanic thread (Article X)11
domain/playerTrueThe note calls for `domain/player`: Player mode, input, controls, camera, exit/entry23
domain/audioTrueThe note calls for `domain/audio`: Audio systems: world ambient, radio, transmissions, buses, pipeline45
concept/ephemeral-worldTrueThe note calls for `concept/ephemeral-world`: Run-reset, transient worlds (Article IV Rules 6–7)11
status/draftTrueThe note calls for `status/draft`: Authoring in progress, not yet verified35
layer/pythonTrueThe note calls for `layer/python`: Python development tooling (`tools/`)01
domain/vehicleTrueThe note calls for `domain/vehicle`: The Samba: vehicle physics, dashboard, damage, panels28
concept/proceduralTrueThe note calls for `concept/procedural`: Procedural generation, seed determinism11
domain/anomaliesTrueThe note calls for `domain/anomalies`: Anomaly taxonomy, individual anomaly systems, spawn, behavior01
concept/diegeticTrueThe note calls for `concept/diegetic`: Diegetic audio / UI / world-sourced design12
concept/governanceTrueThe note calls for `concept/governance`: Constitutional and governance concepts01
concept/contaminationTrueThe note calls for `concept/contamination`: Across-runs panel and garage degradation; the slow-horror mechanic that doesn't reset with the world01
domain/artTrueThe note calls for `domain/art`: Visual direction, palettes, references, asset pipeline14
layer/rust-coreTrueThe note calls for `layer/rust-core`: Engine-agnostic Rust core (`rust/rust-core/`)01

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
QuestionTypeAsksOptions
domain/toolingnoulDoes 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/infranoulDoes 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/codenoulDoes 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/decisionnoulDoes 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/designnoulDoes 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/discoverynoulDoes 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/mocnoulDoes 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/referencenoulDoes 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-lognoulDoes 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/specnoulDoes 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/systemnoulDoes 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 state and the option descriptions alone, and were fixed before any model run. *(since dataset version 1e1bb88d47f0)*
  • needs_review is true exactly when risk is Medium or High, and retry is true only for flaky failures. *(since dataset version 1e1bb88d47f0)*
  • 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 score scale 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 version 1e1bb88d47f0)*
  • For a noul question, P(true) is the probability of the condition the instruction names; the condition is phrased so that true is the pole that calls for caution. *(since dataset version 1e1bb88d47f0)*

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?
65 items across five recipes, 724 scored questions, a gold label per question, a rationale per item.
How was it collected?
0 items reproduce the agent kit's worked examples; 65 were written by the ember authors. No user data.
How was it labelled?
From state and the option descriptions alone, fixed before any run, under the rules in the labelling protocol.
What is it for?
Tune on dev, report on test. 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 e0bbb468e213; 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.

RecipeItems (dev / test)KindsSourcesEasyRater countSecond reviewExternal sources
change_risk92 (46 / 46)untagged 92authored 924810none
effort_approach76 (36 / 40)untagged 76authored 762510none
failure_triage92 (46 / 46)untagged 92authored 928710none
intent_readiness108 (54 / 54)untagged 108authored 1088810none
note_placement30 (11 / 19)untagged 30mined 301710oldgrowth-vault (All rights reserved; written permission granted for the ember benchmark dataset)
routing75 (38 / 37)untagged 75authored 757310none
tag_assignment65 (27 / 38)untagged 65mined 65410oldgrowth-vault (All rights reserved; written permission granted for the ember benchmark dataset)
vision_choice8 (4 / 4)untagged 8authored 8810none
vision_noul8 (4 / 4)untagged 8authored 8810none
vision_score8 (4 / 4)untagged 8authored 8810none
vision_video8 (4 / 4)untagged 8authored 8810none