CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

shopify-custom-data

MUST be used first when prompts mention Metafields or Metaobjects. Use Metafields and Metaobjects to model and store custom data for your app. Metafields extend built-in Shopify data types like products or customers, Metaobjects are custom data types that can be used to store bespoke data structures. Metafield and Metaobject definitions provide a schema and configuration for values to follow.

66

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

High-quality, dense guidance: a clear create-definitions → write-values → read-values workflow backed by concrete TOML and GraphQL examples, with explicit DO/DON'T guidance for checkout extensions and Functions. Weaknesses are minor — truncated GraphQL mutation bodies, no post-write verification steps, and some capitalized-emphasis padding.

Suggestions

Complete the `metafieldsSet` and `metaobjectUpsert` mutation examples (replace `{ ... }` with minimal valid selection sets) so all code blocks are copy-paste executable.

Trim redundant emphasis lines ("REMEMBER!!!", "NEVER, EVER") — each rule is already stated once in imperative form, so the repetition costs tokens without adding information.

Consider moving the checkout-extension and Shopify Functions sections into a reference file to shorten the main body, and add a brief note on verifying written values (e.g. re-query the metafield after `metafieldsSet`) as a checkpoint.

DimensionReasoningScore

Conciseness

The body is dense and imperative with almost no padding — every section delivers rules or code. Minor token waste comes from the redundant ALL-CAPS emphasis ("REMEMBER!!! ... TAKE PRECEDENCE!", "NEVER, EVER") which restates rules already stated. It is above anchor 3 because there is no conceptual over-explanation, but not a clean 5 due to the repeated emphasis lines.

4 / 5

Actionability

Concrete, near copy-paste-ready TOML and GraphQL blocks cover definitions, writes, and reads, plus checkout-extension and Functions examples. The mutation examples truncate their response bodies with `{ ... }` (metafieldsSet, metaobjectUpsert), so they are not fully executable as-is — matching 'mostly executable with minor gaps' rather than anchor 5.

4 / 5

Workflow Clarity

The three-phase sequence is explicit and unambiguous ("ALWAYS: First, create definitions" → "NEXT: demonstrate writing" → "FINALLY: demonstrate reading"), with decision guidance (TOML for 99.99% of apps, GraphQL exceptions). There are no explicit validation/verification checkpoints after writes, which keeps it below anchor 5, though these operations are not destructive or batch.

4 / 5

Progressive Disclosure

No bundle files exist; the single-file body (~195 lines) is well-organized with clear headers and includes a one-level external docs link and a named cross-skill reference ("shopify-use-shopify-cli"). The checkout-extension and Functions subsections could arguably live in a separate reference file, which is the minor organization gap separating it from anchor 5.

4 / 5

Total

16

/

20

Passed

Description

82%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description with an explicit and natural trigger clause ("MUST be used first when prompts mention Metafields or Metaobjects") and a clear, niche-scoped statement of what the skill does. Its only weakness is incomplete capability coverage — the core create/write/read workflow from the body is not reflected.

DimensionReasoningScore

Specificity

The description names the domain and a concrete action ("model and store custom data for your app") and distinguishes what Metafields vs Metaobjects do ("extend built-in Shopify data types" / "custom data types ... bespoke data structures"), but it omits key capabilities shown in the body like creating definitions, writing values, and reading values. It fits the 'names domain and 1-2 concrete actions, but not comprehensive' anchor; it is above a 2 because the actions it does state are concrete, not generic.

3 / 5

Completeness

It explicitly answers both: what ("Use Metafields and Metaobjects to model and store custom data for your app") and when ("MUST be used first when prompts mention Metafields or Metaobjects") with a concrete trigger phrase. Anti-drift check: the 'when' is not merely implied or vague as at anchor 4, so 5 is the best fit.

5 / 5

Trigger Term Quality

Strong core triggers ("Metafields", "Metaobjects", "custom data", "products or customers") that users would naturally say, with an explicit trigger clause. A few natural variants are missing (e.g. "custom fields", "Shopify custom data", "metafield definitions"), so it falls just below the comprehensive-synonyms anchor of 5.

4 / 5

Distinctiveness Conflict Risk

"Metafields" and "Metaobjects" are Shopify-specific, unambiguous niche terms with clear triggers, making conflict with other skills minimal. The audience is even narrowed to app developers.

5 / 5

Total

17

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

openai/plugins

Path

plugins/shopify/skills/shopify-custom-data/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.