CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

shopify-liquid

Liquid is an open-source templating language created by Shopify. It is the backbone of Shopify themes and is used to load dynamic content on storefronts. Keywords: liquid, theme, shopify-theme, liquid-component, liquid-block, liquid-section, liquid-snippet, liquid-schemas, shopify-theme-schemas

54

Quality

68%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./plugins/shopify/skills/shopify-liquid/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

70%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.

The body delivers an excellent, strongly gated workflow (mandatory search, validate-before-return, bounded retry loop) with concrete commands and complete Shopify-specific examples. Its weaknesses are redundancy in the workflow instructions, inlined general Liquid reference material, and several references to schemas and tools that are absent from the bundle.

Suggestions

Remove the duplicated "MANDATORY: Search/Validate" sections near the end that restate the workflow already defined in "Required Tool Calls (do not skip)".

Fix or remove dead references: schemas/section.json, schemas/theme_block.json, schemas/theme_settings.json, schemas/translations.json, and the search_docs_chunks tool are not present in the bundle.

Move the generic Liquid reference (delimiters, standard filters, forloop, global objects) into a references/ file, keeping only Shopify-specific gotchas and examples in SKILL.md.

DimensionReasoningScore

Conciseness

Most of the body is a dense, useful reference (Shopify-specific tags, gotchas, filter lists), but it is noticeably redundant: the two trailing "MANDATORY" sections restate the workflow commands and 3-retry loop already given in "Required Tool Calls", and it explains basic Liquid (assign/capture, common string/math filters, delimiters) that Claude already knows. This fits anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened') better than anchor 2, since there is no concept-explaining padding of the bad-example kind.

3 / 5

Actionability

Commands are copy-paste ready with exact flags ("scripts/search_docs.mjs \"<query>\"", validate.mjs with --model/--artifact-id/--revision), and code examples like the block example with {% doc %}/{% stylesheet %}/{% schema %} are complete and executable. It falls short of 5 due to minor gaps: placeholders require substitution (acceptable but explicit), and several referenced targets (schemas/section.json, schemas/theme_block.json, search_docs_chunks) do not exist in the bundle.

4 / 5

Workflow Clarity

The workflow is an explicit numbered sequence — search before writing, write, validate before returning, "If validation fails: search for the error type, fix, re-validate (max 3 retries)", and "Return code only after validation passes" — with two validate modes (full-app vs. stateless) and an error-message-driven recovery loop. This matches the top anchor exactly: clear sequence with explicit validation, feedback loops, and retry limits.

5 / 5

Progressive Disclosure

Headers and sections are well organized and the runtime-doc-lookup via scripts is a legitimate one-level disclosure mechanism, but the ~200-line inline Liquid reference (filters, tags, global objects) is content that belongs in a separate reference file, and references to schemas/section.json, schemas/theme_block.json, schemas/theme_settings.json, schemas/translations.json, and search_docs_chunks point at files/tools that do not exist in the bundle. This sits between anchor 2 (inline content that belongs in separate files) and anchor 3 (structured but should be split), landing at 3 because the organization itself is good.

3 / 5

Total

15

/

20

Passed

Description

51%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.

The description is a factual definition of the Liquid language rather than a statement of what the skill does and when to invoke it. It is highly distinctive and has solid keyword coverage, but it contains no skill actions and no 'Use when...' trigger clause.

Suggestions

Rewrite the opening in third person to state the skill's actions, e.g. "Generates and validates Shopify theme components (sections, blocks, snippets) with correct Liquid, schema tags, and LiquidDoc headers."

Add an explicit 'Use when...' clause covering triggers such as writing or editing Shopify theme code, Liquid templates, or .liquid files.

Add missing natural trigger terms like ".liquid", "Shopify theme development", "storefront", and "theme editor" to the keyword list.

DimensionReasoningScore

Specificity

Phrases like "Liquid is an open-source templating language created by Shopify" and "used to load dynamic content on storefronts" name the domain clearly but state zero concrete skill actions — the description defines the language rather than what the skill does (e.g., generating sections, blocks, or snippets). This matches the anchor 'Names the domain but actions are minimal or generic'; it is above score 1 because it is not entirely vague, but below score 3 because no actionable capability is listed at all.

2 / 5

Completeness

There is no 'Use when...' clause or equivalent trigger guidance, which caps completeness at 3; the 'what' is also only vague — "It is the backbone of Shopify themes" describes Liquid, not the skill's function. This fits anchor 2 ('Has a vague what and no when') better than anchor 3, whose example at least lists the skill's concrete actions.

2 / 5

Trigger Term Quality

The keyword list ("liquid, theme, shopify-theme, liquid-component, liquid-block, liquid-section, liquid-snippet, liquid-schemas") gives good coverage of what a user asking for Shopify theme work would say, including compound variants. It falls short of score 5 because natural terms like the ".liquid" file extension, "Shopify theme development", "storefront", or "template" are missing.

4 / 5

Distinctiveness Conflict Risk

"created by Shopify... backbone of Shopify themes" plus keywords like "shopify-theme" and "liquid-section" establish a clear niche (Shopify Liquid theme development) with distinct triggers and minimal overlap risk with generic web-dev or templating skills.

5 / 5

Total

13

/

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-liquid/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.