How I Closed the Gaps My Own Weekly Skills Audit Found

Image

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.

9 → 2
client agents collapsed onto 2 shared skills, from 9 re-deriving the same loop
254
files packaged into 2 installable skill plugins, self-QA’d 239/239 matched
22
scheduled tasks archived or flagged paused, out of 55 in the fleet

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 DELIVERABLE
Read the full skills-audit response

The decision-sheet breakdown, the cost table, and every judgment call, in one PDF.

Read the Full Response (PDF) →

Dennis Yu
Dennis Yu
Dennis Yu is the CEO of Local Service Spotlight, a platform that amplifies the reputations of contractors and local service businesses using the Content Factory process. He is a former search engine engineer who has spent a billion dollars on Google and Facebook ads for Nike, Quiznos, Ashley Furniture, Red Bull, State Farm, and other brands. Dennis has achieved 25% of his goal of creating a million digital marketing jobs by partnering with universities, professional organizations, and agencies. Through Local Service Spotlight, he teaches the Dollar a Day strategy and Content Factory training to help local service businesses enhance their existing local reputation and make the phone ring. Dennis coaches young adult agency owners serving plumbers, AC technicians, landscapers, roofers, electricians, and believes there should be a standard in measuring local marketing efforts, much like doctors and plumbers must be certified. He has appeared on 353 podcasts with 619 credited episodes — see the full list of his podcast appearances.