Generates Enonic XP content type XML schema definitions from natural-language descriptions. Covers structured content modeling including input types, form layout, option sets, item sets, mixins, x-data, and content-type inheritance. Use when creating, scaffolding, or generating Enonic XP content type definitions, adding fields or sets to existing content types, or querying Enonic XP input types and super-types. Do not use for non-Enonic content modeling, GraphQL queries, JavaScript/TypeScript controllers, or generic XML editing unrelated to Enonic schemas.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Step 1: Detect Enonic XP Project
node scripts/find-enonic-targets.mjs [workspaceRoot] to locate Enonic XP project roots.Step 2: Gather Requirements
blog-post).Blog Post).base:structured unless the request specifies a folder (base:folder) or another built-in type.references/content-type-reference.md to map natural-language field descriptions to the correct Enonic XP input type and configuration.Step 3: Generate the Content Type XML
assets/content-type.template.xml to obtain the starter template.DISPLAY_NAME with the display name from Step 2.DESCRIPTION with a short description or remove the element if none was provided.<super-type> element to the value determined in Step 2.<form> element with the identified inputs, item sets, option sets, field sets, and mixin references.name attribute using camelCase.type attribute to the exact Enonic XP input type name (case-sensitive).<label>, <occurrences>, <help-text>, <default>, and <config> as required.<config>.<config> with allowContentType, allowPath, treeMode, and hideToggleIcon as specified.<config> with max-length, show-counter, or regexp if validation constraints are requested.<config> with min and max if range constraints are requested.<config> with <timezone>true</timezone> if timezone-aware storage is requested.references/examples.md.Step 4: Write the File
[projectRoot]/src/main/resources/site/content-types/[name]/[name].xml[projectRoot]/src/main/resources/site/mixins/[name]/[name].xml[projectRoot]/src/main/resources/site/x-data/[name]/[name].xmlsite.xml, add <x-data> entries with allowContentTypes and optional attributes as specified.Step 5: Validate Output
<input> has a valid type attribute by cross-referencing references/content-type-reference.md.name attributes are unique within their nesting level.<occurrences> values are logically consistent (minimum <= maximum, or maximum = 0 for unlimited).references/content-type-reference.md without creating files.scripts/find-enonic-targets.mjs exits with a non-zero code, report the stderr message and ask for the project root path manually.references/content-type-reference.md and suggest the closest match. Do not invent input type names.references/troubleshooting.md to diagnose and correct the error, then regenerate the file.029e044
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.