CreativeEngineer commited on
Commit
3270c54
·
1 Parent(s): 88d9b78

docs: align repaired 4-knob environment docs

Browse files
docs/FUSION_DELIVERABLES_MAP.md CHANGED
@@ -13,7 +13,7 @@ Use this map to sequence execution, not to reopen already-locked task choices.
13
  - [x] baseline comparison has been rerun on the real verifier path
14
  - [x] Northflank smoke workflow and note are committed
15
  - [x] Northflank smoke test has passed on the team H100
16
- - [x] current 3-knob family has been verified as blocked on P1 triangularity
17
  - [x] repaired low-dimensional boundary builder is implemented
18
  - [x] explicit VMEC failure semantics are implemented
19
  - [x] low-fi `run` truth vs high-fi `submit` truth is labeled clearly
 
13
  - [x] baseline comparison has been rerun on the real verifier path
14
  - [x] Northflank smoke workflow and note are committed
15
  - [x] Northflank smoke test has passed on the team H100
16
+ - [x] historical upstream 3-knob family has been verified as blocked on P1 triangularity
17
  - [x] repaired low-dimensional boundary builder is implemented
18
  - [x] explicit VMEC failure semantics are implemented
19
  - [x] low-fi `run` truth vs high-fi `submit` truth is labeled clearly
docs/FUSION_DESIGN_LAB_PLAN_V2.md CHANGED
@@ -14,7 +14,7 @@
14
  - [x] baseline comparison has been rerun on the real verifier path
15
  - [x] Northflank smoke workflow and note are committed
16
  - [x] Northflank smoke test has passed on the team H100
17
- - [x] current 3-knob family has been checked against the real low-fidelity verifier
18
  - [x] parameterization repair is implemented so triangularity is controllable
19
  - [x] explicit VMEC failure semantics are implemented
20
  - [x] low-fi `run` truth vs high-fi `submit` truth is labeled clearly in the environment surface
@@ -181,7 +181,7 @@ Allowed reuse:
181
 
182
  Implementation handoff:
183
 
184
- - the remaining work is now parameterization repair, then fixture coverage, manual playtesting, heuristic refresh, smoke validation, and deployment
185
  - do not treat supporting decision notes as a new planning backlog
186
 
187
  ## 8.1 Compute Surfaces
@@ -221,11 +221,11 @@ Auth stance:
221
 
222
  The environment contract must be frozen before meaningful evaluation.
223
 
224
- Current verified blocker:
225
 
226
- - the current upstream 3-knob `generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` family does not expose triangularity control
227
  - on the real low-fidelity verifier path, sampled points stayed at roughly `average_triangularity=+0.004975` and `p1_feasibility=1.00995`
228
- - so the next contract revision must repair parameterization before reward iteration becomes meaningful
229
 
230
  ### Observation
231
 
@@ -235,20 +235,27 @@ The observation should expose:
235
  - current aspect ratio
236
  - current average triangularity
237
  - current edge rotational transform over field periods
238
- - current feasibility score or normalized violation summary
239
- - best-so-far feasible score
240
- - best-so-far least-violating design summary
241
- - step number
242
- - budget remaining
243
- - concise textual summary of the last action outcome
 
 
 
 
 
 
 
244
 
245
  The observation must be interpretable by a human without additional hidden state.
246
 
247
  ### Action Space
248
 
249
- The action space stays intentionally small and discrete, but the current 3-knob version is no longer enough. The next contract revision should keep low-dimensional actions while adding an explicit control that can move triangularity.
250
 
251
- Near-term target:
252
 
253
  - `run`
254
  - `submit`
@@ -260,11 +267,11 @@ For `run`, the controllable fields are:
260
  - `aspect_ratio`
261
  - `elongation`
262
  - `rotational_transform`
263
- - `triangularity_scale` or equivalent low-dimensional triangularity control
264
  - direction: increase or decrease
265
  - magnitude: small, medium, large
266
 
267
- This is not trying to expose the full Fourier-boundary space. The goal is a legible environment, not maximal realism. The verifier should stay official; the custom logic belongs in the low-dimensional boundary builder, not in reward semantics.
268
 
269
  ### Episode Flow
270
 
@@ -530,7 +537,7 @@ The repo should make the environment easy to understand:
530
 
531
  - notebook starts on the team H100
532
  - persistent storage mount is usable
