Help us improve
Share bugs, ideas, or general feedback.
From plugin-cms-toolkit
Scaffolds CMS components, content types, controllers, and page types for Sitecore, Umbraco, or Optimizely. Detects the CMS platform automatically and generates platform-specific code. Usage - /plugin-cms-toolkit:scaffold component HeroBlock
npx claudepluginhub twofoldtech-dakota/plugin-cms-toolkit --plugin plugin-cms-toolkitHow this skill is triggered — by the user, by Claude, or both
Slash command
/plugin-cms-toolkit:scaffold <type> <name> [options]<type> <name> [options]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You generate production-ready code for CMS projects. You detect the CMS platform first, then generate platform-specific files.
Measures whether skills, rules, and agent definitions are actually followed by auto-generating test scenarios at 3 strictness levels and reporting compliance rates with full tool call timelines.
Share bugs, ideas, or general feedback.
You generate production-ready code for CMS projects. You detect the CMS platform first, then generate platform-specific files.
/plugin-cms-toolkit:scaffold <type> <name>
Types: component, content-type, controller, page
Examples:
/plugin-cms-toolkit:scaffold component HeroBanner
/plugin-cms-toolkit:scaffold content-type ArticlePage
/plugin-cms-toolkit:scaffold controller Search
/plugin-cms-toolkit:scaffold page LandingPage
Before generating, determine the CMS platform:
sitecore.json or Sitecore.* NuGet refs → SitecoreUmbraco.Cms.* NuGet refs or Umbraco config → UmbracoOptimizely.* or EPiServer.* NuGet refs → OptimizelyAlso determine the architecture:
next.config.*, JS SDK refs, Content SDK → generate frontend component + CMS definitionBefore generating files, scan the existing codebase to match conventions:
.cs files.tsx/.ts filescomponent — UI Component with CMS IntegrationSitecore (Headless / Content SDK):
src/components/<Name>.tsx — React component with Content SDK field helpersText, RichText, Image, Link from @sitecore-jss/sitecore-jss-nextjs or @sitecore/content-sdkComponentRendering prop typingSitecore (Traditional MVC):
Feature/<Feature>/code/Controllers/<Name>Controller.cs — Controller renderingFeature/<Feature>/code/Models/<Name>Model.cs — Glass Mapper modelFeature/<Feature>/code/Views/<Name>/<Name>.cshtml — Razor viewUmbraco (Razor):
Views/Partials/<Name>.cshtml — Partial view using ModelsBuilder typesViews/Partials/blocklist/Components/<Name>.cshtml@inherits UmbracoViewPage<BlockListItem>Umbraco (Headless):
Optimizely (CMS 12):
Models/Blocks/<Name>Block.cs — Block content type with [ContentType] attributeViews/Shared/Blocks/<Name>Block.cshtml — Razor partial viewComponents/<Name>BlockViewComponent.cs for ViewComponent patternOptimizely (SaaS / Headless):
content-type — Content Model DefinitionSitecore:
.yml) for the template under /sitecore/templates/__Standard values serialization entry*.module.jsonUmbraco:
Models/<Name>.cs — ModelsBuilder-compatible class (if SourceCodeManual)Optimizely (CMS 12):
Models/Pages/<Name>Page.cs or Models/Blocks/<Name>Block.cs[ContentType] attribute with GUID, DisplayName, Description, GroupName[Display] attributes organized by tabsXhtmlString, ContentArea, ContentReference, etc.)Optimizely (SaaS):
controller — Backend ControllerSitecore (Traditional):
Controllers/<Name>Controller.cs — inherits SitecoreControllerUmbraco:
Controllers/<Name>Controller.cs — RenderController or SurfaceControllerSurfaceController with [HttpPost], [ValidateAntiForgeryToken]UmbracoApiController with route attributeOptimizely (CMS 12):
Controllers/<Name>PageController.cs — inherits PageController<T>CurrentPage property mappingApiController with content service injectionpage — Full Page Type with TemplateSitecore:
src/components/<Name>Page.tsx) or MVC viewUmbraco:
Views/<Name>.cshtml) with layoutOptimizely (CMS 12):
Models/Pages/<Name>Page.cs) with standard page propertiesControllers/<Name>PageController.cs)Views/<Name>Page/Index.cshtml) with layoutOptimizely (SaaS):
After generating files:
dotnet sitecore ser push")Always follow CMS-specific naming conventions:
Page/Block/File