Milestone 1 of 8

Inspect the experiment interface and one expected run

Trace a tiny input through the supplied computation and identify the configuration, values, summaries, and required files.

Start with the supplied computation and its smallest input. Before writing a runner, make the boundary and one expected result visible.

Goal

Trace run_experiment(config, readings) with a tiny hand-checkable input and record what enters the function, what it returns, and which files a successful run must save.

Inputs

Use the read-only files data/readings.csv, data/dataset_manifest.json, and src/experiment.py. Read the supplied plans/baseline.json as an example configuration, and inspect the public cases in tests/public_cases.py.

Use a small slice or a tiny fixed list of readings for the hand calculation. Keep the source identity and the recorded dataset revision visible. Do not change the supplied computation or the source data.

Deliverables

Write the first section of report.md with:

  • the source filename, dataset identity, and schema or interface revision;
  • the exact fields and bounds in the baseline configuration;
  • a tiny input and hand-checked output for the visible scale and offset;
  • the names of the returned summaries and values used by the plot; and
  • the artifact list for one completed run.

Also record which values depend on the seed and noise bound. If a displayed value is rounded, keep the underlying value available for later checks.

Checks

Check that the recorded function signature matches src/experiment.py, the dataset manifest matches the readings file, and the tiny calculation agrees with a direct call to the supplied function. Confirm that the function does not mutate the input readings or configuration. Use the public fixture to check the expected result keys and the values CSV columns.

The check should distinguish a result field from a plot file. A plot can look correct while containing values from a different run, so record the source of each expected artifact.

Workspace

Use src/main.py only for a small inspection entry point at this stage. Keep the notes in report.md; do not create run directories until the third milestone. The read-only files remain unchanged throughout the project.

Hints

HintTrace one row first
Use two or three readings, then calculate one scaled and offset value by hand before looking at the complete output.
HintSeparate interface from implementation
The runner will call the supplied function. Your report needs the function's contract, not a second implementation of the experiment.

Review

Read the hand calculation next to the returned result. Explain which part is deterministic for a fixed configuration and which part is controlled by the seed and noise bound. Make sure the artifact names in the report match the contract in the project overview.

How to check your work

Checks compare the trace and expected artifact list with the supplied fixture. The supplied fixture clarifies the interface; it does not replace reading the supplied computation.

LLM PrimerInspect the experiment interface and one expected runhttps://llmprimer.com/python/projects/build-an-experiment-runner/inspect-experiment-interface-and-one-expected-run© 2026 LLM Primer