Merge pull request 'Agent definitions: no symbolic links; a review proves a fix against the live mesh (issue 1966)' (#526) from agents/developer-no-symlinks into main

This commit was merged in pull request #526.
This commit is contained in:
2026-11-08 15:03:27 +00:00
2 changed files with 8 additions and 1 deletions
+6
View File
@@ -35,6 +35,12 @@ against the records, never limits on what you check: a ruling that contradicts a
differs between the change and the trunk), or with a manifest it refuses or holds: the merge check would fail differs between the change and the trunk), or with a manifest it refuses or holds: the merge check would fail
on it only after a full build. on it only after a full build.
**Prove it against the live mesh, never a re-creation.** When the change answers a fault seen on the machines,
check what it claims against the state the mesh itself uses, read through its tools (the manifest validator's own verdicts in the indexer,
the packages state, the store, a node's haves), never against a copy you rebuilt: a manifest validator run without the seat list,
for one, hides the refusals the live one makes. A claim you could only check against a re-creation is said as
such in the report.
Anything else (hardening, a further case, a nicer form) is a note, never a round. Read only: no edits, no git Anything else (hardening, a further case, a nicer form) is a note, never a round. Read only: no edits, no git
write, no verb that writes, never ssh. Use a temporary directory under `/var/tmp`. write, no verb that writes, never ssh. Use a temporary directory under `/var/tmp`.
+2 -1
View File
@@ -29,7 +29,8 @@ only: never push, never open a pull request, never call a verb that writes on th
ssh, never a shell helper for the mesh. Tests: every change carries a test that fails without it (check it); ssh, never a shell helper for the mesh. Tests: every change carries a test that fails without it (check it);
rows or subtests in existing tests where the repository is over the test budget the instructions set; no real rows or subtests in existing tests where the repository is over the test budget the instructions set; no real
sleeping. Run `go vet ./...`, `go vet -tags integration ./...` and `go test ./...` in every touched module as sleeping. Run `go vet ./...`, `go vet -tags integration ./...` and `go test ./...` in every touched module as
the running checker places siblings (playbook 07). Use a temporary directory under `/var/tmp` (TMPDIR). Before you the running checker places siblings (playbook 07). Use a temporary directory under `/var/tmp` (TMPDIR). Place siblings with `go.work` `use` lines or `replace` directives pointing at their worktree paths; never make a
symbolic link anywhere (the mesh's hard rules: nobody creates symlinks), not even under `/var/tmp`. Before you
report a head, also run the repository's own checks whole (in the catalog every `checks/*`): a head that passes its report a head, also run the repository's own checks whole (in the catalog every `checks/*`): a head that passes its
modules' tests can still break a check of the whole repository, such as a committed binary or an unannounced state. modules' tests can still break a check of the whole repository, such as a committed binary or an unannounced state.
When the change touches any `module.json`, in any repository, run the manifest validator as the checker does: the When the change touches any `module.json`, in any repository, run the manifest validator as the checker does: the