Skip to content

feat(configs): author T7 integrated continuous-C3 cells (6 MUST arms) - #249

Merged
chrisjz merged 2 commits into
mainfrom
openspec/t7-c3-cell-finalized
Jun 21, 2026
Merged

feat(configs): author T7 integrated continuous-C3 cells (6 MUST arms)#249
chrisjz merged 2 commits into
mainfrom
openspec/t7-c3-cell-finalized

Conversation

@chrisjz

@chrisjz chrisjz commented Jun 20, 2026

Copy link
Copy Markdown
Member

What

Promotes the locked T7 continuous-2D integrated-C3 cell out of evaluation forensics into committed configs, ahead of the nâ‰Ĩ8 architecture ranking (Stage 6). Each of the 6 MUST arms gets one combined config (food + predator + thermotaxis active simultaneously) sharing an identical locked env/reward/satiety block — only the brain differs.

New configs (6):

  • configs/scenarios/foraging_predator_thermal/{mlpppo,lstmppo,cfcppo,transformerppo,connectomeppo}_small_continuous2d_combined_klinotaxis.yml
  • configs/evolution/feedforwardga_small_continuous2d_combined_klinotaxis.yml (launched via run_evolution.py)

Tracking (phase6-tracking/tasks.md): Stage-3 assembly + difficulty/recipe-lock checkpoint, GA repair-or-drop resolution, and the C1 substrate-scale-consistency note.

Why these values (the locked decisions)

  • Difficulty (full 5-arm @ n=4): count 2 / speed 0.4 / detection 15 / predator field decay 5 / thermal linear gradient 0.4 / 60 mm. The steep predator field gives a real flee-direction signal (not the pre-fix saturated-field racing). count 2 preserves rank structure (count 3 over-compresses 2nd–5th); supersedes the recalibration's recommended count 1 / thermal 1.5.
  • Per-arch recipes — tuned ON the integrated cell (they do not port between cells): LSTM flat entropy 0.02 (dropping the peak-anneal schedule lifts it 35→42), CfC entropy 0.01 (40→48), Transformer 0.005/lr 1e-4 (stability — lr 3e-4 collapses), MLP keeps 0.08→0.02/800ep (the leader), connectome 0.005 + predator+thermo projections (35 is its structural ceiling — tuning only hurt it).
  • FeedforwardGA: runs via the env's discrete-action fallback (no continuous head, no code change); champion full-clear ~0–23% (below the connectome floor) — optimiser-fundamental last place, reproducing T4's ~0%. Resolves the standing repair-or-drop as keep the discrete cell, document, no repair.

Result — the integrated cell discriminates

MLP 80 â‰Ŧ Transformer 52 > CfC 48 > LSTM 42 > connectome 35 â‰Ŧ GA ~12 (final-quarter success, n=4; GA n=2). Not the flat-compression tie of the T4 grid cell — the all-rounder (MLP) leads, the connectome's evasion-lag drags it to a structural floor.

Scope

This PR freezes the inputs the nâ‰Ĩ8 ranking depends on. Out of scope (→ follow-up PR): the nâ‰Ĩ8 protocol wiring (per-seed sub-metric export + Wilcoxon/bootstrap harness) and the main ranking runs.

Verification

  • All 6 configs YAML-parse with correct count/recipe/thermal values; promoted verbatim from validated eval bodies; connectome smoke runs.
  • openspec validate phase6-tracking --strict passes.
  • Targeted pre-commit (yaml + mdformat + markdownlint + tests) green; no large files, no tmp/ links or home paths in committed content.

ðŸĪ– Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added six new integrated scenario configuration presets that combine foraging, predator evasion (klinotaxis), and thermotaxis/temperature sensing across multiple agent brain variants.
  • Documentation

    • Updated Phase 6/T7 task tracking with finalized completion notes, locked difficulty/arena/reward parameters, and recorded validation outcomes and configuration decisions for the integrated-cell setups.

