block-to-element-migration

Installation
SKILL.md

Block → Element Migration

A repeatable workflow for moving legacy SilverStripe Blocks (sheadawson or dynamic-blocks modules) into the modern Elemental system, while preserving exact visual parity with the pre-upgrade site.

Distilled from three production migrations: rockline-iatric, youth-sailing, and sheboygan-safeharbor. Each project re-invented the same skeleton — this skill captures the shared shape so you don't start from scratch.


The two halves of a block-to-element migration

  1. Data migration — a one-shot BuildTask that reads Block and SiteTree_Blocks tables and writes Element + subtype + _Live + _Versions rows.
  2. Template parity — element templates that produce the same HTML the legacy block templates produced, so existing CSS/JS continues to work without rewriting.

Most failed migrations get half 1 right and skip half 2, leaving the CMS populated but the frontend visually broken. Both halves are required.


The one rule

Installs
1
First Seen
Jun 2, 2026