From ed3316dcd645773eb06fa458bbbac1743e781ee1 Mon Sep 17 00:00:00 2001 From: Zero Date: Mon, 26 Oct 2026 09:34:34 -0500 Subject: [PATCH] Ornith best practices: absolute paths, small edits, exact signatures --- Model-Best-Practices/Ornith-q8-best-practices.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Model-Best-Practices/Ornith-q8-best-practices.md b/Model-Best-Practices/Ornith-q8-best-practices.md index b9a280b..66127f5 100644 --- a/Model-Best-Practices/Ornith-q8-best-practices.md +++ b/Model-Best-Practices/Ornith-q8-best-practices.md @@ -18,6 +18,9 @@ How to get real work out of Ornith 1.5-9B (Qwen3.5-based, 8-bit / Bfp8) on one T ## How to brief it - [ ] Name the exact files to read, in order. - [ ] **Give line ranges, not just names**: exact start–end lines for each function the step needs (e.g. `file.c:11966-12019`), and cap each read at ~150 lines. `grep -n` only finds where a function starts, so a name alone leads to huge reads. +- [ ] **Absolute paths only.** The agent's working directory is usually not the code repo, and the read/edit tools may not expand `~`. Relative and `~` paths cost it three failed reads and a failed edit on its first code card. +- [ ] **Small edits.** Each edit matches 1–3 lines of existing text; to add a block, match the one line it goes after. Large match blocks come out as unparseable tool calls and get dropped. +- [ ] **Give the exact signatures and where code goes** (new small file vs which line of which file). Don't make it derive an API from a giant file. - [ ] **Small files are part of the brief.** If a step's target file is over ~1,000 lines, split it first (behaviour-preserving, gated) or hand over exact ranges. - [ ] Write every rule down; it misses rules that were only said in conversation. - [ ] Every step ends in a check that is a command with the exact expected output, not "looks right".