Run the complete active catalog only when a full, comprehensive or all-checks audit is explicitly requested. Use $core-shopify-audit for unqualified audits. Named Checks/categories may narrow this catalog only without an authoritative host-persisted selection.
Provide one HTTP(S) live storefront URL. Repository, GitHub, Shopify and Google Analytics evidence is optional; bind each available source to the store and block only decisions that require missing evidence. Keep the declared integration boundary.
Run the audit
Read the operating contract, reporting contract and Check evaluation workflow. Evaluate each selected Check in bounded batches with direct evidence and one terminal outcome. A full run evaluates every active Check; honor the host-persisted catalog. The Checks are not installed with this skill: read them through the Store Skills project MCP (find_checks and read_page), and stop with the workflow's setup message when those tools are unreachable.
Load supporting procedures only as needed:
- Browser testing, shopping journeys and debugging for shared evidence and source attribution.
- Repository discovery, tool routing and connected data for available evidence capabilities.
- Competitor comparison and customer research for relevant supporting context.
- Performance testing, funnel investigation and landing-page comparison for selected Checks that need them.
- PIE prioritization for supported opportunities.
Reuse compatible supplied reports. Standalone metrics belong to $report-shopify-performance; funnel trends and experiment readouts belong to $report-shopify-funnel. Use those skills only when separately requested and installed. Do not run them automatically or import their catalogs. Collect each selected Check’s evidence locally; those skills are not dependencies.
Use host capabilities permitted for the task. Consume an already prepared preview; $preview-shopify-theme handles setup and its references/tools/local-storefront.md#evidence-and-report-use defines simulation limits. Do not install packages or start servers during evaluation. Keep evaluation read-only except approved disposable anonymous-cart and fictional guest-checkout state; stop at payment options. Do not publish, purchase, message, enter payment or mutate customer data.
Return results
Return action-only Issues, comparable Changes when supported, every selected Check and shared Limitations. Keep Findings empty. Each Issue and its failed Checks share one canonical category: Experience, Accessibility, Discoverability or Technical. Match category IDs to Check metadata/folders; surface and subcategory labels are not report categories.
Follow Glue JSON output: save, validate and read back the complete report.json. After every local audit, follow local audit results to open the bundled localhost viewer, then link its URL and JSON artifact with a readable summary of every Issue. Presentation needs Python 3.9+, command execution and a persistent process; unavailable capabilities leave the saved report usable and do not change Check outcomes. Use the bundled schema unless the host supplies one. In Glue, return the bare object through its runtime; Glue handles storage and rendering without starting this viewer.
Authenticated account inspection requires both declared secrets and protected, target-bound handling. In Glue, add [use-report-secrets] only to the guarded browser task that needs them; other hosts use an equivalent protected capability. Never request, log or return secret values. Without protected handling, block account-only evidence unless another authorized source proves it.
Host integration
{
"schemaVersion": 2,
"goal": "Identify evidence-backed Shopify changes that should be acted on.",
"context": [
{ "id": "target_repository", "label": "Repository", "type": "repository", "required": false },
{ "id": "target_url", "label": "Storefront URL", "type": "url", "required": true }
],
"integrations": [
{ "toolkit": "github", "label": "GitHub", "required": false },
{ "toolkit": "shopify", "label": "Shopify", "required": false },
{ "toolkit": "google_analytics", "label": "Google Analytics", "required": false }
],
"categories": [
{
"id": "experience",
"label": "Experience",
"subcategories": [
{ "id": "account", "label": "Account" },
{ "id": "cart", "label": "Cart" },
{ "id": "checkout", "label": "Checkout" },
{ "id": "collection", "label": "Collection" },
{ "id": "content", "label": "Content" },
{ "id": "cross-surface", "label": "Cross-surface" },
{ "id": "homepage", "label": "Homepage" },
{ "id": "navigation", "label": "Navigation" },
{ "id": "product-page", "label": "Product page" },
{ "id": "search", "label": "Search" }
]
},
{
"id": "accessibility",
"label": "Accessibility",
"subcategories": [
{ "id": "checkout", "label": "Checkout" },
{ "id": "cross-surface", "label": "Cross-surface" },
{ "id": "product-page", "label": "Product page" },
{ "id": "search", "label": "Search" }
]
},
{
"id": "discoverability",
"label": "Discoverability",
"subcategories": [
{ "id": "collection", "label": "Collection" },
{ "id": "content", "label": "Content" },
{ "id": "cross-surface", "label": "Cross-surface" }
]
},
{
"id": "technical",
"label": "Technical",
"subcategories": [
{ "id": "implementation", "label": "Implementation" },
{ "id": "performance", "label": "Performance" },
{ "id": "reliability", "label": "Reliability" }
]
}
],
"batches": [
{ "id": "experience", "label": "Experience checks", "categoryIds": ["experience"] },
{ "id": "accessibility", "label": "Accessibility checks", "categoryIds": ["accessibility"] },
{ "id": "discoverability", "label": "Discoverability checks", "categoryIds": ["discoverability"] },
{ "id": "technical", "label": "Technical checks", "categoryIds": ["technical"] }
],
"reporting": {
"allowedResultTypes": ["issue", "change"],
"data": []
},
"completionRules": [
"Every selected active Check reaches exactly one terminal outcome.",
"Every failed check references exactly one same-category Issue.",
"Full runs evaluate every active check in all four categories."
],
"safetyRules": [
"Keep the audit read-only except for approved disposable anonymous cart and fictional guest-checkout state.",
"Never enter payment, activate a wallet, submit payment, place an order, publish, message, or mutate customer data."
]
}
[
{
"id": "account-email",
"label": "Test account email",
"type": "email",
"required": false,
"description": "Email for an authorized read-only storefront test account."
},
{
"id": "account-password",
"label": "Test account password",
"type": "password",
"required": false,
"description": "Password for the same authorized storefront test account."
}
]