Purchase Approval
Purchase Approval is the pre-spend decision gate. It answers one question, is
this purchase allowed under the supplied procurement policy, and it answers it
deterministically. It never moves money; spend 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 purchase request and procurement policy before any judgment. - Deterministic rules apply in order: the vendor must be in
approved_vendors, the request currency must match the policy currency, and the amount must fit bothremaining_budgetandsingle_purchase_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
purchase_approval (runx.purchase_approval.v1) carries decision
(approved, refused, needs_human), reason, vendor, amount,
currency, ceiling_amount, human_lane, refused_reason, policy_refs,
validation, and the two digests.
Inputs are purchase_request and procurement_policy.