agent: builder model: opus max_turns: 80 budget_usd: 15 effort: medium —
Issue #1193. ADR-319 D10 and Part III 17.1 (bf3baace) decide p.parts() -> Vec[Path]: the whole parts in order, the root (Windows: prefix) first, .. as written, . only where it leads, empty parts dropped; joined again they give a name == to p; it reads no file system. M18b (docs/briefs/m18b-describe2.md.report.md) stopped at without_dots for want of it. The shared binary target/fast/nikaia may come from a private copy: set NIKAIA_SYSROOT=/home/user/Nikaia/crates on every call of it. Build your changes on a private git archive HEAD copy (/tmp/claude-0/-home-user-Nikaia/b7e2d91b-1a15-5371-a36e-8c201aeab2d2/scratchpad/b1166/flip3.sh shows how) with the shared target dir and delete the copy after.
std::fs host functions are the foreign boundary of std: parts is added exactly the way strip_prefix was in f8614268 (crates/nikaia-std/src/fs.rs host function over Path::components, the std.contracts row, a tests/compiler/tests/ program). That commit is the template; read it first. This is the supervisor’s authorization for that one host function.lower-std, check that lowered.rs’s pub mod describe export line names every new pub fn of describe.nika, and stage that line: M18b’s commits left it out and HEAD did not build.Found: the gap with a probe and Needs: supervisor decision; never write around it. A compiler defect you can fix in one small commit with a tests/compiler test, fix (at most two); else stop that piece and report it.parser.rs, tools/tree_build.nika, tools/grammar_types.nika). After lower-std, only the lowered/*.rs of your own .nika files and lowered.rs lines for them are yours; never stage another agent’s hunk (git apply --cached). If lower-std fails in a file that is not yours, wait a few minutes and run it again; after three tries report Found:.Part: #125, the last commit Fixes #1193. Self-hosting share before and after in Body: (python3 scripts/self_hosting.py | tail -n 1, measuring only). Do not regenerate badges.docs/briefs/* but your report, the uncommitted files git status shows at start, sysroot.rs, modules.rs, contracts/keeps.rs, contracts/sync.rs, keeps.nika, parser.rs, assets/badges/*. Disk is at about 4G free: no second target/.fs::Path.parts() as above, with tests/compiler/tests/fs_parts.nika and .stdout: rows /a/b, a/./b, ./a, a/../b, a//b, the empty name, and the parts joined back == to the name. Tests: nikaia test on that program and fs_canonical.without_dots, then crate_sources and crate_root (crates/nikaia/src/describe.rs) into tools/describe.nika, Rust forwards with unchanged signatures, each its own commit. Tests: cargo test --profile fast -p nikaia --test it -- describ shipped digest adopt manifest.docs/builder-facts.md first. develop in the main checkout; other agents’ uncommitted files are not yours: never touch or stage them.target/fast/nikaia run scripts/commit.nika -- REPORT (it adds exactly the report’s Files:); the driver pushes.cargo build --profile fast -p nikaia, lower-std and its fixpoint when a tools/*.nika changed, cargo fmt, cargo clippy --all-targets -- -D warnings, scripts/pre-push-check.sh, the tests the brief names and the ones your change touches.CHANGELOG.md, badges and NK codes are the supervisor’s. New tests in Nikaia only.std or the toolchain lacks stops the work, unless an ADR or Part I-III refuses it (name it): Result: blocked, Found: the gap with a probe, Needs: supervisor decision.NIKAIA_CACHE_LIMIT=2G; at the end delete your own clone’s target/ and target/release/nikaia-scratch.Result: partial with what you ruled out, the probe, and the suspected file and function./home/user/Nikaia/docs/briefs/b1193.md.report.md)Fields of docs/supervisor.md, Briefs and reports: Result, Files, Commit, Body (optional), Fixes, Pushed, Tests, Gate, Deviation, Found, Needs, Changelog, Owner (a question for the owner), Disk freed, and last Attribution: with your commit trailer lines below it.
Result:, Gate: (green or red <check>), Deviation:, Found: and the other fields with nothing to say hold the bare word: done, none. Anything after it reads as content.Deviation: only for a step of the brief built otherwise than written, or not built. Found: only for a defect outside your change. Everything else (your choices, how you solved the step, why a test’s expected output changed) goes into Body:; how you verified goes into Tests:.done <sha>, report <path> (or BLOCKED: ... / PUSH REJECTED ...).