Modernize a slice. Reuse what the team learns.
Explore a migration process that reuses codebase discovery, separates implementation from regression checks and evaluates one bounded journey first.
Establish the baseline
- Existing Android repository
- Representative user journeys
- Target devices and build access
Evidence to retain
- Reusable application and state map
- Bounded implementation comparison
- Device evidence and review decisions
Why work this way?
The process, and what it could improve.
Cost
Pay for one discovery pass and one bounded slice.
Record the screen, state and dependency map for later agents. Prove the migration on one journey before repeating the approach across the app.
- What to compare
- Discovery, model and review effort per accepted screen, including regressions and repeated repository exploration.
- The tradeoff
- An unrepresentative first screen can make the later migration look cheaper than it is.
Pay for one discovery pass and one bounded slice.
Compare the same scope and acceptance criteria. Include setup, coordination, failed attempts and human review alongside the successful model call.
Design the work
One problem. A coordinated agent team.
A model reasons. A harness runs its agent session and tool loop. Orchard coordinates the work, context and handoffs across them.
Orchestration phase 1: Split the work. Preserve the question.
Implementation lead
01Trace the Java/XML app and implement a Compose screen at an existing navigation seam.
Counterproposal agent
02Argue for isolating state and data boundaries before migrating UI. Probe lifecycle and offline edge cases.
Independent reviewer
03Compare navigation, persisted state, accessibility, and device behavior against the baseline.
Rules · skills · hooks · MCP configuration
Adapted to each harnessSplit the work. Preserve the question.
One objective, distinct responsibilities
Modernize one Android journey while making behavioral differences visible before release.
screen-migration branch + state contractarchitecture-counterproposal.md + regression fixturesdevice-comparison report + review findingsModel families and pairings are illustrative. Assignments here are manual examples, not measured model comparisons or automatic cost optimization.
Inspect the example work orderJSON
An illustrative work-order format for this scenario. Changing an example session updates this document; no agents run from this page.
{
"example": "android-modernization",
"objective": "Modernize one Android journey while making behavioral differences visible before release.",
"boundary": "Existing backend and saved-data contracts remain the reference for the selected slice.",
"sessions": [
{
"role": "proposer",
"model_family": "Claude",
"harness": "Claude Code",
"task": "Trace the Java/XML app and implement a Compose screen at an existing navigation seam.",
"expected_artifact": "screen-migration branch + state contract"
},
{
"role": "challenger",
"model_family": "GPT",
"harness": "Codex CLI",
"task": "Argue for isolating state and data boundaries before migrating UI. Probe lifecycle and offline edge cases.",
"expected_artifact": "architecture-counterproposal.md + regression fixtures"
},
{
"role": "reviewer",
"model_family": "Gemini",
"harness": "Gemini CLI",
"task": "Compare navigation, persisted state, accessibility, and device behavior against the baseline.",
"expected_artifact": "device-comparison report + review findings"
}
],
"project_contract": [
"Rules",
"Skills",
"Hooks",
"Tool configuration"
],
"shared_context": [
"Application map",
"Migration decisions"
],
"evidence_required": [
{
"label": "Behavior preserved",
"evidence": "Run identical journeys through the baseline and candidate builds."
},
{
"label": "Lifecycle handled",
"evidence": "Exercise process recreation, offline recovery, permissions, and saved state."
},
{
"label": "Scope stays bounded",
"evidence": "Review the diff and dependency graph for changes outside the selected journey."
}
],
"release_owner_gate": "The app owner accepts behavior differences and signs off the release candidate; signing and store rollout remain explicit steps."
}Chapter 1: Understand the app people already use.
Chapter 01 / 04
Understand the app people already use.
Inspect the build, screens, persistence, and API calls. Record core journeys before choosing the first migration slice.
Analysis agent + Android engineer
Legacy behavior map
Java / XML · Navigation · Local data · API contractsThe process principle
Reuse discovery. Keep regressions visible.
Scope of this exampleThe route depends on the app and device requirements. Signing, store publication, and rollout remain separate release decisions.
A modernization scenario, not a claim that a particular app has been migrated or published. Android migration guidance






