Umbrella for the 2026-07-04 survey (8 top-language profiles, repo ground-truth, 7 dimension gap analyses, adversarial critic). Governing principle from every incumbent's history: never trade the runtime guarantee for generality — generalize at the DX surface, and route every new capability through the tape so generalizing deepens the niche. The ordering below IS the strategy; volume without ordering was the critic's top process finding.
Now — days-class, independently shippable, any order
Next — weeks-class, dependency-ordered
Lint/LSP: scope-aware name-resolution pass — E-class 'no binding on any path' #404 scope-aware name-resolution lint (E-class), shared with LSP — highest correctness yield per week
Language change: a bare literal list after 'of' is ALWAYS an argument list (kill the 1-element spread trap) #405 spread-trap language change (of [x] always an arg list) — pre-1.0 is the only cheap moment; closes Argument-spreading contract vs implementation: single-element literal lists don't spread, and default params amplify the surprise #153
Structured runtime errors: catch binds {kind, message, line} with a closed kind set #406 structured runtime errors {kind, message, line} — honest weeks, the cascade is the cost
Runtime-error carets + token-precise LSP ranges (residual of #407) #407 column/caret diagnostics — unlocks token-precise squiggles for Lint/LSP: scope-aware name-resolution pass — E-class 'no binding on any path' #404 and ranges for eigsdap v1: a CLI tape-stepper (step forward/back, bindings + trajectories); DAP/VS Code only after locals ride the tape #418
Design: trace-tape format versioning — the tape is becoming a persisted artifact #411 tape-format versioning DECISION — blocks anything that ships a tape (--test --trace-on-fail: every failing test prints its EIGS_REPLAY invocation #394 archiving, --bundle: single-file distribution (script + eigs_modules appended to the runtime binary; optional attached tape) #413 tape variant, Design: script-to-C FFI, tape-first (ext_ffi + sqlite3 as the forcing binding) — blocked until a consumer forces it #415 , eigsdap v1: a CLI tape-stepper (step forward/back, bindings + trajectories); DAP/VS Code only after locals ride the tape #418 persisted workflows)
Deterministic cooperative task layer that rides the trace tape (task_spawn / task_send / task_recv / task_yield) #408 deterministic cooperative task layer on the tape — the strategic headline; closes the proc_* builtins are invisible to trace/replay — EIGS_REPLAY re-runs live subprocess side effects #148 contradiction
lib/supervise.eigs — observer-native supervision: predictive, not crash-reactive (blocked on the task layer) #409 lib/supervise.eigs observer supervision — days, but ONLY after Deterministic cooperative task layer that rides the trace tape (task_spawn / task_send / task_recv / task_yield) #408
Observer surface coherence: implement or remove 'how'; decide |x|=1.0; fold in #383 #412 observer surface coherence (how, |x|=1.0, report-of resolves names differently from the observer predicates across function scope #383 )
JIT: poll the abort flag at loop back-edges (hard timeouts without EIGS_JIT_OFF) #410 JIT back-edge abort poll
eigsdap v1: a CLI tape-stepper (step forward/back, bindings + trajectories); DAP/VS Code only after locals ride the tape #418 eigsdap v1 as a CLI tape-stepper (DAP/VS Code deferred until locals ride the tape)
--bundle: single-file distribution (script + eigs_modules appended to the runtime binary; optional attached tape) #413 --bundle single-file distribution (tape variant after Design: trace-tape format versioning — the tape is becoming a persisted artifact #411 )
ext_net: raw TCP/UDP sockets as tape-recorded nondeterministic inputs #414 ext_net sockets on the tape (liferaft as forcing function)
Design decisions — cheap to decide, expensive to defer
Sibling repo (ouroboros — the native-perf path)
Blocked / deliberately NOT doing (the critic's vetoes — do not re-propose without new facts)
ROADMAP.md updated to mirror this plan.
Umbrella for the 2026-07-04 survey (8 top-language profiles, repo ground-truth, 7 dimension gap analyses, adversarial critic). Governing principle from every incumbent's history: never trade the runtime guarantee for generality — generalize at the DX surface, and route every new capability through the tape so generalizing deepens the niche. The ordering below IS the strategy; volume without ordering was the critic's top process finding.
Now — days-class, independently shippable, any order
^[[Afirst-five-minutes failure--test --trace-on-fail— every failure prints its replay invocationmake lib+ two-file amalgamationNext — weeks-class, dependency-ordered
of [x]always an arg list) — pre-1.0 is the only cheap moment; closes Argument-spreading contract vs implementation: single-element literal lists don't spread, and default params amplify the surprise #153how, |x|=1.0, report-of resolves names differently from the observer predicates across function scope #383)Design decisions — cheap to decide, expensive to defer
Sibling repo (ouroboros — the native-perf path)
Blocked / deliberately NOT doing (the critic's vetoes — do not re-propose without new facts)
ROADMAP.md updated to mirror this plan.