Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,22 @@ They land hard here: almost nothing this repo produces runs in this repo. It
emits source someone else compiles and a harness someone else supervises, so a
defect is observed one or two systems away from what caused it.

- **Prove reuse before you build.** The default answer is that the platform
already has it and your change fills a gap or adds a helper on it, so the PR
body names what you reused and what you deliberately did not. A second
mechanism for a job one seam already does is refused however clean it is. Two
tells you are reinventing: what you are writing re-answers a question an
existing seam answered, and your reason for its placement is that a
convenient loop was already there rather than that the responsibility belongs
to it.
- **Build the simplest thing that works; size is the signal.** A coding task's
budget is about **500 hand-written lines** — generated output does not count,
tests count apart — and past **2,000** the change has become a second system,
so **stop and ask the user** instead of finishing it. Two tells, checkable
before the code exists: you cannot name the one responsibility the change
adds, and it is growing to make the end goal pass rather than to put a
behaviour where it belongs. Wanting it to work licenses no means to get
there.
- **A gap in the tooling is a bug in the tooling — never a reason to reach
around it.** When a step `codefly`, core or a caller does not perform is in
the way, the answer is a capability fixed in whichever repo owns it, named in
Expand Down
Loading