tests/compiler --both-settings and the yaml package ran together in one background call, and the guard tests and clippy took about 75 s. The fix itself took about 10 turns. The step that cost the most thinking was finding that the decision sits in the Rust keeps record (contracts/keeps.rs), not in the checker .nika files the brief pointed to.an_owned_parameter, then lends_in_own (lends.nika). Only its header comment says the use-walk stays in Rust, in keeps.rs. The brief could have named keeps.rs’s Item::Grammar branch, where only INPUT goes into kept. One look at the probe’s nikaia.contracts (the G::doc entry has no keeps line) showed the cause before I read any code. I also looked up the field name GrammarRule.args in ast.nika.lower-std (no lowered change); the probe and test on the new binary; tests/compiler --both-settings (424 at both settings); packages/yaml (11); the guard set with a keeps filter (156); clippy; pre-push-check.cargo test --lib contracts::keeps:: matched 0 tests. Comparing against the keep(lim) variant, which the brief asked for, was never needed: I made p2.nika and didn’t run it.keeps column. Read the callee’s keeps in the probe’s nikaia.contracts. Grammar entries get theirs in contracts/keeps.rs (Item::Grammar), not in a checker .nika.” The brief’s “decide in the checker” sent me first to the .nika files that only read that record.Also: the push was rejected because develop had moved on. commit.nika could say plainly in its output that the supervisor rebases, so a builder doesn’t wonder whether to retry.