Skip to content

Quick Start

From zero to your first modernization run in three steps.


Before you start

  • A Maven project


    pom.xml at the root. Single- or multi-module.

  • Its own git repo


    .git next to pom.xml. If not, run git init.

  • A passing build


    ./mvnw clean install succeeds today.

Run every command below from your project root.


Check prerequisites

curl -fsSL https://cortexaidevkit.org/pages/modernize/quick-start/check-prereqs.sh | bash
curl -fsSL https://cortexaidevkit.org/pages/modernize/quick-start/check-prereqs.sh | bash -s -- --install

You're set when it prints Ready.

What the script checks
Item Why
claude Runs the pipeline
git Isolates builds and changes in worktrees
java and mvn (or ./mvnw) Builds your project
jq Reads the pipeline's state files
python3 Writes the determine-phase reports
bash Runs the pipeline's scripts
grype (optional) Vulnerability scan. Skipped without it
pom.xml and .git The project is Maven, in its own git repository

--install uses Homebrew on macOS, or apt / dnf on Linux. It installs JDK 21 if no JDK is found. To pick another, end the command with | JDK_VERSION=25 bash -s -- --install.

Maven's JDK must be at least the Java version you upgrade to. The script prints it.

Add the agent to your project

curl -fsSL https://github.com/paul58914080/java-springboot-modernization-claude-agent/archive/main.tar.gz \
  | tar -xz --strip-components=2 \
      java-springboot-modernization-claude-agent-main/final/CLAUDE.md \
      java-springboot-modernization-claude-agent-main/final/.claude

This adds CLAUDE.md and .claude/ to your project.

Already have a CLAUDE.md or .claude/?

They will be overwritten. Back them up first, then merge your settings back into .claude/settings.json.

Optional: change the defaults

Edit the env block in .claude/settings.json before you start:

  • MODERNIZATION_TESTABILITY_THRESHOLD (default 80): below this score, the test phase runs.
  • MODERNIZATION_TARGET_JAVA_VERSION and MODERNIZATION_TARGET_SPRING_BOOT_VERSION: the targets offered to you.

Start the pipeline

claude

Then type:

Start the modernization pipeline

What happens next

The pipeline pauses for your approval after each phase and asks which Java and Spring Boot versions to target. Nothing is committed to your branch. The upgrade lands on its own modernization/* branch for you to review and merge. See About for how it works.