Work completed 2026-10-18 · written up 2026-10-19.
The Foundry scaffold committed lib/ submodules, and the pre-review rails opened every changed path as a file and threw EISDIR [refusal:2060]
A diff can contain folders, so any rail that reads changed paths has to skip gitlinks
Step 2 and the pre-review rails now skip mode-160000 entries
On the hts-specs job the rails ran gh compare against main, a branch the fork does not have, so every run returned 404 whatever the code was [landed:1497]
Never assume the branch name; read the fork's default branch
The rails and the PR opener now use the fork's default branch
Forge wrote foundry.lock during the build, and the authority rail refused a span no builder wrote [refusal:2065]
Files a tool writes on its own, like foundry.lock, medusa.json or a gitignored uv.lock, are not the builder's edits
Forge's lock file is dropped before pre_review, the fizz seat may write its root outputs, and the fence check ignores gitignored untracked files
A director ruling barred uv run and asked for a delete the no-shell seat cannot do, so every round ran into the build cap [refusal:2052]
A ruling has to fit what the seat is allowed to run
The next ruling allowed uv run --no-project, and seats can now delete files through ## Deleted
The fizz generator job was held twice for a missing null_check.py after the score step had already been fixed to skip it [landed:1484]
Check main before holding a job on a fault
None yet: a hold's reason is not checked against main