docs: S0 draft — S1 execution guard for moving bodies before S2

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-10-30 06:23:31 +00:00
co-authored by Claude Opus 5.5
parent adbed8ae7e
commit f42b269a00
+10 -1
View File
@@ -310,9 +310,18 @@ recorded as not runnable rather than replaced by another test.
- Motion-record host layout and upload path; exclusion of moving bodies from
the packed `CurvedBoundaryKernel` links (stationary packing unchanged).
- Explicit rejections for unsupported modes.
- S1 execution guard: until the S2 moving kernels exist, any `run(n)` with
`n > 0` (and `step(n)`) while a moving body is declared raises before any
device mutation (no action/motion upload, no launch), including the
nominal at-rest case, because the moving body is excluded from the static
packed links and nothing else would apply its boundary. `run(0)` keeps its
existing behaviour. Simulations without moving bodies are unaffected.
Preparation/commit helpers are exercised by host tests with mocks; no
operational unsupported stepping path is exposed.
- Host tests (Astra runs them): rejection-before-mutation, band geometry,
derived centres, fail-closed behaviour under an injected upload/sync
failure, stationary packing byte-identical. No kernels, no GPU runs, no
failure, stationary packing byte-identical, execution guard (positive-step
run with a moving body raises before upload/launch; stationary unaffected). No kernels, no GPU runs, no
y-only VIV oscillator (S4), no force RHS.
## 11. Remaining decisions