Promote the locked T7 continuous-2D integrated-C3 cell out of evaluation
forensics into committed configs, ahead of the n>=8 ranking (Stage 6). Each
of the 6 MUST arms gets one combined config (food + predator + thermotaxis)
sharing an identical locked env/reward/satiety block; only the brain differs.

Locked difficulty (full 5-arm @ n=4): count 2 / speed 0.4 / detection 15 /
steep predator field decay 5 (real flee-direction signal, not the pre-fix
saturated-field racing) / thermal linear gradient 0.4 / 60 mm. count 2 (over
count 3) preserves rank structure; supersedes the recalibration's recommended
count 1 / thermal 1.5.

Per-arch recipes tuned ON the integrated cell (they do not port between cells):
LSTM flat entropy 0.02 (drop the peak-anneal schedule -> 35->42), CfC entropy
0.01 (40->48), Transformer 0.005/lr 1e-4 (stability; lr 3e-4 collapses), MLP
keeps 0.08->0.02/800ep (the leader), connectome 0.005 + predator+thermo
projections (35 is its structural ceiling — tuning only hurts).

FeedforwardGA runs via the env's discrete-action fallback (no continuous head,
no code change); champion full-clear ~0-23% (below the connectome floor),
optimiser-fundamental last place -> resolves the line-381 repair-or-drop as
"keep the discrete cell, document, no repair".

Integrated cell discriminates: MLP 80 >> Transformer 52 > CfC 48 > LSTM 42 >
connectome 35 >> GA ~12.

Also records the C1 substrate-scale-consistency resolution (C1 stays 20 mm;
foraging difficulty is scale-invariant by construction, confirmed 100% at 60 mm).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

â„đïļ Recent review info
⚙ïļ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ec7d3c05-4673-4605-a841-ada06f3cfe5c

ðŸ“Ĩ Commits

Reviewing files that changed from the base of the PR and between bc0bc46 and f3a1710.

📒 Files selected for processing (1)
  • configs/evolution/feedforwardga_small_continuous2d_combined_klinotaxis.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • configs/evolution/feedforwardga_small_continuous2d_combined_klinotaxis.yml

📝 Walkthrough

Walkthrough

Six new YAML configuration files are added for the integrated C3 combined-behaviour task (food chemotaxis + predator evasion + thermotaxis with klinotaxis sensing) on a continuous-2D 60mm arena, covering MLPPPO, LSTMPPO, CfCPPO, TransformerPPO, ConnectomePPO, and FeedforwardGA architectures. Three lines in the Phase 6 task tracker record T7 Stage 3 completion, locked parameters, and substrate-scale decisions.

Changes

C3 Integrated Scenario and Evolution Configs

