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.
In this repository10 other files it gives its agents.
- arch-auditSkill
- embeddings-ingestSkill
- embeddings-querySkill
- lease-hackrSkill
- perf-optimizationSkill
- pr-reviewSkill
- search-flightsSkill
- search-reposSkill
- security-auditSkill
- summarize-repo-changesSkill
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
- Very specific: line 14
Do not run pacman -Syu, pacman -S <pkg>, or anything with --noconfirm on an install/upgrade operation.
- Very specific: line 23
If pacman is missing, stop and tell the user this isn't an Arch-based system.
- Very specific: line 42
Keep the description to a single sentence (trim trailing punctuation/whitespace as needed).
- Distinctive: line 48
If neither yields a description, use "-" in the report.
- Very specific: line 56
If it returns ERROR: no changelog available for '<pkgname>', move on.
- Very specific: line 62
If the URL points at GitHub/GitLab, use WebFetch on that repo's releases or tags page (e.g.
- Distinctive: line 64
If neither yields anything, report the package with old→new version and note "no changelog found" rather than guessing.
- Distinctive: line 93
If there are zero updates, state that plainly instead of showing an empty table (and omit the commands section).
≈ “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.
Files
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
pacmanis missing, stop and tell the user this isn't an Arch-based system. checkupdates(from thepacman-contribpackage) 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 topacman -Sy/pacman -Qu— ifcheckupdatesisn't installed, tell the user to installpacman-contrib(sudo pacman -S pacman-contrib, which they must run themselves) and stop there.
Step 2: List pending updates
checkupdatesOutput 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.
- Installed changelog file (rarely populated for modern packages, but free to check):
If it returnspacman -Qc <pkgname>ERROR: no changelog available for '<pkgname>', move on. - Upstream project changelog/release notes — get the project URL, then fetch it:
If the URL points at GitHub/GitLab, use WebFetch on that repo's releases or tags page (e.g.pacman -Si <pkgname> 2>/dev/null | grep -i '^URL'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 -SyuIf there are zero updates, state that plainly instead of showing an empty table (and omit the commands section).
Edge cases
checkupdatesunavailable: report that update checking requires thepacman-contribpackage and stop there — do not fall back topacman -Sy/pacman -Qu.- No network access:
checkupdateswill 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-Syucommand yourself; by default present the command and let the user run it.
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
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.

