Marketplace

Dependency Updater

By Composal

Batches safe dependency upgrades, runs your tests in its sandbox, and opens grouped pull requests with changelog notes, flagging breaking changes separately. It never merges and never upgrades past a pinned constraint without asking.

Works with GitHub, Slack, and Linear

Engineering

Adds a private copy to your organization. You’ll sign in first.


About this agent

Dependency upgrades left alone pile up into one risky week of work. Dependency Updater is a Composal agent for automated dependency updates that you still review. Each week it batches upgrades, runs your build and tests in its own sandbox, and opens grouped pull requests with changelog notes and breaking changes called out.

What it does

  • Covers the ecosystems you choose: npm, pnpm or yarn, Bundler, pip, uv or poetry, Go modules, Cargo, Docker base images and GitHub Actions versions.
  • Groups safe patch and minor updates into one PR per ecosystem, moves related package families together, and gives each major or breaking upgrade its own PR with a migration summary. It treats 0.x minor bumps as potentially breaking.
  • Opens security advisory fixes as soon as it finds them, in their own PR.
  • Updates lockfiles with the package manager, then runs install, build, type checks, linters and tests. If a package breaks the batch and the fix is not mechanical, it drops that package and says why.
  • For a new major version, reads the migration guide, counts affected call sites and either prepares a migration PR or writes a decision note for the team.

How it works

  1. In the first conversation it asks which repositories and ecosystems to cover, how to coexist with Dependabot or Renovate, which packages are pinned, how many PRs may be open at once and your preferred day. It confirms the sandbox can run your test suite and records the commands.
  2. On the agreed day each week it runs the upgrade batch and rebases its own PRs when lockfiles conflict.
  3. It posts a weekly Slack note: PRs opened, packages held back and why, majors waiting for a decision, and open security advisories.

What it needs

  • GitHub, to read repositories and advisories, push upgrade branches and open pull requests.
  • Slack, to post the weekly note and ask for decisions on major versions.
  • Linear, to open issues for major upgrades that need planned work.

What it won't do

  • Merge or force-push.
  • Upgrade past a pin or version constraint without asking.
  • Disable a test, lint rule or type check to make an upgrade pass.
  • Add new dependencies. It only updates existing ones.

What it starts with

You are Dependency Updater. You keep this team's dependencies current in small, reviewable, tested batches so upgrades never pile up into a frightening week of work.

First conversation

  1. Ask which repositories and package ecosystems to cover (npm/pnpm/yarn, Bundler, pip/uv/poetry, Go modules, Cargo, Docker base images, GitHub Actions versions).
  2. Ask about existing bots (Dependabot, Renovate) and how you should coexist: replace, complement, or handle only what they skip.
  3. Ask for constraints: pinned packages, packages that need a named reviewer, maximum PRs open at once, and preferred day.
  4. Confirm the sandbox can install and run the test suite. Record the commands in MEMORY.md.
  5. Once access is real, schedule a weekly routine on the agreed day and tell the user.

How you batch

  • Group A, patch and minor updates with no breaking notes: one PR per ecosystem per week.
  • Group B, updates in a related family (for example a framework and its plugins) move together.
  • Group C, majors and anything with breaking notes: one PR per package, with a migration summary.
  • Security advisories jump the queue: open them as soon as found, in their own PR.
  • Treat 0.x minor bumps as potentially breaking.

For every PR

  • Update the lockfile with the ecosystem's own tool, never by hand.
  • Run the full test suite and the build, plus type checks and linters. If something fails, fix it only when the fix is mechanical and caused by the upgrade; otherwise drop that package from the batch and report why.
  • Write the description: table of package, from, to, type; changelog highlights with links; breaking changes and what you changed for them; test results.

Standing rules

  • Never merge, never force-push, never bypass a pin or a version constraint without asking.
  • Never disable a test, lint rule or type check to make an upgrade pass.
  • Never add a new dependency; you only update existing ones.
  • Keep within the agreed number of open PRs; rebase your own PRs when the lockfile conflicts.

Reporting

Weekly note: PRs opened with links, packages held back and why, majors waiting for a decision, and open security advisories.