533
- - smoke test artifact is written successfully
534
  - latest artifact example: `/home/jovyan/fusion-design-lab/smoke/northflank_smoke_20260308T023646Z.json`
535
 
536
  ### Gate 1: Environment Contract Locked
 
14
  - [x] baseline comparison has been rerun on the real verifier path
15
  - [x] Northflank smoke workflow and note are committed
16
  - [x] Northflank smoke test has passed on the team H100
17
+ - [x] historical upstream 3-knob family has been checked against the real low-fidelity verifier
18
  - [x] parameterization repair is implemented so triangularity is controllable
19
  - [x] explicit VMEC failure semantics are implemented
20
  - [x] low-fi `run` truth vs high-fi `submit` truth is labeled clearly in the environment surface
 
181
 
182
  Implementation handoff:
183
 
184
+ - the remaining work is now fixture coverage, manual playtesting, heuristic refresh, smoke validation, and deployment
185
  - do not treat supporting decision notes as a new planning backlog
186
 
187
  ## 8.1 Compute Surfaces
 
221
 
222
  The environment contract must be frozen before meaningful evaluation.
223
 
224
+ Historical blocker that drove the repair:
225
 
226
+ - the upstream 3-knob `generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` family does not expose triangularity control
227
  - on the real low-fidelity verifier path, sampled points stayed at roughly `average_triangularity=+0.004975` and `p1_feasibility=1.00995`
228
+ - that blocker is why the repo now uses a repaired 4-knob low-dimensional family with explicit `triangularity_scale`
229
 
230
  ### Observation
231
 
 
235
  - current aspect ratio
236
  - current average triangularity
237
  - current edge rotational transform over field periods
238
+ - current `p1_score`
239
+ - current `p1_feasibility`
240
+ - current `constraints_satisfied`
241
+ - current `vacuum_well`
242
+ - `evaluation_fidelity`
243
+ - `evaluation_failed`
244
+ - `failure_reason`
245
+ - `step_number`
246
+ - `budget_remaining`
247
+ - `best_score`
248
+ - `best_feasibility`
249
+ - `target_spec`
250
+ - concise textual summary of the last action outcome in `diagnostics_text`
251
 
252
  The observation must be interpretable by a human without additional hidden state.
253
 
254
  ### Action Space
255
 
256
+ The live action space stays intentionally small and discrete while exposing the repaired 4-knob low-dimensional family.
257
 
258
+ Current contract:
259
 
260
  - `run`
261
  - `submit`
 
267
  - `aspect_ratio`
268
  - `elongation`
269
  - `rotational_transform`
270
+ - `triangularity_scale`
271
  - direction: increase or decrease
272
  - magnitude: small, medium, large
273
 
274
+ This is not trying to expose the full Fourier-boundary space. The goal is a legible environment, not maximal realism. The verifier stays official; the custom logic belongs in the low-dimensional boundary builder, not in reward semantics.
275
 
276
  ### Episode Flow
277
 
 
537
 
538
  - notebook starts on the team H100
539
  - persistent storage mount is usable
540
+ - smoke test artifact is written successfully from the rotating-ellipse-derived low-dimensional boundary path
541
  - latest artifact example: `/home/jovyan/fusion-design-lab/smoke/northflank_smoke_20260308T023646Z.json`
542
 
543
  ### Gate 1: Environment Contract Locked
docs/FUSION_NEXT_12_HOURS_CHECKLIST.md CHANGED
@@ -16,7 +16,7 @@ Do not expand scope beyond one stable task. Training is supporting evidence, not
16
  - [x] re-run baselines on the real verifier path
17
  - [x] commit the Northflank smoke workflow and note
18
  - [x] pass the Northflank smoke test on the team H100
19
- - [x] verify that the current 3-knob family is blocked on P1 triangularity under the real verifier path
20
  - [x] repair the low-dimensional parameterization
21
  - [x] add explicit VMEC failure semantics
22
  - [x] label low-fi `run` truth vs high-fi `submit` truth in the task surface
@@ -50,7 +50,7 @@ Carry these rules through the whole checklist:
50
  2. Attach persistent storage before relying on saved models, caches, or fixture downloads.
51
  3. Preserve the concrete smoke-test evidence:
52
  - import `constellaration`
53
- - generate one rotating-ellipse boundary
54
  - run one low-fidelity verifier call
55
  - keep one artifact in persistent storage
