Skip to content

refactor!: remove NematodeBench, preserving the convergence detector and session data - #274

Merged
chrisjz merged 8 commits into
mainfrom
chore/remove-nematodebench
Jul 25, 2026
Merged

refactor!: remove NematodeBench, preserving the convergence detector and session data#274
chrisjz merged 8 commits into
mainfrom
chore/remove-nematodebench

Conversation

@chrisjz

@chrisjz chrisjz commented Jul 25, 2026

Copy link
Copy Markdown
Member

First of several pre-Phase-7 cleanup PRs. Removes NematodeBench — the curated benchmark submission, validation and leaderboard system — while preserving the one piece of live code inside it and all of its experimental data.

OpenSpec change: 2026-07-25-remove-nematodebench.

Why

The v4 roadmap rewrite (2026-05-23) demoted NematodeBench from a Phase 7 public-launch deliverable to internal tooling, justified by its usefulness "for reproducibility and for the architecture-comparison protocol itself". Two phases of evidence contradict that:

  • The protocol read per-seed --track-experiment output directly via scripts/analysis/weight_search_architecture_ranking.py and never invoked the submission pipeline across Phases 5 or 6 — no logbook uses it.
  • The corpus stopped at six submissions from 2025-12-28/29, covering 3 of the eventual 27 architectures. Eight of its twelve leaderboard category slots were never populated at all.
  • BENCHMARKS.md had no content commit for 19 months and still advertised a static_maze category deleted from the code in 9a452fd5 (2026-01-30).
  • Every commit to the system since 2026-01 was drive-by maintenance dragging it through unrelated refactors.

That is ~2.4k lines of unmaintained, un-exercised surface being carried into Phase 7 for no consumer.

What survives

convergence.py is not submission code — it is the ranked-metric producer for architecture-comparison-protocol, it received feature work as recently as 2026-06-21, and every --track-experiment run calls it. Moved to experiment/convergence.py, co-located with its only caller and the ResultsMetadata model it populates. No symbol renames.

All 72 session experiments are preserved. Their IDs and the 12 already under artifacts/experiments/ are disjoint sets, so deleting artifacts/benchmarks/ would have destroyed the sole copy of 72 tracked experiment records with their per-run seeds. They are migrated into the live folder layout instead — each with its originating config (ppo_foraging_small.yml etc.) rather than the generic config.yml the submission grouping used. Moved via git mv, so LFS OIDs are unchanged. Only the six aggregate manifests are deleted.

Three unrelated systems that share the word "benchmark" are untouched: scripts/benchmarks/bench_evolution_smoke.py (evolution perf harness), ChemotaxisValidationBenchmark (real-worm biological validation), and tests/.../e2e_benchmarks.json (nightly regression ceilings).

Spec work: a removal and a migration

Auditing all 17 benchmark-management requirements individually — rather than assuming removability from the capability name — found three that specify genuinely live behaviour. These migrate to experiment-tracking:

Requirement Why it is not removable
Reproducibility Through Seeding The only live-spec coverage of single-agent experiment seeding (multi-agent covers only the multi-agent case). The paired-seed statistics the whole research programme rests on depend on it.
Enhanced Metrics for Benchmarks Two of three scenarios specify calculate_learning_speed / calculate_stability, which survive.
Experiment Storage and Tracking Two of three scenarios describe experiments/ and artifacts/experiments/, both live.

The migration also surfaced a spec/code drift: experiment-tracking specified a flat experiments/{id}.json in two places, while storage.py writes the folder form experiments/<id>/<id>.json and discovers experiments by scanning subdirectories. Both are corrected.

benchmark-management is tombstoned rather than deleted — no capability spec has ever been deleted in this repo, and a reader arriving from an archived change needs to find where the live parts went, not a 404. The tombstone carries the migration table and names the three confusable systems.

Notable decision: composite_benchmark_score keeps its name

Tempting to rename now that "benchmark" no longer names a subsystem. 421 tracked artifacts on disk carry the key, and ExperimentMetadata.from_dict ends in cls(**data) with Pydantic's default extra="ignore" — so a rename would populate the new field from a missing key and return None, silently, with no exception. report/csv_export.py also emits the string as a literal CSV label. Only two stale comments changed.

