It installs as a Claude Code plugin — one skill, no hooks, no commands. Underneath it is a single markdown file, so it works with other agents too (Cursor, Codex, and anything that can read your files), but the plugin is the easy path in Claude Code. It’s optional and you lose nothing by skipping it. Quick disclosure since this is my own repo: it’s free, hosted on GitHub, no signup or paid tier, and I’m the only one maintaining it. The prompt you can use: Audit the current change against AUDIT_PROTOCOL.md. Tell me the tier, which phases you ran, and which you skipped and why. What it returns:
Phases partial: 53-54 - both want the running system; only the declarations in the repo were read
Phases skipped: 47-49, 51-52 (no auth, migration or UI change), and 5-6, 8-15, 18, 21-23, 25-27, 29-41, 43-46, 50 - nothing here reaches them
Couldn't establish: whether the counter holds under real concurrent load ```
The report ends with what it did not do. That's the point.
First idea: overlays.
You write 2-3 failure scenarios that would be a disaster in your own project. The agent runs those first, before anything generic. And it pushes the tier up to critical path, no matter how small the change is.
Example: you change a label on the shipping address form. Small change. But that form writes to the order record, and the order record is what the payment retry reads. One line, but a critical path.
Second idea: what was not checked.
"No findings" can mean two different things. It can mean the agent looked and found nothing, or it can mean the agent never looked there. Both read the same. The skip list is what tells them apart.
I ran it on my own project and it did not work. 5 measured items:
The plugin could not deliver its own fixes. I never bumped the version. The cache is keyed on version, so 9 commits never reached anyone who had already installed it.
plugin update
compared versions, found none, said success, changed nothing.
The skill was never triggered. 3 trials, 2 models, 2 languages.
The test suite that catches fail-open behavior was fail-open itself. 3 of the 4 scan categories had no test at all.
Only file contents were checked. Commit messages, authorship and branch names were not.
Overlays go stale. Nothing checked if they still described the project.
The last release is not measured — those are text and CI checks, there's no agent behavior to measure there.
One more thing: nothing forces the agent to write this report. The protocol asks for it. If the agent ignores it, it ignores it.
Update:
I found the cause of the second item. A colon inside the skill's YAML frontmatter (
improvising a review: an ad-hoc read
) made the whole block fail to parse, so
description
was dropped at runtime — and that field is the only thing Claude Code reads to decide whether a skill applies. It could not fire for any prompt, in any session. The 3 trials varied model and language; neither was the variable.
Worse, all four of this repo's own gates passed over it. They check that the skill names and can reach the taxonomy, never that the file they point at is loadable.
claude plugin validate .
also passes — it finds marketplace.json first and never walks into the skill.
Fixed in 1.8.1. If you installed an earlier version, the skill was never doing anything:
/plugin update audit-protocol
Repo:
https://github.com/sturec5/code-audit-protocol
submitted by
/u/sturec5
Originally posted by u/sturec5 on r/ClaudeCode
You must log in or # to comment.
