Meet Your New Sitecore Delivery Team: Claude Code in Action for SitecoreAI

MVP, Sitecore Practice
  • Twitter
  • LinkedIn

Recently, I passed the Claude Certified Architect examination, and it gave me insights into skills, agents and different types of use cases of Claude Code. It got me thinking that why can’t we build skills for some common use cases for SitecoreAI development, building a new component in SitecoreAI has always followed the same process. Create a data template, serialize it, build the Next.js component, wire up the rendering, maybe add a variant or two, then spin up a test page just to prove it actually works. Every one of those steps is well understood. None of them is hard on its own. But every one of them eats time that could go toward the parts of the job that actually need a human: design judgment, content strategy, UX polish.

I've spent enough sprints watching good developers redo the same five steps, slightly differently each time, to know that repetition, not difficulty, is where components quietly go wrong. A field gets renamed in Sitecore but not in the component's props. A rendering ships without ever being placed on a real page. A README that should exist never gets written because the sprint moved on. None of that is a skill gap. It's the cost of doing something repeatable by hand.

So, we built a delivery team inside Claude Code to do it for us.

 

What We've Implemented

At the core of this is a guided, end-to-end pipeline made up of five purpose-built Claude Skills that live right alongside our SitecoreAI codebase. One orchestrator runs the other four in sequence, pausing before every phase so a developer stays in control of the build.

The five skills

  • sitecore-component-pipeline-guided – the orchestrator. Runs the four skills below in order, gate by gate, and keeps a resume file so a build can be picked up later.
  • sitecore-template-generator – creates the Sitecore data template: fields, sections, YAML, and the CLI push to SitecoreAI.
  • sitecore-nextjs-component-generator – builds the React component and the matching Sitecore rendering.
  • sitecore-page-component-builder – puts the component on a real page through the Sitecore Marketing MCP connector and hands back a working test URL.
  • sitecore-rendering-variants – adds extra layout variants for a component, for the cases where one layout genuinely isn't enough.

Instead of touching templates, serialization YAML, component code, and Sitecore items one at a time, you describe the component you want in plain language. The pipeline takes it from there, generating GUIDs, YAML, React code, and rendering configuration on its own, and only stopping when it hits something it genuinely can't decide by itself.

 

Why This Was Needed

Every SitecoreAI component touches a surprising number of systems for something so routine. A data template has to be modeled and serialized correctly. A React component has to match that template's fields exactly. A rendering item has to be created and pushed with the right component name. None of it is provably "done" until it's actually rendering on a page.

A few things kept showing up across teams, projects, and sprints:

  • Repetition, not difficulty. Template, component, rendering, mapping entry, test page, the same sequence every time, which means the risk isn't that a step is hard, it's that a step gets skipped or done slightly differently.
  • Drift between the template and the component. A field that changes in one place but not the other tends to fail quietly, often surfacing only in Experience Editor.
  • No fast way to prove a component works. "It builds" and "it renders correctly on a real page" are two different claims, and without an easy way to wire up a test page, that check gets deferred until much later than it should.
  • Documentation falls behind. Field lists, datasource locations, link targets, they're easy to forget to write down once a component ships and the team has already moved on to the next one.

 

What We Can Achieve With This

The obvious win is speed. A component that used to mean a template, a component, a rendering, a mapping entry, and a test page, done by hand across a working session, now runs as one guided conversation and takes minutes instead of a day.

But the deeper value is in consistency and proof of work:

  • Consistency by construction. The rendering's component name is copied verbatim into the mapping file rather than retyped, and every new field is checked against existing templates before a duplicate gets created. Naming drift and duplicate fields get caught at the source, not in code review.
  • A live URL as the definition of done. The page-builder phase doesn't stop at generated code. It places the component on a real page and hands back a test URL, so "does it actually work" gets answered before the build is called finished.
  • Interruption-proof builds. A run-status file records what's done after every phase, so a build can pause for a day and pick back up with "resume" instead of starting over.
  • Design fidelity, out of the box. Feed it a Figma link and the component generator produces a much closer first pass than a generic scaffold. Without one, it falls back cleanly to semantic markup and says so plainly, so nobody mistakes a placeholder for a finished layout.
  • Documentation that writes itself. Every component gets a README covering its template, fields, link targets, and rendering details, generated from the same data the skills already gathered. Nothing re-derived, nothing forgotten.

 

How the Skills Actually Run

The pipeline follows one rule throughout: ask only for what it genuinely can't know, and execute everything else, GUID generation, YAML writes, CLI pushes, mapping-file edits, without stopping for permission. That split is what keeps a four-phase build feeling like a short conversation instead of a long form.

The confirmation gate

