From statamic-dev
This skill should be used when the user asks to "create a blueprint", "generate blueprint", "define fields", "blueprint YAML", "add fields to blueprint", or wants to generate Statamic blueprint YAML from a natural language description of content fields.
How this skill is triggered — by the user, by Claude, or both
Slash command
/statamic-dev:create-blueprintThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate blueprint YAML from a natural language field description.
Generate blueprint YAML from a natural language field description.
Extract fields from the user's input. Supported formats:
price (integer) — field with explicit typeimages (assets max 5) — field with type and optionscategory (select: tech, design, other) — field with type and valuescontent — infer type from common field namesauthor (users, max 1) — relationship field with constraintfeatured (toggle, default true) — field with default valueevent_date (date, time enabled) — field with optionsWhen no type is specified, infer from the handle name:
| Handle pattern | Inferred type | Options |
|---|---|---|
| content, body, description, bio | markdown | — |
| title, name, label, heading | text | — |
| slug | slug | — |
| excerpt, summary, intro | textarea | — |
| image, photo, avatar, hero_image, logo | assets | max_files: 1 |
| images, photos, gallery | assets | — |
| featured, active, published, show_* | toggle | — |
| date, *_date, *_at | date | — |
| text | input_type: email | |
| url, link, website | text | input_type: url |
| phone | text | input_type: tel |
| price, amount, cost | integer | — |
| color, colour | color | — |
| author | users | max_items: 1 |
| tags | terms | taxonomy: tags |
| categories, category | terms | taxonomy: categories |
| video | video | — |
| icon | icon | — |
| code, snippet | code | — |
Identify where to save based on context:
resources/blueprints/collections/{collection}/{name}.yamlresources/blueprints/taxonomies/{taxonomy}/{name}.yamlresources/blueprints/globals/{handle}.yamlresources/blueprints/forms/{handle}.yamlresources/blueprints/assets/{container}.yamlresources/blueprints/user.yamlCheck if the target directory exists. Create it if not.
Group fields into logical sections:
If fewer than 5 fields total, use a single main section.
sections:
main:
display: Main
fields:
- handle: content
field:
type: markdown
display: Content
- handle: featured_image
field:
type: assets
display: Featured Image
container: assets
max_files: 1
sidebar:
display: Sidebar
fields:
- handle: author
field:
type: users
display: Author
max_items: 1
- handle: tags
field:
type: terms
display: Tags
taxonomy: tags
Assets field:
- handle: images
field:
type: assets
display: Images
container: assets
max_files: 5
mode: list
Select field with options:
- handle: category
field:
type: select
display: Category
options:
tech: Technology
design: Design
other: Other
clearable: true
Bard (rich text) field:
- handle: content
field:
type: bard
display: Content
buttons:
- h2
- h3
- bold
- italic
- unorderedlist
- orderedlist
- quote
- link
- image
container: assets
save_html: false
Grid field:
- handle: features
field:
type: grid
display: Features
fields:
- handle: title
field: { type: text, display: Title }
- handle: description
field: { type: textarea, display: Description }
- handle: icon
field: { type: icon, display: Icon }
min_rows: 1
max_rows: 10
Replicator field:
- handle: page_builder
field:
type: replicator
display: Page Builder
sets:
content_blocks:
display: Content Blocks
sets:
text:
display: Text Block
fields:
- handle: text
field: { type: bard, display: Text }
image:
display: Image Block
fields:
- handle: image
field: { type: assets, display: Image, max_files: 1 }
- handle: caption
field: { type: text, display: Caption }
Conditional visibility:
- handle: venue
field:
type: text
display: Venue
if:
event_type: in_person
validate: [sometimes, required]
Fieldset reference:
fields:
- import: common
prefix: post_
- handle: category
field: common.category
config:
display: Post Category
Add validation where appropriate:
validate: requiredvalidate: 'required|email'validate: 'nullable|url'validate: 'min:3|max:255'validate: 'new \Statamic\Rules\UniqueEntryValue({collection}, {id}, {site})'After creating the blueprint, display:
Use these as starting points:
npx claudepluginhub dontfreakout/claude-statamic-pluginGuides Craft CMS 5 content architecture: sections, entry types, fields, Matrix, relations, eager loading, multi-site propagation, and project config. Use when planning content structure or configuring the Entries index.
Generates FilamentPHP v4 form schemas with fields, validation, sections, tabs, relationships, and enforced layout organization using sections/fieldsets.
Creates content type definitions, display templates, and contracts for Optimizely CMS. Use when modeling pages, components, or reusable property sets.