That same inherited-not-declared behaviour is what keeps historical artifacts loading at all (420 carry "benchmark": null, one is populated), so this PR adds test_from_dict_ignores_removed_benchmark_key as a guard — if anyone later adds extra="forbid" to ExperimentMetadata, that test fails loudly instead of 421 reads breaking quietly.

Verification

End-to-end --track-experiment run (20 runs, mlpppo_small_oracle) confirms the tracking pipeline survived the move: composite_benchmark_score 0.833, plus learning_speed, stability and the post-convergence fields all written, and no benchmark key in new output.

  • pyright: 61 errors, byte-identical to the pre-change baseline
  • pytest: 2 failed / 4060 passed against a 3-failure baseline
  • ruff / ruff-format / mdformat / markdownlint: clean

⚠ïļ Local test/pyright baselines are red for environment reasons — this dev laptop cannot run the pinned numpy>=2.2.4 / torch>=2.7.0 and has numpy 1.26.4 / torch 2.2.0 installed, producing float32-vs-float64 boundary failures (e.g. float32 -1.5707964 failing a >= -π/2 bound by ~1e-7) and numpy-1.x scalar typing errors. The bar applied here was that neither count increases, and neither did. CI runs the pinned versions and is the authority.

Also worth flagging independently of this PR: test_qef.py::TestQEFGateAndFeatureModes::test_cry_crz_deterministic proved intermittent — it failed one local run and passed the next with no code change between them.

Migration notes

Breaking: quantumnematode.benchmark is gone as an import path, and quantumnematode.experiment no longer exports NematodeBenchSubmission, SessionReference, AggregateMetrics, BenchmarkMetadata, validate_submission, MIN_SESSIONS_REQUIRED or MIN_RUNS_PER_SESSION. scripts/benchmark_submit.py and scripts/evaluate_submission.py are deleted. No external API consumers, so no deprecation window.

The reversal is recorded in docs/roadmap.md (new row appended to the v3 reversal table rather than editing the existing one) and docs/STANDARDIZATION.md (ADR superseded in place, original rationale kept verbatim). Roadmap principle 4, "demote rather than delete", gains a corollary: demotion is a holding position, and where a demoted component then accrues no use across a full phase, deletion follows and is recorded.

ðŸĪ– Generated with Claude Code

chrisjz and others added 8 commits July 25, 2026 17:09
NematodeBench was demoted from a Phase 7 deliverable to "internal tooling"
at the v4 roadmap rewrite, justified by usefulness to the
architecture-comparison protocol. Two phases of evidence say otherwise: the
protocol read --track-experiment output directly via
weight_search_architecture_ranking.py and never invoked the submission
pipeline. The corpus is six submissions from one contributor in Dec 2025,
covering 3 of 27 brain architectures; BENCHMARKS.md still advertises a
static_maze category deleted from the code in Jan 2026.

This is a removal-plus-migration, not a straight deletion. Three
requirements in benchmark-management specify live behaviour and move to
experiment-tracking: Reproducibility Through Seeding (the only live-spec
coverage of single-agent seeding, which the paired-seed statistics rest
on), the two convergence scenarios of Enhanced Metrics for Benchmarks, and
the experiment-folder storage scenarios. The migration also surfaced a
drift — experiment-tracking specifies a flat experiments/{id}.json while
the code writes the folder form — corrected here.

convergence.py is retained and relocated to experiment/; it is the ranked
metric producer for architecture-comparison-protocol, not submission code.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Review found one blocking issue and two gaps.

Blocking: the 72 experiment JSONs under artifacts/benchmarks/ have no
duplicate — their IDs are disjoint from the 12 under artifacts/experiments/.
Deleting the directory would destroy the sole copy of 72 tracked experiment
records with their per-run seeds. They are primary data, not submission
tooling, so section 4 now migrates them into the live
artifacts/experiments/<id>/ layout and removes only the six submission
manifests (design.md D6).

Gaps: the final-grep acceptance criterion missed a fourth surviving hit
(Logbook 009's orphaned "Formal NematodeBench submission" checkbox, now
handled in place per the phase6-tracking stub precedent); and task 2.5
could have swept run_simulation.py:1205, which refers to
ChemotaxisValidationBenchmark — the real-worm validation, a different
system — so it is now explicitly fenced off.

