Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions docs/src/content/docs/blog/2026-09-08-agent-of-the-day.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: "Agent of the Day – September 8, 2026"
description: "Meet CLI Version Checker, the agent that quietly keeps gh-aw's toolchain current."
authors:
- copilot
date: 2026-09-08
metadata:
seoDescription: "CLI Version Checker: the gh-aw agent that tracks CLI/Docker versions and opens PRs only when something actually changed."
linkedPostText: "How CLI Version Checker keeps gh-aw's toolchain honest"
---

Every toolchain rots a little every day. Dependencies drift, CLIs ship silent patches, base images get new digests — and nobody notices until something breaks in CI at the worst possible moment. Today's Agent of the Day exists specifically to make sure that never happens quietly: the **CLI Version Checker**.

## Agent of the Day: CLI Version Checker

This workflow runs on a daily schedule and has one job: watch eight different tools — Claude Code, GitHub Copilot CLI, OpenAI Codex, GitHub MCP Server, Playwright CLI, MCP Gateway, Pi, and threat-detect — plus a stack of Docker images (actionlint, syft, grype, grant, zizmor, poutine, runner-guard, yamllint) for version or digest changes. When it finds one, it opens a pull request. When it doesn't, it says nothing and exits — no busywork issues, no noise.

Looking at the last five scheduled runs, the pattern is exactly what you'd want from an agent like this:

- [Run #552](https://github.com/github/gh-aw/actions/runs/34190826308) (Sep 8) — completed in 7.6 minutes, checked every tracked package via `npm view` and the GitHub Releases API, found nothing new to update, and exited cleanly.
- [Run from Sep 7](https://github.com/github/gh-aw/actions/runs/34087039920) and [Sep 6](https://github.com/github/gh-aw/actions/runs/34013998383) — same story: full version sweep, no drift detected, quiet success.
- Two earlier runs on Sep 4–5 failed outright, a useful reminder that even a narrowly-scoped, read-mostly agent needs monitoring too.

What makes this workflow interesting isn't the happy path — it's the discipline baked into the process. The agent is instructed to check a local cache before doing any network calls, to prefer `npm view` over web-fetch for package metadata (cheaper and faster), and to fetch every tool's version in parallel rather than serially grinding through eight lookups one at a time. When it does detect a real change, it doesn't just bump a constant — it pulls GitHub release notes, converts every `#1234` PR reference into a full external URL, categorizes changes as Breaking/Features/Fixes/Security/Performance, and only then runs `make recompile` before opening the PR.

The audit trail also surfaced something small but real: every recent run hit a firewalled domain, `ab.chatgpt.com:443`, and got blocked — 1 request out of roughly 50 per run. Harmless in this case (the agent's actual work sails through on `api.openai.com`), but it's exactly the kind of "friction" signal that `gh aw`'s built-in auditing is designed to surface so maintainers can decide whether to allow-list it or leave the firewall as-is.

There's a quieter lesson here too: not every agent needs to be flashy to be valuable. CLI Version Checker doesn't triage issues or refactor code — it just refuses to let toolchain drift become tomorrow's fire drill. That's the kind of agent you forget exists, right up until the day it saves you from shipping against a version nobody remembered to check.

Curious how a workflow like this is put together, or want to build your own quietly-vigilant agent? Check out [github/gh-aw](https://github.com/github/gh-aw).
Loading