Skip to content

docs: Add initial Phase 1 change specifications - #35

Merged
chrisjz merged 8 commits into
mainfrom
feature/phase-1-initial-proposals
Dec 30, 2025
Merged

docs: Add initial Phase 1 change specifications#35
chrisjz merged 8 commits into
mainfrom
feature/phase-1-initial-proposals

Conversation

@chrisjz

@chrisjz chrisjz commented Dec 30, 2025

Copy link
Copy Markdown
Member

Changes:

  • Add change specification for multi-sensory environments
  • Add change specification for thermotaxis system
  • Add change specification for ablation analysis toolkit

Summary by CodeRabbit

  • Documentation
    • Added Ablation Toolkit specs and tasks describing a systematic ablation framework, automated markdown reporting, feature-importance analysis, cross-architecture comparisons, and a planned CLI for running studies.
    • Added Multi-Sensory Environment design and tasks: temperature sensing, opt-in health system, mechanosensation, unified feature extraction, predator behavior extensions, safe-zone food spawning, benchmarks, and migration guidance.
    • Added Thermotaxis System specs and tasks detailing TemperatureField modeling, environment integration, thermotaxis features, benchmarks, and visualization.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Dec 30, 2025

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Adds three interconnected proposals: an Ablation Toolkit for systematic ablation studies and automated reporting; a Multi‑Sensory Environment foundation (health, mechanosensation, unified feature extraction); and a Thermotaxis System (TemperatureField, gradient sensing, zone effects) with opt‑in integrations and benchmark extensions.

Changes

Cohort / File(s) Summary
Ablation Toolkit
openspec/changes/add-ablation-toolkit/proposal.md, openspec/changes/add-ablation-toolkit/specs/ablation-analysis/spec.md, openspec/changes/add-ablation-toolkit/tasks.md, packages/quantum-nematode/quantumnematode/analysis/__init__.py, packages/quantum-nematode/quantumnematode/analysis/ablation.py, scripts/run_ablation.py
New ablation framework spec and tasks; defines AblationConfig, AblationStudy lifecycle (run_baseline, run_ablated, compute_feature_importance, generate_report); ablation types (module/layer/entanglement/critic/feature masking); CLI script and new analysis module/API surface.
Multi‑Sensory Environment Foundation
openspec/changes/add-multi-sensory-environment/design.md, openspec/changes/add-multi-sensory-environment/proposal.md, openspec/changes/add-multi-sensory-environment/specs/brain-architecture/spec.md, openspec/changes/add-multi-sensory-environment/specs/environment-simulation/spec.md, openspec/changes/add-multi-sensory-environment/tasks.md
Adds BrainParams extensions (temperature, health, boundary/predator contact), unified feature extraction (chemotaxis/thermotaxis/nociception/mechanosensation), health system config, predator behavior variants, food safe‑zone spawning bias, multi‑objective rewards and evaluation, hierarchical benchmark naming, and migration/backcompat guidance.
Thermotaxis System
openspec/changes/add-thermotaxis-system/proposal.md, openspec/changes/add-thermotaxis-system/specs/environment-simulation/spec.md, openspec/changes/add-thermotaxis-system/tasks.md
New TemperatureField spec (linear gradients, hotspots/coldspots, get_temperature, get_gradient via central difference); thermotaxis_enabled integration into DynamicForagingEnvironment; thermotaxis_features() for rotation-based sensing; temperature zone reward/HP rules; benchmarks and visualization updates.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant CLI as CLI (run_ablation.py)
    participant Ablation as AblationStudy
    participant Env as Environment (sim)
    participant Brain as Brain (Modular/PPO)
    participant DB as Results (results.json)
    participant Analysis as Analysis Module
    participant Report as Report (report.md)

    CLI->>Ablation: parse AblationConfig, start run_all
    Ablation->>Env: initialize environment (thermotaxis/health flags)
    Env->>Brain: step observations (sensory features)
    Brain->>Env: choose actions
    Env->>Ablation: return step metrics / SimulationResult
    loop baseline and ablated runs
      Ablation->>Brain: load baseline or ablated architecture / apply masks
      Ablation->>Env: run episode(s)
      Env->>DB: append results.json
    end
    Ablation->>Analysis: compute_feature_importance(results.json, importance.json)
    Analysis->>Report: generate markdown (report.md) + plots
    Report-->>CLI: artifacts saved (results.json, importance.json, report.md)
    Note over Ablation,Analysis: New/changed interactions highlighted: ablation config, environment feature flags, and analysis pipeline
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🐰 In circuits and fields I gently explore,

