Record: Adopt the shared rules

Outcome

This project now pins the shared rules at 2026-10-22.5. rules.lock holds the version and a SHA-256 per vendored file, scripts/rules-check.sh verifies the copy, and tests/04-rules-pin.sh runs it in the suite.

The adoption was breaking for this project: the contract gains a non-overridable safety precedence level, file modification becomes authorization-based instead of prohibition-based, and nine capability conventions now apply.

Conformance cleared in the same change: 105 validator findings across twelve task files, four feature files, two stale rule files, and a missing AGENTS.md.

Decisions

Verification

Behavioral evidence

Not run. The six evals/ cases arrived with the adoption and none was handed to a real agent, because scoring them needs a model and a person. The adoption is mechanically verified and behaviorally unverified.

This project is live, so the gap is tracked where it will be seen: TODO.md now opens with a blocking item to run the six cases before the next dispatch, naming 02-scope-discipline (authorization replaced prohibition) and 05-acceptance-remains-human as the most exposed.

Cost finding

make test took about ten minutes, and the cause is the shared adversarial corpus, not this project: tests/10-prompt-validator.sh copies the working tree once per case (54 times), and this tree is 3.9 GB because sources/ holds ignored research evidence. That is roughly 210 GB of copying per run.

The fix belongs in the shared rules: the corpus should build each fixture from git ls-files rather than from the working tree, because the validator only ever reads tracked files. Proposed as the next version.

Commits