Refund Decision Skill
Purpose
This SkillRun capsule turns a refund request into an auditable decision. It is
safe for an agent to call when the agent needs a policy decision, not when it
needs to move money or trigger an external refund.
SOP
- Confirm the request has an
order_id, positive amount, supported
reason, and known customer_tier.
- Reject invalid input through schema validation before business logic runs.
- Apply the approval boundary before returning any approval.
- For refunds above 500, require
manager_approval_id.
- Produce a structured decision and a markdown receipt artifact for audit.
- Never treat stdout as the business result.
Approval Boundary
- Amounts from 1 to 500 can be approved by policy when the reason is supported.
- Amounts above 500 require
manager_approval_id.
- The capsule only returns a decision. It does not move money, call payment
systems, email customers, or mutate external state.
Required Context
order_id: non-empty order identifier.
amount: positive integer amount in the team's minor currency unit.
reason: one of damaged, duplicate, or wrong_item.
customer_tier: standard, gold, or enterprise.
manager_approval_id: required when amount is above 500.
Recovery Guidance
If the action returns PolicyViolation, ask the user for the missing approval
or context before retrying. If it returns ValidationError, ask for a supported
reason, positive amount, and non-empty order id.
Prohibited Behavior
- Do not move money from this capsule.
- Do not approve unsupported refund reasons.
- Do not bypass the approval boundary for high-value refunds.
- Do not infer success from stdout or logs.
1---2name: refund3description: Refund Decision Skill4---5# Refund Decision Skill67## Purpose89This SkillRun capsule turns a refund request into an auditable decision. It is10safe for an agent to call when the agent needs a policy decision, not when it11needs to move money or trigger an external refund.1213## SOP14151. Confirm the request has an `order_id`, positive `amount`, supported16 `reason`, and known `customer_tier`.172. Reject invalid input through schema validation before business logic runs.183. Apply the approval boundary before returning any approval.194. For refunds above 500, require `manager_approval_id`.205. Produce a structured decision and a markdown receipt artifact for audit.216. Never treat stdout as the business result.2223## Approval Boundary2425- Amounts from 1 to 500 can be approved by policy when the reason is supported.26- Amounts above 500 require `manager_approval_id`.27- The capsule only returns a decision. It does not move money, call payment28 systems, email customers, or mutate external state.2930## Required Context3132- `order_id`: non-empty order identifier.33- `amount`: positive integer amount in the team's minor currency unit.34- `reason`: one of `damaged`, `duplicate`, or `wrong_item`.35- `customer_tier`: `standard`, `gold`, or `enterprise`.36- `manager_approval_id`: required when `amount` is above 500.3738## Recovery Guidance3940If the action returns `PolicyViolation`, ask the user for the missing approval41or context before retrying. If it returns `ValidationError`, ask for a supported42reason, positive amount, and non-empty order id.4344## Prohibited Behavior4546- Do not move money from this capsule.47- Do not approve unsupported refund reasons.48- Do not bypass the approval boundary for high-value refunds.49- Do not infer success from stdout or logs.