2.4 KiB
Working in this repository
Standing rules for any agent here, including a lane in its own worktree.
Never
- Touch anything under
/home/joe/Development/fnm/. The author's live working copy, with an editor session attached. This repository'ssand.flnis a different file and may be edited normally. - Execute
examples/*.fln,sand.fln, or anything linking raylib. They open a window that strobes the author's desktop. Compile, emit, diff — never run. - Run
dune clean. It escapes a worktree and deletes the main checkout's_build. Rundunewith--root .from inside your own worktree. - Kill a
flan devdaemon you did not start. The author keeps one attached to their editor. - Put
Co-Authored-By, aClaude-Sessiontrailer or any watermark in a commit.
Commits
master is the trunk. Lanes work in their own worktree and never merge or push;
the dispatching session merges. A commit message is one declarative sentence
saying what is now true, not what was done.
Tests
A lane never runs the full dune test: it builds with -j 2 and runs only the
programs and test executables its change touches, one at a time, and lists them in
its report. After about five lanes merge, one tester agent runs dune test --root .
on master and fixes what broke; grep its output for FAIL, since the exit code alone
has lied. @checks (@page, @x86, @cells), @sanitize and @valgrind are
slow and run only with the author's permission. ASan misses uninitialised stack
reads; @valgrind catches them.
Evidence
Read the source, do not recall it — this repository and the reference clones
listed in docs/REFERENCES.md. Verify a brief's facts before building on them.
Records
Keep only what the code cannot say.
TODO.org— one**heading per item under a subsystem:TODOa gap,NEXTdecided and queued,WAITblocked (say on what),CANCELLEDrejected with a one-line reason so it is not re-proposed,DONEonly when the decision is not obvious from the code (two lines, what it rules out). On a merge conflict keep both sides.- The reason for non-obvious code goes in a comment beside it.
docs/BUILT.mdholds only reasoning that spans several files.- No handoff files.
Reviews
Every lane gets an independent adversarial review before it merges: build and run rather than read, measure both sides of a claimed fix, and reproduce any number a lane reports.