Also records the local verification baseline: this laptop cannot run the
pinned numpy/torch, so pytest is 3-failed and pyright 61-errors before the
change starts. The bar is that neither count increases.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes the submission/validation/leaderboard layers, which had no runtime
consumer: benchmark/{leaderboard,categorization,validation}.py,
experiment/{submission,validation}.py, BenchmarkMetadata, and the two CLI
entry points (benchmark_submit.py, evaluate_submission.py). Drops the
orphaned ruff per-file-ignores and the codecov exclusion they justified.

BREAKING: quantumnematode.experiment no longer exports
NematodeBenchSubmission, SessionReference, AggregateMetrics,
BenchmarkMetadata, validate_submission, MIN_SESSIONS_REQUIRED or
MIN_RUNS_PER_SESSION.

Adds test_from_dict_ignores_removed_benchmark_key as the silent-break
guard. 421 tracked artifacts carry a top-level "benchmark" key and they
keep loading only because Pydantic's default extra="ignore" drops it —
inherited behaviour, not declared. Adding extra="forbid" to
ExperimentMetadata would turn every one of those reads into a
ValidationError with nothing to catch it. The test also pins
composite_benchmark_score, which is deliberately not renamed: a rename
would read as None across all 421 artifacts without raising.

Leaves run_simulation.py:1205 untouched — "benchmark" there refers to
ChemotaxisValidationBenchmark, the real-worm biological validation.

Verified: pytest 3 failed / 4059 passed, pyright 61 errors — both
byte-identical to the recorded pre-change baseline (this laptop cannot run
the pinned numpy/torch). ruff, mdformat and markdownlint clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
benchmark/convergence.py is the ranked-metric producer for
architecture-comparison-protocol, not submission code — it got feature work
as recently as 2026-06-21 and every --track-experiment run calls it. With
the submission layers gone, the benchmark/ package held only this module,
so it moves to its consumer.

experiment/ over a new analysis/ package: scripts/analysis/ and
tests/quantumnematode_tests/analysis/ already own that name (the latter
path-injects and tests the former), and metrics/ is taken twice
(agent/metrics.py, plasticity/metrics.py). experiment/ is where the sole
caller and the ResultsMetadata model it populates already live, and the
move adds no new import edge — tracker.py already imports report.dtypes,
convergence.py's only non-stdlib dependency.

No symbol renames. Updates the live path reference in
architecture-comparison-protocol; leaves the identical paths under
openspec/changes/archive/ alone, as those record the path as it was.

Verified: 22 convergence tests pass at the new path, 95 experiment tests
green, pyright byte-identical to the 61-error baseline, ruff clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The 72 experiment JSONs under artifacts/benchmarks/ had no duplicate
anywhere — their IDs and the 12 under artifacts/experiments/ were disjoint
sets, so deleting the directory would have destroyed the only copy of 72
tracked experiment records with their per-run seeds. They are primary
experiment data, not submission tooling.

Migrated into the live self-contained folder layout,
artifacts/experiments/<id>/<id>.json plus the originating config named
after the experiment's own config_file field (ppo_foraging_small.yml etc.)
rather than the generic config.yml the submission grouping used. Moved with
git mv so the LFS objects are renamed, not re-added: all 72 stage as 3-line
pointers and git lfs status reports unchanged OIDs.

Deletes only the six submission manifests under benchmarks/, which were
aggregate roll-ups produced by the now-removed pipeline and meaningless
without it. Drops the orphaned benchmarks/**/*.json LFS rule and the
!benchmarks/ gitignore negation; the generic artifacts/**/*.json rule
already covers the migrated files, verified via git check-attr.

Verified: artifacts/experiments/ is 12 -> 84 entries, no ID collisions, all
84 JSONs parse and validate as ExperimentMetadata, and every migrated
folder holds exactly one JSON and one config.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes BENCHMARKS.md (no content commit since 2025-12-28; still advertised
a static_maze category removed from the code in Jan 2026) and the five
files under docs/nematodebench/.

Strips the generated leaderboard section from README.md, the submission /
quality-standards / workflow / leaderboard subsections from CONTRIBUTING.md
along with the benchmarks/ artifact-table row and the scripts bullet, the
promote-to-benchmark step from the experiments workflow diagram, and the
three AGENTS.md entries. CONTRIBUTING's "Experiment Tracking and
Benchmarks" section is retitled to "Experiment Tracking" — the tracking and
query content it also held is live and stays.

