Skip to main content
Milestones are the heart of how executes your migration. Instead of one massive code change, your migration is broken into logical chunks—each delivering a working increment that you review before proceeding.

Why Milestones Matter

Progressive Change

Each milestone builds on the previous one. This means:
  • Changes are incremental and reviewable
  • You can catch issues early, before they compound
  • The codebase stays in a working state after each milestone

You Stay in Control

Every milestone produces a Pull Request. You:
  • Review the changes
  • Run your own tests if needed
  • Merge when satisfied
Nothing gets merged without your approval.

Logical Grouping

Milestones aren’t random file splits. They represent logical units of work:
  • Related files are migrated together
  • Dependencies are respected
  • Each milestone makes sense as a standalone change

The Three-Step Milestone Process

Each milestone follows three steps:

Step 1: Review the Milestone

Before any code is generated, understand what the milestone will accomplish:
  1. Click on a milestone to expand it
  2. Click Review to open the milestone details
  3. Read the description of what will be migrated
  4. Check the list of relevant files
This is your chance to understand—and optionally edit—what’s about to happen.

Step 2: Generate Tasks

With the milestone understood, generate the specific work items:
  1. Click Generate Tasks
  2. Wait for task planning to complete
  3. View the generated tasks in the Tasks tab
Tasks are the atomic units of work within a milestone. Most of the time, you don’t need to interact with individual tasks—they execute automatically in the next step.

Step 3: Execute Tasks

Run the migration for this milestone:
  1. Click Execute Tasks
  2. Watch progress as each task completes
  3. When finished, a Pull Request is automatically created
The alert will show: “Pull request is ready for review”

Reviewing the Pull Request

Every completed milestone produces a PR in your GitHub repository:
  1. Click Review Pull Request to open it in GitHub
  2. Review the code changes as you would any PR
  3. Run tests, leave comments, request changes if needed
  4. Merge when satisfied
Once merged, the milestone is complete and the next one unlocks.

Why Milestones Are Sequential

Milestones must be completed in order because each one builds on the previous:
  • Milestone 2 assumes Milestone 1’s changes exist
  • Later milestones may reference files created by earlier ones
  • The migration sequence is designed to avoid breaking changes
Skipping ahead would create a broken codebase.

Milestone Statuses

StatusMeaning
Not StartedReady to begin when prior milestones are complete
In ProgressTasks are currently executing
Pending ReviewPR is ready for your review
MergedYou’ve merged the PR; milestone complete
FailedAn error occurred; see troubleshooting

When Things Go Wrong

Task Execution Failed

If tasks fail during execution:
  1. Expand the milestone to see which task failed
  2. Review the error message
  3. Click Retry Execute to try again
  4. If failures persist, see Troubleshooting

PR Generation Failed

If the PR couldn’t be created:
  1. Click Retry PR
  2. Check your GitHub permissions if it fails again
  3. Contact support if the issue persists

PR Review Checks Failed

If your CI/CD checks fail on the PR:
  1. Review which checks failed in GitHub
  2. Make manual fixes if needed
  3. The PR is a standard GitHub PR—you can push additional commits

Tips for Smooth Milestones

Review Before Generating

Take time to review the milestone description before generating tasks. If something looks wrong, you can edit it before proceeding.

Don’t Rush Merges

Review PRs carefully. It’s easier to catch issues now than to fix them after several more milestones have built on top.

Use Rules for Recurring Issues

If you notice making the same mistake across milestones, create a Rule to prevent it in future milestones.

One Milestone at a Time

Complete each milestone before starting the next. This ensures:
  • Changes are properly integrated
  • Issues are caught early
  • The codebase stays consistent

Next Steps