Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add OrcaQubits/agentic-commerce-skills-plugins --skill acp-discount-extensiongit clone --depth 1 https://github.com/OrcaQubits/agentic-commerce-skills-pluginsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/orcaqubits/agentic-commerce-skills-plugins/acp-discount-extension)<a href="https://agentmods.dev/skills/orcaqubits/agentic-commerce-skills-plugins/acp-discount-extension"><img src="https://agentmods.dev/badge/skills/orcaqubits/agentic-commerce-skills-plugins/acp-discount-extension/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/orcaqubits/agentic-commerce-skills-plugins/acp-discount-extension"><img src="https://agentmods.dev/badge/skills/orcaqubits/agentic-commerce-skills-plugins/acp-discount-extension.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00038 | $0.00761 |
| Opus 5 | $0.00019 | $0.00380 |
| Sonnet 5 | $0.00008 | $0.00152 |
| Haiku 4.5 | $0.00004 | $0.00076 |
Grade A, and why
acp-discount-extension scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ACP Discount Extension
Before writing code
Fetch live docs:
- Web-search
site:github.com agentic-commerce-protocol rfcs discount_extensionfor the discount extension RFC - Web-search
site:github.com agentic-commerce-protocol examples discount-extensionfor discount examples - Fetch
https://developers.openai.com/commerce/specs/checkout/for how discounts interact with checkout - Web-search
site:github.com agentic-commerce-protocol spec json-schema discountfor the discount JSON schema
Conceptual Architecture
What the Discount Extension Does
The discount extension adds coupon/promo code support to ACP checkout sessions. It's a built-in extension that follows the extensions framework with independent versioning.
Extension Identity
- Name:
discount - Version: Calendar versioned (e.g.,
discount@2026-01-27) - JSONPath target:
$.CheckoutSessionCreateRequest.discountsand related locations
Three Components
- Submitted Codes — Agent sends
discounts.codes[]with discount codes the buyer wants to apply - Applied Discounts — Merchant responds with successfully applied discounts, including coupon details and monetary allocations to line items
- Rejected Codes — Merchant responds with codes that couldn't be applied, including error reasons
Discount Error Codes
When a code is rejected, the merchant returns a reason:
discount_code_expired— Code has expireddiscount_code_invalid— Code doesn't existdiscount_code_combination_disallowed— Can't combine with other active discountsdiscount_code_minimum_not_met— Cart total below minimum thresholddiscount_code_usage_limit_reached— Code has been used too many timesdiscount_code_already_applied— Code is already active on this sessiondiscount_code_user_not_logged_in— Discount requires an authenticated userdiscount_code_user_ineligible— User does not qualify for this discount
Discount Allocations
When a discount is applied, the merchant shows how the discount is distributed:
- Allocations map discount amounts to specific line items using a JSONPath
pathfield (e.g.,$.line_items[0]) - Each allocation specifies the JSONPath
pathto the target line item and the discount amount - This allows the agent to explain exactly how the discount was applied
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 78 lines · 38 tokens per session scan A 99fe0409e42d
acp-discount-extension is a skill published in the GitHub repository OrcaQubits/agentic-commerce-skills-plugins (39 stars, last pushed 4mo ago), licensed MIT. It adds 38 tokens to every session and 761 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
mppx
TypeScript SDK for the Payment HTTP Authentication Scheme. Handles 402 Payment Required flows with Tempo, Stripe, and other payment methods. Use when integrating payments or mppx into a client or server application.
seller-research
Use when researching a merchant, storefront, marketplace seller, or merchant of record for a buying decision, especially when identity, refund terms, fulfillment, counterfeit risk, domain history, or independent buyer outcomes are uncertain.
design-taste-frontend
Use for visual design direction on greenfield, user-facing surfaces — marketing and landing pages, generated apps, portfolio-style or standalone pages. NOT for routine Archestra platform UI work (dashboards, data tables, settings, forms, existing components) — use archestra-dev-frontend for that. Upstream intent…
lucid-agents
Build, modify, review, debug, or deploy TypeScript services made with the Lucid Agents SDK. Use whenever a project imports @lucid-agents packages or the user asks about Lucid runtimes, entrypoints, adapters, payments, MPP, identity, wallets, A2A tasks, service UI, scaffolding, or deployment.
managing-archestra-releases
Runs rolling beta releases, stable patches, and complete stable-line cutovers. Use when backporting fixes, cutting or retiring release branches, configuring release protections, testing artifacts, recovering failed runs, or approving releases.
archestra-dev-testing
Use when deciding whether a change needs a test and at which level — unit, backend route-level integration, MSW-backed frontend integration, or e2e — or when reviewing tests for the "fluff test" anti-pattern. Start here before archestra-dev-backend-tests or archestra-dev-e2e.