resolve_drift is the answer, and the answer changes what happens next: the gate, the map and the digest all read it. (They did not always — three separate layers once recorded verdicts the enforcement side ignored. That is fixed, and tested.)
Actions on an anchor
Actions on a proposal
Withcandidate_id (from recall({ dream: true })) instead of anchor_id:
A
rationale is required and should reference the North Star. (Absorbs the old resolve_proposal.)
Parameters
Which dismiss?
Two different verdicts hide behind “dismiss”:- “This detection was wrong, the rule is right.” →
dismisswithgate: false. Example: an anchor forbidding destructive migrations matched a comment inmigrate.ts. Close the edge; keep watching forALTER TABLE … DROP. - “This word will never be a real hit for this anchor.” →
dismisswithhit_term. Example: a product name that appears in file paths. The anchor’s other signals keep working. - “This anchor should stop bothering me at the gate.” →
dismisswith nohit_term. The map still shows it; the gate ignores it.
Example: you changed your mind
mongoose for #12 — and starts watching #19’s signals instead.