Agent skill
audit
Tells you which artifacts in the Process library have gone stale, contradict each other, or were never verified.
From sarahcallmesmadds/gtm-operator · 27 skills · 0 · pushed 2026-09-02
What it does when it runs
Tells you which artifacts in the Process library have gone stale, contradict each other, or were never verified. Reads only and writes nothing; it produces a list and hands it to `update`. Triggers on "audit the library", "what needs reviewing", "what has gone stale", "which docs are out of date", "what has nobody checked".
Read from the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- shellwrites files
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/sarahcallmesmadds/gtm-operator.git /tmp/gtm-operator git -C /tmp/gtm-operator sparse-checkout set "plugins/process/skills/audit" mkdir -p ~/.claude/skills/audit cp -R "/tmp/gtm-operator/plugins/process/skills/audit/." ~/.claude/skills/audit/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
Or take the whole library
This repo ships a .claude-plugin manifest, so Claude Code can install all 27 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.
/plugin marketplace add sarahcallmesmadds/gtm-operator /plugin
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from sarahcallmesmadds/gtm-operator/blob/a93c6e98a742d183823691197b8d9be9edd114c6/plugins/process/skills/audit/SKILL.md, which is licensed MIT (repository). 517 words, 6 headings.
audit
Tells you which artifacts need a person to look at them. It reads only and writes nothing at all, in this version and by design.
node "${CLAUDE_PLUGIN_ROOT}/scripts/process.js" context
node "${CLAUDE_PLUGIN_ROOT}/scripts/process.js" audit
node "${CLAUDE_PLUGIN_ROOT}/scripts/process.js" flags <artifacts.json> <memos.json> [YYYY-MM-DD]
Nothing schedules this. There are no unattended runs in this version.
Review cadence is a field this reads to decide what to flag, not a trigger that
fires it.
Step 0. Refuse to start without config
Run context. If it refuses, print what it said and stop.
Step 1. Run both queries
audit returns two. Run both.
The memo query is not optional. It is the only source for the strongest of
the four signals. If you skip it, three signals run, the fourth silently finds
nothing, and the report looks complete. Pass an empty list only if the query
genuinely returned nothing, and flags will say in its output that no memos were
read so the difference is visible.
Only Published memos count. A draft was never announced and a canceled one
was retracted, so neither should send anybody to re-read an artifact. The query
filters on it and flags checks again on the rows it is given.
The memo query reads Memos, not the artifact's own relation. Reading a page's relation returns at most 25 references and a relation value caps at 100 pages, so on any long-lived artifact the newest memo becomes invisible and this signal degrades to nothing without a word.
Step 2. Run flags and report what it found
Four signals, and every one of them names a document for a person to look at.
| Signal | What it means |
|---|---|
past-cadence | Last checked is older than the artifact's review cadence |
memo-newer | A memo was published about this after the last check, so something was announced that nobody folded in |
never-verified | Verified by is empty, so nobody is recorded as having read it |
| supersede candidates | Two Active Strategy Decisions look alike |
never-verified exists because past-cadence cannot catch it. An empty date
matches no "before" filter in Notion, so a backfilled artifact escapes the
staleness signal entirely. Do not assume the first signal covers everything.
Supersede candidates are candidates. Never act on one. Two Active Strategy Decisions looking alike is a question for a person, because archiving the wrong one destroys a live document. Show both and ask.
The similarity threshold is not calibrated, and the output says so every time. Treat the candidate list as something to read, not as a verdict.
Step 3. Hand it to update
Each flagged artifact goes to update, which asks separately whether the edit
counts as having re-read it.
What this skill does not do
- Never fixes anything. It writes nothing at all.
- Never rewrites a body.
- Never archives.
- Never reports drift as a decision to make. It reports documents that need a person to look at them.
- Does not run itself. A person runs it.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- seo-audit by coreyhaines31 · 50,138
- audit-content by onvoyage-ai · 1,303
- audit-website-aeo by onvoyage-ai · 1,303
- email-deliverability-audit by growthenginenowoslawski · 705
- backlink-audit by OpenClaudia · 691
- gsc-portfolio-audit by OpenClaudia · 691
- seo-audit by OpenClaudia · 691
- pricing-page-psychology-audit by Varnan-Tech · 645
Need help setting it up?
This page tells you what audit does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.