Systems Lab

Agent skill

audit

Tells you which artifacts in the Process library have gone stale, contradict each other, or were never verified.

activeSelf-containedActs undeclared517 words

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-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shellwrites files

Ask about audit

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
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.

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.

SignalWhat it means
past-cadenceLast checked is older than the artifact's review cadence
memo-newerA memo was published about this after the last check, so something was announced that nobody folded in
never-verifiedVerified by is empty, so nobody is recorded as having read it
supersede candidatesTwo 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.

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.