umbraco-17-feature-backfill

Reverse-engineers behavioral documentation from Umbraco 17 serialized schema, generated models, and Razor views.

Updated May 26, 2026
One-click install
npx skills add https://github.com/robot-denny/ai-sketchlab --skill umbraco-17-feature-backfill-robot-denny
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: umbraco-17-feature-backfill
Source: https://github.com/robot-denny/ai-sketchlab/tree/main/.agents/skills/umbraco-17-feature-backfill
Command: npx skills add https://github.com/robot-denny/ai-sketchlab --skill umbraco-17-feature-backfill-robot-denny

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Documenting an existing Umbraco 17 capability that has no spec, plan, or tests requires manually hunting through serialized schema files, generated models, and Razor views — and the two serialization formats (Deploy .uda JSON and uSync .config XML) express the same schema asymmetrically, so naive reads silently produce empty or wrong inventories. ## Core Features & Use Cases - Schema artifact parsing: Locates and parses Deploy document-type__*.uda files or uSync ContentTypes/*.config files, extracting property groups, compositions, tabs, and the element-type flag with format-specific branching rules. - Block palette resolution: Reads block editor palettes from data-type configuration payloads, resolving contentElementTypeKey and settingsElementTypeKey GUIDs to documentable blocks. - Field type mapping: Maps data-type UDIs and editor aliases to readable field types, falling back to generated C# model property types when available. - Use Case: You inherit an Umbraco 17 site with 174 content types and no documentation. Use this Skill to resolve a document-type alias to its schema, model, and view, then backfill a behavioral feature doc with one scenario per Razor conditional branch. ## Quick Start Document the 'alertBanner' element type by reading its serialized schema, generated model, and Razor view from this Umbraco 17 repository.

Frequently Asked Questions about umbraco-17-feature-backfill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I document an Umbraco document type that has no spec or tests?

Read three sources: the serialized schema artifact (Deploy .uda or uSync .config) for properties and compositions, the generated .generated.cs model for C# property types, and the Razor .cshtml view for conditional branches. Write one scenario per branch found in the view.

What is the difference between Deploy .uda and uSync .config files in Umbraco?

Both serialize the same content-type schema, but Deploy uses JSON with UDIs while uSync uses XML with aliases. They express flags asymmetrically: Deploy emits Permissions.IsElementType only when true, while uSync always writes an <IsElement> boolean, so readers must branch per format.

How do I find which blocks an Umbraco block editor allows?

Read the palette from the block editor's data type configuration, not from content types. Both formats carry a blocks[] array whose contentElementTypeKey entries name the placeable blocks; resolve the dashed GUIDs to aliases and deduplicate across palettes.

Why does my Umbraco schema read return zero element types?

Deploy writes Permissions.IsElementType only when true, so checking for the field's presence as a boolean read fails. Test for truthiness and treat absence as false; uSync always writes <IsElement>, so the same reader must branch by format.

Can I resolve a uSync data type by constructing its filename from the alias?

No. Data-type filenames strip spaces and punctuation while keeping original casing, so 'Alert Severity' becomes AlertSeverity.config. Resolve data types by their Key from the property's <Definition> element, using a folder scan indexed by key.