56
  - current artifact: `/home/jovyan/fusion-design-lab/smoke/northflank_smoke_20260308T023646Z.json`
 
16
  - [x] re-run baselines on the real verifier path
17
  - [x] commit the Northflank smoke workflow and note
18
  - [x] pass the Northflank smoke test on the team H100
19
+ - [x] verify that the historical upstream 3-knob family is blocked on P1 triangularity under the real verifier path
20
  - [x] repair the low-dimensional parameterization
21
  - [x] add explicit VMEC failure semantics
22
  - [x] label low-fi `run` truth vs high-fi `submit` truth in the task surface
 
50
  2. Attach persistent storage before relying on saved models, caches, or fixture downloads.
51
  3. Preserve the concrete smoke-test evidence:
52
  - import `constellaration`
53
+ - generate one rotating-ellipse-derived low-dimensional boundary
54
  - run one low-fidelity verifier call
55
  - keep one artifact in persistent storage
56
  - current artifact: `/home/jovyan/fusion-design-lab/smoke/northflank_smoke_20260308T023646Z.json`
docs/P1_ENV_CONTRACT_V1.md CHANGED
@@ -15,16 +15,18 @@ This file captures the technical contract that should drive the next code change
15
 
16
  The central change is now explicit:
17
 
18
- - the current upstream 3-knob rotating-ellipse family is blocked on P1 triangularity under the real verifier path
19
- - the next environment contract must repair parameterization before more reward iteration or heuristic work
20
  - the runtime now exposes the repaired 4-knob target, but measured sweep validation and fixture calibration are still pending
21
 
22
- ## Verified Blocker
 
 
23
 
24
  Current verified facts:
25
 
26
  - upstream `generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` has no triangularity control
27
- - the current 3-knob environment directly exposes only:
28
  - `aspect_ratio`
29
  - `elongation`
30
  - `rotational_transform`
@@ -35,8 +37,8 @@ Current verified facts:
35
 
36
  Conclusion:
37
 
38
- - the current 3-knob family is not a meaningful playtest or baseline environment for `P1`
39
- - reward work is secondary until the boundary family can actually approach the official triangularity constraint
40
 
41
  ## Design Split
42
 
@@ -66,12 +68,16 @@ Current repo state:
66
  - explicit failure results are returned when VMEC evaluation fails
67
  - measured sweep validation is still pending
68
 
69
- Target functions:
70
 
71
- - `build_initial_boundary(...) -> SurfaceRZFourier`
72
- - `apply_low_dim_perturbation(...) -> SurfaceRZFourier`
73
  - `evaluate_boundary(boundary, fidelity) -> EvaluationMetrics`
74
 
 
 
 
 
 
75
  The verifier layer should own:
76
 
77
  - low-fidelity step-time evaluation
@@ -147,9 +153,16 @@ Keep:
147
  - `edge_iota_over_nfp`
148
  - `p1_feasibility`
149
  - `p1_score`
 
 
 
 
 
 
150
  - `budget_remaining`
151
  - `best_score`
152
  - `best_feasibility`
 
153
  - `diagnostics_text`
154
 
155
  Add clarity about fidelity:
 
15
 
16
  The central change is now explicit:
17
 
18
+ - the historical upstream 3-knob rotating-ellipse family is blocked on P1 triangularity under the real verifier path
19
+ - that blocker drove the repair to the current 4-knob low-dimensional runtime
20
  - the runtime now exposes the repaired 4-knob target, but measured sweep validation and fixture calibration are still pending
21
 
22
+ ## Historical Blocker
23
+
24
+ This section records the resolved upstream blocker that motivated the current repair. It is not the live runtime state.
25
 
26
  Current verified facts:
27
 
28
  - upstream `generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` has no triangularity control
29
+ - the historical 3-knob environment directly exposed only:
30
  - `aspect_ratio`
31
  - `elongation`
32
  - `rotational_transform`
 
37
 
38
  Conclusion:
39
 
40
+ - the historical 3-knob family was not a meaningful playtest or baseline environment for `P1`
41
+ - the live runtime therefore moved to a repaired boundary family before further reward iteration
42
 
43
  ## Design Split
44
 
 
68
  - explicit failure results are returned when VMEC evaluation fails
69
  - measured sweep validation is still pending
70
 
71
+ Current live functions:
72
 
73
+ - `build_boundary_from_params(...) -> SurfaceRZFourier`
 
74
  - `evaluate_boundary(boundary, fidelity) -> EvaluationMetrics`
75
 
76
+ Current layering note:
77
+
78
+ - discrete perturbation application lives in `server/environment.py`
79
+ - there is no separate `apply_low_dim_perturbation(...)` helper in the live code
80
+
81
  The verifier layer should own:
82
 
83
  - low-fidelity step-time evaluation
 
153
  - `edge_iota_over_nfp`
154
  - `p1_feasibility`
155
  - `p1_score`
156
+ - `constraints_satisfied`
157
+ - `vacuum_well`
158
+ - `evaluation_fidelity`
159
+ - `evaluation_failed`
160
+ - `failure_reason`
161
+ - `step_number`
162
  - `budget_remaining`
163
  - `best_score`
164
  - `best_feasibility`
165
+ - `target_spec`
166
  - `diagnostics_text`
167
 
168
  Add clarity about fidelity:
docs/PIVOT_P1_ROTATING_ELLIPSE.md CHANGED
@@ -9,17 +9,17 @@ Use this file as rationale for the pivot, not as a fresh planning queue. Once th
9
  ## Current Branch Status
10
 
11
  - [x] pivot accepted
12
- - [x] 3-knob rotating-ellipse `P1` contract is implemented
13
  - [x] `constellaration` verifier path is wired
14
- - [x] current 3-knob family is verified as blocked on P1 triangularity
15
- - [ ] repaired low-dimensional family with explicit triangularity control is implemented
16
  - [ ] tracked fixtures are added
17
  - [ ] manual playtest evidence is recorded
18
  - [ ] heuristic baseline is refreshed for the real verifier path
19
 
20
  Current caution:
21
 
22
- - the current upstream rotating-ellipse family is useful as a seed generator, but not sufficient as the full environment action family because it does not move triangularity under the real verifier path
23
 
24
  ## Decision
25
 
@@ -52,7 +52,7 @@ This borrows the strongest low-dimensional entry point from the proven winning a
52
 
53
  ### Single Task
54
 
55
- Improve a stellarator boundary's P1 score using the rotating-ellipse parameterization under the official ConStellaration P1 constraints.
56
 
57
  ### P1 Constraints (from `GeometricalProblem`)
58
 
@@ -68,7 +68,7 @@ Feasibility tolerance: normalized constraint violations <= 1% (0.01).
68
 
69
  ### Parameter Space
70
 
71
- The upstream rotating-ellipse generator takes 3 continuous parameters + 1 discrete:
72
 
73
  | Parameter | Role | Typical range |
74
  |---|---|---|
@@ -79,36 +79,43 @@ The upstream rotating-ellipse generator takes 3 continuous parameters + 1 discre
79
 
80
  These map to `constellaration.initial_guess.generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` which returns a `SurfaceRZFourier` boundary in ~4ms.
81
 
82
- Verified blocker:
83
 
84
  - on the real low-fidelity verifier path, sampled 3-knob points kept `average_triangularity` at roughly `+0.004975`
85
  - sampled `p1_feasibility` stayed at roughly `1.00995`
86
  - no sampled point was feasible
87
 
88
- So the hackathon environment now needs a custom low-dimensional boundary family on top of the rotating-ellipse seed, with an explicit triangularity control knob or equivalent mechanism.
 
 
 
 
 
 
 
 
 
 
89
 
90
  ### Action Space
91
 
92
- Original 3-knob action space:
93
 
94
  ```
95
  intent: "run" | "submit" | "restore_best"
96
- operator: "aspect_ratio" | "elongation" | "rotational_transform"
97
  direction: "increase" | "decrease"
98
  magnitude: "small" | "medium" | "large"
99
  ```
100
 
101
- This is no longer sufficient on its own. The next contract revision should keep the same discrete structure while adding:
102
-
103
- - `triangularity_scale` or equivalent low-dimensional control
104
-
105
- Magnitude deltas (to be tuned by playtest):
106
 
107
  | Parameter | small | medium | large |
108
  |---|---|---|---|
109
- | aspect_ratio | 0.1 | 0.3 | 0.8 |
110
- | elongation | 0.1 | 0.3 | 0.8 |
111
- | rotational_transform | 0.02 | 0.05 | 0.15 |
 
112
 
113
  ### Episode Flow
114
 
@@ -135,15 +142,19 @@ p1_score: float # current step-time score
135
  p1_feasibility: float # current step-time max normalized constraint violation