Deliberately untouched: CONTRIBUTING's Nightly E2E Tests section and its
e2e_benchmarks.json reference, which is the regression-ceiling system, not
NematodeBench.

Logbook 009's orphaned "Formal NematodeBench submission for lstmppo
configs" action item is struck in place rather than deleted. Logbooks
record what was true, but an open checkbox is a forward commitment, and
that one now points at a system that does not exist.

Verified: no dead links remain in user-facing docs. The surviving
NematodeBench mentions are the roadmap and ADR (rewritten next), the live
specs (edited at archival), the change document itself, and the struck
logbook line.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The v4 roadmap demoted NematodeBench from a Phase 7 public-launch
deliverable to internal tooling, on the stated grounds that it stayed
useful to the architecture-comparison protocol. Removing it reverses a
recorded decision, so the reversal is written down with its evidence rather
than left implicit in a deletion diff.

Roadmap: the Future Directions section is retitled "(removed 2026-07-25)"
and states what went, what survives, and why the retention argument did not
hold. The public-launch section keeps its "benchmarks crystallise mature
communities" reasoning — still correct — and notes only that the fallback
it preserved is gone, so a future launch is a from-scratch build. The v3
reversal table gains a new row directly under the original demotion row;
that table records what changed when, so history is appended, not edited.
Principle 4 ("demote rather than delete") gains a corollary: demotion is a
holding position, and where a demoted component then accrues no use across
a full phase, deletion follows and is recorded.

STANDARDIZATION ADR: superseded in place. The original Decision and
Rationale stay verbatim; a "Why superseded" block explains that the premise
(no external framework fits our domain metrics) was an argument for
domain-specific metric capture, not for a submission pipeline, and that the
decision conflated them. Notes that the two Phase-2 enhancements which
mattered — hierarchical categories and statistical testing — were delivered
inside architecture-comparison-protocol instead, as paired-seed Wilcoxon +
bootstrap + BH-FDR.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Applies the four spec deltas and archives the change.

experiment-tracking gains the three requirements that were living in
benchmark-management despite never being benchmark behaviour:
Reproducibility Through Seeding (verbatim — the only live-spec coverage of
single-agent seeding, which the paired-seed statistics rest on),
Convergence-Derived Metrics (the two live scenarios of the former Enhanced
Metrics for Benchmarks), and the experiment-folder storage scenarios.

Corrects the storage drift the migration surfaced: two scenarios specified
a flat experiments/{id}.json while storage.py writes the folder form
experiments/<id>/<id>.json and discovers experiments by scanning
subdirectories. Both are now accurate.

cli-interface loses the Benchmark Management CLI requirement and the
--save-benchmark / --benchmark-notes scenarios; those flags were never
implemented, so that part is drift correction rather than removal.
environment-simulation loses Predator-Enabled Benchmark Categories and the
Benchmark Category Name Verification scenario, both of which specified the
deleted categorization module.

benchmark-management is tombstoned rather than deleted — no capability spec
has ever been deleted here, and a reader arriving from an archived change
needs to find where the live parts went, not a 404. The tombstone carries
the migration table and names the three unrelated systems that also contain
the word "benchmark", so a future grep does not mistake them.

Also fixes a second copy of the stale "added for NematodeBench format"
comment in tracker.py that the first pass missed.

Verified end to end: a 20-run --track-experiment simulation still writes
composite_benchmark_score (0.833), learning_speed, stability and the
post-convergence fields, with no benchmark key in the output. pyright
byte-identical to the 61-error baseline; pytest 2 failed / 4060 passed
against a 3-failure baseline (the third, test_cry_crz_deterministic, is
intermittent and passed this run); ruff, mdformat and markdownlint clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 174 files, which is 24 over the limit of 150.

To get a review, narrow the scope:
â€Ē coderabbit review --committed # exclude uncommitted changes
â€Ē coderabbit review --dir # limit to a subdirectory
â€Ē coderabbit review --base # compare against a closer base

Upgrade to Pro+ to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙ïļ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 10832317-3fe2-4962-a9b6-1e41c328e9a2

ðŸ“Ĩ Commits

Reviewing files that changed from the base of the PR and between c26fe1d and 8816d1e.