Every phase is preceded by the same question: "Ready to run Phase N, skill name? Yes, skip this phase, or stop here." Saying yes hands full control to that phase, which only interrupts again for a real content decision, a field type, a component name, a Figma link, or a genuine failure. Never for a mechanical step it already has permission to run.

Idempotency checks, before anything gets written

Before creating anything, each skill checks for collisions. Does a template already exist at this path? Does a field with this name already exist elsewhere and deserve to be inherited instead of recreated? Does a rendering already use this component name? These checks are what let the pipeline be re-run safely against a partially-built component instead of quietly duplicating work.

What each phase hands to the next

FromToWhat's passed
Template generatorComponent generatorTemplate ID, path, and full field list, including inheritance and link targets
Component generatorPage builderRendering ID, path, and pushed component name, so the test page wires up the exact rendering just created
Component generatorRendering variantsField list and design reference, so a new variant matches existing fields and visual language
Every phaseRun-status fileStatus (done, skipped, or failed), timestamp, and every ID or path captured

Failure handling

A failure in any phase stops the pipeline right there, reports the command output verbatim rather than paraphrased, and marks that phase failed in the run-status file. Earlier phases are left standing as already-valid work, and nothing downstream ever runs against a placeholder ID.

 

Getting Started

Before running anything, make sure the basics are in place: SitecoreAI with the CLI authenticated and serialization configured, a working Next.js solution, Git, and Claude Code with Skills enabled.

Once that's in place, starting is a single line:

Run sitecore-component-pipeline-guided

The first question the pipeline asks is whether you're starting a brand-new component or resuming an interrupted build, so you can walk away mid-pipeline and pick up exactly where you left off.

You don't have to run the full pipeline every time either. The skills are modular:

  • Only need a template? Run sitecore-template-generator.
  • Template already exists, just need the React side? Run sitecore-nextjs-component-generator.
  • Need an alternate layout for an existing component? Run sitecore-rendering-variants.
  • Just want a page to test something on? Run sitecore-page-component-builder.

 

What Runs Best for These Skills

A few habits make results noticeably better, and they're the same habits I'd expect from a careful developer:

  • Start new components through the guided pipeline, not the individual skills. It's the only entry point that gets you the resume file and the phase gating for free.
  • Bring a Figma link or screenshot when you have one. It's the single biggest lever for a first draft that needs minimal cleanup. Without one, the pipeline falls back to basic semantic markup and says so plainly.
  • Let field reuse happen. When the template generator flags an existing field or a sibling template that matches what you're asking for, take the reuse suggestion. It keeps the content tree from accumulating near-duplicate fields.
  • Treat resume as the normal way back in, not a fallback. A build stopped mid-phase yesterday should be resumed, not restarted, so already-pushed work isn't redone.
  • Only reach for variants when a component truly has more than one layout. A single fixed layout doesn't need one, and skipping it is the expected case, not the exception.
  • Read the generated README before handing a component to someone else. It already has the field list, link targets, and rendering details. No need to reconstruct any of it from the code.

 

Best Practices for Sitecore Teams Adopting This

If you're rolling something like this into a real delivery workflow, a few practices go a long way:

  • Standardize naming before you scale. Consistent component and template names make resuming builds and reading serialization diffs much easier later.
  • Treat the guided pipeline as the default entry point, even for a component you think you understand well. The duplicate-field checks catch things ad hoc development tends to miss.
  • Bring the Sitecore Content MCP connector into the loop for page building. Since the test-page phase relies on it, having it connected turns "code is done" into "component is live and testable" in the same session.
  • Use variants as a deliberate content-authoring decision, not a default. They add real value for editors, but only when there's a genuine need for multiple layouts.
  • Keep the README habit alive, even outside the pipeline. Treat the auto-generated README as the source of truth for a component's data contract.

 

The Bigger Picture

Run end to end, one prompt takes a component from "doesn't exist" to "here's a URL where you can see it live." Template, component, rendering, mapping, test page, and documentation, all produced from a single conversation, and all provably working rather than merely compiled. That's the bar this pipeline holds itself to. Not "the code was generated," but "the component was seen rendering on a page."

This isn't a scaffolding shortcut. It's a genuinely guided pipeline that mirrors how a careful Sitecore developer already works: check for existing fields, keep serialization in sync, verify the rendered result before calling it done. The difference is that it now happens in minutes, with a consistent process every time, and a live URL waiting at the end to prove it.

The five skills won't replace the judgment calls, naming, information architecture, visual design. Those are still ours to make. But they remove the part of the work that was pure repetition, and they leave behind a paper trail, the README, the run-status file, the mapping entry, that makes the result easy to hand off.

For teams building out a growing library of SitecoreAI components, that combination of speed and consistency is what actually compounds over time.

If you're exploring how Claude Code and Skills can fit into your own SitecoreAI delivery workflow, feel free to reach out to me or connect with me on LinkedIn.