Layer / File(s) Summary
Locked shared environment, reward, and satiety recipe
configs/scenarios/foraging_predator_thermal/mlpppo_small_continuous2d_combined_klinotaxis.yml, configs/scenarios/foraging_predator_thermal/lstmppo_small_continuous2d_combined_klinotaxis.yml, configs/scenarios/foraging_predator_thermal/cfcppo_small_continuous2d_combined_klinotaxis.yml, configs/scenarios/foraging_predator_thermal/transformerppo_small_continuous2d_combined_klinotaxis.yml, configs/scenarios/foraging_predator_thermal/connectomeppo_small_continuous2d_combined_klinotaxis.yml, configs/evolution/feedforwardga_small_continuous2d_combined_klinotaxis.yml
Defines the shared continuous-2D environment geometry (60mm world, capture radius, predator damage radius, viewport), klinotaxis sensing modes with adaptive chemosensor and STAM parameters, foraging gradient-field (Fick mode, decay/strength), health/predator settings (count/speed/detection radius, pursuit pattern), thermotaxis field (gradient direction/strength, hotspot lists, decay constant), comfort/discomfort/danger reward/penalty scalars, and reward/satiety shaping (goal/distance scaling, multi-term penalties, distal_chemo_contact_trigger reward mode, satiety decay/gain). These parameters are locked and consistent across all six configs.
Per-architecture brain and training hyperparameters
configs/scenarios/foraging_predator_thermal/mlpppo_small_continuous2d_combined_klinotaxis.yml, configs/scenarios/foraging_predator_thermal/lstmppo_small_continuous2d_combined_klinotaxis.yml, configs/scenarios/foraging_predator_thermal/cfcppo_small_continuous2d_combined_klinotaxis.yml, configs/scenarios/foraging_predator_thermal/transformerppo_small_continuous2d_combined_klinotaxis.yml, configs/scenarios/foraging_predator_thermal/connectomeppo_small_continuous2d_combined_klinotaxis.yml, configs/evolution/feedforwardga_small_continuous2d_combined_klinotaxis.yml
Each config specifies its architecture-specific brain block and training recipe: MLPPPO (MLP hidden dims/layers, PPO clip/GAE/entropy schedule), LSTMPPO (GRU type, hidden sizes, BPTT rollout length), CfCPPO (CfC network with PPO hyperparameters), TransformerPPO (model/window size, PPO clipping/batching), ConnectomePPO (connectome source, gap junctions, strict chemical masking, predator/thermotaxis projection modules, PPO params), and FeedforwardGA (feedforward hidden-layer sizing, GA evolution block with sigma, elites, mutation/crossover rates, parallelism, and checkpoint cadence).
Phase 6 task tracker completion notes
openspec/changes/phase6-tracking/tasks.md
Records T7 Stage 3 assembly complete with six configs committed and parameters locked; resolves FeedforwardGA as a discrete-action fallback comparator reproducing the prior near-0% verdict; asserts C1 (20mm) vs. C2/C3 (60mm) substrate-scale consistency is not a difficulty confound.

Estimated code review effort

ðŸŽŊ 2 (Simple) | ⏱ïļ ~10 minutes

Possibly related PRs

  • SyntheticBrains/nematode#191: Adds earlier combined-behaviour C3 foraging/predator/thermotaxis configs for the klinotaxis setting (FeedforwardGA and ConnectomePPO variants) under the same directories, sharing the same integrated C3 reward and thermotaxis parameterization.
  • SyntheticBrains/nematode#244: Introduces Stage-2 ConnectomePPO C2 projection validation for klinotaxis/predator-thermal modes; this PR's ConnectomePPO integrated C3 config extends that same connectome/projection architecture to the combined task.
  • SyntheticBrains/nematode#248: Corrects the Phase 6 "real evasion" difficulty recipe (60mm arena, steep predator field, updated count/speed/detection parameters) that is directly applied as the locked environment recipe in this PR's six integrated C3 configs.

Poem

🐇 Six configs I've hopped and placed with care,
Klinotaxis noses sniffing through the air,
Predators lurk and thermals rise and fall—
The C3 cell must navigate them all!
With GA, transformers, connectome too,
The rabbit commits the locked recipe through. ðŸĨ•

ðŸšĨ Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: authoring T7 integrated continuous-C3 cell configurations across 6 brain architectures, which is the core objective of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏ïļ Tip: You can configure your own custom pre-merge checks in the settings.

âœĻ Finishing Touches
🧊 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch openspec/t7-c3-cell-finalized

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