📒 Files selected for processing (199)
  • .gitattributes
  • .gitignore
  • AGENTS.md
  • BENCHMARKS.md
  • CONTRIBUTING.md
  • README.md
  • artifacts/experiments/20251228_143946/20251228_143946.json
  • artifacts/experiments/20251228_143946/ppo_foraging_small.yml
  • artifacts/experiments/20251228_143949/20251228_143949.json
  • artifacts/experiments/20251228_143949/ppo_foraging_small.yml
  • artifacts/experiments/20251228_143952/20251228_143952.json
  • artifacts/experiments/20251228_143952/ppo_foraging_small.yml
  • artifacts/experiments/20251228_143956/20251228_143956.json
  • artifacts/experiments/20251228_143956/ppo_foraging_small.yml
  • artifacts/experiments/20251228_145108/20251228_145108.json
  • artifacts/experiments/20251228_145108/ppo_foraging_small.yml
  • artifacts/experiments/20251228_145110/20251228_145110.json
  • artifacts/experiments/20251228_145110/ppo_foraging_small.yml
  • artifacts/experiments/20251228_145113/20251228_145113.json
  • artifacts/experiments/20251228_145113/ppo_foraging_small.yml
  • artifacts/experiments/20251228_145116/20251228_145116.json
  • artifacts/experiments/20251228_145116/ppo_foraging_small.yml
  • artifacts/experiments/20251228_150150/20251228_150150.json
  • artifacts/experiments/20251228_150150/ppo_foraging_small.yml
  • artifacts/experiments/20251228_150152/20251228_150152.json
  • artifacts/experiments/20251228_150152/ppo_foraging_small.yml
  • artifacts/experiments/20251228_150154/20251228_150154.json
  • artifacts/experiments/20251228_150154/ppo_foraging_small.yml
  • artifacts/experiments/20251228_150157/20251228_150157.json
  • artifacts/experiments/20251228_150157/ppo_foraging_small.yml
  • artifacts/experiments/20251228_152719/20251228_152719.json
  • artifacts/experiments/20251228_152719/ppo_predators_small.yml
  • artifacts/experiments/20251228_152723/20251228_152723.json
  • artifacts/experiments/20251228_152723/ppo_predators_small.yml
  • artifacts/experiments/20251228_152726/20251228_152726.json
  • artifacts/experiments/20251228_152726/ppo_predators_small.yml
  • artifacts/experiments/20251228_152728/20251228_152728.json
  • artifacts/experiments/20251228_152728/ppo_predators_small.yml
  • artifacts/experiments/20251228_153557/20251228_153557.json
  • artifacts/experiments/20251228_153557/ppo_predators_small.yml
  • artifacts/experiments/20251228_153600/20251228_153600.json
  • artifacts/experiments/20251228_153600/ppo_predators_small.yml
  • artifacts/experiments/20251228_153603/20251228_153603.json
  • artifacts/experiments/20251228_153603/ppo_predators_small.yml
  • artifacts/experiments/20251228_153610/20251228_153610.json
  • artifacts/experiments/20251228_153610/ppo_predators_small.yml
  • artifacts/experiments/20251228_155215/20251228_155215.json
  • artifacts/experiments/20251228_155215/ppo_predators_small.yml
  • artifacts/experiments/20251228_155218/20251228_155218.json
  • artifacts/experiments/20251228_155218/ppo_predators_small.yml
  • artifacts/experiments/20251228_155221/20251228_155221.json
  • artifacts/experiments/20251228_155221/ppo_predators_small.yml
  • artifacts/experiments/20251228_155225/20251228_155225.json
  • artifacts/experiments/20251228_155225/ppo_predators_small.yml
  • artifacts/experiments/20251229_013536/20251229_013536.json
  • artifacts/experiments/20251229_013536/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_013539/20251229_013539.json
  • artifacts/experiments/20251229_013539/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_013542/20251229_013542.json
  • artifacts/experiments/20251229_013542/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_013545/20251229_013545.json
  • artifacts/experiments/20251229_013545/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_015934/20251229_015934.json
  • artifacts/experiments/20251229_015934/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_015937/20251229_015937.json
  • artifacts/experiments/20251229_015937/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_015939/20251229_015939.json
  • artifacts/experiments/20251229_015939/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_015942/20251229_015942.json
  • artifacts/experiments/20251229_015942/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_021503/20251229_021503.json
  • artifacts/experiments/20251229_021503/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_021506/20251229_021506.json
  • artifacts/experiments/20251229_021506/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_021508/20251229_021508.json
  • artifacts/experiments/20251229_021508/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_021511/20251229_021511.json
  • artifacts/experiments/20251229_021511/modular_foraging_small_validate.yml
  • artifacts/experiments/20251229_024738/20251229_024738.json
  • artifacts/experiments/20251229_024738/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_024741/20251229_024741.json
  • artifacts/experiments/20251229_024741/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_024745/20251229_024745.json
  • artifacts/experiments/20251229_024745/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_024748/20251229_024748.json
  • artifacts/experiments/20251229_024748/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_034038/20251229_034038.json
  • artifacts/experiments/20251229_034038/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_034041/20251229_034041.json
  • artifacts/experiments/20251229_034041/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_034043/20251229_034043.json
  • artifacts/experiments/20251229_034043/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_034046/20251229_034046.json
  • artifacts/experiments/20251229_034046/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_043140/20251229_043140.json
  • artifacts/experiments/20251229_043140/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_043142/20251229_043142.json
  • artifacts/experiments/20251229_043142/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_043144/20251229_043144.json
  • artifacts/experiments/20251229_043144/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_043147/20251229_043147.json
  • artifacts/experiments/20251229_043147/modular_predators_small_validate.yml
  • artifacts/experiments/20251229_092236/20251229_092236.json
  • artifacts/experiments/20251229_092236/mlp_foraging_small.yml
  • artifacts/experiments/20251229_092239/20251229_092239.json
  • artifacts/experiments/20251229_092239/mlp_foraging_small.yml
  • artifacts/experiments/20251229_092242/20251229_092242.json
  • artifacts/experiments/20251229_092242/mlp_foraging_small.yml
  • artifacts/experiments/20251229_092245/20251229_092245.json
  • artifacts/experiments/20251229_092245/mlp_foraging_small.yml
  • artifacts/experiments/20251229_093722/20251229_093722.json
  • artifacts/experiments/20251229_093722/mlp_foraging_small.yml
  • artifacts/experiments/20251229_093725/20251229_093725.json
  • artifacts/experiments/20251229_093725/mlp_foraging_small.yml
  • artifacts/experiments/20251229_093727/20251229_093727.json
  • artifacts/experiments/20251229_093727/mlp_foraging_small.yml
  • artifacts/experiments/20251229_093730/20251229_093730.json
  • artifacts/experiments/20251229_093730/mlp_foraging_small.yml
  • artifacts/experiments/20251229_095326/20251229_095326.json
  • artifacts/experiments/20251229_095326/mlp_foraging_small.yml
  • artifacts/experiments/20251229_095329/20251229_095329.json
  • artifacts/experiments/20251229_095329/mlp_foraging_small.yml
  • artifacts/experiments/20251229_095331/20251229_095331.json
  • artifacts/experiments/20251229_095331/mlp_foraging_small.yml
  • artifacts/experiments/20251229_095334/20251229_095334.json
  • artifacts/experiments/20251229_095334/mlp_foraging_small.yml
  • artifacts/experiments/20251229_100737/20251229_100737.json
  • artifacts/experiments/20251229_100737/mlp_predators_small.yml
  • artifacts/experiments/20251229_100739/20251229_100739.json
  • artifacts/experiments/20251229_100739/mlp_predators_small.yml
  • artifacts/experiments/20251229_100742/20251229_100742.json
  • artifacts/experiments/20251229_100742/mlp_predators_small.yml
  • artifacts/experiments/20251229_100745/20251229_100745.json
  • artifacts/experiments/20251229_100745/mlp_predators_small.yml
  • artifacts/experiments/20251229_101742/20251229_101742.json
  • artifacts/experiments/20251229_101742/mlp_predators_small.yml
  • artifacts/experiments/20251229_101745/20251229_101745.json
  • artifacts/experiments/20251229_101745/mlp_predators_small.yml
  • artifacts/experiments/20251229_101747/20251229_101747.json
  • artifacts/experiments/20251229_101747/mlp_predators_small.yml
  • artifacts/experiments/20251229_101750/20251229_101750.json
  • artifacts/experiments/20251229_101750/mlp_predators_small.yml
  • artifacts/experiments/20251229_103141/20251229_103141.json
  • artifacts/experiments/20251229_103141/mlp_predators_small.yml
  • artifacts/experiments/20251229_103144/20251229_103144.json
  • artifacts/experiments/20251229_103144/mlp_predators_small.yml
  • artifacts/experiments/20251229_103146/20251229_103146.json
  • artifacts/experiments/20251229_103146/mlp_predators_small.yml
  • artifacts/experiments/20251229_103149/20251229_103149.json
  • artifacts/experiments/20251229_103149/mlp_predators_small.yml
  • benchmarks/.gitkeep
  • benchmarks/foraging_small/classical/20251228_151306.json
  • benchmarks/foraging_small/classical/20251229_105138.json
  • benchmarks/foraging_small/quantum/20251229_053126.json
  • benchmarks/predator_small/classical/20251229_011343.json
  • benchmarks/predator_small/classical/20251229_110151.json
  • benchmarks/predator_small/quantum/20251229_054115.json
  • codecov.yml
  • docs/STANDARDIZATION.md
  • docs/experiments/README.md
  • docs/experiments/logbooks/009-temporal-sensing-evaluation.md
  • docs/nematodebench/EVALUATION.md
  • docs/nematodebench/LEADERBOARD.md
  • docs/nematodebench/README.md
  • docs/nematodebench/REPRODUCIBILITY.md
  • docs/nematodebench/SUBMISSION_GUIDE.md
  • docs/roadmap.md
  • openspec/changes/archive/2026-07-25-remove-nematodebench/design.md
  • openspec/changes/archive/2026-07-25-remove-nematodebench/proposal.md
  • openspec/changes/archive/2026-07-25-remove-nematodebench/specs/benchmark-management/spec.md
  • openspec/changes/archive/2026-07-25-remove-nematodebench/specs/cli-interface/spec.md
  • openspec/changes/archive/2026-07-25-remove-nematodebench/specs/environment-simulation/spec.md
  • openspec/changes/archive/2026-07-25-remove-nematodebench/specs/experiment-tracking/spec.md
  • openspec/changes/archive/2026-07-25-remove-nematodebench/tasks.md
  • openspec/specs/architecture-comparison-protocol/spec.md
  • openspec/specs/benchmark-management/spec.md
  • openspec/specs/cli-interface/spec.md
  • openspec/specs/environment-simulation/spec.md
  • openspec/specs/experiment-tracking/spec.md
  • packages/quantum-nematode/quantumnematode/benchmark/__init__.py
  • packages/quantum-nematode/quantumnematode/benchmark/categorization.py
  • packages/quantum-nematode/quantumnematode/benchmark/leaderboard.py
  • packages/quantum-nematode/quantumnematode/benchmark/validation.py
  • packages/quantum-nematode/quantumnematode/experiment/__init__.py
  • packages/quantum-nematode/quantumnematode/experiment/convergence.py
  • packages/quantum-nematode/quantumnematode/experiment/metadata.py
  • packages/quantum-nematode/quantumnematode/experiment/submission.py
  • packages/quantum-nematode/quantumnematode/experiment/tracker.py
  • packages/quantum-nematode/quantumnematode/experiment/validation.py
  • packages/quantum-nematode/tests/quantumnematode_tests/benchmark/__init__.py
  • packages/quantum-nematode/tests/quantumnematode_tests/benchmark/test_categorization.py
  • packages/quantum-nematode/tests/quantumnematode_tests/benchmark/test_validation.py
  • packages/quantum-nematode/tests/quantumnematode_tests/experiment/test_convergence.py
  • packages/quantum-nematode/tests/quantumnematode_tests/experiment/test_metadata.py
  • packages/quantum-nematode/tests/quantumnematode_tests/experiment/test_validation.py
  • pyproject.toml
  • scripts/benchmark_submit.py
  • scripts/evaluate_submission.py
  • scripts/run_simulation.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

âœĻ Finishing Touches
🧊 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/remove-nematodebench

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

ðŸ“Ē Thoughts on this report? Let us know!

@chrisjz
chrisjz marked this pull request as ready for review July 25, 2026 10:40
@chrisjz
chrisjz merged commit 234e214 into main Jul 25, 2026
4 checks passed
@chrisjz
chrisjz deleted the chore/remove-nematodebench branch July 25, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant