Freeze SmoothLife model contract and fixtures

This commit is contained in:
2026-07-14 18:26:55 +02:00
parent 51cff7b0f3
commit d587f542eb
25 changed files with 30612 additions and 38 deletions

View File

@@ -72,7 +72,7 @@ Validation returns field-specific, actionable errors and rejects:
- invalid/zero shape extents;
- unsupported dynamics/integrator combinations (the tagged schema makes an irrelevant RK4 reference unrepresentable);
- statically invalid `LegacyPackedUnitary` combinations such as CPU backend, non-power-of-two shape, or unsupported dimension;
- empty scales or a non-three-scale imported multiscale preset;
- empty scales or any multiscale configuration whose scale count is not three;
- impossible history depth or sphere face size.
Split validation into two stages. Macrostep 01 performs schema/static validation without a graphics context. Macrostep 05 adds runtime capability validation for texture limits, float FBOs, resource counts, memory, and actual legacy-FFT support; loading may be statically valid yet fail a requested GPU construction with an actionable runtime error.
@@ -86,7 +86,7 @@ Every preset has:
- stable slug/UUID;
- display name and description;
- variant and schema version;
- source provenance and optional original row;
- authoring provenance and optional links to relevant model-contract or legacy-source-map entries;
- tags;
- deterministic default seed;
- relevant localized historical-option values;
@@ -104,15 +104,11 @@ Define a normalized run descriptor suitable for logs, state exports, and bug rep
- Save settings atomically through temp-file + rename.
- Preserve unknown newer schema versions by refusing destructive writes.
### Substep 1.3.2 — Schema-backed legacy conversion
### Substep 1.3.2 — Newly authored bundled presets
Consume Macrostep 00's frozen JSONL evidence and migration-default table to generate final versioned presets:
Author bundled product presets directly in the versioned schema using Macrostep 00's deterministic preset baselines. There is no legacy-row converter, migration-default layer, catalogue deduplication, or required correspondence to legacy source counts or groupings.
- 15-column base rows;
- groups of three multiscale rows;
- 11-column sphere/DT rows.
The converter must report accepted/rejected entries, apply every absent-field default explicitly, preserve source rows/descriptions/numeric precision, and deduplicate only by a documented normalized key. A direct legacy-text parser may exist as a separately tested maintenance command, but generation and normal runtime loading use the committed evidence, not the external tree. Verify expected source counts, multiscale grouping, generated counts, and a manifest hash.
Require every bundled preset to specify all run-defining fields, a stable unique identity, authoring provenance, deterministic seed/initializer, applicable localized historical options, and recommended presentation. Validate and round-trip each preset independently, reject duplicate IDs, verify deterministic reproduction from its run descriptor, and record a manifest hash for the authored set.
### Substep 1.3.3 — Command-line contract
@@ -161,8 +157,8 @@ Essential shaders should be embedded with `include_str!` or packaged under a com
## Deliverables
- Headless library skeleton and feature-gated app skeleton.
- Versioned schema, validator, preset library, importer, and CLI.
- Deterministic run descriptor, finalized preset catalogue, and structured errors/logging.
- Versioned schema, validator, newly authored preset library, and CLI.
- Deterministic run descriptor, finalized newly authored preset catalogue, and structured errors/logging.
- CI quality baseline.
## Exit gate