dependency-updates — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited dependency-updates (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use when:
This step is mandatory. Do not run any composer commands until a new branch is created and confirmed. Never update packages directly onmainormaster.
Check the current branch first:
git branch --show-currentIf the user is on main, master, or any protected branch, stop and ask: "What would you like to name the new branch for these updates?"
Suggest a default if they are unsure (e.g., deps/drupal-updates-YYYY-MM-DD).
git checkout -b <branch-name>Confirm the new branch is active before proceeding:
git branch --show-currentOnly continue to the next step once the output confirms a non-protected branch.
composer outdatedShows all packages with newer versions available. Columns: current version → latest available.
composer outdated --directcomposer outdated drupal/core-recommendedcomposer update drupal/package --with-all-dependenciescomposer update drupal/package1 drupal/package2 --with-all-dependenciesDrupal core is split across multiple packages. Update all together:
composer update drupal/core-recommended drupal/core-composer-scaffold drupal/core-project-message --with-all-dependenciesNote: Minor upgrades (e.g., 10.2 → 10.3) may require relaxing the version constraint in composer.json first:>
``json "drupal/core-recommended": "^10.3" ``>
Then run the update command above.
composer show drupal/core | grep versionsUpdate everything within existing composer.json constraints:
composer updateThis updatescomposer.lockbut will not change version constraints incomposer.json. Packages pinned to an older major will not cross that boundary.
composer update "drupal/*" --with-all-dependenciesFind what is blocking the update:
# What requires the package you're trying to update?
composer why drupal/package
# What prevents the target version?
composer why-not drupal/package 2.xAdjust the conflicting constraint in composer.json and retry.
# Check full dependency chain
composer depends drupal/module-a
composer depends drupal/module-bUpdate both together to let composer find a compatible set:
composer update drupal/module-a drupal/module-b --with-all-dependenciesIf composer update introduced a regression, restore the previous lock file from version control and reinstall:
git checkout composer.json composer.lock
composer installIf the update was already committed, revert the commit:
git revert HEAD
composer install# Confirm installed versions
composer show drupal/core-recommended
composer show --outdatedRun composer audit after any update to confirm no new advisories were introduced:
composer auditIf Drush is available locally:
drush statusExpected: Drupal bootstrap: Successful. If bootstrap fails, do not commit — investigate before proceeding.
After verification, always ask the user these questions in order:
>
1. "Do you want to commit these changes?" - If yes: ``bash git add composer.json composer.lock git commit -m "Update Drupal dependencies"`- If no → remind the user thatcomposer.jsonandcomposer.lock` are uncommitted before proceeding.
>
2. "Do you want to deploy these changes to an Acquia environment?" - If yes → follow the [Drupal Update and Deploy playbook](../../playbooks/drupal-update-deploy/SKILL.md) to push code, switch the environment, and optionally trigger a pipeline build. - If no → done.
>
3. After deployment: Run database updates on the target environment before marking the work complete: ``bash drush updb --yes drush cr ``| Problem | Command |
|---|---|
| Update ignored — package still old | Check constraint in composer.json; relax if needed |
composer install fails after update | Run composer why-not package version to find conflict |
| Unexpected packages changed | Review git diff composer.lock before committing |
| Memory limit error | COMPOSER_MEMORY_LIMIT=-1 composer update |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.