There was a time when a software release meant a gold master, a shrink-wrapped box, and maybe a launch party if the budget allowed. In October I tagged sixteen releases across ten repos — seven of them gh-observer alone — and the closest thing to cake was the Codecov bot welcoming itself onto my pull requests. I’ll take it.
This is another in the series of monthly recaps of my public GitHub activity,
numbers first with the stories behind the interesting bits. The previous
installment covered
September 2026, and the machinery
that drafts these posts — a proper gh-recap skill — landed in this very repo
in October, so the series now runs on rails instead of vibes. Whether that
makes the posts better or merely more punctual remains an open question.
By the Numbers
| Metric | Count |
|---|---|
| Pull requests opened | 168 |
| … merged | 166 |
| … closed without merging | 1 |
| … still open | 1 |
| Issues opened (per my GitHub profile) | 34 |
| Commits (per my GitHub profile) | 167 |
| PR reviews given (per my GitHub profile) | 205 |
| Repos touched (per my GitHub profile) | 28 |
| Releases published | 16 |
| Bot-filed data updates | 33 |
One hundred sixty-eight PRs, 166 of which merged. The robots filed 33 of those on their own — the daily “Update GitHub data” paperwork from the data-curated repo — and one of the robots’ own PRs (#547) got closed without merging, which is either quality control working or the machines learning how to fail. Progress! The one PR still open at month’s end belongs to somebody else’s project — more on that below.
The profile counters deserve a caveat this month: 71 of the contributions behind them are private-restricted, so the PR rows are the real public census and the profile rows are an upper bound. Meanwhile I left 205 PR reviews, nearly triple September’s 74 — approving the fleet’s homework turns out to be a full-time job. The busiest repos were gh-observer (24 PRs), data-curated (19, not counting its 33 robot-filed ones), ctm and this very website (9 each), and chicks-home (7), with 28 repos touched in total. That’s a lot of context switching for one human and however many robots I supervise.
Elsewhere
For the first time since July, a real chunk of the month went to repos I don’t own — five PRs to DNSControl/dnscontrol, the DNS-as-code project, all in the supply-chain-hygiene vein:
- #4993 added OpenSSF Scorecard analysis — merged with a “lgtm!”
- #5001 made the workflow GITHUB_TOKEN permissions least-privilege, earning an “I feel more secure already!” from the maintainer
- #5006 added Go fuzz targets and a scheduled fuzzing workflow — and found real bugs in the process: “I knew it would find a bunch of bugs! Thanks for fixing them!”
- #5016 kept the new fuzzing workflow’s harden-runner pin honest
- #5011 — the big one, still open — signs releases with cosign and attaches SLSA provenance
That last PR is the month’s best upstream story. A security reviewer (@cafferata) did a genuinely thorough review and caught a bug that had been sitting quietly. Then the maintainer dry-ran my release checklist on a fork and found a real bug in the release-notes uploader that my own validation repo couldn’t catch. He’s merging once his travel wraps, which makes it the best kind of open PR: waiting on a vacation, not a disagreement.
Releases Shipped
Sixteen releases across ten repos. The highlights:
gh-observer v4.1 through v4.4.0
Seven tagged releases in twenty-seven days — v4.1 on October 2 through v4.4.0 on October 29 — which is what happens when you decide that tagging a release is cheap, because it is. v4.1 shipped the GitHub Enterprise URL support from late September plus the OpenSSF silver groundwork (test coverage pushed past 80%); the month then added Copilot-availability detection, Copilot review pagination for busy repos, codecov reporting, a Go security bump for GO-2026-6809, and vim-style scrolling. v4.3.0 carries the project’s first contribution from outside the house — @brookssime added scrolling functions to –repo mode. A tool I built to watch CI getting its first drive-by contributor felt like a rite of passage.
ctm v0.3.0, now on tap
ctm v0.3.0 (October
15) rolled up the color_set and dimmer_set subcommands from late September,
the fuzz targets that fixed a negative-index panic, a front-page README
rework, asciinema recordings of the commands in action, and codecov badges —
with signed binaries, SLSA provenance, and verification instructions in the
release notes. The same week,
homebrew-chicks v1.1
put a ctm formula in the tap, so bossing around LED clocks is now a
brew install away.
template-repo v2.0
The vendored just machinery that runs PRs across the whole fleet graduated to v2.0 (October 18), rolling up the gh-process v8.4 → v9.9 arc — fixture tests, compliance checks, asciinema recording — plus October’s actionlint migration and renovate pinning. Every changelog in this post that mentions “gh-process vX.Y” is running code that shipped here.
The maintenance fleet
Six more releases did the unglamorous-but-necessary work: chicks-home v42.6 (starship prompt config, the OAuth token rotator), macaw v0.3 (macos-15 runners, cargo audit moved to a weekly workflow), gh-amp v0.5 (draft-PR detection, gitleaks and renovate-validate), fini-infra v4.5 (signed releases — the notable PR below), www-chicks-net v2026.10 (a booking page, radio reference pages, ghost lines on the contribution graph), and fini-coredns-example v1.4 (dns and testify bumps). Nobody writes folk songs about this layer, but the lights stayed on.
Notable Pull Requests
gh-observer #558: vim-style scrolling for PR and run modes
1,124 additions across nine commits, four rounds of Claude review, and point-by-point dispositions to match — including two suggestions I declined with rationale, which reviewers seem to respect more than silent compliance. The viewport logic now lives in one shared scroll state so PR mode and run mode scroll like vim. Shipped in v4.4.0.
chicks-home #146: rotate_claude_oauth_token
245 lines of careful bash that rotates the CLAUDE_CODE_OAUTH_TOKEN across
every chicks-net repo that uses it: discover, dry-run, confirm, rotate. Six
rounds of Claude review, six fix commits, and not one token ever touched a
command line where ps could see it. The most boring kind of security tool,
which is the best kind.
www-chicks-net #404: fix Lighthouse LCP with optimized responsive covers
This one stopped mobile browsers from downloading oversized hero images for a
small screen. LCP went from 20 seconds to 2, the Lighthouse performance score
from 0.75 to 0.99, and the originals are preserved under originals/ like the
repo rules ask. Five review rounds, one real bug caught, and the site you’re
reading this on got faster — the kind of fix readers never notice, which is
the point.
fini-infra #133: signed releases with cosign, SBOM, and SLSA provenance
232 additions that give fini-infra keyless cosign signing, SBOMs, SLSA
provenance, and a just verify-release recipe, over five rounds of review.
Then I took the same machinery upstream to dnscontrol — #5011 above — which
is the highest compliment I know how to pay an infrastructure pattern:
inflicting it on other people.
www-chicks-net #424: the gh-recap skill lands
14,917 additions — a reusable gh-recap skill, the stats script behind it,
and thirteen backfilled monthly posts going back to September 2025. This
series started as a memory exercise and is now a repeatable process with
honest rules about what the numbers can claim. The post you’re reading was
drafted with it, one day after the month closed, because deadlines are for
people without robots.
Honorable mentions to gh-observer #488 (1,199 additions teaching gh-observer to detect Copilot availability before showing the review row, fixing a starvation bug in the timeout logic) and gh-observer #535 (paginating Copilot review GraphQL windows for repos with more reviews than one window can hold).
Embedded Metadata
These are times where it seems good to be explicit about our choices about and usage of AI (Artificial Intelligence). Plus any links to cross-posts I do.
- This post was drafted by GLM-5.3 in OpenCode using the
gh-recapskill; the numbers came straight from GitHub’s API via theghCLI on 2026-11-01. Review-cycle counts come from the actual PR comment threads, bots included, warts and all. - The PR carrying this post gets code-reviewed in CI by Claude Code — robots reviewing robots, which felt thematically correct.
- The draft was reviewed and edited by me before publishing. The opinions, jokes, and any errors are mine.