ai-toolkit-rules
Mandatory engineering, security, testing, git, performance, quality, and response rules.…
E-commerce: cart, checkout, payments (Stripe/Adyen), order state, inventory, promos, tax. Triggers: cart, checkout, SKU, payment, Stripe, Shopify, Medusa, Magento, coupon, refund.
$ npx -y skills add softspark/ai-toolkit --skill ecommerce-patterns --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ecommerce-patternsContext preview
The summary Claude sees to decide when to auto-load this skill.
E-commerce: cart, checkout, payments (Stripe/Adyen), order state, inventory, promos, tax. Triggers: cart, checkout, SKU, payment, Stripe, Shopify, Medusa, Magento, coupon, refund.
name: ecommerce-patterns description: "E-commerce: cart, checkout, payments (Stripe/Adyen), order state, inventory, promos, tax. Triggers: cart, checkout, SKU, payment, Stripe, Shopify, Medusa, Magento, coupon, refund." effort: medium user-invocable: false allowed-tools: Read
| Scenario | Platform | |----------|----------| | Enterprise B2B | OroCommerce | | Enterprise B2C | Magento 2 | | Mid-market | Shopify Plus | | Small business | WooCommerce, PrestaShop | | Custom/Headless | Medusa, Saleor |
---
app/code/Vendor/Module/ ├── Api/ │ └── Data/ │ └── EntityInterface.php ├── Block/ ├── Controller/ │ └── Index/ │ └── Index.php ├── etc/ │ ├── module.xml │ ├── di.xml │ ├── routes.xml │ └── frontend/ ├── Model/ │ └── ResourceModel/ ├── Setup/ ├── view/ │ └── frontend/ │ ├── layout/ │ └── templates/ ├── registration.php └── composer.json
<!-- etc/di.xml -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Vendor\Module\Api\ServiceInterface" type="Vendor\Module\Model\Service"/>
<type name="Vendor\Module\Model\Service">
<arguments>
<argument name="logger" xsi:type="object">Psr\Log\LoggerInterface</argument>
</arguments>
</type>
</config>type Query {
customProducts(
search: String
pageSize: Int = 20
currentPage: Int = 1
): CustomProductOutput @resolver(class: "Vendor\\Module\\Model\\Resolver\\Products")
}---
Empty → Has Items → Checkout Started → Payment → Order Placed
↑ ↓
└──── Abandoned ←────┘1. Cart Review 2. Shipping Address 3. Shipping Method 4. Payment Method 5. Order Review 6. Place Order 7. Confirmation
Base Price - Catalog Discounts = Adjusted Price × Quantity = Line Total + Tax (if exclusive) = Line Total with Tax Σ All Lines = Subtotal + Shipping - Cart Discounts = Grand Total
---
class InventoryService:
def reserve_stock(self, product_id: str, qty: int) -> bool:
"""Reserve stock during checkout."""
with transaction.atomic():
stock = Stock.select_for_update().get(product_id=product_id)
if stock.available >= qty:
stock.reserved += qty
stock.available -= qty
stock.save()
return True
return False
def confirm_stock(self, reservation_id: str):
"""Confirm reservation after order placed."""
reservation.status = 'confirmed'
reservation.save()
def release_stock(self, reservation_id: str):
"""Release stock if order cancelled."""
# Return reserved qty to available-- Stock per warehouse
SELECT
p.sku,
w.name as warehouse,
s.quantity,
s.reserved
FROM stock s
JOIN products p ON s.product_id = p.id
JOIN warehouses w ON s.warehouse_id = w.id
WHERE p.sku = 'SKU-123';---
Product → Indexer → Search Index (Elasticsearch/OpenSearch)
→ Price Index
→ Category Index
→ Stock Index{
"aggs": {
"categories": {
"terms": { "field": "category_ids" }
},
"price_ranges": {
"range": {
"field": "price",
"ranges": [
{ "to": 50 },
{ "from": 50, "to": 100 },
{ "from": 100 }
]
}
},
"brands": {
"terms": { "field": "brand" }
}
}
}---
| Layer | Cache | |-------|-------| | Page | Varnish, CDN | | Block | Redis | | Query | MySQL Query Cache | | Full Page | Redis FPC |
AI coding toolkit with machine-enforced safety, 116 skills, 44 agents, lifecycle hooks, persona presets, opt-in plugin packs, and benchmark tooling.
Repo: softspark/ai-toolkit
Mandatory engineering, security, testing, git, performance, quality, and response rules.…
Searches past coding sessions for observations, decisions, context. Triggers: mem-search,…
Accessibility validator: WCAG 2.1 AA, EN 301 549, EAA. Triggers: a11y, accessibility, WCAG,…
Creates new specialized agents with frontmatter, tools, delegation. Triggers: new agent,…
Analyzes code quality, complexity, patterns across codebase. Triggers: quality report,…
API design: naming, versioning, pagination, idempotency, OpenAPI, error contracts and safe…