Feat/template modernization pipeline#226
Open
Himanich wants to merge 3 commits into
Open
Conversation
Introduces a three-phase static → editable template migration pipeline:
context discovery (shared YAML + plan table), per-template execution via
editable-template-creation and aem-modernization generators, and
post-generation validation with blocking rg assertions.
- Add references/template-modernization/template-modernization-context.md
— discovery schema, 8-step pipeline, named-child classification table,
plan table (Create editable / structure rule / component rule / policy rule)
- Add references/template-modernization/editable-template-creation.md
— generates 4-node editable template (root, structure, initial, policies)
and updates templates/.content.xml; sourced from confirmed context YAML
- Add references/template-modernization/aem-modernization.md
— generates structure rewrite rules, component rewrite rules (cq:copyChildren
enforced), policy import rules, repoinit initializer, and service configs
- Add references/template-modernization/template-modernization-validation.md
— 7-section post-generation validation; any failure blocks commit
- Update SKILL.md: add Branch C routing, Quick Start row, starter prompt,
Step 1 pattern recognition, Template modernization flow section, and
Quick Reference entry
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Address review findings on the template-modernization pipeline references: - breakpoints: remove the 768/1200 default that contradicted the "never invent breakpoints" rule; emit one node per conventions.breakpoints entry, placeholder-driven node names/titles/widths - remove/ignore/rename/order.components: clarify all four operate on JCR node names, not sling:resourceType values (verified against adobe/aem-modernize-tools PageRewriteRule.getName() matching) — wrong identifier silently removes the wrong node or nothing - service config PIDs: use the impl-class FQN (…impl.*ServiceImpl) for structure/component/policy; the interface-named PID is inert and leaves search.paths empty so rule folders are never scanned - runtime nodes: re-anchor stale "checklist step 8" ref to the context classifier's required-runtime / placement:initial - cq:deviceGroups: note /etc/mobile/groups/responsive is the standard path, use verbatim, do not modernize - validation: align 2.3/3.4/4.2 with the impl PID; spell out the Grep-tool invocation for the cq:copyChildren check - add allowedTemplates manual step (template not selectable in Create Page wizard until allowed on the parent content tree) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tessl Skill Lint
|
The description's "per-template pipeline: context → …" parsed the space-after-colon as a nested YAML mapping key, failing deterministic validation (and cascading the tessl-review score to 16%). Replace the colon with an em dash to match the file's existing style. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rombert
approved these changes
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a template modernization pipeline to the AEM Cloud Service migration skill (Branch C): a per-template, three-phase flow — context → per-template execute → validate — that converts static templates to editable /conf templates and generates AEM Modernize Tools structure/component/policy rewrite rules.
New references under migration/references/template-modernization/:
template-modernization-context.md — shared discovery; emits a confirmable .migration/template-context.yml and a per-template plan table. Data-driven classifier decides structure-vs-initial placement of named children from actual /content scans (no guesswork).
editable-template-creation.md — generates the 4-node editable template (root / structure / initial / policies) and appends to templates/.content.xml.
aem-modernization.md — generates structure, component, and policy rewrite rules, their OSGi service configs, and the repoinit initializer.
template-modernization-validation.md — post-generation rg/Grep assertions; blocks commit on failure.
SKILL.md is wired for Branch C across the description, decision table, "When to Use", routing, and quick reference (no BPA / no MCP).
Related Issue
Motivation and Context
Static-to-editable template conversion plus AEM Modernize Tools rule authoring is one of the most error-prone, manual steps in a 6.x/AMS → AEMaaCS migration, with failure modes that destroy content silently (locked components placed in initial/, missing cq:copyChildren on component rules). This pipeline codifies the safe path and mechanically validates against those hazards.
How Has This Been Tested?
Screenshots (if appropriate):
Types of changes
Checklist: