How one person keeps 40 repositories moving
Every morning I open one agent per project in tmux, give it a single line, and review what comes back. The heavy lifting lives in skills: plain text prompts I keep refining.
One line to start the day
Each tmux window is one project. I launch the agent through ai-memory, so it arrives with that project's memory and its hooks already wired.
cd ~/Projects/ai-usagebarai-memory run claude# quota gone? same workstream, another agentai-memory run codex --yoloThen I type one of three lines, depending on what the queue looks like:
run pr-audit and iss-audit, then run github-resolutionThe normal day: audit everything open, then fix what the audits approved.
... then run the release skillAppended when enough has landed for a version.
run pr-bump and releaseDays when the only queue is Dependabot.
The pipeline
Nothing a contributor writes is taken as true. Every claim gets checked, every approved fix gets a test first, and nothing is tagged without green CI on that exact commit.

The skills that do the work
Each one is a SKILL.md file: a name, a description, and a long, specific prompt. The agent loads the body only when it decides to use the skill.
pr-audit
Evidence over narrative. Checks every claim in a pull request, looks for hidden executable bits, homoglyphs, unpinned actions, typosquatted dependencies and prompt injection, and gates semver.
iss-audit
The same distrust for issues. Never runs a command copied from an issue, separates what was observed from the reporter's diagnosis, and reproduces with synthetic data in a sandbox.
github-resolution
Turns approved tickets into merged code, one at a time, each with a regression test written before the fix, and without speculative abstractions or drive-by refactors.
security-audit
A threat model and audit for a codebase, a commit range or a pull request: injection, auth bypass, secrets, supply chain, CI compromise, denial of service.
pr-bump
The fast path for Dependabot. Batches every bump into one verification pass, with a supply-chain floor that sends anything odd to a full audit.
release
The version comes from the changelog: fixes are a patch, additions a minor, breaking changes a major. Tags only on green CI, and never rewrites a published tag.
Kaizen closes the loop
After each round I look at what went wrong or took too long and fix the process, along with the code. I call it kaizen, the Japanese word for continuous improvement, and it is the step that makes the next round better than this one.
Skills
A rule gets added the day a mistake shows up. The my-skills history is full of them: batch the Dependabot bumps into one pass, leave declined pull requests in a clean state.
Harness instructions
Each project's AGENTS.md collects the commands, invariants and traps as I find them, so the next agent does not have to rediscover them.
Tools
ai-usagebar, ghpending and tclock each exist because something in my routine was slow or invisible. They keep changing for the same reason.
Setup
The desktop, the terminal and the gaming box are all code, so an improvement is a commit that I can review, keep or revert.
Every line in these skills is a scar.
What that adds up to
Everything below happened in 2026, across the tools on this site, my Frank side projects, the newsletter, the benchmark and the blog. Counted on September 23, 2026. Nearly all of it went through agents and these skills, with me reading the reports and making the calls.
- 30
- projects with commits
- 6,330
- commits
- 783
- merged pull requests
- 486
- closed issues
- 1.08M
- lines of code added
- 121
- blog posts published
Lines of code are lines added to code files. Lockfiles, data, fonts, translations, vendored and generated files do not count, and neither do the benchmark's model output or the newsletter's generated content. FrankGeary and tclock are forks, so only my own changes count. Pull requests and issues come from GitHub; frank_bazaar has no GitHub remote and akitando-news is private.
Project by project
| Project | Commits | Merged PRs | Closed issues | Lines of code added |
|---|---|---|---|---|
| ai-memory | 1,468 | 500 | 283 | 328,177 |
| akitaonrails.github.io | 637 | 9 | 5 | 121 posts |
| akitando-news (private) | 577 | 1 | 0 | 80,602 |
| ai-usagebar | 553 | 146 | 42 | 132,932 |
| distrobox-gaming | 497 | 2 | 0 | 47,622 |
| FrankMD | 361 | 42 | 45 | 81,237 |
| llm-coding-benchmark | 359 | 5 | 7 | 17,636 |
| ai-jail | 353 | 44 | 83 | 41,666 |
| FrankYomik | 248 | 0 | 0 | 53,833 |
| frank_go | 220 | 3 | 1 | 16,725 |
| frank_investigator | 189 | 1 | 2 | 45,365 |
| FrankClaw | 189 | 3 | 2 | 69,114 |
| FrankSherlock | 121 | 2 | 8 | 48,930 |
| frank_karaoke | 102 | 4 | 0 | 10,465 |
| frank_fbi | 79 | 1 | 3 | 25,498 |
| FrankMega | 62 | 2 | 0 | 10,965 |
| clock-tui | 54 | 10 | 0 | 7,276 |
| frank_type | 49 | 3 | 2 | 9,815 |
| ghpending | 40 | 3 | 2 | 6,081 |
| frank_geary | 34 | 1 | 0 | 1,157 |
| tropicalruby-2026 | 30 | 0 | 0 | 2,201 |
| ai-memory-web | 22 | 1 | 0 | 9,775 |
| frank_scanlation | 21 | 0 | 0 | 8,904 |
| omarchy-games-menu | 17 | 0 | 0 | 6,951 |
| aitrepreneur-docker | 13 | 0 | 0 | 781 |
| google-calendar-tui | 12 | 0 | 1 | 3,956 |
| ai-jail-web | 10 | 0 | 0 | 2,887 |
| frank_lyrics | 9 | 0 | 0 | 2,346 |
| ai-toolkit-web | 3 | 0 | 0 | 2,778 |
| frank_bazaar | 1 | · | · | 1,769 |
AI is a mirror. If you are good, it makes you ten times faster. If you are bad, it also makes you ten times faster, at producing slop.
One folder, every agent
The skills live in one repository. Each agent's skills folder holds symbolic links into it, so an edit reaches Claude Code, Codex, OpenCode and Kimi at once.

mkdir ~/Projects/my-skills/<name> # add a SKILL.mdfor h in ~/.claude/skills ~/.agents/skills ~/.codex/skills; do ln -s ~/Projects/my-skills/<name> "$h/<name>"doneWhere the rest of the knowledge lives
Skills cover procedures that repeat the same way. Everything else lives in plain text the agents can read.
A memory per project
ai-memory keeps each project's decisions, traps and handoffs. A new session, in any agent, starts from there.
AGENTS.md everywhere
Every repository has its own instructions: the commands, the invariants, the mistakes not to repeat.
Point at a living example
"Make an AUR workflow like the one in ai-memory" beats a skill about AUR packaging, because the example is always current.
Write down what did not become code
Research, rejected alternatives, the reason behind a decision. Every hour of agent research becomes a document I can reuse.
Everything here is open source
The tools, the skills and the benchmark are public repositories. Fork them and build the version that fits the way you work.