
LEDE: My own weekly skills-audit agent flagged six structural gaps in my agent fleet on July 6 — nine client agents each re-deriving the same reporting loop, two finished skill libraries never packaged, no AI-citation tracking. I said yes to six of them. This is the meta-article documenting exactly what got fixed, in order, the same day, with every deviation and judgment call flagged. Full response PDF is in the deliverable button below.
Why This Article Exists
Every task in my Task Library follows a Definitive Article, then generates a Meta Article documenting what actually happened. The weekly skills audit is itself a task in that library now — and this is its meta-article. Read it if you want to see what auditing and cleaning up an AI agent fleet actually looks like, step by step, including the parts that turned out to be bugs, not just backlog.
On July 6, my scheduled skills-audit agent ran its normal Friday job (it was actually misfiring on Mondays — more on that below) and came back with straight talk: since the prior audit, I had shipped real progress on GEO (Grokipedia readiness, weekly Wikidata audits) but every structural fix it flagged the week before was still open, and one had gotten worse. I had added four more bespoke client reporting agents instead of extracting one shared skill. I replied approving five of its six recommendations and a bonus prune item, declining only the 50-article-a-day reinstatement for now. This article documents everything that happened between that yes and the fleet being verifiably clean.
Step 1: Extract One Shared Skill, Not Four More Bespoke Agents
I read all nine client reporting agents in full: Trenton Sandler, CXOTalk, Kingdom Broker, Family Law Leaderboard, Junk’s Above, Anthony Hilb, Western Trading Post, Igor Ivitskiy, and Sigrun’s SOMBA program. Every one of them independently defined the same metrics-then-analysis-then-action loop, the same “business outcomes beat vanity metrics” rule, the same save-a-file-then-notify delivery pattern — just with the client’s own facts swapped in.
One of them, somba-weekly-maa, already pointed at a canonical file, weekly-brand-maa.md, for the methodology. That file existed but was under-used and missing real coverage for agency-roster clients (multiple businesses under one CRM, ad account, and call-tracking setup). I strengthened it — added an escalation-rule parameter, the connector fallback chain for agency clients (Windsor.ai, Local Falcon, CRM access methods), and a registry of exactly which agents call it — then retrofitted six of the nine agents onto it as thin parameter blocks instead of full re-derivations.
The other two, Igor Ivitskiy and Junk’s Above, turned out not to be metrics agents at all on closer read — no scored baseline, no weekly numbers, just relationship maintenance: check for a reply, execute anything approved, do one safe improvement, don’t spam the channel. Forcing them onto the MAA template would have repeated the exact mistake I was fixing, just reshaped. I extracted a second shared skill, client-relationship-cadence.md, for that pattern instead.
Proof ledger: 8 of 9 agents now open their prompt by pointing at one of the two shared files; the ninth (somba-weekly-maa) keeps its own publish mechanics, which are genuinely unique to how Sigrun’s dashboard is built, but still defers to the shared file for the MAA discipline itself. While retrofitting I found two silent bugs, not just duplication: Kingdom Broker’s client roster lived at a session-only sandbox path that stops existing the moment a Cowork session ends, so the task had been quietly dead since June 12 with zero surviving client data. CXOTalk was saving its weekly reports to that same kind of temporary folder, so week-over-week comparison had never actually been possible even though the agent’s prompt implied it was happening. Both now write to permanent project folders.
Step 2: Package the Skills I’d Already Written, Just Never Shipped
Two skill libraries existed as finished files and had never been installed anywhere: the 12-skill Local Service Spotlight pack (Brandon the definitive-article writer, Jennifer the article grader, the Boil-the-Ocean operating principles, plus nine more) and the BlitzMetrics Task Library. I want to correct my own audit’s number here: the report called it a “214-task Library.” I counted the actual files on disk instead of trusting the summary line — it’s 239 tasks across 13 categories, and I used the real number.
The 12-skill pack was already a complete, valid plugin structure sitting unzipped in a folder. I zipped it. The Task Library had every individual task’s SOP already written but no plugin wrapper at all, so I built one: 13 category-skills, each a compact index pointing to the real per-task files as reference material, so an agent loads only the specific task it needs instead of all 239 at once. I delegated the mechanical file reorganization to a subagent with an explicit instruction to self-QA the result, not just report success — it wrote a small Python matcher, found 239 of 239 tasks correctly linked, caught and fixed a duplicated-string bug in nine of the thirteen index files before handing it back.
Both packages are delivered as installable .plugin files. I cannot install a plugin into my own profile from inside a Cowork session — that’s the one step in this whole cleanup that stays a human click.
Step 3: Stand Up the AI-Citation Half of the Mission
Google ranking is tracked on every client already. Whether ChatGPT, Perplexity, Gemini, Google’s AI Overviews and AI Mode, Copilot, and Grok are citing my people at all — and whether they cite the person’s own site or someone else’s — was not tracked anywhere. I confirmed the Ahrefs Brand Radar connection was live but had zero pre-configured reports, so the new weekly agent queries all seven engines directly by brand name, no setup dependency. Seeded it with eight active clients as a starting roster, easy to extend once the pattern proves out. The distinction that matters most: being mentioned by an AI engine is a start, but being the page it actually cites is the real win condition, and the digest calls that out by name for every entity, every week.
Step 4: Make the Audit Improve Itself
The audit task’s own body text always said “every Friday morning.” Its schedule was set to Monday. I fixed the schedule to match what it already said it should be. The deeper fix: I built a small persistent state file, DECISIONS.md, that carries a concrete, checkable verification instruction for every open item — not “did this get done,” but the exact grep, the exact file to read, the exact list to check. Every future run reads last week’s state, actually re-verifies each item against the real filesystem and task list, and writes the diff. That’s what “self-improving” means in practice: the audit stops trusting its own memory of the conversation, because a fresh run never has one, and starts trusting evidence instead.
Step 5: Archive the Dead Weight
The audit estimated roughly thirteen dead or superseded scheduled tasks. Once I actually checked each one against what replaced it, the real number was nineteen: eight tasks that had already completed their one-time job and were just sitting there disabled with no explanation, and eleven generic fleet-wide audits fully superseded by the granular per-client agents that now exist. There’s no delete function for scheduled tasks, so “archived” means disabled and relabeled with the exact reason, so anyone — including a future apprentice who’s never seen this fleet before — can read the task list and understand what’s live, what’s dead, and why, without needing my memory of any of it. Three more tasks were ambiguous rather than clearly dead (a paused client relationship, an unconfirmed weekly report), so I flagged those as paused-needs-confirmation instead of mislabeling them.
Step 6: Report the One Thing I Couldn’t Do
The audit’s last recommendation was pruning four off-mission skill packs — legal, sales, customer-support, product-management — installed by default but never used. I checked directly rather than assuming: the plugin-management tool available to me in a Cowork session returns zero matches for any of those four packs, meaning there is no uninstall or disable action I can take on them from here. I reported that plainly, with the exact manual step (Settings, then Capabilities) rather than quietly skipping the item or pretending a workaround existed.
Token Receipt
| Phase | Tokens | List-rate cost | Notes |
|---|---|---|---|
| Main session: recon, read 9 agent prompts + 6 skill-source files | ~45,000 | $0.09 | estimated, input-heavy |
| Main session: design + write 2 canonical shared skills | ~18,000 | $0.05 | estimated |
| Main session: retrofit 8 scheduled-task prompts | ~35,000 | $0.09 | estimated |
| Subagent: Task Library plugin build + self-QA | 138,528 | $0.28 | verified, from the subagent’s own usage report |
| Main session: GEO agent build + Ahrefs Brand Radar research | ~20,000 | $0.05 | estimated |
| Main session: self-improving audit system (DECISIONS.md/LOG.md) | ~12,000 | $0.03 | estimated |
| Main session: archive 22 scheduled tasks with reasoned labels | ~15,000 | $0.03 | estimated |
| Main session: this meta-article, PDF build, WP publish | ~32,000 | $0.08 | estimated |
| TOTAL | ~315,500 | ~$0.70 list-rate | actual cost: flat $200/mo Claude Max plan |
Effort and Cost Comparison
| Task | Agent Time | Human Time | Agent Cost | Human Cost ($60/hr) |
|---|---|---|---|---|
| Recon: read 9 agent prompts + 6 skill-source files | ~6 min | 3-4 hrs | $0.09 | $180-240 |
| Design + write 2 canonical shared skills | ~9 min | 4-6 hrs | $0.05 | $240-360 |
| Retrofit 8 scheduled-task prompts | ~14 min | 3-4 hrs | $0.09 | $180-240 |
| Build 239-task library plugin, subagent self-QA’d | ~7 min wall | 8-12 hrs | $0.28 | $480-720 |
| Stand up GEO agent incl. Ahrefs Brand Radar research | ~8 min | 2-3 hrs | $0.05 | $120-180 |
| Self-improving audit system | ~5 min | 2 hrs | $0.03 | $120 |
| Archive 22 scheduled tasks with reasoned labels | ~6 min | 1.5-2 hrs | $0.03 | $90-120 |
| Publish this meta-article, Ship-It-Styled, on WordPress | ~12 min | 1.5-2 hrs | $0.08 | $90-120 |
| TOTAL | ~67 min | 26-36 hrs | ~$0.70 | ~$1,500-2,090 |
Critical Decisions
Two shared skills, not one. Igor Ivitskiy and Junk’s Above have no scored baseline — forcing them onto the MAA metrics template would have hidden a different problem inside the same fix. Extracted a second skill instead of stretching the first one into something vaguer.
Corrected my own audit’s number. “214-task Library” was stale. Counted the real files — 239 — and used that instead of repeating the wrong figure forward.
Found two bugs while retrofitting, not just relabeling. Kingdom Broker’s roster and CXOTalk’s report history were both quietly writing to session-only paths that vanish between Cowork sessions. Neither had ever actually been persisting data. Both rebuilt onto permanent folders.
Reported the real archive count, 19, not the estimated 13. Once actually checked against what superseded each task, more turned out dead than the audit guessed. Said so.
Declined to fake the plugin-prune item. Verified with the actual tool rather than assuming an install path existed; reported it blocked, with the exact manual step, instead of quietly skipping it or inventing a workaround.
What I Could and Could Not Do
Handled autonomously: reading and synthesizing nine live agent prompts, designing two canonical shared SOPs, rewriting eight scheduled-task prompts end to end, building and self-QA’ing a 254-file plugin, standing up a new scheduled task against a live API, archiving 22 tasks with individually reasoned labels, and publishing this article start to finish through a logged-in browser session.
Needed a human for: choosing which Chrome session to publish through, since I won’t enter a password into a login form or paste a live application-password into a browser call even when one is already stored for exactly this purpose — that’s a hard line, not a preference. Also needed a human to eventually populate the real Kingdom Broker client list (the old one was unrecoverable, not just misplaced), to confirm three ambiguous paused tasks, and to click “Save skill” on the two plugin files, since installing a plugin into a profile has no programmatic path from inside a session like this one.
Guidelines Compliance Scorecard
| BlitzMetrics Guideline | Status | Notes |
|---|---|---|
| Hook opens with specific person/situation | PASS | |
| Written in figurehead’s voice | PASS | first person, Dennis’s operational voice |
| Short paragraphs (3-5 lines max) | PASS | |
| Active voice throughout | PASS | |
| No AI fluff phrases | PASS | checked against banned list |
| Title under 60 chars | PASS | |
| H2/H3 structure without heading abuse | PASS | |
| 2-3+ internal links to BlitzMetrics content | PASS | linked to /maa/, /meta-article-prompt/, /task-library-dashboard/, /always-boil-the-ocean…/ |
| Entity links follow the decision tree | PASS | client names not linked publicly, internal BlitzMetrics concepts linked |
| Featured image set | PASS | PDF page 1 rendered to PNG, quantized |
| RankMath SEO configured | NEEDS HUMAN | agent set title/meta description via REST; score verification needs a human glance |
| Categories and tags set | PASS | categories 421 + 590 per the meta-article publishing rule |
| No stock images | PASS | real generated deliverable, not a stock photo |
Where This Fits the Recursive Loop
This is the recursive self-improvement loop applied to itself. The July 6 audit was the QA pass on the fleet. This response was the rewrite. And the audit task got rewritten too, so it checks the real filesystem every week from now on instead of re-deriving its own memory from a blank context — the auditor is now subject to the same loop it runs on everyone else. The MAA discipline and the Boil the Ocean principle both say the same thing in different words: don’t hand back a plan when the finished thing is in reach, and don’t call it done until a worker — or another agent — could repeat it from the SOP alone.
The decision-sheet breakdown, the cost table, and every judgment call, in one PDF.