ðŸĪ– Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@configs/evolution/feedforwardga_small_continuous2d_combined_klinotaxis.yml`:
- Around line 5-7: Update the filename pattern referenced in the header comment
(lines 5-7) from `*_small_combined_continuous2d_klinotaxis.yml` to
`*_small_continuous2d_combined_klinotaxis.yml` to match the actual scenario
filenames committed in this PR, where the word order of "continuous2d" and
"combined" has been reversed.

In `@openspec/changes/phase6-tracking/tasks.md`:
- Line 362: The entries at lines 362, 382, and 393 are marked as resolved on
2026-06-21, but the current date is 2026-06-20, making these completion dates in
the future. Update each of these entries to use the actual completion date (if
already completed today) or remove the future date and mark the items as pending
until the correct date arrives. Check all three locations mentioned: line 362
with the "STAGE 3 ASSEMBLY + DIFFICULTY/RECIPE LOCK DONE" entry, and the
additional lines at 382 and 393, ensuring no future-dated completions appear in
the tracker.
🊄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

â„đïļ Review info
⚙ïļ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4a53c177-24a5-4a8a-9bda-35cc2ec6d9c9

ðŸ“Ĩ Commits

Reviewing files that changed from the base of the PR and between 78837ed and bc0bc46.

📒 Files selected for processing (7)
  • configs/evolution/feedforwardga_small_continuous2d_combined_klinotaxis.yml
  • configs/scenarios/foraging_predator_thermal/cfcppo_small_continuous2d_combined_klinotaxis.yml
  • configs/scenarios/foraging_predator_thermal/connectomeppo_small_continuous2d_combined_klinotaxis.yml
  • configs/scenarios/foraging_predator_thermal/lstmppo_small_continuous2d_combined_klinotaxis.yml
  • configs/scenarios/foraging_predator_thermal/mlpppo_small_continuous2d_combined_klinotaxis.yml
  • configs/scenarios/foraging_predator_thermal/transformerppo_small_continuous2d_combined_klinotaxis.yml
  • openspec/changes/phase6-tracking/tasks.md

- [x] T7.prep.continuous_behaviours.s1_substrate_canary **Stage 1 — substrate behaviour canary (MLP + Transformer; resolved 2026-06-14).** Authored predator-only + thermotaxis-only configs for the two robust arms on the calibrated substrate + tuned recipe, run against the Euclidean-coherent reward (`T7.prep.reward_coherence`). **Gate met — the substrate is learnable.** **Calibration:** the T4-carried difficulties were NOT in band (predators ~95% lethal even trained; thermal gradient 1.5 forced MLP into degenerate park-in-comfort/starve — number-matched T4 values are non-commensurable). Calibrated DOWN on the continuous substrate's own terms (reward frozen): **predator `count 1 / speed 0.3 / detection_radius 5`** (+ 1.0 mm damage-radius fallback) — MLP learns evasion (predator-death 65→59%, survival ~41%, foraging maintained); **thermal `gradient_strength 1.25`** — avoidance learnable with foraging preserved, in-band on both arms. Gentler side leaves stacking headroom for the integrated cell (Stage-3 relaxes further as pressure compounds). **Architectural finding (preview of the ranking):** the Transformer does **not** learn reactive continuous predator-evasion at any difficulty or temporal-window length (flat death-trend) — ruled out as a wiring/sensor bug (identical sensors/env to MLP, which learns) and a window-length artifact (flat at window 4/8/16); a robust architecture result, not a substrate defect. The two-robust-arm check did its job: one arm learns + one doesn't ⇒ arm-specific, not substrate. **Deliverables:** `{mlpppo,transformerppo}_small_continuous2d_predator_klinotaxis.yml` (in `configs/scenarios/pursuit/`) + `..._thermal_klinotaxis.yml` (in `configs/scenarios/thermal_foraging/`). Forensics fold into the T7 logbook.
- [ ] T7.prep.continuous_behaviours.s3_generic_and_assemble **Stage 3 — generic-arm behaviours + assemble integrated configs.** After Stage 1 proves the substrate and Stage 2 brings up the connectome: bring **LSTM/CfC** to their predator + thermo ceilings as part of the **C1/C2 convergence evaluations** (nâ‰Ĩ4 + time-boxed per-arch tuning — promoted from n=1 smokes 2026-06-14, see the C1/C2 convergence checkpoint; MLP/Transformer already canaried at Stage 1), then author the **6 combined integrated-C3 continuous configs** (`*_small_continuous2d_combined_klinotaxis.yml`, one per MUST family) mirroring T4's grid `foraging_predator_thermal/*_small_combined_klinotaxis.yml` reward *formula* + behaviour composition, on the calibrated substrate + tuned recipe, with **substrate difficulty calibrated for multi-objective learnability** (Stage-1 per-behaviour calibration carried in, then relaxed further as stacked pressure compounds — exactly as T4 dropped combined-cell `predator_damage` 20→6; reframed 2026-06-14, two-regimes checkpoint — difficulty is continuous-native, NOT number-matched to T4). **GATE: re-calibrate predator + thermal difficulty on the corrected substrate FIRST (the Stage-1 bands are pre-fix — calibrated 2026-06-14, before the #239/#240/#241 reward+channel+sensing fixes; see the 2c difficulty-provenance caveat above). Use a fast MLP canary to find a band that is pressured-but-learnable AND spreads the arms — 2c's 90% at the provisional `predator_damage 10` is a soft-ceiling warning that a too-easy band won't discriminate at C3.**
- **RE-CALIBRATION DONE (2026-06-18, branch `openspec/t7-difficulty-recalibration`).** Four findings: **(1) predator DAMAGE does not bind** — a forage-to-complete worm is 3.3× faster than the speed-0.3 predator and out-heals chip damage via `food_healing`, so count1–2 × damage 14–22 all sit at 80–99% survival. **The binding lever is predator SPEED.** **(2) The MLP canary must use biological klinotaxis predator sensing, NOT `_oracle`** (the Stage-1 canary + my first sweep used oracle → over-optimistic; the T4 ranking arms use `predator_mechanosensation_klinotaxis` + `predator_chemosensation_klinotaxis`). Methodology lock: all generic arms use klinotaxis predator sensing. **(3) The connectome's apparent evasion "cliff/floor" was the documented constant-entropy late drift (logbook 023 R2b / T4.0d), NOT an architectural ceiling** — at `entropy_coef 0.02` it peaks ~40% then collapses (worse with more budget/lr); `entropy 0.005` (the grid connectome lock) stabilises it (holds, no collapse over 3000ep). **Connectome continuous canonical entropy corrected 0.02→0.005** in the merged 2b-predator + 2c-C2 configs (re-validated n=4: 2b ~50% ≈ prior 51.5% but stable; 2c ~90% ≈ prior 89.5%, mid-run wobble gone). **(4) Recommended discriminating band (MLP-klino vs connectome@ent0.005, dmg15, biological sensing, n=2):** **C2 = count 2 / speed 0.4 / damage 15** → MLP-klino 78% / connectome 43% (both pressured + on-board, spread +35; each predator slower than the worm = pack-cornering, biologically clean); **C3 = relax to count 1 / speed 0.4** (thermal stacks on top). **Thermal: gradient 1.5** (up from the pre-fix 1.25; ~14% lethality) — NB foraging-through-thermal is bimodal (forage-vs-collapse basin) at every gradient → Stage-3 needs nâ‰Ĩ4 + a foraging warm-up. **These difficulty values are recommended, NOT yet committed to configs — they get locked at the Stage-3 cross-arm C2 (all 6 MUST arms @ count2/speed0.4, connectome @ent0.005), which confirms the strong arms (LSTM/CfC/Transformer) spread and nobody unexpectedly floors before they enter the C3 configs. Only the entropy-recipe fix is committed now.** Assembly is known-feasible — a thermotaxis+oxygen+predators-on-continuous proof-of-concept was validated during the renderer manual review (gitignored `tmp/`). These configs are what the `T7.*.c3_integrated` ranking cells (Stage 6) consume.
- **STAGE 3 ASSEMBLY + DIFFICULTY/RECIPE LOCK DONE — 6 combined continuous-C3 configs committed (2026-06-21, branch `openspec/t7-c3-cell-finalized`).** Authored the **6 integrated-C3 continuous configs** — `configs/scenarios/foraging_predator_thermal/{mlpppo,lstmppo,cfcppo,transformerppo,connectomeppo}_small_continuous2d_combined_klinotaxis.yml` + `configs/evolution/feedforwardga_small_continuous2d_combined_klinotaxis.yml` — each = the tuned per-arch brain + a shared locked env/reward/satiety block. **(Gate 2) Difficulty LOCKED: `count 2` / `speed 0.4` / `detection 15` / steep predator field `gradient_decay_constant 5` (REAL flee-direction signal — NOT the pre-fix saturated-field racing) / thermal LINEAR `gradient_strength 0.4` / `reward_mode distal_chemo_contact_trigger` / 60 mm.** This **supersedes** the recalibration's *recommended* `C3 = count 1 / speed 0.4`, thermal `gradient 1.5` (line 361): the actual C3 canary + full 5-arm @ n=4 found **`count 2`** preserves rank structure (count 3 over-compresses 2nd–5th into 33–44) while staying learnable, and a **linear `gradient 0.4`** is the thermal form that pressures a gradient-sensing worm without flat saturation. **(Gate 1) The integrated cell DISCRIMINATES — full 5-arm @ n=4 final-quarter success: MLP 80 â‰Ŧ Transformer 52 > CfC 48 > LSTM 42 > connectome 35.** MLP (all-rounder) leads decisively; NOT the flat-compression tie of the T4 grid integrated cell — the per-behaviour profiles (MLP strong-both; CfC evasion-strong/thermo-weak; connectome evasion-weak) produce real separation. **(Gate 3) Per-arch recipes tuned ON the integrated cell (they do NOT port between cells):** **LSTM** flat `entropy 0.02` — dropping the peak-anneal schedule (its high early entropy handicaps it, same as CfC) lifts it 35→42; **CfC** `entropy 0.01` lifts it 40→48 (tight); **Transformer** `entropy 0.005` / `lr 1e-4` is load-bearing (lr 3e-4 collapses −22, learn-then-collapse); **MLP** keeps its `0.08→0.02/800ep` schedule (works for the leader); **connectome** `entropy 0.005` + predator+thermo projections — **`35` is its STRUCTURAL ceiling** (both tuning directions, more entropy + deeper forward pass, made it WORSE → the evasion-lag is architectural, not under-training). **(Gate 4 — resolves the line-381 GA repair-or-drop) FeedforwardGA brought up via the env's discrete-action fallback (`_apply_movement`; no continuous head, NO code change).** Champion full-clear ~0–23% (n=2; below the connectome floor 35) — bootstraps off 0 (progress fitness plateaus ~0.57–0.61) but the low ceiling is **optimiser-fundamental** (gradient-free in ~6 k-D), reproducing T4's ~0% and action-space-agnostic (T4 sep-CMA tie) → **Option A: keep the discrete fallback + document; no repair** (a continuous head won't lift an optimiser-bound last-place arm). **Full 6-arm picture: MLP 80 â‰Ŧ Transformer 52 > CfC 48 > LSTM 42 > connectome 35 â‰Ŧ GA ~12.** All n=4 (GA n=2); the Stage-6 cells re-run these locked configs at nâ‰Ĩ8 for the ranking. *(Per-cell scales: C1 20 mm / C2·C3 60 mm — see the substrate-scale-consistency note above.)*

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠ïļ Potential issue | ðŸŸĄ Minor | ⚡ Quick win

Avoid future-dated “resolved” entries in the tracker.

These lines mark items as resolved on 2026-06-21, which is in the future relative to today (June 20, 2026). Please use the actual completion date or mark as pending until that date.

Also applies to: 382-382, 393-393

ðŸĪ– Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@openspec/changes/phase6-tracking/tasks.md` at line 362, The entries at lines
362, 382, and 393 are marked as resolved on 2026-06-21, but the current date is
2026-06-20, making these completion dates in the future. Update each of these
entries to use the actual completion date (if already completed today) or remove
the future date and mark the items as pending until the correct date arrives.
Check all three locations mentioned: line 362 with the "STAGE 3 ASSEMBLY +
DIFFICULTY/RECIPE LOCK DONE" entry, and the additional lines at 382 and 393,
ensuring no future-dated completions appear in the tracker.

The FeedforwardGA header referenced the sibling PPO C3 cells as
*_small_combined_continuous2d_klinotaxis.yml, but they were committed as
*_small_continuous2d_combined_klinotaxis.yml (the continuous2d/combined word
order was reversed at rename). Match the actual filenames.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@chrisjz
chrisjz merged commit caae31b into main Jun 21, 2026
3 checks passed
@chrisjz
chrisjz deleted the openspec/t7-c3-cell-finalized branch June 21, 2026 00:12
@codecov

codecov Bot commented Jun 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

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

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