Procurement Policy Check
Procurement Policy Check is the pre-spend decision gate. It answers one
question, is this procurement request allowed under the supplied procurement
policy, and it answers it deterministically. It never moves money; pay and
the payment rails own execution, and this skill's sealed decision is what a
caller carries into that flow.
Procedure
- Native
data.digestbinds the exact procurement request and procurement policy before any judgment. - Deterministic rules apply in order: the payee must be in
approved_payees, the request currency must match the policy currency, and the amount must fit bothremaining_budgetandrequest_cap. The first failed rule refuses with a namedrefused_reason. - An in-policy amount that reaches
approval_thresholdreturnsneeds_humanwith the policy'shuman_lane(defaultprocurement-review); approval below the threshold isapproved. - A policy missing any required authority field refuses with
missing_policy_authorityand findings; nothing is inferred or invented.
spend_executed is always false. The decision packet carries both input
digests so a downstream spend can prove which request and policy were decided.
Output
procurement_approval (runx/procurement-policy-check.approval.v1) carries decision
(approved, refused, needs_human), reason, payee, amount,
currency, ceiling_amount, human_lane, refused_reason, policy_ids,
validation, and the two digests.
Inputs are procurement_request and procurement_policy.


