ci / vet-and-test (pull_request) Successful in 38s
Why: User rulings 4 plus the P3 live evidence. The base library taught layout standards but not how to work: no planning discipline (plan tool used in 2 of 31 tool runs), no retry-escalation rule (same failing call retried verbatim), no check-API-first rule (phantom API calls), and nothing about edit granularity - the P3 after-run showed one turn of 27 single-line edits plus a self-review spiral (117 tools). The final-reply rewrite layer sees only 160-char summaries and fabricated chapters/promised unfinished work; with the transcript now authoritative the working model already has full evidence, so per ruling 4 the rewrite defaults off (kept as fallback when a work loop ends with no user-facing text at all, plus opt-in setting). Changes: new base.method module (plan-first for 3+ steps, switch approach after two failures, check API signatures before scripting, batch edits with multi_edit, persist to completion - never end on a promise, trace numbers/ dates/names back to source material or mark speculation, honest final report); tool-description overrides for read_file/edit_file/grep/glob/ run_python/run_shell (dedicated tools over cat/sed, build pipeline for Word); plan reminder now also nudges once when NO plan exists after several tool turns (ignorable, once per run); runtime.composeFinal default true->false with empty-body fallback. Evidence: SELF - TestPlanlessNudgeFiresOnce (fires once, never repeats), TestResolveSystemDefaultBase updated for the ninth base block; go vet + go test ./... pass; live before/after on the golden task set recorded on the phase04 task card per the policy clause. Impact: Behavior-surface change only; no contract or storage changes.