- Sep 14, 2026
- --
We taught an AI how to upgrade Magnolia DXP
Experience Magnolia in action
Experience Magnolia's key features firsthand in an interactive product tour.
Take a tour nowWe taught an AI how to upgrade Magnolia DXP
Key takeaways
Magnolia DXP upgrades are well understood but labor-intensive: Jakarta namespace migration, POM version bumps, renamed modules, decoration cleanup, UI compatibility checks — dozens of mechanical steps where one miss costs a day of debugging.
The new magnolia-upgrade-6 skill plugin encodes that playbook into four AI skills that Claude Code, or any AI coding assistant supporting the open skills format, can work through end to end.
The main driver skill runs the full 6.2.x/6.3.x → 6.4.x upgrade: the Jakarta rewrite first, then POM bumps, module-matrix reconciliation, live config checks, a Maven build checkpoint, a local Docker stack, and a written run report.
Guardrails are built in: the skill won't touch production URLs, stops and asks before deleting anything on error, and checks that javax.jcr.* imports survive the Jakarta rewrite untouched, and pauses for a human commit after every major write step.
A companion effort-estimator skill sizes the upgrade before anyone commits to it, so the conversation with stakeholders starts with numbers instead of guesses.
Upgrades are the least glamorous work your best developers do
Every Magnolia DXP team knows the shape of a platform upgrade. The steps are documented, the module matrices exist, the release notes are public. And yet a 6.2 or 6.3 to 6.4 upgrade still consumes senior-developer weeks — not because any single step is hard, but because there are so many of them, they have to happen in a precise order, and getting one wrong only shows up hours later as a cryptic build failure. Rewrite a javax.jcr import that should have stayed untouched, bump a POM before the Jakarta migration runs, miss a renamed artifact, and you're debugging a symptom two steps removed from its cause.
This is exactly the kind of work AI coding assistants should be good at: repetitive, rule-driven, verifiable against a known-good answer. But a generalist AI assistant doesn't know, out of the box, that OpenRewrite has to run before any POM edit, that vaadin-server becomes vaadin-server-mpr-jakarta, or which artifacts were renamed between 6.3 and 6.4. Point an unassisted AI at a Magnolia DXP upgrade, and you'll get something plausible — and wrong in the ways that matter most.
So, for upgrades, we did what we already did for Magnolia DXP development: we documented the expert knowledge as skills.
Interested in developing with Magnolia DXP development skills?
Get Magnolia DXP development expertise — the same expertise a senior developer carries.
Read the BlogFrom upgrade guide to upgrade driver
The magnolia-upgrade-6 plugin grew out of real customer-project upgrades. Every upgrade our services team ran taught us something: which order of operations avoids rework, which module renames trip people up, which config has to be pulled from the live instance rather than assumed. That experience is now a self-contained plugin — one driver skill, one estimator, and three specialist sub-skills the driver calls on automatically.
While the earlier Magnolia DXP development skills are reference material an AI consults while building, the upgrade plugin is a procedure it follows. It reads the project, detects what applies, does the mechanical work, checks its own output, and stops at every point where a person should look at a diff before it becomes a commit.
Think of it as the difference between handing an AI assistant the upgrade guide and handing it a senior engineer's runbook, caution included.
"Every upgrade project I looked at taught me the corner cases that I had not expected. I built that into the driver, so the knowledge pauses for a human at every commit instead of living in one engineer's head."
What's in the box: 4 skills, one upgrade
mgnl-upgrade-64 is the end-to-end driver. Point it at a customer project root, and it works through the full sequence: pre-flight checks (clean git tree, a compiling baseline), the OpenRewrite javax to jakarta migration first, POM bumps to the target 6.4.x version, renamed-artifact reconciliation against the bundled module matrices, decoration and removed-class cleanup, multisite and IP-security config validation against the live author instance, a mvn clean install checkpoint, and a local Docker stack to smoke-test the result. Every step lands in a per-run summary report with evidence, so a developer can see exactly what changed and why.
mgnl-javascript-model handles the jsmodels migration. Magnolia 6.4 changes how JavaScript rendering models are configured. This skill finds every page, area, and component that uses JavascriptRenderingModel and adds the ConfiguredJavascriptTemplateDefinition wiring 6.4 expects.
mgnl-warp-ui runs the New UI compatibility audit. Magnolia 6.4's WARP UI (New UI Forms) doesn't support every legacy dialog construct; unsupported features fall back to Vaadin without warning. This skill audits a project's light-module apps, dialogs, and form definitions, reports exactly what would trigger a fallback, and suggests fixes.
mgnl-docker builds the instant local stack: a Docker and Docker Compose setup for the upgraded project — public Tomcat image, the official Magnolia DXP entrypoint, author or author-plus-public, PostgreSQL or H2, light-module hot reload — so "does it actually start?" has an answer minutes after the build passes.
The driver detects which of these apply to a given project. One with no jsmodels never sees the jsmodels skill; one with content apps gets the WARP UI audit automatically. [Image of the mgnl-upgrade-64 driver sequence, showing pre-flight checks through to the Docker smoke test, with the three specialist skills branching off where they apply]
Guardrails, and where they earn your trust
An AI assistant editing dozens of files across a codebase needs more than competence — it needs restraint. The upgrade skills carry hard guardrails as part of their definition, and they're worth naming plainly because they're the reason a team can hand this work over at all:
Order is enforced. The Jakarta rewrite runs before any other write step. The skill won't reorder that sequence, even on request.
javax.jcr is treated as off-limits. JCR imports must not be migrated to Jakarta. After the rewrite, the skill diffs the tree specifically for touched javax.jcr.* imports and stops if it finds any.
Production stays out of reach. Any URL matching a production host pattern is refused outright.
No silent destruction. On an error, the skill stops and asks instead of deleting a class, file, or JCR node — and commands like git push --force require your explicit confirmation before they run.
A person commits, not the AI. After each major write phase, the skill pauses: you review the diff, commit it, then tell it to continue. The result is an upgrade history in git that reads like a well-planned series of commits because it is one.
Read together, these guardrails are the actual point of the plugin. Encoding the upgrade steps saves time; encoding where a human has to look before the work becomes permanent is what makes that time savings safe to take.
"I tested every guardrail against real upgrade failures I'd hit myself — a deleted file you can't get back, a JCR data of PRODUCTION that shouldn't have messed up. The skill stops in exactly the places I used to wish I had."
How to use it, and where the official guidance still fits in
The skills are built for AI coding assistants that support the open skills format — Claude Code among them. Once the magnolia-upgrade-6 plugin is published alongside the existing magnolia-development-6 plugin, installing it and pointing it at the project you want to upgrade looks like this:
/magnolia-upgrade-6:mgnl-upgrade-64 <project-root> # then run it Add --dry-run to see the full plan without writing anything, or --target-version to pin to a specific 6.4.x release. Everything the skill needs — the customer upgrade guide, the module and incubator matrices, per-version release-note digests, and neutralized example patches — ships bundled inside the plugin, so it behaves the same on every machine and doesn't depend on live documentation lookups at runtime.
That said, the skill operationalizes Magnolia DXP's official upgrade documentation; it doesn't replace it. For the source material behind the driver's logic, or for anything project-specific the skill flags in its run report, the official guides are still the reference: upgrading Magnolia 6.2 to 6.4 and the general guide to upgrading Magnolia DXP.
What this changes
The upgrade itself was never the interesting part of a Magnolia DXP project — it's the toll you pay to get to the interesting part. With the playbook encoded as skills, the mechanical majority of the work runs at AI speed under human review, and your senior developers spend their time on what actually needs judgment: the custom code, the edge cases, the project-specific decisions no matrix can capture.
The platform has always been upgradeable. Now the AI assistants your developers already use know how, too.
"The mechanical grind of an upgrade now runs at AI speed. That's time back for the decisions that actually need a person."
Get started now!
Ready to dive in and experience the next generation of Magnolia DXP?
Upgrade to Magnolia 6.4 now!