> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modelcode.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Reviewing Pull Requests

> How to review and merge milestone PRs effectively

export const ProductName = "The Morph Platform";

export const productName = "the Morph Platform";

Every completed milestone produces a Pull Request in your remote repository (e.g. GitHub, GitLab, Azure DevOps). This is your checkpoint—the moment to verify that the migrated code meets your expectations before it becomes part of your codebase.

## Why PRs Matter

The Pull Request is your safeguard. It ensures:

* **No blind merges** — You see every line of generated code
* **Normal workflow** — Uses the same review process as any other PR
* **Team involvement** — Other reviewers can participate
* **CI/CD validation** — Your existing pipelines run against the changes

## Opening a Milestone PR

1. When a milestone is complete, the milestone card on the **Roadmap** will have an entrypoint to the [**Code Review**](/migration/code-review-chat) drawer.
2. The drawer will have a button that takes you to the individual pull requests

## What to Review

### Code Quality

* Does the generated code follow good practices?
* Are there any obvious bugs or issues?
* Is the code readable and maintainable?

### Correctness

* Does the migration preserve the original functionality?
* Are edge cases handled?
* Do the transformations make sense?

### Consistency

* Does the code match your team's conventions?
* Are naming patterns consistent with existing code?
* Is the style what you expected?

### Tests

* Were tests migrated or generated?
* Do they cover the key functionality?
* Do they pass?

It is also recommended to review the [Validation Hub](/migration/functional-testing) results from the milestone's **Tests** tab, which compares the actual behavior of the origin and target applications side by side.

## Taking Action

### If Everything Looks Good

1. Open the pull requests by clicking the **PR links** in the top-right corner of the [Code Review](/migration/code-review-chat) drawer
2. Approve each PR in your SCM (GitHub, GitLab, Azure DevOps)
3. Merge using your preferred strategy (merge commit, squash, rebase)
4. Return to {productName}—the milestone status updates to **Merged**
5. The next milestone unlocks

<Note>
  All pull requests for a milestone must be merged before the next milestone can begin. If any PR remains unmerged, the milestone stays in its current state and the next one will not unlock.
</Note>

### If You Find Issues

You have several options:

**Make Manual Fixes**

The PR is a standard Pull Request. You can:

* Push additional commits to fix issues
* Edit files directly
* Clone locally and push changes

Once your fixes are in, merge as normal.

**Request Regeneration**

For significant issues, you might want {productName} to try again:

1. Close the PR without merging
2. In {productName}, the milestone returns to a state where you can retry
3. Consider [editing the milestone](/customization/editing-milestones) before regenerating

### If Checks Fail

CI/CD checks run on PRs automatically. If they fail:

1. Click into the failed check
2. Review the failure reason
3. Common causes:
   * Linting violations (may need style adjustments)
   * Test failures (tests may need updates for new code)
   * Build errors (configuration may need tweaks)
4. Fix the issues and push updates
5. Merge once checks pass

## PR States in {productName}

The milestone status reflects the PR state:

| {ProductName} Status          | PR State                     |
| ----------------------------- | ---------------------------- |
| Pending Review                | PR open, awaiting review     |
| Pending Review (with warning) | PR checks failed             |
| Merged                        | PR merged into target branch |

{ProductName} automatically detects when you merge, updating the milestone status.

## Best Practices

### Review Promptly

Don't let PRs sit. The next milestone is blocked until you merge. Review and merge (or address issues) to keep momentum.

### Use Your Normal Process

Treat milestone PRs like any other PR:

* Add reviewers if your team normally does
* Require approval if that's your policy
* Run additional manual tests if needed

### Check Related Changes

When reviewing, consider:

* Do changes in this milestone connect properly to previous milestones?
* Are there any inconsistencies with already-merged code?

### Document Decisions

If you make manual changes to a PR before merging, consider noting why. This helps if similar issues come up in later milestones.

## After Merging

Once merged:

1. The milestone shows **Merged** status
2. Any milestones that depended on this one are unlocked
3. Sibling milestones that are still in progress may be flagged as **Rebase Required** if they share code dependencies with the just-merged milestone
4. Repeat the process: Review → Generate → Execute → Review PR → Merge

When all milestones are merged, your migration is complete.

### Rebase Required After a Sibling Merge

When you merge a milestone PR while other milestone branches are in progress, those branches may drift from the updated feature branch. {ProductName} detects this and marks affected milestones as **Rebase Required**.

To resolve:

1. Open the affected milestone on the Roadmap
2. Click the **Rebase** action on the milestone card
3. The agent incorporates the upstream changes into the milestone branch
4. Once the rebase completes, review the updated PR as normal and merge

You do not need to resolve merge conflicts manually — the agent handles the integration.

## Troubleshooting

### "PR was closed without merging"

If you accidentally close a PR:

1. Reopen it, or
2. In {productName}, retry the milestone to generate a new PR

### "Merge conflicts"

Conflicts can occur if:

* You made manual changes to the repository
* Another branch was merged between milestones

Resolve conflicts as you normally would, then merge.

### "PR stuck in pending state"

If {productName} doesn't detect your merge:

1. Refresh {productName} page
2. Check that the PR is actually merged
3. Wait a moment—status updates poll periodically
4. Contact support if the issue persists
