Bind the declaration to a narrow scope
Record a repository reference, full revision, fixture text, and SHA-256 digest in the same synthetic declaration. Require a synthetic contact/purpose/channel tuple, authoritative preference source, two declared preparation routes, a hold when the current preference is unknown, and a hold for the withdrawn-preference fixture state.
| Declaration | It does not prove |
|---|---|
| Digest-bound fixture text | A production repository was inspected |
| Source and route inventory | Every sender has the same behavior |
| Fail-hold rule | A real message was stopped |
| Reviewer field | A human approved the change |
Run the local gate
node --test sites/odexing.com/evidence/P237/preference-suppression-gate.test.mjs
The gate was exercised on Node.js 22.18.0. It rejects altered fixture text, a non-synthetic boundary, a repository, revision, or scope that is not bound to the declared text, missing route reconciliation, and any declared unknown preference or withdrawn preference rule other than exact hold, including a contradictory declared send rule. It also rejects a missing reviewer or rollback. It neither reads a repository nor evaluates policy semantics beyond those declared fixture rules; it does not call a provider. A passing declaration is only enough to start human review.
Review the actual route map
Ask the policy owner and platform maintainer to identify authoritative input, allowed purpose/channel scope, all preparation routes, queued-work behavior, correction, and rollback for the real environment. Keep the change out of merge when any route or scope is inferred. For a broader authorization-change gate, see Gate an Agent-Generated Authorization Change Before Merge. This gate does not determine a lawful basis, classify communications, or approve a merge.
Verify before human review
- Run the digest-bound synthetic gate against the declared fixture.
- Ask a named platform maintainer to inspect the real scope, route map, holds, correction path, and rollback.
- Do not merge when any source, route, or fail-hold rule is inferred.
The local gate does not inspect a production repository or approve a sender-policy change.