agentleFS
nicholas-greenwoodnicholas-greenwood/agentic-engineering-skills/upgrade-dependencies/SKILL.md

upgrade-dependencies

Skill3 starsChanged 17 days agoMITView on GitHub

upgrade frontend dependencies, backend dependencies, or mise tools through parallel worker tasks

9 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use accessibility-audit.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • GitHubSkill

    accessibility-audit

    Audits actual components and routes against applicable WCAG 2.2 A/AA criteria using consumer-owned design-system evidence and repository tools. Use when asked for an accessibility audit, a11y check, keyboard or focus review, contrast check, or screen-reader verification.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 6 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 8 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    default: non-major moves only.

    line 16
  2. Distinctive:

    if a package manager or repository release-age policy blocks the desired version, target the newest earlier stable release in scope that …

    line 22
  3. Distinctive:

    follow the branch file's manifest policy and read the comment above a line before moving it.

    line 23
  4. Distinctive:

    create 1 task per group in its own worktree.

    line 34
  5. Very specific:

    never include a major-only dependency outside major mode

    line 40
  6. Distinctive:

    run tasks in parallel

    line 41
  7. Distinctive:

    wait until every task finishes or needs attention.

    line 46
  8. Very specific:

    if the user merges a PR mid-run, develop now contains it.

    line 49

“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

you are the orchestrator. worker tasks own the dependency changes and PRs

  • task: the worker that owns 1 group. codex: a new thread visible in its desktop app. claude code: a desktop session, or a sub-agent as the fallback, per step 3

the prompt names the ecosystem, npm, gem, or mise. its branch file, npm.md, gem.md, or mise.md, holds everything ecosystem-specific for you and the workers; read it and worker.md before step 1

modes:

  • default: non-major moves only. a dependency whose only newer stable releases are new majors is major-only: reported, never dispatched
  • major in the prompt: major-only dependencies only, each in a task of its own; non-major moves are out of scope
  1. inventory direct dependencies

    • inspect the manifests and lockfile per the branch file without changing files
    • the desired version is the newest stable release the mode and the version ceilings below allow, whether or not the current constraint allows it
    • if a package manager or repository release-age policy blocks the desired version, target the newest earlier stable release in scope that has aged past the cap
    • follow the branch file's manifest policy and read the comment above a line before moving it; a comment that pins for a bug means the worker must confirm the bug fixed before moving

    complete when every direct dependency is current, a candidate, out of the mode's scope, or non-registry-managed

  2. group candidates

    • non-major candidates: the branch file's groups; keep coupled families in 1 group; resolve ambiguity into everything-else
    • major candidates: 1 group per dependency. a coupled family (a package and its runtime, plugins, adapters, *-rails wrapper, siblings released in lockstep) is 1 dependency; 2 candidates that constrain each other's target share 1 group

    complete when every candidate appears in exactly 1 group

  3. dispatch each non-empty group

    • create 1 task per group in its own worktree; this skill is the authorisation to spawn them
    • codex: create_thread with a worktree environment, gpt-6.1-sol with high reasoning. clientThreadId means setup is queued and completes dispatch; retain it and resolve the task when setup finishes, with no retry or fallback for that group
    • claude code: read and follow /claude-parallel-writers with 1 writer per group. its fallback order replaces the retry and blocking rule below: a group blocks only after every fallback fails
    • retain the task for follow-up requests
    • after a creation error, reconcile the task list, git worktree list, branches, and PRs. retry once only after a definitive failure that left no task, PR, commits, or worktree or branch besides the one you created for the dispatch, which the retry reuses; any other failure, a failed retry, or an unknown outcome blocks the group
    • prompt it with the group, the mode, the exact list as current -> desired version, worker.md, the branch file, instructions to read and follow /loop, bash bin/ensure-environment, base branch develop, "never merge", "own only your branch and PR", and "return the full result plus token-efficient verification commands"
    • never include a major-only dependency outside major mode
    • run tasks in parallel

    complete when every non-empty group has a task and every empty group is skipped

  4. wait without micromanaging

    • wait until every task finishes or needs attention; read each task's full final answer, not the truncated wait output
    • a task that surfaces a product choice is blocked: relay the choice with its context to the user and resume the task with the answer
    • enforce the scope ceiling in worker.md: a task growing beyond it is redirected to report the rest as follow-up work
    • if the user merges a PR mid-run, develop now contains it; nothing else changes

    complete when every task has finished its loop or reported its whole group as blocked

  5. verify and report

    • cross-check each PR is green, mergeable, targets develop directly (no stacks), and stays inside its group and the scope ceiling
    • combine the open PR heads in group order in playground/worktrees/combined created from origin/develop; run bash bin/ensure-environment there first, then the branch file's checks
    • a lockfile conflict between 2 ready PRs is expected and cheap: after the earlier PR merges, the later one is rebased onto develop by its owning task inside its running loop (or by you when the task is finished) with the branch file's lockfile recipe, then diff-only review. no stacks, no rewriting another task's branch, no chasing develop advances that do not conflict. 1 loop per task
    • list ready PRs, accepted upgrades, and merge order; per PR every non-lockfile change with its reason and every compat setting added; per major PR also the version path, transitive dependencies that moved, call sites changed, and every behaviour change the new major introduces
    • list blocked upgrades with cause, evidence, workaround, required work, and retry condition, including the dependency that pins a target when that is the cause
    • outside major mode, list major-only dependencies as current -> latest major for $upgrade-dependencies <ecosystem> major
    • list non-registry-managed packages and transitive-dependency security advisories the workers saw once, as baseline, since no group owns them
    • combine the workers' cream of the crop findings as dependency -> item -> where it applies in this codebase; keep the concrete items, do not flatten them into 1 sentence

    complete when every dependency is accounted for and every PR is ready to merge in order

version ceilings

a ceiling caps the desired version in every mode; a dependency at the newest release under its ceiling is current

npm:

  • node, @types/node 24.x
  • lucide-react-v0 0.x

gem:

  • ruby 3.x
  • bundler at the lockfile's current BUNDLED WITH

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.