AGENTS.md: document %include path rule to prevent dos_port/ prefix mistakes

Workers were writing %include "dos_port/include/gb_memmap.inc" instead of
%include "gb_memmap.inc". NASM is invoked from dos_port/ with -I include/
so any path prefix breaks assembly silently until the build runs.

Added the rule to both the ticket format (Dispatch pre-warns workers) and
the Code Worker hard limits so it appears in two places and is impossible
to miss.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Happyarch
2026-06-20 01:47:56 -04:00
parent 0301ee9df9
commit 283ca534ad

View File

@@ -85,9 +85,24 @@ Each ticket must include:
4. `gb_memmap.inc` constants used by this function, with hex values pre-resolved
5. Any `; BUG()` / `; GLITCH:` annotations from `docs/bugs_and_glitches.md`
6. The exact `nasm -f coff -o /dev/null <file>` command to verify assembly
7. The correct include lines to paste at the top of the file (see below)
Vague tickets are not acceptable. Workers are not smart enough to look things up.
### Include path rule (copy into every ticket verbatim)
NASM is invoked from the `dos_port/` directory with `-I include/ -I .`.
Include paths must use the **short bare name only** — no directory prefix:
```nasm
%include "gb_memmap.inc" ; correct
%include "gb_macros.inc" ; correct
%include "dos_port/include/gb_memmap.inc" ; WRONG — breaks the build
%include "include/gb_memmap.inc" ; WRONG — breaks the build
```
Paste this rule into every worker ticket so it is impossible to miss.
### Dispatch rules
- Never assign two workers to the same output file simultaneously.
- Only dispatch `simple`-category jobs. If a job turns out to require hardware
@@ -243,6 +258,9 @@ if it genuinely does not apply — the parser ignores unfilled placeholders.
- Do not add `%include` lines or Makefile rules — that is Integration Agent's job.
- `call` instructions inside the translated function are expected and correct.
Do not add `call` to any *existing* file outside the scratch output.
- `%include` lines must use bare filenames only: `%include "gb_memmap.inc"`.
Never write `%include "dos_port/include/gb_memmap.inc"` or any path prefix —
NASM is invoked from `dos_port/` with `-I include/` so the prefix breaks assembly.
- If the function touches a hardware register (`$FF__`) not in the ticket, stop
and report back immediately. Do not guess.