Catches a pricing feed or AI engine publishing a price far off the last-known-good value before shoppers see it.
For: Merchandising and pricing teams on Adobe Commerce
Blocks a price update that moves more than the allowed percentage from the last approved price.
Blocks any published price at or below the item's cost basis.
Restrains a feed run that would reprice more SKUs than the batch ceiling allows.
# Adobe Commerce Price-Drift Circuit Breaker
# Fork: tune drift_ceiling_pct and batch_ceiling to your catalog size.
apiVersion: decionis.dev/v1
kind: PolicyPack
metadata:
name: adobe-commerce-price-drift-breaker
surface: adobe_commerce
workflow_key: price_publish
standards: [SOC2-CC8.1, ISO27001-A.8.34]
defaults:
mode: shadow
emit_dossier: true
drift_ceiling_pct: 25
batch_ceiling: 500
rules:
- name: drift_ceiling
when: "action == 'price.publish'"
decision: |
BLOCK IF abs(new_price - last_approved_price) / last_approved_price > drift_ceiling_pct / 100
ALLOW OTHERWISE
reason_code: price_drift_over_ceiling
- name: below_cost_block
when: "action == 'price.publish'"
decision: |
BLOCK IF new_price <= item.cost_basis
ALLOW OTHERWISE
reason_code: price_at_or_below_cost
- name: bulk_update_restraint
when: "action == 'price.bulk_publish'"
decision: |
RESTRAIN IF affected_sku_count > batch_ceiling
ALLOW OTHERWISE
reason_code: bulk_repricing_over_batch_ceiling
Fork it, change the thresholds to match your environment, and deploy in shadow mode first — it defaults to listen-only so nothing in your live pipeline changes.
Follow the install path for this surface, then paste the forked YAML as your policy config.
This recipe is one step in a path. The same five steps apply to every recipe in the exchange.
Run the policy against a realistic action in the browser. Push it past what the rules allow and watch the verdict come back. No account.
See exactly what was decided and why: the rule that fired, the evidence it read, the policy version in force, and an Ed25519 signature you can verify yourself.
Measure what the policy would have caught on your own traffic without touching the live path. Every recipe defaults to shadow, so the first deployment carries no execution risk.
Point the same policy at the system where the action actually originates — a checkout, an ERP posting, a Zap, an agent's tool call.
Publish the proof: a public verification link, an embeddable badge, a PR comment, or an anonymized shadow-mode finding. This is how the next person discovers Decionis.