explainx.ai0k
TrendingAI News TodayPathwaysSkills
Pricing
explainx.ai

Upskill in AI — 16 free pathways, live workshops & bootcamps, and 50+ courses from practitioners. Plus the skills, tools, and MCP servers to practice on.

follow us

follow on google

Add explainx.ai as a preferred source

corporate training

support@explainx.ai

get started

Find your pathTake Free Evaluation

community

Join the community

learn

mind: share how you thinkpathways — start freeworkshopsbootcampscoursescompare Explainxcertificationsmock testsexplainx universitycorporate traininglearn skills & mcp

discover

skillsmcp serversexplainx mcptoolsmdx readeragentsllmsdesignsdictionarypeopleagi trackerfelony benchranks

company

aboutvisionmissionteaminstructorsteach on explainxpartnershipscommunityhackathonscareers

content

daily AI newsstate of AI — live resultsblogreleasespromptsgeneratorsresource libraryfor LLMsexplainx.ai kids

solutions

all solutionsdeveloper upskillingmarketing upskillingproduct manager upskillingleadership upskilling

newsletter · weekly

Get AI news, tools, and insights in your inbox.

supportcontactprivacytermsdata rightshow we create contentsubmission guidelines

© 2026 AISOLO Technologies Pvt Ltd

explainx.ai

On this page

  • TL;DR
  • Why migrations go wrong
  • The engine's three parts
  • Rule one: discovery before translation
  • Rule two: build the judge first
  • The phases
  • The sample: Laravel Eloquent to Spring Boot
  • The candid part
  • Kiro versus AWS Transform
  • What to measure if you run it on a real app
  • How to try it
  • How it compares with other skill-based workflows
  • Takeaways beyond PHP
  • Related reading
← Back to blog

explainx / blog

AWS Shows a Parity-First PHP-to-Java Migration Engine for Kiro: Eight Phases, Skill Files, and a Referee

Kiro, Code Migration, AWS Transform, Agent Skills, AI Coding

Part of Agent Skills

AWS publishes a Kiro and AWS Transform skill-file workflow that treats PHP as the spec and proves the Java port with a parity harness. Eight phases explained.

Oct 29, 2026·8 min read·Yash Thakker
add explainx.ai
go deep
AWS Shows a Parity-First PHP-to-Java Migration Engine for Kiro: Eight Phases, Skill Files, and a Referee

Short answer: AWS published a worked example of a repeatable PHP-to-Java migration engine for the Kiro AI IDE. Everything is packaged as skill files and steering rules: a mechanical scanner first inventories the PHP models, a parity harness is built before any Java is written, and an eight-phase workflow then scaffolds and translates a Spring Boot port, with the original PHP treated as the specification. The same files can be handed to AWS Transform for portfolio-scale runs. The AWS Machine Learning blog post is unusually candid about its limits: the sample ported only 4 of 37 models and never built its parity harness.

TL;DR

table · 2 cols
QuestionAnswer
What is it?A skill-file methodology and scanner for PHP-to-Java migration in Kiro
Core ruleDiscovery before translation: run the scanner before reading or translating models
How is correctness judged?A parity harness comparing PHP and Java responses
PhasesEight (0 to 8 counting preparation), human effort front-loaded in 0 to 3
TargetsSpring Boot 3.4.1, Java 21, Maven, JPA, in-memory H2 in the sample
Frameworks detectedLaravel, Symfony, CodeIgniter, plain PHP
Interactive vs scaleKiro one app at a time; AWS Transform many in parallel
Candid gap4 of 37 models ported; parity harness not built for the sample

Why migrations go wrong

AWS opens with the real risk. A mature PHP app built with Laravel, Symfony or Doctrine carries business rules in non-obvious places, from Eloquent traits to XML mapping files. A structurally similar Java port can compile cleanly and still behave differently. The answer the post gives is to stop trusting that it looks right and to make behavior the measure.

The engine's three parts

