Open and answer this issue on GitHub.
blocked · opened 2026-10-28 · updated 2026-11-02 · 0 comments
agent: builder model: opus max_turns: 120 budget_usd: 25 —
Blocked by #921 (the package’s new place), #922 (std entries) and #920 (spawns). The per-part table with file:line ranges and the reasons is docs/bootstrap.md, section 1, crates/orchestrator.
Owner, 2026-10-28: the orchestrator is completely Nikaia, or each Rust part has a concrete reason. Verdict: every part moves; the crate is deleted. What stays Rust is outside it: the std entries of #920/#922 (std glue by design) and the toml reading of nikaia.lock and Cargo.lock (cache.rs:216-240 Lockfile::load, project.rs:726-770 resolved_versions) through the compiler’s manifest.rs adapter, which already holds toml::Value for nikaia.toml (row grows by about 40 lines). lib.rs (Cli, LanguageFrontend, Orchestrator) has no caller: deleted. The artifact store’s JSON (cache.rs:559, :587) is our own format: written and read in Nikaia.
Destination: crates/nikaia-compiler/src/orchestrator_cache.nika, orchestrator_project.nika (prefix rule); Rust callers in crates/nikaia call nikaia_compiler::orchestrator_*.
cache.rs:32-1154 into orchestrator_cache.nika (~700 code lines); the process-wide HELD/ADDED become a value the driver keeps; cache.rs tests (1156-1774) become tests/compiler programs where crates/nikaia/tests/it/cache.rs does not cover them, else deleted.project.rs:35-813 into orchestrator_project.nika (~500 code lines); the rustc --version memo becomes the caller’s; tests 815-1230 as in step 1.crates/orchestrator (workspace member, dependency of crates/nikaia); its rows in scripts/bootstrap-adapters.txt go.Cut each step 400-600 lines (two briefs for O1 if needed), Cut: lines per brief.
The report form of docs/architect.md, Briefs and reports.