agentleFS
matthewmturnermatthewmturner/skills/check-pacman-updates/SKILL.md

check-pacman-updates

Skill0 starsChanged 4 months agoMITView on GitHub

Check for available official-repo package updates on Arch Linux (and derivatives) via checkupdates, without installing anything. Lists outdated packages with old→new versions, and best-effort short changelog summaries. Use when the user wants to know what updates are pending before deciding whether to upgrade.

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 3 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Do not run pacman -Syu, pacman -S <pkg>, or anything with --noconfirm on an install/upgrade operation.

    line 14
  2. Very specific:

    If pacman is missing, stop and tell the user this isn't an Arch-based system.

    line 23
  3. Very specific:

    Keep the description to a single sentence (trim trailing punctuation/whitespace as needed).

    line 42
  4. Distinctive:

    If neither yields a description, use "-" in the report.

    line 48
  5. Very specific:

    If it returns ERROR: no changelog available for '<pkgname>', move on.

    line 56
  6. Very specific:

    If the URL points at GitHub/GitLab, use WebFetch on that repo's releases or tags page (e.g.

    line 62
  7. Distinctive:

    If neither yields anything, report the package with old→new version and note "no changelog found" rather than guessing.

    line 64
  8. Distinctive:

    If there are zero updates, state that plainly instead of showing an empty table (and omit the commands section).

    line 93

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Check Pacman Updates

Report which packages have official-repo updates available, with a short changelog summary per package where one can be found. Never install, upgrade, or modify any package — this skill is read-only/reporting only.

AUR updates (via yay or other AUR helpers) are out of scope for now — official repos only.

Hard rule: no upgrades

Do not run pacman -Syu, pacman -S <pkg>, or anything with --noconfirm on an install/upgrade operation. Only run the query/check commands below. If the user asks you to actually apply the updates after seeing the report, confirm with them explicitly before running any install command.

Step 1: Detect available tools

command -v pacman >/dev/null || echo "pacman not found — not an Arch-based system"
command -v checkupdates >/dev/null || echo "checkupdates not found — needs pacman-contrib"
  • If pacman is missing, stop and tell the user this isn't an Arch-based system.
  • checkupdates (from the pacman-contrib package) is the only mechanism this skill uses to check updates: it syncs a temporary copy of the package database instead of the real one, so it can't cause a partial upgrade. Do not fall back to pacman -Sy / pacman -Qu — if checkupdates isn't installed, tell the user to install pacman-contrib (sudo pacman -S pacman-contrib, which they must run themselves) and stop there.

Step 2: List pending updates

checkupdates

Output is lines like pkgname oldver -> newver. Exit code 2 / no output means no updates.

Step 3: Best-effort changelog per package

For each outdated package, also grab the one-line package description from the sync db so the report can show what each package is:

pacman -Si <pkgname> 2>/dev/null | grep -i '^Description'

Keep the description to a single sentence (trim trailing punctuation/whitespace as needed). If pacman -Si returns no Description line, fall back to the installed package's info:

pacman -Qi <pkgname> 2>/dev/null | grep -i '^Description'

If neither yields a description, use "-" in the report.

Then, for the changelog, try these in order and use the first that yields something useful. Keep the summary to 2-4 bullet points per package — don't dump full changelogs.

  1. Installed changelog file (rarely populated for modern packages, but free to check):
    pacman -Qc <pkgname>
    If it returns ERROR: no changelog available for '<pkgname>', move on.
  2. Upstream project changelog/release notes — get the project URL, then fetch it:
    pacman -Si <pkgname> 2>/dev/null | grep -i '^URL'
    If the URL points at GitHub/GitLab, use WebFetch on that repo's releases or tags page (e.g. https://github.com/<owner>/<repo>/releases) and summarize what changed between the old and new version tags. If it's a project with its own changelog page/file, fetch that instead.

If neither yields anything, report the package with old→new version and note "no changelog found" rather than guessing.

Scale the effort to the number of updates. If there are only a handful of packages, fetch changelogs for all of them. If there are dozens (common after not updating for a while), fetch changelogs only for the packages the user is likely to care about (e.g. major/core packages: kernel, drivers, desktop environment, browsers) and note how many minor/library packages were skipped, offering to fetch more on request.

Step 4: Report

Present a single markdown report. Always include both an "update all" command and a per-package update command list at the end — the user asked for these recommendations to be part of every report. Do not run these commands yourself; present them for the user to run (see the hard rule in the intro and the edge case below).

# Pending Updates

## Official repos (N)

| Package | Description | Current | New | Notes |
|---|---|---|---|---|
| linux | The Linux kernel and modules | 6.9.1-1 | 6.9.2-1 | - Fixes X driver regression\n- Security patch for Y |
| curl | Command line tool and library for transferring data with URLs | 8.7.0-1 | 8.8.0-1 | no changelog found |

## Summary

Total: N updates pending. No packages were installed or upgraded.

## Recommended update command

Update all pending packages at once:

    sudo pacman -Syu

If there are zero updates, state that plainly instead of showing an empty table (and omit the commands section).

Edge cases

  • checkupdates unavailable: report that update checking requires the pacman-contrib package and stop there — do not fall back to pacman -Sy/pacman -Qu.
  • No network access: checkupdates will fail to reach mirrors — report the failure, don't fall back to stale local data as if it were current.
  • Rate limiting / fetch failures on changelog lookups: skip that package's changelog and note "changelog fetch failed", don't retry indefinitely.
  • User asks to proceed with the upgrade after seeing the report: the report already lists the recommended command (sudo pacman -Syu). Confirm explicitly before running any -Syu command yourself; by default present the command and let the user run it.

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.