AWS describes one principle, "one shared brain, many projects." A global .kiro/ layer holds two skills and a steering file, and each project folder holds its own PHP source, Java output and specification.

  • Skill php-model-discovery is the scanner workflow.
  • Skill php-to-java-migration is the eight-phase playbook.
  • Steering file core-workflow.md carries the standing instructions.

Because the knowledge lives in versioned Markdown files rather than inside one tool, every rulebook improvement benefits later projects. If you are new to the idea, see our guide to what agent skills are.

Rule one: discovery before translation

The most important rule fires first: do not read, guess at or hand-translate a model or entity file until the scanner has run.

The scanner, discover-models.php, is a single-file, dependency-free PHP command-line tool that does not execute the target code; it reads source text as tokens. It runs three strategies each time: Eloquent model discovery (walking the class chain to the base Model), Doctrine attribute detection (#[ORM\Entity]), and ORM XML mapping files. The output is one JSON manifest. A models[] array lists every field, cast, relationship and visibility rule, and a flags[] array carries ambiguities in plain English. For example, a $fillable list built from a runtime expression becomes a flag, and the flag list is the human review queue. The scanner flags uncertainty instead of guessing.

Rule two: build the judge first

Phase 1 builds the parity harness before Java exists. It replays request and response pairs against both the PHP original and the Java port. The harness must pass against working PHP and fail when you deliberately break it, because a harness that misses injected breakage cannot be trusted. This is essentially mutation testing applied to the test rig, and it is the idea most worth stealing.

The phases

A gear fading at sunset beside a green replacement gear, illustrating a PHP-to-Java migration with KiroA gear fading at sunset beside a green replacement gear, illustrating a PHP-to-Java migration with Kiro

table · 3 cols
PhaseNameDeliverable
0Assess and discoverModel manifest, inventory, cutover choice
1Build the judgeParity harness runnable against PHP and Java
2Rulebook and gap inventoryRULEBOOK.md, GAP_INVENTORY.md
3Stress-test the rulebookHardened rulebook validated on representative files
4ScaffoldCompiling Spring Boot project
5Translate the data modelJPA entities and schema baseline
6Translate the I/O layerControllers, security, templates respond
7Convert business logicLogic converted, tests green
8Prove parity and cut overParity report and cutover checklist

Phases 0 to 3 concentrate human expertise with approval gates: you review the discovery manifest, approve the rulebook, and sign off before the next phase. Phases 4 to 8 are mostly self-driving loops refereed by the harness. Two principles govern them. The PHP is the specification, so the port is done when the referee agrees or each mismatch is logged as an approved change. And you fix the loop, not the code: when the same mistake appears across files, amend the rulebook and regenerate instead of hand-patching.

Weekly digest3.6k readers

Catch up on AI

Curated AI updates on agents, skills, and MCP — delivered to your inbox. Unsubscribe anytime.

The sample: Laravel Eloquent to Spring Boot

AWS's walkthrough migrates a read-only slice of an open-source Laravel application (Book, Chapter, Page and User models) to Spring Boot 3.4.1 on Java 21 with Maven and in-memory H2. The mappings are mechanical and traceable to the manifest:

  • A PHP namespace becomes a Java package.
  • An Eloquent model becomes a JPA @Entity.
  • hasMany and belongsTo become @OneToMany and @ManyToOne.
  • Eloquent query scopes become Spring Data repository methods.
  • Fields listed in a model's $hidden get @JsonIgnore; in the sample the html, markdown and text fields of Page are hidden, while Book's description deliberately is not.

The candid part

The post says plainly that only 4 of 37 models were ported and that the parity harness was never built for this slice, "the single biggest gap," and notes that documenting where it falls short is part of the design. That honesty is useful, and it also means the sample does not demonstrate the headline promise. It shows the structure of the method, not a measured parity result. Before using this for production work, expect to build the harness for your own app and to measure how many mismatches the loop finds.

Kiro versus AWS Transform

table · 3 cols
KiroAWS Transform
ModeInteractive, developer in the loopAgentic, autonomous with checkpoints
ScaleOne application at a timeMany applications in parallel
Best forFirst-of-a-kind frameworks, learning the outputPortfolios once the rulebook is stable
SharedThe same skill filesThe same skill files

AWS recommends starting in Kiro on one application, reading the generated Java and running the tests, then moving to AWS Transform for more. Rulebook fixes in either improve the other.

What to measure if you run it on a real app

A methodology is only as good as its evidence, so decide the scorecard before you start:

  • Parity rate. The share of recorded request and response pairs where PHP and Java agree, tracked per phase. The sample never reached this stage, so this is the number you must produce.
  • Approved differences. The log of mismatches you accept on purpose, such as a corrected bug. A long list is a warning sign.
  • Rulebook churn. How many times the rulebook changed after Phase 3. Late changes mean the stress test was too gentle.
  • Review flags resolved. How many scanner flags needed a human decision, and how many were resolved incorrectly and found later.
  • Elapsed time and model cost per module, so you can forecast the rest of the portfolio.

The data the harness replays also matters. Recorded traffic from production covers real usage but can contain personal data, so scrub it first. Synthetic cases cover edge conditions that traffic never hits, such as rounding, time zones and character encodings, where PHP and Java differ in quiet ways. A good harness uses both.

How to try it

  1. Clone the sample repository linked from the post and open its root, the folder containing .kiro/, as a Kiro workspace.
  2. Install PHP 8.0 or newer for the scanner and Java 21 with Maven.
  3. Fetch your PHP source into the project's source-php/ folder.
  4. Ask Kiro to migrate the application. The skill activates, runs the scanner first, generates a spec under .kiro/specs/, and walks the approval gates.
  5. No AWS resources are provisioned by the engine itself, so cleanup is stopping the app and deleting the generated folders and manifest.

How it compares with other skill-based workflows

The pattern here, a methodology encoded as skills plus steering, is the same one behind other agent toolkits we have covered, such as the AI-DLC workflows for Claude Code, Codex, Cursor and Kiro and the Superpowers skills framework. AWS also sets out its view of bounded autonomy in Trust in depth for agents, which fits the approval gates here.

Takeaways beyond PHP

AWS notes none of this is specific to PHP or Java. The transferable ideas are to inventory mechanically before generating, define done with a referee before writing code, and treat repeated errors as rulebook bugs. Any migration where the old system is the only complete specification can use the same shape. The risk to watch is trusting an AI-written harness that shares the same blind spots as the AI-written port, which is why breaking the code deliberately to check the harness matters.

Related reading

  • What are agent skills? A complete guide
  • AI-DLC workflows for Claude Code, Codex, Cursor and Kiro
  • Superpowers: agentic skills framework
  • AWS trust in depth for agent autonomy
  • Agent plugins and the OpenAI standard across AWS, Cursor and GitHub

Sources: AWS Machine Learning blog, Kiro.

Details are as published by AWS on October 29, 2026 and may change.

Spotted something out of date? Let us know.
Yash Thakker

Written by

Yash Thakker

Yash is an AI expert with over 300K learners. Join his workshops →

View Yash Thakker in People in AI →

Related posts

Sep 25, 2026

OpenClaw Deleted 400K Lines of AI-Written Tests. The test-audit Skill Shows How

Peter Steinberger says OpenClaw deleted roughly 400,000 lines of AI-generated tests without much change in code coverage, using a test-audit skill that is now public in the repo. The skill is a reusable authoring gate plus an audit workflow, and its rules apply to any codebase where agents write tests.

Aug 22, 2026

Cursor for Product Managers: Can You Build a Real AI Prototype?

Product managers, founders, and marketers can use Cursor to turn a precise brief into a working prototype without pretending the result is production software. This guide covers the build loop, review gates, project ideas, and the parts of a Claude Code-first workflow that transfer directly to Cursor.

Oct 29, 2026

Claude Code Game Studios: 49 Agents and 74 Skills in One Template, and What the Docs Admit

The Donchitos/Claude-Code-Game-Studios repo is trending on GitHub for packaging Claude Code into a game-studio hierarchy of directors, leads and specialists. Here is how it works, how to start, and the README's own measurement that more documents did not make a better game.