You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A self-hosted toolchain is not self-hosted while any Rust is written by hand. The historical glue exemption (napl-cli dispatch, the 6 seam adapters, napl-lsp wiring, napl-wasm bindings) was pragmatic inheritance, not an endpoint. Bootstrapping does not require hand-written code - the pinned previous binary runs the gens, exactly as rustc builds rustc.
Scope
rust/crates/napl-cli/src/main.rs (dispatch) -> generated from a napl_cli prompt.
rust/napl-wasm bindings -> generated (after the G2 transport contract is ruled).
End state: zero hand-written .rs in the repo; the only human-owned inputs are .napl prompts and project config.
Sequencing
After the store rewrite (#30) activates: the store-era seam surface is the stable thing to specify. Candidate order: adapters first (most mechanical), then dispatch, then LSP/wasm.
Acceptance criteria
Every .rs file in the shipping workspace is generated from a prompt and locked 0444.
A full bootstrap cycle (pinned binary -> gen all -> build new binary -> regen check) is green with no hand edits anywhere.
The glue-seam exemption is deleted from the standing policies.
Principle (maintainer ruling)
A self-hosted toolchain is not self-hosted while any Rust is written by hand. The historical glue exemption (napl-cli dispatch, the 6 seam adapters, napl-lsp wiring, napl-wasm bindings) was pragmatic inheritance, not an endpoint. Bootstrapping does not require hand-written code - the pinned previous binary runs the gens, exactly as rustc builds rustc.
Scope
Sequencing
After the store rewrite (#30) activates: the store-era seam surface is the stable thing to specify. Candidate order: adapters first (most mechanical), then dispatch, then LSP/wasm.
Acceptance criteria
🤖 Generated with Claude Code