Documentation menu

Documentation · Agents and work

How changes reach your site

Approved work reaches your site as GitHub pull requests or as prompts you paste. Here's how each works and what Ivy Link never does without you.

Once you approve an idea, your agents build it. What you get back depends on one setting: How finished work reaches your site. With GitHub connected, each change arrives as a pull request. Without GitHub, or if you prefer, each change arrives as a prompt you paste into the tool you build your site with. Either way, it shows up on Results.

Pick how changes arrive

Go to Settings, then the Connections tab (app.ivyl.ink/settings/connections). Under Permissions, find How finished work reaches your site. It covers fixes, page changes and new pages from your agents.

Setting What Ivy Link does Who merges
Prompts only Reads your repo to find what causes each issue, but never changes your site's code. Each change arrives as a prompt on Results for you to paste. You make the change yourself.
Pull requests (the default) Opens a pull request for each change, from a branch named ivylink/…. Never pushes code to your main branch. You, on GitHub or with Merge on Results.
Pull requests, merged for you Opens a pull request and merges it itself once your repo's checks pass. Each one stays on GitHub, where you can revert it. Ivy Link, unless something needs you (see below).

To change it:

  1. Connect GitHub first. See Connect GitHub.
  2. Under How finished work reaches your site, choose an option.
  3. Click Save finished work. A notice confirms: Saved. Finished work: …

Without a connected repo, this form is greyed out with Prompts only selected. It reads: "Connect GitHub to choose pull requests. Until then, finished work arrives as prompts on Results."

Switching to Pull requests, merged for you also merges the fix pull requests already waiting for you, once their checks pass.

The Settings page sums this up in one line under Your site, for example "GitHub: your-org/your-site, pull requests." or "GitHub not connected, so finished work arrives as prompts on Results."

Pull request mode

With GitHub connected and Pull requests or Pull requests, merged for you selected, the top of Results reads: "Your approved work, as pull requests on your repository."

What a pull request looks like

Your agents push each change to its own branch named ivylink/… and open a pull request against your main branch. An agent opens at most one pull request per job. The pull request description ends with a line saying who merges it:

  • Under Pull requests: "Nothing here was built or tested before it was opened: check the preview build, then merge."
  • Under Pull requests, merged for you: Ivy Link merges it once every check passes, and leaves it open for you if they haven't passed within an hour. Close the pull request to stop that, or change the setting in Settings > Connections.

Review a pull request

Open pull requests waiting on you are under Ready for you on Results. Each card shows:

  • The title and a pill:
    • Waiting for your review: a fix waiting for you to merge it.
    • New data to merge: a data update waiting for you to merge it.
    • Waiting for you: Ivy Link left you a note on it, shown on the card.
  • Why the change was made.
  • Pull request #N · N files (or data files for a data update).
  • Buttons: Merge (when Ivy Link may merge it), Review on GitHub, and, for fixes, See the change.

Home also lists pull requests you can merge from Results under Needs you, with a Review a change pill.

Merge from Results

  1. On Results, find the pull request under Ready for you.
  2. Optionally click Review on GitHub or See the change first.
  3. Click Merge.

Before merging, Ivy Link checks again that the pull request hasn't changed, has no conflicts, and that every check on its latest commit passed. It then merges it. If your repo doesn't allow squash merges, it uses a regular merge, then rebase. After a fix merges, its branch is deleted.

If it works, you see: Merged. Your site goes live with it on its next build.

If it doesn't, a notice tells you why:

Notice What to do
Its checks haven't all passed yet. Try again once they have, or merge it on GitHub. Wait for your checks, then click Merge again. If your repo runs no checks at all, merge on GitHub.
It conflicts with newer changes on your main branch. Sort that out on GitHub, then merge it there. Resolve the conflict on GitHub.
Your repo needs a review, or the change brought up to date, before it can merge. Merge it on GitHub. Your repo's branch rules apply. Merge on GitHub.
It changed since Ivy Link last checked it. Review it on GitHub. Someone changed it. Look at it on GitHub.
Ivy Link hasn’t finished checking how this change looks on your site. Try again later, or merge it on GitHub. Wait and try again, or merge on GitHub.
That pull request isn't open anymore, or Ivy Link can't reach your repo. Check it on GitHub and check your GitHub connection.
Ivy Link can't merge it while your site is set to prompts only or GitHub isn't connected. Merge on GitHub, or change your setting in Settings > Connections.
GitHub didn't merge it. Try again in a minute, or merge it on GitHub. Try again shortly.

If the Merge button isn't there, the card says: "Merge it on GitHub. To merge here, let Ivy Link open pull requests." That link takes you to the setting.

Merge on GitHub

You can always merge on GitHub instead. Click Review on GitHub, review the change and its preview build, and merge it as you would any pull request. Ivy Link picks up the merge on its own.

If you close a pull request without merging, the idea goes back to where it was before the work started.

Under Pull requests, merged for you, open pull requests Ivy Link will merge are under Merging on its own on Results, with the pill Merging once checks pass. The section reads: "Ivy Link merges these once every check on them passes, because your site is set to pull requests merged for you."

