# docs/spec/ — machine-readable spec extract `docs/je_validation_task_spec_3.html` is the source of truth. Every file here is either **generated** (never hand-edit; regenerate with the command below) or **hand-transcribed** from the spec's prose sections (`environment.json`, `scoring.json` — these carry a `source_sha256`, and the script fails if the HTML changes until they are re-verified). ```bash node scripts/extract_spec_json.mjs ``` | File | What it holds | |------|---------------| | `index.json` | All 20 tasks in one line each: id, title, tier, family, sources, tools, score weights. Start here. | | `tasks/JE-*.json` | One file per task: scenario, brief, tool surface, seeded ground truth, verifier checks, judge focus, difficulty dials, shortcut guard, fixture manifest (real vs synthesised data). Read the one you are implementing. | | `sources.json` | DS-A … DS-J data sources with access commands, volumes, ingest gotchas and licence notes. | | `tools.json` | The 12 environment tools with signatures and design intent. | | `postingiser.json` | The 7 steps that turn DS-A single-sided expenditure lines into double-entry journal entries. | | `run_config.json` | Difficulty knobs and model list only. The console's full run-config contract shape (incl. `judge: global_rubric_v1`, 3 judges on L4) is transcribed in `environment.json` under `console_run_config_contract`. | | `sample_run.json` | A full worked JE-06 episode with step-by-step scoring, including the auto-fail. The reference for how scoring must behave. | | `environment.json` | Hand-transcribed: episode loop, trajectory record, derived process metrics (three definitions are marked as transcriber inferences — the HTML only names them), fabrication rule, console contract. | | `scoring.json` | Hand-transcribed: component definitions and algebra, judge rubric + protocol, pass bar, anti-gaming rules. | Two spec sections are deliberately **not** mirrored here: the "Design rules" bullets and the "Open items" list live in `docs/ROADMAP.md` (build order and open-decisions table), where they are actionable rather than archival.