$npx -y skills add 40RTY-ai/shopify-admin-skills --skill shopify-admin-agentic-readiness-auditScore how findable, readable, and recommendable the store's catalog is to AI shopping agents — then route each gap to the agentic skill that fixes it.
| 1 | ## Purpose |
| 2 | Runs a store-side "Agentic Commerce Readiness" scan — the same questions the public **agentiq.report** audit asks, but answered from inside the Shopify Admin with full catalog data. It scores whether AI shopping agents (ChatGPT, Gemini, Perplexity, agentic checkout) can FIND, READ, and RECOMMEND the store's products, then prints a prioritized gap list where **every gap names the sibling `agentic` skill that fixes it**. Read-only — it changes nothing. Use it first (and on a schedule) to decide which remediation skills to run. |
| 3 | |
| 4 | ## Prerequisites |
| 5 | - Authenticated Shopify CLI session (`shopify auth login --store <domain>`) |
| 6 | - Required API scopes: `read_products`, `read_files`, `read_content` (themes), `read_online_store_pages` |
| 7 | |
| 8 | ## Parameters |
| 9 | All skills accept these universal parameters: |
| 10 | |
| 11 | | Parameter | Type | Required | Default | Description | |
| 12 | |-----------|--------|----------|---------|-------------| |
| 13 | | store | string | yes | — | Store domain (e.g., mystore.myshopify.com) | |
| 14 | | format | string | no | human | Output format: `human` (default) or `json` | |
| 15 | | dry_run | bool | no | false | No-op here — this skill never mutates | |
| 16 | |
| 17 | Skill-specific parameters: |
| 18 | |
| 19 | | Parameter | Type | Required | Default | Description | |
| 20 | |-----------|------|----------|---------|-------------| |
| 21 | | sample_size | int | no | 250 | How many products to sample for the catalog-data checks | |
| 22 | | min_description_chars | int | no | 120 | Threshold below which a description counts as "thin" | |
| 23 | |
| 24 | ## Workflow Steps |
| 25 | |
| 26 | 1. **OPERATION:** `shop` — query |
| 27 | **Inputs:** none |
| 28 | **Expected output:** Shop name, primary domain, social `sameAs` links, and policy presence — feeds the identity + policy checks. |
| 29 | |
| 30 | 2. **OPERATION:** `themes` — query |
| 31 | **Inputs:** `roles: [MAIN]`, then `theme.files(filenames: ["templates/robots.txt.liquid", "layout/theme.liquid", "assets/llms.txt", "templates/llms.txt.liquid"])` |
| 32 | **Expected output:** Whether the published theme allows AI crawlers (robots), ships an Organization JSON-LD block, and serves an llms.txt — feeds discovery + identity checks. |
| 33 | |
| 34 | 3. **OPERATION:** `metafieldDefinitions` — query |
| 35 | **Inputs:** `ownerType: PRODUCT` |
| 36 | **Expected output:** Which structured attributes are defined (material, specs, features) — feeds the metafield-coverage check. |
| 37 | |
| 38 | 4. **OPERATION:** `products` — query (paginate to `sample_size`) |
| 39 | **Inputs:** `first: 250`, fields: `descriptionHtml`, `category`, `media`, `metafields`, `variants{ barcode, sku, price }` |
| 40 | **Expected output:** Per-product completeness — description length, image alt-text coverage, barcode/GTIN presence, category assigned, metafield population. |
| 41 | |
| 42 | 5. **OPERATION:** `files` — query |
| 43 | **Inputs:** `first: 50`, `query: "media_type:IMAGE"` (sample) — corroborate alt-text coverage at the file level. |
| 44 | **Expected output:** Alt-text fill rate across product media. |
| 45 | |
| 46 | 6. **COMPUTE (no API):** roll the findings into a 0–100 readiness score across five pillars — **Discoverable** (robots/llms.txt), **Trusted** (Organization schema, sameAs, policies), **Readable** (descriptions, alt text, JSON-LD fields), **Structured** (metafields, category, barcodes), **Matchable** (title/tag/metafield richness for intent) — and map each failing pillar to its fix skill. |
| 47 | |
| 48 | ## GraphQL Operations |
| 49 | |
| 50 | ```graphql |
| 51 | # shop:query — validated against api_version 2025-01 |
| 52 | query AgenticReadinessShop { |
| 53 | shop { |
| 54 | name |
| 55 | myshopifyDomain |
| 56 | primaryDomain { url } |
| 57 | contactEmail |
| 58 | shopPolicies { type body url } |
| 59 | } |
| 60 | } |
| 61 | ``` |
| 62 | |
| 63 | ```graphql |
| 64 | # themes:query — validated against api_version 2025-01 |
| 65 | query AgenticReadinessTheme { |
| 66 | themes(first: 1, roles: [MAIN]) { |
| 67 | nodes { |
| 68 | id |
| 69 | name |
| 70 | files(filenames: [ |
| 71 | "templates/robots.txt.liquid", |
| 72 | "layout/theme.liquid", |
| 73 | "assets/llms.txt", |
| 74 | "templates/llms.txt.liquid" |
| 75 | ]) { |
| 76 | nodes { |
| 77 | filename |
| 78 | body { |
| 79 | ... on OnlineStoreThemeFileBodyText { content } |
| 80 | } |
| 81 | } |
| 82 | } |
| 83 | } |
| 84 | } |
| 85 | } |
| 86 | ``` |
| 87 | |
| 88 | ```graphql |
| 89 | # metafieldDefinitions:query — validated against api_version 2025-01 |
| 90 | query AgenticReadinessMetafieldDefs { |
| 91 | metafieldDefinitions(first: 100, ownerType: PRODUCT) { |
| 92 | edges { node { namespace key name type { name } } } |
| 93 | } |
| 94 | } |
| 95 | ``` |
| 96 | |
| 97 | ```graphql |
| 98 | # products:query — |