Record: Adopt the shared rules
Outcome
This project now pins the shared rules at 2026-10-22.12. rules.lock holds the version and a SHA-256 per vendored file, scripts/rules-check.sh verifies the copy, and tests/16-rules-pin.sh runs it in the suite.
The adoption was breaking: the contract gains a non-overridable safety precedence level, modification becomes authorization-based, and nine capability conventions apply. Conformance cleared 25 findings across five features and one task, and produced 85 requirement identifiers — by far the largest requirement set adopted so far.
Decisions
- Requirement identifiers had to be written, not prefixed. Four features carried their requirements as
*prose bullets with no identifiers at all, and one carried two separate## Requirementsheadings. The bullets became- \PREFIX-R###` — …:PROBE-GEN-R001–R013,BLOCK-COLLECT-R001–R029,PROBE-OBSERVE-R001–R013,PROBE-CHARACTERIZE-R001–R022, plusSITE-BUILD-R001–R008`. No requirement sentence was rewritten. - The second Requirements heading became a subsection.
## Requirements (RDAP enrichment)is now### RDAP Enrichmentinside the single## Requirementssection, so its twenty-nine bullets are part of the requirement set the validator reads rather than a section it skips. - External inputs left the feature graph in three features: the probe and block files under
dataflow.out/were listed as## Dependencies, which the validator reads as feature dependencies. They moved to## External Inputs. - Two tests were renumbered. The project had
tests/09-block-map.shandtests/10-probe-report.sh, which collided with the vendored09-prompt-contract.shand10-prompt-validator.sh— two tests numbered 09, two numbered 10, contradicting the band the sharedtests/README.mddocuments. They are now14-block-map.shand15-probe-report.sh. Only arecords/file names the old paths, and it is a record of what happened. - The pin test is
16-rules-pin.sh. Every slot in the00–09band was already taken, so the usual rule — lowest free slot in that band — had no room; the pin test took the next free number overall. PHASES.mdis declared inprompts/10-project.md.- Deleted three stale
common/files and pointed the glossary’s DELTA entry at contract section 6.
Verification
rules-conform: nothing to conform.rules-check: ok (v2026-10-22.12, 39 files, 0 deviations).make test: 17 tests, all passed.
Behavioral evidence
Not run. The six eval cases need scripts/status.sh or scripts/site-state-fetch.sh; this project carries neither, so only 01-malformed-task-refusal applies. The portability gap is recorded in 00-project-rules/documents/eval-portability.md.
What this adoption cost the library
Nothing — the fifth consecutive adoption to need no shared-rules change.
Commits
- Adoption commit — the vendored rules, conformance, and this record.