Ivy Link waits about 5 minutes for your checks to start. It stops and leaves the pull request for you, with a note on the card, when:

  • It conflicts with newer changes on the main branch.
  • Your repo needs a review or a required check before it can merge.
  • Its checks didn't pass within an hour.
  • Your repo requires it to be up to date with the main branch first.
  • Someone added commits to it.
  • The destination branch changed.
  • It touches a page: "This change touches a page, so it waits for your review."

These then move to Ready for you with the pill Waiting for you. Merge them yourself, on Results or on GitHub.

Right now, any change that touches a page (a template, stylesheet or page file) always waits for your review, even under Pull requests, merged for you. Ivy Link doesn't merge a page change no one has looked at.

After it merges

Merged doesn't mean live. An item moves to Shipped only once Ivy Link sees the change live on your site, then to Measured once its results are checked. See Results for every status.

Prompt mode

When GitHub isn't connected, or you chose Prompts only, the top of Results reads: "Your approved work, as prompts you can paste into the tool you build your site with." You also see one of these:

  • GitHub not connected: "Connect GitHub and Ivy Link opens these changes as pull requests for you." with a Connect GitHub link.
  • GitHub connected but set to prompts: "Finished work arrives as prompts because your site is set to prompts only." with a Change it link.

While a prompt is being written, its card says "Its prompt is being written."

Use a prompt

  1. On Results, find the item under Ready for you. Home also lists it under Needs you with a Paste a prompt pill.
  2. Click Show the prompt to read it, or Copy prompt to copy all of it.
  3. Paste it into the tool you build your site with, and make the change. Some prompts show a Done when: line saying how to tell the change is finished.
  4. Click I made this change. You see: "Marked done. Ivy Link checks the change on your site and measures what it does."

Only click I made this change once the change is on your site. The item moves to Shipped, and Ivy Link measures what it does.

Change previews

A change preview shows how a page change looks before it merges. Open one from a fix's See the change button on Results, or from View change under Site changes on Decisions.

The page shows:

  • A ← Decisions link back, your site and Site change, and the pull request's title.
  • A status pill. Today it reads Preview unavailable.
  • An Open pull request button.
  • Publishing: with how this change goes out: Your review (you merge it), Automatic (Ivy Link merges it once checks pass), Paused (it waits for you), Merged or Closed.

Ivy Link doesn't take screenshots of changes yet. Every preview shows Preview unavailable with "Ivy Link doesn’t take screenshots of changes yet. Open the pull request on GitHub to check its preview build." Until that changes, review page changes in your host's preview build, linked from the pull request on GitHub.

Data updates

If your site has a dataset, Settings > Connections also shows Data updates: the daily data files in data/ that your pages are built from. This is separate from How finished work reaches your site.

Setting What happens
Automatic (the default) Ivy Link commits the day's data to your repo each day and your site rebuilds with it. It only changes files in data/.
Pull request Ivy Link keeps one pull request with the latest data, updated each day. Merge it when you want the new numbers live.
Paused Ivy Link keeps collecting but doesn't write to your repo. Turn it back on and the next update brings everything in.

Click Save data updates after you choose. Under Pull request, the data pull request shows on Results with the pill New data to merge, and you can merge it with Merge whenever you have GitHub connected. Its branch is kept for the next day's update.

Protected paths

Protected paths are files or folders in your repo that Ivy Link must never change. When a site has them, Ivy Link refuses any change that touches one, with the message "… is protected by the site owner."

You can't set protected paths in the app yet. Until you can, keep sensitive files safe another way:

  • Choose Prompts only, so Ivy Link never changes your site's code.
  • Or require a review on your main branch in GitHub. Then nothing merges without you, even under Pull requests, merged for you.
  • It never starts an idea you haven't approved, unless you set New ideas to Start without asking. Your report's actions always wait for you. See Approve work.
  • It never pushes your agents' changes straight to your main branch. Every fix, page change and new page is a pull request from an ivylink/… branch. The one exception is daily data: under Data updates set to Automatic, Ivy Link commits files in data/ directly.
  • It never merges a fix unless you allow it. Under Pull requests, you merge. Only Pull requests, merged for you lets Ivy Link merge, and only once every check passes.
  • It never merges a page change no one has reviewed. Right now, page changes wait for you, whatever your setting.
  • It never changes your site's code under Prompts only. It reads the repo to find causes, and hands you prompts. Data updates is a separate setting, so pause it too if you want no writes at all.
  • Only you decide. Only you, the account owner, can approve work, merge from Results, or change these permissions.

Every merged change stays on GitHub, so you can revert it there any time. To stop a pending merge, close the pull request on GitHub or switch back to Pull requests.

  • Results: every approved item and its status.
  • Approve work: approving, dropping and taking back ideas.
  • Connect GitHub: install the app and pick your repo.
  • Decisions: choices waiting for you and recent site changes.

Last updated October 31, 2026

Something here not match what you see? Email hello@ivyl.ink and we'll fix the page.