From shopify-admin-skills
Scores each Shopify product on data completeness (0–100) across description, images, SEO, weight, barcode, cost, and metafields. Outputs a ranked list of products needing the most data work.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shopify-admin-skills:shopify-admin-product-data-completeness-scoreThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Calculates a data completeness score (0–100) for each active product based on the presence of key fields: description, images, SEO title, SEO description, variant weight, barcode, cost, and specified metafields. Produces a ranked list of products needing the most data work. Read-only — no mutations. Catalog health report in a single pass.
Calculates a data completeness score (0–100) for each active product based on the presence of key fields: description, images, SEO title, SEO description, variant weight, barcode, cost, and specified metafields. Produces a ranked list of products needing the most data work. Read-only — no mutations. Catalog health report in a single pass.
shopify store auth --store <domain> --scopes read_productsread_products| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| store | string | yes | — | Store domain (e.g., mystore.myshopify.com) |
| status_filter | string | no | active | Product status to score: active, draft, or all |
| required_metafields | array | no | [] | List of namespace.key metafields that are required (e.g., ["custom.material"]) |
| format | string | no | human | Output format: human or json |
ℹ️ Read-only skill — no mutations are executed. Safe to run at any time.
| Field | Points |
|---|---|
| Description present (non-empty) | 15 |
| At least 1 image | 15 |
| SEO title present | 10 |
| SEO description present | 10 |
| At least 1 variant with barcode | 10 |
| At least 1 variant with cost | 10 |
| At least 1 variant with weight | 10 |
| All required metafields present | 20 (split evenly) |
| Total | 100 |
OPERATION: products — query
Inputs: query: "status:<status_filter>", first: 250, select all completeness fields, pagination cursor
Expected output: Products with all scored fields; paginate until hasNextPage: false
Score each product per rubric; rank ascending by score
# products:query — validated against api_version 2025-01
query ProductCompleteness($query: String!, $after: String) {
products(first: 250, after: $after, query: $query) {
edges {
node {
id
title
handle
descriptionHtml
images(first: 1) {
edges {
node {
id
}
}
}
seo {
title
description
}
variants(first: 10) {
edges {
node {
id
barcode
weight
inventoryItem {
unitCost {
amount
}
}
}
}
}
metafields(first: 20) {
edges {
node {
namespace
key
value
}
}
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
Claude MUST emit the following output at each stage. This is mandatory.
On start, emit:
╔══════════════════════════════════════════════╗
║ SKILL: Product Data Completeness Score ║
║ Store: <store domain> ║
║ Started: <YYYY-MM-DD HH:MM UTC> ║
╚══════════════════════════════════════════════╝
After each step, emit:
[N/TOTAL] <QUERY|MUTATION> <OperationName>
→ Params: <brief summary of key inputs>
→ Result: <count or outcome>
On completion, emit:
For format: human (default):
══════════════════════════════════════════════
PRODUCT DATA COMPLETENESS REPORT
Products scored: <n>
Avg score: <pct>/100
Score < 50: <n> products (need urgent attention)
Score 50–79: <n> products
Score ≥ 80: <n> products
Lowest scoring products:
"<title>" Score: <n>/100 Missing: description, SEO title
Output: completeness_<date>.csv
══════════════════════════════════════════════
For format: json, emit:
{
"skill": "product-data-completeness-score",
"store": "<domain>",
"products_scored": 0,
"avg_score": 0,
"below_50_count": 0,
"output_file": "completeness_<date>.csv"
}
CSV file completeness_<YYYY-MM-DD>.csv with columns:
product_id, title, score, has_description, image_count, has_seo_title, has_seo_description, has_barcode, has_cost, has_weight, missing_metafields
| Error | Cause | Recovery |
|---|---|---|
THROTTLED | API rate limit exceeded | Wait 2 seconds, retry up to 3 times |
| No products match filter | Empty catalog or wrong filter | Exit with 0 results |
required_metafields to your store's specific needs (e.g., custom.material for apparel, custom.ingredients for food).npx claudepluginhub 40rty-ai/shopify-admin-skills --plugin shopify-admin-skillsAudits Wix store product listings for missing descriptions, images, prices, SKUs, brands, ribbons; flags short descriptions; computes catalog health scores via REST API queries and jq.
Audits a WooCommerce store's product catalog for AI readiness, scoring completeness, schema coverage, policies, and content quality with actionable recommendations.
Scans Shopify products and variants for missing or insufficient images, flagging products with zero images or below a minimum count. Read-only audit for merchandising teams.