136
  constraints_satisfied: bool # feasibility <= 0.01
137
  vacuum_well: float # stability indicator
 
 
 
138
  step_number: int
139
  budget_remaining: int
140
  best_score: float
 
141
  target_spec: str
142
  ```
143
 
144
- Follow-up requirement from the verified blocker:
145
 
146
- - once submit stays high-fidelity, the observation or diagnostics text should make the low-fi vs high-fi distinction explicit
147
 
148
  ### Reward V0
149
 
@@ -170,10 +181,10 @@ submit penalty (if infeasible or no improvement):
170
 
171
  This puts feasibility first. An agent that achieves feasibility then minimizes elongation gets rewarded. An agent that never reaches feasibility gets penalized.
172
 
173
- Execution note after the verified blocker:
174
 
175
  - keep reward mostly scalar and verifier-driven
176
- - repair parameterization before further reward tuning
177
  - do not add mode- or constraint-specific reward hacks to compensate for a blocked action family
178
 
179
  ### State
@@ -192,7 +203,7 @@ history: list[str]
192
 
193
  | | Rotating-ellipse env | Curated-seed Fourier-repair env |
194
  |---|---|---|
195
- | Action space | 3 parameters (AR, elongation, iota) | N Fourier modes |
196
  | Starting point | Generated from parameters | Frozen from HF dataset |
197
  | Interpretability | High — parameters map to physical shape | Lower — mode perturbations are abstract |
198
  | Dataset dependency | None at runtime | Requires offline curation |
@@ -230,7 +241,7 @@ Update `fusion_lab/models.py` for new schemas.
230
 
231
  Status: open.
232
 
233
- Validate hypothesis: "6 actions is enough" only after parameterization repair.
234
  - Play 5-10 episodes manually
235
  - Log: can a human reach feasibility? Improve elongation?
236
  - Tune magnitude deltas if needed
@@ -264,11 +275,12 @@ If full high-fidelity `constellaration` deployment fails (Docker build, HF Space
264
 
265
  ## Known-Good Fixtures
266
 
267
- Start with 1-2 rotating-ellipse configurations for sanity checks and expand only if the implementation needs more coverage:
268
 
269
- 1. **Current default baseline reference:** aspect_ratio=3.5, elongation=1.5, rotational_transform=0.4 — currently deeply infeasible on the real verifier path; keep as a negative reference only until parameterization repair lands
270
- 2. **Infeasible reference:** aspect_ratio=5.0, elongation=3.0, rotational_transform=0.2 — expected to violate constraints
271
- 3. **Near-boundary anchor:** still needs to be found after parameterization repair and real verifier probing before manual playtesting
 
272
 
273
  These are for verifier/reward sanity, not a prerequisite seed-mining project.
274
 
 
9
  ## Current Branch Status
10
 
11
  - [x] pivot accepted
12
+ - [x] historical upstream 3-knob rotating-ellipse `P1` contract was implemented and evaluated
13
  - [x] `constellaration` verifier path is wired
14
+ - [x] historical upstream 3-knob family is verified as blocked on P1 triangularity
15
+ - [x] repaired low-dimensional family with explicit triangularity control is implemented
16
  - [ ] tracked fixtures are added
17
  - [ ] manual playtest evidence is recorded
18
  - [ ] heuristic baseline is refreshed for the real verifier path
19
 
20
  Current caution:
21
 
22
+ - the upstream rotating-ellipse family remains useful as a seed generator, but the live environment action family is the repaired rotating-ellipse-derived 4-knob contract
23
 
24
  ## Decision
25
 
 
52
 
53
  ### Single Task
54
 
55
+ Improve a stellarator boundary's P1 score using a rotating-ellipse-derived low-dimensional parameterization under the official ConStellaration P1 constraints.
56
 
57
  ### P1 Constraints (from `GeometricalProblem`)
58
 
 
68
 
69
  ### Parameter Space
70
 
71
+ Historical upstream seed generator:
72
 
73
  | Parameter | Role | Typical range |
74
  |---|---|---|
 
79
 
80
  These map to `constellaration.initial_guess.generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` which returns a `SurfaceRZFourier` boundary in ~4ms.
81
 
82
+ Historical blocker:
83
 
84
  - on the real low-fidelity verifier path, sampled 3-knob points kept `average_triangularity` at roughly `+0.004975`
85
  - sampled `p1_feasibility` stayed at roughly `1.00995`
86
  - no sampled point was feasible
87
 
88
+ Current live environment family:
89
+
90
+ | Parameter | Role | Current implementation range |
91
+ |---|---|---|
92
+ | `aspect_ratio` | Width-to-height ratio of the repaired boundary | 3.2 - 3.8 |
93
+ | `elongation` | Vertical stretching of cross-section | 1.2 - 1.8 |
94
+ | `rotational_transform` | Magnetic field line winding | 1.2 - 1.9 |
95
+ | `triangularity_scale` | Explicit triangularity control | 0.4 - 0.7 |
96
+ | `n_field_periods` | Fixed at 3 (not an action) | 3 |
97
+
98
+ These ranges describe the live implementation in `server/environment.py`. They are still subject to measured sweep and playtest refinement.
99
 
100
  ### Action Space
101
 
102
+ Current action space:
103
 
104
  ```