I nudge one module and listen for more.
Thermals and health in the sandbox we play,
Ablation reveals what must stay.
Hopping through specs — a small, joyous hooray!

Pre-merge checks

✅ Passed checks (3 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 primary change: adding initial Phase 1 change specifications. It is concise, clear, and directly reflects the main content of the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@chrisjz
chrisjz marked this pull request as ready for review December 30, 2025 10:00

@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: 1

🧹 Nitpick comments (9)
openspec/changes/add-multi-sensory-environment/tasks.md (3)

80-86: Add language identifier to YAML code block.

Code blocks should specify the language for syntax highlighting and linting. Update this block to use markdown syntax:

  ```yaml

226-232: Add language identifier to code block.

Specify the language for the dependency diagram block:

-```
+```

276-292: Add language identifier and refactor repetitive sentence structure.

The code block needs a language specifier. Additionally, lines 287–291 begin successive sentences with "Work streams," which is awkward. Consolidate them:

-```
+```text
 1. Ablation Framework ──┐
                         │
 2. Health System ───────┼──► 6. Multi-Objective Rewards
                         │
 3. Enhanced Predators ──┤
                         │
 4. Mechanosensation ────┼──► 5. Unified Feature Extraction
                         │
                         └──► 7. Evaluation Extensions
                                     │
                                     v
                             8. Food Spawning + 9. Visualization
                                     │
                                     v
                             10. Hierarchical Benchmarks + 11. Config/Docs
-```
-
-Work streams 1-4 can proceed in parallel. Work stream 5 depends on 4. Work streams 6-7 depend on 1-4. Work streams 8-9 depend on all above. Work stream 10 can proceed independently but should be done before 11.
+```
+
+Streams 1–4 proceed in parallel. Stream 5 depends on 4. Streams 6–7 depend on 1–4. Streams 8–9 depend on all prior streams. Stream 10 can proceed independently but should be completed before 11.
openspec/changes/add-ablation-toolkit/specs/ablation-analysis/spec.md (1)

124-125: Simplify redundant phrase "CLI Interface".

"CLI" already stands for "Command-Line Interface," so "CLI Interface" is tautological. Rename the requirement:

-### Requirement: Ablation CLI Interface
-The system SHALL provide a command-line interface for running ablation studies.
+### Requirement: Ablation CLI
+The system SHALL provide a command-line interface for running ablation studies.
openspec/changes/add-ablation-toolkit/tasks.md (1)

207-221: Add language identifier to dependency diagram code block.

Specify the language/format for the code block containing the dependency diagram:

-```
+```text
 1. Ablation Framework (core classes)
          │
          ├──► 2. ModularBrain Ablation
          │
          ├──► 3. PPOBrain Ablation
          │
          └──► 4. Feature Importance
                     │
                     v
               5. Reporting
                     │
                     v
               6. CLI + 7. Docs
-```
+```
openspec/changes/add-multi-sensory-environment/design.md (4)

68-77: Add language identifier to YAML code block.

Specify the language for better syntax highlighting:

-```
+```yaml
 BrainParams
      │
      v
 extract_sensory_features() ─────────────────────┐
      │                                          │
      v                                          v
 ModularBrain                              PPOBrain
 (converts to RX/RY/RZ rotations)    (concatenates to input vector)
-```
+```

89-95: Add blank lines around table for proper markdown formatting.

Tables should be surrounded by blank lines per MD058:

 **Mapping**:
-| Current | New | Neurons |
+
+| Current | New | Neurons |
 |---------|-----|---------|
 | appetitive_features | food_chemotaxis_features | AWC, AWA |
 | aversive_features | nociception_features | ASH, ADL |
 | thermotaxis_features | thermotaxis_features | AFD |
 | oxygen_features | aerotaxis_features | URX, BAG |
 | touch_features | mechanosensation_features | ALM, PLM, AVM |

178-185: Add language identifier to ASCII diagram code block.

Specify the format to clarify the block's purpose:

-```
+```text
 basic/              # Single objective (foraging only)
 survival/           # Food + predators
 thermotaxis/        # Temperature-aware tasks
 multisensory/       # Multiple modalities combined
 ablation/           # Controlled studies
-```
+```

214-217: Add blank lines around table for proper markdown formatting.

Tables should be surrounded by blank lines:

 **Behavior**:
+
 | System | Decreases From | Increases From | Termination |
 |--------|---------------|----------------|-------------|
 | Satiety | Time decay (every step) | Eating food | STARVATION |
 | HP | Predator contact, temperature extremes | Eating food, configurable healing | HEALTH_DEPLETED |
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fac4a0f and 29c22eb.

📒 Files selected for processing (11)
  • openspec/changes/add-ablation-toolkit/proposal.md
  • openspec/changes/add-ablation-toolkit/specs/ablation-analysis/spec.md
  • openspec/changes/add-ablation-toolkit/tasks.md
  • openspec/changes/add-multi-sensory-environment/design.md
  • openspec/changes/add-multi-sensory-environment/proposal.md
  • openspec/changes/add-multi-sensory-environment/specs/brain-architecture/spec.md
  • openspec/changes/add-multi-sensory-environment/specs/environment-simulation/spec.md
  • openspec/changes/add-multi-sensory-environment/tasks.md
  • openspec/changes/add-thermotaxis-system/proposal.md
  • openspec/changes/add-thermotaxis-system/specs/environment-simulation/spec.md
  • openspec/changes/add-thermotaxis-system/tasks.md
🧰 Additional context used
📓 Path-based instructions (2)
openspec/**/*.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

Use SHALL/MUST for normative requirements in spec files; avoid should/may unless intentionally marking non-normative guidance

Files:

  • openspec/changes/add-multi-sensory-environment/design.md
  • openspec/changes/add-multi-sensory-environment/tasks.md
  • openspec/changes/add-multi-sensory-environment/specs/environment-simulation/spec.md
  • openspec/changes/add-ablation-toolkit/tasks.md
  • openspec/changes/add-thermotaxis-system/proposal.md
  • openspec/changes/add-thermotaxis-system/tasks.md
  • openspec/changes/add-ablation-toolkit/proposal.md
  • openspec/changes/add-ablation-toolkit/specs/ablation-analysis/spec.md
  • openspec/changes/add-multi-sensory-environment/proposal.md
  • openspec/changes/add-multi-sensory-environment/specs/brain-architecture/spec.md
  • openspec/changes/add-thermotaxis-system/specs/environment-simulation/spec.md
openspec/changes/*/specs/**/*.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

openspec/changes/*/specs/**/*.md: In spec delta files, use ## ADDED|MODIFIED|REMOVED|RENAMED Requirements section headers with at least one #### Scenario: subsection per requirement
Use #### Scenario: (exactly 4 hash marks) for scenario headers in spec files, not ### Scenario:, bold **Scenario:**, or bullet points
Every requirement in spec deltas must include at least one scenario with - **WHEN** condition and - **THEN** expected result format

Files:

  • openspec/changes/add-multi-sensory-environment/specs/environment-simulation/spec.md
  • openspec/changes/add-ablation-toolkit/specs/ablation-analysis/spec.md
  • openspec/changes/add-multi-sensory-environment/specs/brain-architecture/spec.md
  • openspec/changes/add-thermotaxis-system/specs/environment-simulation/spec.md
🧠 Learnings (7)
📓 Common learnings
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Scaffold change proposals with `proposal.md`, `tasks.md`, optional `design.md`, and delta specs under `openspec/changes/<change-id>/specs/`
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Create `design.md` only when the change is cross-cutting, introduces new external dependencies, involves significant data model changes, has security/performance complexity, or contains authoring ambiguity

Applied to files:

  • openspec/changes/add-multi-sensory-environment/design.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Use `## ADDED` for new capabilities that stand alone orthogonally; use `## MODIFIED` for changes to existing requirement behavior or scope; use `## RENAMED` for name-only changes

Applied to files:

  • openspec/changes/add-multi-sensory-environment/design.md
  • openspec/changes/add-multi-sensory-environment/tasks.md
  • openspec/changes/add-multi-sensory-environment/specs/environment-simulation/spec.md
  • openspec/changes/add-multi-sensory-environment/proposal.md
  • openspec/changes/add-thermotaxis-system/specs/environment-simulation/spec.md
📚 Learning: 2025-12-27T08:02:58.340Z
Learnt from: chrisjz
Repo: SyntheticBrains/nematode PR: 22
File: openspec/changes/add-phase0-foundation-baselines/design.md:64-69
Timestamp: 2025-12-27T08:02:58.340Z
Learning: Design.md files under openspec/changes/ should document architectural or design decisions and rationale, not normative requirements. Do not use SHALL/MUST language in design.md (reserve such language for spec.md files). The strict SHALL/MUST wording should appear only in openspec/changes/*/specs/*/specs.md (spec deltas). Use objective, rationale-focused language in design.md and place any formal requirements in the appropriate spec files.

Applied to files:

  • openspec/changes/add-multi-sensory-environment/design.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Scaffold change proposals with `proposal.md`, `tasks.md`, optional `design.md`, and delta specs under `openspec/changes/<change-id>/specs/`

Applied to files:

  • openspec/changes/add-multi-sensory-environment/tasks.md
  • openspec/changes/add-ablation-toolkit/tasks.md
  • openspec/changes/add-ablation-toolkit/specs/ablation-analysis/spec.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: In `tasks.md`, organize implementation work as a numbered checklist with sub-items using `- [ ]` unchecked format; update all items to `- [x]` after completion

Applied to files:

  • openspec/changes/add-multi-sensory-environment/tasks.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Applies to openspec/changes/*/specs/**/*.md : In spec delta files, use `## ADDED|MODIFIED|REMOVED|RENAMED Requirements` section headers with at least one `#### Scenario:` subsection per requirement

Applied to files:

  • openspec/changes/add-ablation-toolkit/specs/ablation-analysis/spec.md
🪛 LanguageTool
openspec/changes/add-multi-sensory-environment/tasks.md

[grammar] ~87-~87: Use a hyphen to join words.
Context: ... count: 1 ``` - [ ] Implement mixed type spawning - [ ] Update gradient comp...

(QB_NEW_EN_HYPHEN)


[style] ~294-~294: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...s on 4. Work streams 6-7 depend on 1-4. Work streams 8-9 depend on all above. Work s...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

openspec/changes/add-ablation-toolkit/specs/ablation-analysis/spec.md

[style] ~124-~124: This phrase is redundant (‘I’ stands for ‘Interface’). Use simply “CLIInterface”.
Context: ... differences ### Requirement: Ablation CLI Interface The system SHALL provide a command-line...

(ACRONYM_TAUTOLOGY)

openspec/changes/add-thermotaxis-system/specs/environment-simulation/spec.md

[style] ~90-~90: ‘with success’ might be wordy. Consider a shorter alternative.
Context: ...old - GIVEN a thermotaxis benchmark with success threshold 60% - WHEN agent achieves...

(EN_WORDINESS_PREMIUM_WITH_SUCCESS)

🪛 markdownlint-cli2 (0.18.1)
openspec/changes/add-multi-sensory-environment/design.md

68-68: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


89-89: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


178-178: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


214-214: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

openspec/changes/add-multi-sensory-environment/tasks.md

226-226: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


276-276: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

openspec/changes/add-ablation-toolkit/tasks.md

207-207: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

openspec/changes/add-multi-sensory-environment/proposal.md

87-87: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Python 3.11
  • GitHub Check: Python 3.12
🔇 Additional comments (7)
openspec/changes/add-ablation-toolkit/proposal.md (1)

1-72: LGTM!

This proposal is well-structured and clearly articulates the motivation, scope, and impact of the ablation toolkit. The rationale is compelling, and the design appropriately scopes new analysis capabilities as non-breaking additions.

openspec/changes/add-thermotaxis-system/proposal.md (1)

1-75: LGTM!

Excellent proposal with strong biological grounding and clear articulation of the design rationale. The note on spatial vs. temporal sensing and the roadmap reference demonstrates thoughtful trade-off documentation. Backward compatibility is clearly maintained.

openspec/changes/add-multi-sensory-environment/specs/environment-simulation/spec.md (1)

1-204: LGTM!

This spec is well-structured and comprehensive. Requirements are clearly stated with SHALL language, scenarios follow proper format with GIVEN/WHEN/THEN structure (using exactly 4-hash scenario headers), and all new capabilities are properly specified with consideration for backward compatibility. The hierarchical benchmark naming scheme is clearly articulated with both new and legacy path examples.

openspec/changes/add-thermotaxis-system/tasks.md (1)

1-203: LGTM!

Well-structured task plan with clear prerequisite dependencies, actionable work items, validation criteria, and success metrics. The biological validation section and careful attention to spatial vs. temporal sensing trade-offs show thoughtful engineering. Clear dependency diagram and hierarchical benchmark organization make the implementation plan straightforward to follow.

openspec/changes/add-multi-sensory-environment/proposal.md (1)

1-147: Proposal content is well-structured and comprehensive.

The proposal clearly establishes the foundational architecture for Phase 1 multi-sensory capabilities. The Why section effectively motivates the need, the What Changes section methodically describes nine interconnected changes with rationale and impact, and the Impact section correctly identifies affected specs, code modules, and backward-compatibility guarantees. The clarification of the relationship between satiety and HP (lines 36–40) is particularly valuable for downstream implementation.

openspec/changes/add-thermotaxis-system/specs/environment-simulation/spec.md (1)

1-122: Spec delta format and scenarios are exemplary.

The file correctly implements the spec delta format with proper ## ADDED Requirements header, requirement subsections, and scenario subsections using #### Scenario: (4 hashes). All scenarios follow the WHEN/THEN pattern with clear GIVEN context, actionable conditions, and measurable outcomes. Normative language (SHALL) is used consistently throughout. The scenarios are thorough and complementary, covering linear gradients, hot/cold spots, gradient computation, initialization, per-step sensing, disabled defaults, zone mechanics, and benchmark categorization.

openspec/changes/add-multi-sensory-environment/specs/brain-architecture/spec.md (1)

1-172: Spec delta format, structure, and scenarios fully comply with guidelines.

The file correctly implements the spec delta format with ## ADDED Requirements header, six well-organized requirement sections, and scenario subsections using #### Scenario: (4 hashes). All 19 scenarios follow the WHEN/THEN pattern with clear GIVEN contexts, actionable conditions, and measurable outcomes. Normative language (SHALL) is used consistently. The specifications are comprehensive: BrainParams extensions with backward compatibility (lines 32–37), unified feature extraction for both ModularBrain and PPOBrain (lines 52–64), scientific module naming with C. elegans neuron references (lines 73–78), mechanosensation with rotation ranges (lines 98–111), configurable rewards and health parameters (lines 116–141), and multi-objective evaluation metrics with scoring formulas (lines 146–172). Content is well-aligned with the multi-sensory environment proposal and provides implementation-ready detail.

Comment thread openspec/changes/add-multi-sensory-environment/proposal.md Outdated
@codecov

codecov Bot commented Dec 30, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@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: 0

🧹 Nitpick comments (5)
openspec/changes/add-multi-sensory-environment/tasks.md (2)

79-90: Add hyphen to compound modifier.

On line 87, "mixed type" should be hyphenated as "mixed-type" when used as a compound modifier before the noun "spawning". This applies to other occurrences of "mixed type" in similar contexts.

🔎 Proposed fix
- [ ] Update predator config schema to support type list:
   ```yaml
   types:
     - type: stationary
       count: 2
     - type: pursuit
       count: 1
  • Implement mixed type spawning
    +- [ ] Implement mixed-type spawning
</details>

---

`290-294`: **Revise repetitive sentence structure.**

Lines 290–294 begin three successive sentences with "Work streams," which reduces readability. Consider varying the sentence structure for better flow.



<details>
<summary>🔎 Proposed revision</summary>

```diff
-Work streams 1-4 can proceed in parallel. Work stream 5 depends on 4. Work streams 6-7 depend on 1-4. Work streams 8-9 depend on all above. Work stream 10 can proceed independently but should be done before 11.
+Work streams 1–4 can proceed in parallel; stream 5 depends on 4. Streams 6–7 depend on 1–4, while streams 8–9 depend on all above. Stream 10 can proceed independently but should be completed before 11.
openspec/changes/add-multi-sensory-environment/design.md (2)

88-96: Add blank line before table.

Tables should be surrounded by blank lines per markdown style guidelines (MD058). Add a blank line before the table at line 88.

🔎 Proposed fix
 **Mapping**:
+
 | Current | New | Neurons |

213-218: Add blank lines around table.

Tables should be surrounded by blank lines (MD058). Add a blank line before the table at line 214 and after line 217.

🔎 Proposed fix
 **Behavior**:
+
 | System | Decreases From | Increases From | Termination |
 |--------|---------------|----------------|-------------|
 | Satiety | Time decay (every step) | Eating food | STARVATION |
 | HP | Predator contact, temperature extremes | Eating food, configurable healing | HEALTH_DEPLETED |
+
 **Configuration Example**:
openspec/changes/add-multi-sensory-environment/proposal.md (1)

87-101: Add language identifier to code block.

Fenced code blocks must have a language specifier (MD040). The directory hierarchy block at line 87 should specify text or plaintext as the language.

🔎 Proposed fix
-```
+```text
 basic/                              # Single objective (foraging only)
 ├── foraging_small/
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 29c22eb and 0b11902.

📒 Files selected for processing (5)
  • openspec/changes/add-ablation-toolkit/tasks.md
  • openspec/changes/add-multi-sensory-environment/design.md
  • openspec/changes/add-multi-sensory-environment/proposal.md
  • openspec/changes/add-multi-sensory-environment/tasks.md
  • openspec/changes/add-thermotaxis-system/tasks.md
🧰 Additional context used
📓 Path-based instructions (1)
openspec/**/*.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

Use SHALL/MUST for normative requirements in spec files; avoid should/may unless intentionally marking non-normative guidance

Files:

  • openspec/changes/add-thermotaxis-system/tasks.md
  • openspec/changes/add-multi-sensory-environment/tasks.md
  • openspec/changes/add-multi-sensory-environment/proposal.md
  • openspec/changes/add-multi-sensory-environment/design.md
  • openspec/changes/add-ablation-toolkit/tasks.md
🧠 Learnings (8)
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Scaffold change proposals with `proposal.md`, `tasks.md`, optional `design.md`, and delta specs under `openspec/changes/<change-id>/specs/`

Applied to files:

  • openspec/changes/add-multi-sensory-environment/tasks.md
  • openspec/changes/add-ablation-toolkit/tasks.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: In `tasks.md`, organize implementation work as a numbered checklist with sub-items using `- [ ]` unchecked format; update all items to `- [x]` after completion

Applied to files:

  • openspec/changes/add-multi-sensory-environment/tasks.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Create `design.md` only when the change is cross-cutting, introduces new external dependencies, involves significant data model changes, has security/performance complexity, or contains authoring ambiguity

Applied to files:

  • openspec/changes/add-multi-sensory-environment/tasks.md
  • openspec/changes/add-multi-sensory-environment/design.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Use `## ADDED` for new capabilities that stand alone orthogonally; use `## MODIFIED` for changes to existing requirement behavior or scope; use `## RENAMED` for name-only changes

Applied to files:

  • openspec/changes/add-multi-sensory-environment/proposal.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Applies to openspec/changes/*/specs/**/*.md : In spec delta files, use `## ADDED|MODIFIED|REMOVED|RENAMED Requirements` section headers with at least one `#### Scenario:` subsection per requirement

Applied to files:

  • openspec/changes/add-multi-sensory-environment/proposal.md
📚 Learning: 2025-12-27T08:02:58.340Z
Learnt from: chrisjz
Repo: SyntheticBrains/nematode PR: 22
File: openspec/changes/add-phase0-foundation-baselines/design.md:64-69
Timestamp: 2025-12-27T08:02:58.340Z
Learning: design.md files in openspec/changes/ are for technical decisions and design rationale, not normative requirements. SHALL/MUST language is only required in spec.md files (spec deltas) under openspec/changes/*/specs/, not in design.md, proposal.md, or tasks.md files.

Applied to files:

  • openspec/changes/add-multi-sensory-environment/proposal.md
📚 Learning: 2025-11-29T13:45:51.853Z
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Applies to openspec/**/*.md : Use SHALL/MUST for normative requirements in spec files; avoid should/may unless intentionally marking non-normative guidance

Applied to files:

  • openspec/changes/add-multi-sensory-environment/proposal.md
📚 Learning: 2025-12-27T08:02:58.340Z
Learnt from: chrisjz
Repo: SyntheticBrains/nematode PR: 22
File: openspec/changes/add-phase0-foundation-baselines/design.md:64-69
Timestamp: 2025-12-27T08:02:58.340Z
Learning: Design.md files under openspec/changes/ should document architectural or design decisions and rationale, not normative requirements. Do not use SHALL/MUST language in design.md (reserve such language for spec.md files). The strict SHALL/MUST wording should appear only in openspec/changes/*/specs/*/specs.md (spec deltas). Use objective, rationale-focused language in design.md and place any formal requirements in the appropriate spec files.

Applied to files:

  • openspec/changes/add-multi-sensory-environment/design.md
🪛 LanguageTool
openspec/changes/add-multi-sensory-environment/tasks.md

[grammar] ~87-~87: Use a hyphen to join words.
Context: ... count: 1 ``` - [ ] Implement mixed type spawning - [ ] Update gradient comp...

(QB_NEW_EN_HYPHEN)


[style] ~294-~294: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...s on 4. Work streams 6-7 depend on 1-4. Work streams 8-9 depend on all above. Work s...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.18.1)
openspec/changes/add-multi-sensory-environment/design.md

89-89: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


214-214: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🔇 Additional comments (3)
openspec/changes/add-ablation-toolkit/tasks.md (2)

1-234: Clear structure and comprehensive task breakdown.

The document is well-organized with logical dependencies, clear section hierarchy, and actionable checklist items. The dependency diagram (lines 207–221) effectively communicates task sequencing, and the cross-references to related proposal and spec files align with the learnings on scaffold structure for change proposals.


40-40: Strengthen normative language in validation and success criteria.

Per coding guidelines for openspec/**/*.md files, normative requirements should use SHALL/MUST instead of "can," "runs," or "generates." Update the validation statements and success criteria to use prescriptive language:

  • Line 40: "Framework can enumerate" → "Framework SHALL enumerate"
  • Line 62: "Ablated ModularBrain runs without errors" → "Ablated ModularBrain SHALL run without errors"
  • Line 83: "Ablated PPOBrain runs without errors" → "Ablated PPOBrain SHALL run without errors"
  • Line 112: "Importance scores computed correctly" → "Importance scores SHALL be computed correctly"
  • Line 161: "Report generates correctly" → "Report SHALL generate correctly"
  • Line 187: "CLI runs ablation study end-to-end" → "CLI SHALL run ablation study end-to-end"
  • Lines 229–233: All success criteria use "Can" → change to "SHALL" to make them binding
🔎 Proposed normative language updates
- **Validation**: Framework can enumerate and run ablation conditions
+ **Validation**: Framework SHALL enumerate and run ablation conditions

- **Validation**: Ablated ModularBrain runs without errors, produces different behavior
+ **Validation**: Ablated ModularBrain SHALL run without errors and produce different behavior

- **Validation**: Ablated PPOBrain runs without errors, produces different behavior
+ **Validation**: Ablated PPOBrain SHALL run without errors and produce different behavior

- **Validation**: Importance scores computed correctly for test cases
+ **Validation**: Importance scores SHALL be computed correctly for test cases

- **Validation**: Report generates correctly with all sections
+ **Validation**: Report SHALL generate correctly with all sections

- **Validation**: CLI runs ablation study end-to-end
+ **Validation**: CLI SHALL run ablation study end-to-end

- - [ ] Can ablate individual modules from ModularBrain
+ - [ ] SHALL ablate individual modules from ModularBrain
- - [ ] Can ablate hidden layers from PPOBrain
+ - [ ] SHALL ablate hidden layers from PPOBrain
- - [ ] Feature importance scores correctly identify critical modules
+ - [ ] Feature importance scores SHALL correctly identify critical modules
- - [ ] Automated reports are readable and informative
+ - [ ] Automated reports SHALL be readable and informative
- - [ ] CLI allows running ablation studies without code changes
+ - [ ] CLI SHALL allow running ablation studies without code changes
- - [ ] Results are reproducible with seed control
+ - [ ] Results SHALL be reproducible with seed control

As per coding guidelines for openspec files, use SHALL/MUST for normative requirements.

Also applies to: 62-62, 83-83, 112-112, 161-161, 187-187, 229-233

⛔ Skipped due to learnings
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Applies to openspec/**/*.md : Use SHALL/MUST for normative requirements in spec files; avoid should/may unless intentionally marking non-normative guidance
Learnt from: chrisjz
Repo: SyntheticBrains/nematode PR: 22
File: openspec/changes/add-phase0-foundation-baselines/design.md:64-69
Timestamp: 2025-12-27T08:02:58.340Z
Learning: design.md files in openspec/changes/ are for technical decisions and design rationale, not normative requirements. SHALL/MUST language is only required in spec.md files (spec deltas) under openspec/changes/*/specs/, not in design.md, proposal.md, or tasks.md files.
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Use `openspec validate <change-id> --strict` to comprehensively validate change proposals before requesting approval
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Applies to openspec/changes/*/specs/**/*.md : In spec delta files, use `## ADDED|MODIFIED|REMOVED|RENAMED Requirements` section headers with at least one `#### Scenario:` subsection per requirement
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: In `tasks.md`, organize implementation work as a numbered checklist with sub-items using `- [ ]` unchecked format; update all items to `- [x]` after completion
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Applies to openspec/changes/*/specs/**/*.md : Every requirement in spec deltas must include at least one scenario with `- **WHEN** condition` and `- **THEN** expected result` format
Learnt from: CR
Repo: SyntheticBrains/nematode PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-11-29T13:45:51.853Z
Learning: Scaffold change proposals with `proposal.md`, `tasks.md`, optional `design.md`, and delta specs under `openspec/changes/<change-id>/specs/`
openspec/changes/add-thermotaxis-system/tasks.md (1)

1-203: Well-structured thermotaxis implementation plan.

The tasks are clearly organized, dependencies are explicit, and success criteria are measurable. The integration with the multi-sensory environment foundation is well-articulated, and the hierarchical benchmark naming follows the proposal's conventions. No concerns to raise.

@chrisjz
chrisjz merged commit fa09322 into main Dec 30, 2025
5 checks passed
@chrisjz
chrisjz deleted the feature/phase-1-initial-proposals branch December 30, 2025 11:16
chrisjz added a commit that referenced this pull request Mar 3, 2026
…roposals

docs: Add initial Phase 1 change specifications
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