From loops
Use this skill whenever LMX is used, produced, reviewed, migrated, or modified. This includes composing campaigns, loops, lifecycle emails, or email-message bodies for the Loops editor or Content API. LMX (Loops Markup Language) is the format used for Loops email content. Trigger on phrases like "create a campaign", "generate an email", "write a welcome email", "draft a lifecycle email", "build an email template", "create an onboarding email", "copy this into LMX", "migrate this email", "convert this email to LMX", "design a new Loops email", "use imagegen for a Loops email", "use gpt-image for an LMX reference", "visual reference for a Loops email", "LMX", "Loops email", or any request to produce, copy, migrate, convert, review, or modify email body content intended for Loops. For net-new emails or major visual redesigns, follow this skill's Net-New Email Design Flow before generating or sourcing new visual assets. Source copy, existing HTML, MJML, Markdown, screenshots, and migration instructions do not bypass this skill's rules unless the user explicitly overrides a specific rule. Do not trigger for questions about the Loops HTTP API, SDK integration, or CLI unless email body content is also involved.
How this skill is triggered — by the user, by Claude, or both
Slash command
/loops:loops-lmxThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill helps write, review, and generate correct LMX email markup for Loops. LMX is an XML-based format: every element is a PascalCase tag, self-closing tags require `/>`, and only the tags in the spec are valid.
This skill helps write, review, and generate correct LMX email markup for Loops. LMX is an XML-based format: every element is a PascalCase tag, self-closing tags require />, and only the tags in the spec are valid.
Use this skill when the task involves:
When this skill is active:
references/lmx-spec.md for the full tag and attribute reference. It is authoritative; do not invent tags or attributes.references/lmx-design-guidelines.md for Loops design guidelines. Apply these to every document you generate unless the user explicitly overrides a rule.Tag definitions, required/optional attributes, nesting rules, content types, variable syntax, self-closing requirements, or escaping:
Read references/lmx-spec.md
Color contrast, spacing, column rounded corners, Style tag usage, visual hierarchy, or any "how should this look" question:
Read references/lmx-design-guidelines.md
Net-new email design, substantial redesigns, or gpt-image/imagegen references:
Read references/lmx-design-guidelines.md, especially the Net-New Email Design Workflow and Reference-to-Render QA sections. Use the imagegen skill in Codex only when a suitable Loops-native or user-provided reference is not available and the task still needs a visual reference.
Creating campaigns, posting LMX via the API, revision IDs, themes, components, or image uploads:
Use the loops-api skill (HTTP) or loops-cli skill (terminal). This skill covers the LMX document itself.
Use this flow when creating a brand-new campaign, lifecycle, workflow, or transactional email, or when the user asks for a substantial visual redesign.
references/lmx-design-guidelines.md.imagegen/gpt-image reference only when the task still needs visual exploration.Style, Section, Columns, Paragraph, H1, H2, H3, Button, dividers, checklist rows, and simple image placeholders.Section cards, and shared-background Columns where appropriate.{contact.*} for campaigns and workflow emails; {event.*} for workflow emails when the value comes from the triggering event; {data.*} only for transactional emails.Before returning any LMX output, verify:
/> (e.g. <Image />, <Divider />, <Br />, <Icon />, <Style />)& as &, < as <, and " in attributes as "src on <Image />, componentId on <Component>, name on <Icon />, and href on <Link><Button href>, <Link href>, <Image alt/href/dynamicSrc>, and <Section href>{contact.apiName}; workflow emails use {contact.apiName} and/or {event.propertyName}; transactional emails use {data.variableName} (not unprefixed {variableName} or {DATA_VARIABLE:...})<Button> text has no inline tags, but can contain variables; include href for clickable CTA buttons<CodeBlock> treats braces literally<Style /> appears at most once as a top-level tag; put it first in generated outputthemeId or explicit bodyColor/backgroundColor plus bodyXPadding/bodyYPadding when needed<H1>, <H2>, and <H3> text does not end with a period; question marks or exclamation points are used only when intentional<H1>, only necessary <H2> breaks, and <H3> only for real nested hierarchy<Button> text is concise, action-oriented, and does not end with a period<Section> is used sparingly for callouts, grouped controls, linked groups, or an explicit card-style layout; ordinary body copy is not wrapped into many floating cards by default<Section> siblings are separated with a line-break spacer unless the user explicitly specifies a different section-spacing approachblockColor paragraphs, columns, and sections, are separated with visible vertical space unless they are intentionally one connected card<Columns> has two to four <ColumnItem> children, with widths matching the column count when providedsrc plus dynamicSrc, not variables in src<Icons color> uses one of #000000, #808080, or #ffffff; <Icon> has no color attrnpx claudepluginhub loops-so/skills --plugin loopsDesigns HTML email templates for transactional, marketing, newsletters, and onboarding emails, guiding through discovery, layout, and constraints like dark mode and ESPs.
Drafts and designs complete HTML email newsletters from a topic or brief. Outputs paste-ready table-based HTML with inline styles for major email platforms.
Use this skill whenever the user wants to integrate Loops from application code, backend services, webhook handlers, or server-side automation. This includes the Loops HTTP API and official SDKs for server-side contact, contact-property, mailing-list, event, API-key-validation, transactional-email, content editing (campaigns, campaign groups, transactional groups, audience segments, email messages, themes, and components), and workflow graph/node inspection and mutation. Trigger on phrases like "Loops API", "Loops SDK", "create a campaign via API", "update email message LMX", "create a workflow via API", "add a workflow node", "send a Loops event from my app", "add a contact to Loops in a webhook", "send a transactional email from backend code", or any time the user wants to integrate Loops into their app, backend, webhook, or automation. Do not trigger for CLI or shell-only requests.