Skip to content
Development
Skill

/craft-content-modeling

Craft CMS 5 content modeling — sections, entry types, fields, Matrix, relations, project config, and content architecture strategy. Covers choosing section types, designing entry types and field layouts, selecting field types, configuring Matrix and nested entries, relations and

From plugin
craftcms-claude-skills
7913 skills6 agents
Install
$ npx -y skills add michtio/craftcms-claude-skills --skill craft-content-modeling --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/craft-content-modeling

Context preview

The summary Claude sees to decide when to auto-load this skill.

Craft CMS 5 content modeling — sections, entry types, fields, Matrix, relations, project config, and content architecture strategy. Covers choosing section types, designing entry types and field layouts, selecting field types, configuring Matrix and nested entries, relations and

SKILL.md

craft-content-modeling.SKILL.md
name: craft-content-modeling
description: "Craft CMS 5 content modeling — sections, entry types, fields, Matrix, relations, project config, and content architecture strategy. Covers choosing section types, designing entry types and field layouts, selecting field types, configuring Matrix and nested entries, relations and eager loading, and multi-site propagation. Triggers on: section types (single, channel, structure), entry types, field types, field layout design, field type selection, Matrix, nested entries, relatedTo, eager loading, .with()/.eagerly(), categories, tags, globals, global sets, preloadSingles, propagation, multi-site content, project config, YAML, content strategy, taxonomy, asset volumes, filesystems, image transforms, user groups, content permissions, entrify/entrification, CKEditor vs Matrix, CMS editions, multi-language, language groups, localization, translation method, field translation, content migration, field instances, Formie forms as elements vs project config, cross-environment Formie deployment, multi-site Formie translation, element index sources, elementSources, Entries index sidebar, tableAttributes, defaultSort, authoring schema from code (service layer vs project.yaml + pc/apply). Always use when planning content architecture, creating sections/fields, configuring Matrix, setting up relations, choosing field types, designing field layouts, planning multi-site propagation, or tidying the Entries element index. Do NOT trigger for PHP plugin/module development, custom field type code, front-end Twig, or buildchain."

Craft CMS 5 — Content Modeling

How to structure content in Craft CMS 5. Sections, entry types, fields, Matrix, relations, asset management, and strategic patterns for real projects.

This skill covers **content architecture** — what goes in the CP, how it's organized, and how templates access it. For extending Craft with PHP (plugins, modules, custom element types), see the `craftcms` skill.

Companion Skills — Always Load Together

When this skill triggers, also load:

  • **`craft-site`** — Template architecture, component patterns, routing. Required when content decisions affect how templates render data.
  • **`craft-twig-guidelines`** — Twig coding standards. Required when writing any Twig examples or template code alongside content modeling.
  • **`ddev`** — All commands run through DDEV. Required for running project config commands, Craft CLI, and content migrations.

Documentation

  • Entries: https://craftcms.com/docs/5.x/reference/element-types/entries.html
  • Sections: https://craftcms.com/docs/5.x/reference/element-types/entries.html#sections
  • Fields: https://craftcms.com/docs/5.x/system/fields.html
  • Field types: https://craftcms.com/docs/5.x/reference/field-types/
  • Matrix: https://craftcms.com/docs/5.x/reference/field-types/matrix.html
  • Relations: https://craftcms.com/docs/5.x/system/relations.html
  • Eager loading: https://craftcms.com/docs/5.x/development/eager-loading.html
  • Project config: https://craftcms.com/docs/5.x/system/project-config.html

Use `WebFetch` on specific doc pages when a reference file doesn't cover enough detail.

The Craft 5 Mental Model

**Everything is becoming an entry.** Entry types are global (shared across sections and Matrix fields). Fields come from a global pool. This is the "entrification" of Craft — categories, tags, and globals are being unified into entries over a three-version arc:

  • **Craft 4.4** — `entrify` CLI commands added to convert categories, tags, and globals to entries
  • **Craft 5** — Categories, tags, and global sets are deprecated and discouraged for new projects. New category groups, tag groups, and global sets can still be created in the CP (the "New" buttons remain, gated by `allowAdminChanges`), and existing ones continue to work. A unified "Content" section replaces the fragmented entries view. Custom entry index pages (5.9.0) solve the sidebar organization concern.
  • **Craft 6** — Categories, tags, and global sets will be removed entirely

For **new projects**, always use entries: Structure sections for hierarchical taxonomy, Channel sections for flat taxonomy, Singles for site-wide settings. For **existing projects**, migrate at your own pace using the `entrify` commands.

Three decisions define your content architecture:

1. **Which section type** organizes the content (Single, Channel, Structure) 2. **Which entry types** define its shape (global, reusable across contexts) 3. **Which relation strategy** connects content together (Entries fields, Matrix, CKEditor nested entries, or a combination)

CMS Editions

Craft CMS has four editions (Solo, Team, Pro, Enterprise) that affect content modeling. The key distinction: if any section needs multiple custom user groups with per-group edit/view restrictions, you need **Pro or Enterprise** (multiple custom user groups are Pro+ only). Team includes one fixed "Team" group whose permissions are customizable for non-admins, plus a 5-user cap. See `references/users-and-permissions.md` for the full editions table and permissions architecture.

Choose the edition before modeling — it determines whether you can scope content access by user group, which affects section and field architecture.

Section Type Decision

| Need | Section Type | URI Example | |------|-------------|-------------| | One-off page (homepage, about, contact) | **Single** | `__home__`, `about` | | Site-wide settings (footer, header config) | **Single** (no URI, `preloadSingles`) | — | | Flat collection (blog, news, events) | **Channel** | `blog/{slug}` | | Hierarchical pages (docs, services) | **Structure** | `{parent.uri}/{slug}` | | Taxonomy (topics, categories) | **Structure** (replaces categories) | `topics/{slug}` | | Flat tags | **Channel** (replaces tags) | — |

Section Properties

Beyond the type, sections have settings that matter for content architecture:

  • **`maxAuthors`** (default 1) — allows multiple authors per entry (new in
Read more
Ships withcraftcms-claude-skills

Production-ready Claude Code skills, agents, and project templates for Craft CMS 5 development. Built and maintained by michtio.

Get the whole plugin

Other skills on craftcms-claude-skills.