Ornith best practices: absolute paths, small edits, exact signatures

This commit is contained in:
2026-10-26 09:34:34 -05:00
parent f9037b9fda
commit ed3316dcd6
@@ -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 ## How to brief it
- [ ] Name the exact files to read, in order. - [ ] 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. - [ ] **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. - [ ] **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. - [ ] 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". - [ ] Every step ends in a check that is a command with the exact expected output, not "looks right".