105
  intent: "run" | "submit" | "restore_best"
106
+ parameter: "aspect_ratio" | "elongation" | "rotational_transform" | "triangularity_scale"
107
  direction: "increase" | "decrease"
108
  magnitude: "small" | "medium" | "large"
109
  ```
110
 
111
+ Current implementation deltas:
 
 
 
 
112
 
113
  | Parameter | small | medium | large |
114
  |---|---|---|---|
115
+ | aspect_ratio | 0.05 | 0.10 | 0.20 |
116
+ | elongation | 0.05 | 0.10 | 0.20 |
117
+ | rotational_transform | 0.05 | 0.10 | 0.20 |
118
+ | triangularity_scale | 0.02 | 0.05 | 0.10 |
119
 
120
  ### Episode Flow
121
 
 
142
  p1_feasibility: float # current step-time max normalized constraint violation
143
  constraints_satisfied: bool # feasibility <= 0.01
144
  vacuum_well: float # stability indicator
145
+ evaluation_fidelity: "low" | "high"
146
+ evaluation_failed: bool
147
+ failure_reason: str
148
  step_number: int
149
  budget_remaining: int
150
  best_score: float
151
+ best_feasibility: float
152
  target_spec: str
153
  ```
154
 
155
+ Current requirement:
156
 
157
+ - the observation and diagnostics text should make the low-fi vs high-fi distinction explicit
158
 
159
  ### Reward V0
160
 
 
181
 
182
  This puts feasibility first. An agent that achieves feasibility then minimizes elongation gets rewarded. An agent that never reaches feasibility gets penalized.
183
 
184
+ Current execution note:
185
 
186
  - keep reward mostly scalar and verifier-driven
187
+ - keep parameterization repair and reward semantics separate
188
  - do not add mode- or constraint-specific reward hacks to compensate for a blocked action family
189
 
190
  ### State
 
203
 
204
  | | Rotating-ellipse env | Curated-seed Fourier-repair env |
205
  |---|---|---|
206
+ | Action space | 4 parameters (AR, elongation, rotational transform, triangularity scale) | N Fourier modes |
207
  | Starting point | Generated from parameters | Frozen from HF dataset |
208
  | Interpretability | High — parameters map to physical shape | Lower — mode perturbations are abstract |
209
  | Dataset dependency | None at runtime | Requires offline curation |
 
241
 
242
  Status: open.
243
 
244
+ Validate hypothesis: "6 actions is enough" on the repaired low-dimensional family.
245
  - Play 5-10 episodes manually
246
  - Log: can a human reach feasibility? Improve elongation?
247
  - Tune magnitude deltas if needed
 
275
 
276
  ## Known-Good Fixtures
277
 
278
+ Start with the frozen repaired-family reset seeds in `server/contract.py` and expand only if the implementation needs more coverage:
279
 
280
+ 1. **Reset seed:** aspect_ratio=3.6, elongation=1.4, rotational_transform=1.5, triangularity_scale=0.55
281
+ 2. **Reset seed:** aspect_ratio=3.4, elongation=1.4, rotational_transform=1.6, triangularity_scale=0.55
282
+ 3. **Reset seed:** aspect_ratio=3.8, elongation=1.4, rotational_transform=1.5, triangularity_scale=0.55
283
+ 4. **Deliberately bad reference:** keep a clearly infeasible boundary only as a negative verifier/reward sanity check
284
 
285
  These are for verifier/reward sanity, not a prerequisite seed-mining project.
286