Repository navigation
Releases: sturec5/code-audit-protocol
Release list
v1.8.1 — the skill can actually load now
The skill's YAML frontmatter never parsed.
description: was a plain scalar containing improvising a review: an ad-hoc read. A colon followed by a space inside an unquoted scalar is a mapping separator, so the whole block failed to parse and the skill loaded with empty metadata — every field dropped, no error raised.
description is the only thing Claude Code reads to decide whether a skill applies to a request. Without it the skill could not fire for any prompt, in any session. If you installed any earlier version, the skill was never doing anything. Update to get it working:
/plugin update audit-protocol
This is the defect this repository had been reporting as "the skill was never triggered — 3 trials, 2 models, 2 languages". The trials varied model and language and found no difference because neither was the variable.
Found by claude plugin validate .claude-plugin/plugin.json, which walks into the skill. claude plugin validate . does not — it finds marketplace.json first, validates that alone, and reports a pass. All four of this repository's own gates passed over it too: they check that the skill names and can reach the taxonomy, never that the file they point at is loadable.
No taxonomy or overlay content changed.
v1.8.0 — the review backlog, closed and checked
A six-lens review before publishing produced 33 findings. Twelve turned out to
have been fixed incidentally by other work, which was established by re-checking
each one against the current files rather than trusting the list. Six were still
open and are closed here. The rest were declined with reasons on the record.
Two statuses were unreachable. The finding standard defined CONFIRMED and
PLAUSIBLE; the walkthrough and the finding template asked for CLOSED and
ACCEPTED as well. An agent following the protocol could never emit two of the
statuses the template told it to fill in. Both now appear where they are
defined, marked as belonging to a finding's later life rather than to the audit
that raised it.
The gate listed what it does not read, and left out three files. One is
LICENSE — the only shipped file that carries a real identity on purpose, and
therefore the one exclusion a forker actually needs to know about.
CONTRIBUTING never mentioned versions while CI hard-fails a payload change
without a bump. overlays/ is payload and an overlay is the contribution this
project asks for first, so the most-wanted contribution arrived with red CI and
nothing explaining why. There is now a section that says what to bump and why
the rule exists.
Two advertisements became checks. The marketplace catalog's own version was
kept in lockstep by hand and guarded by nothing. The README's phase and overlay
badge counts sat unverified on the file every visitor reads first. Both are now
asserted against the repository, and both were mutation-tested before landing.
Install
claude plugin marketplace add sturec5/code-audit-protocol
claude plugin install audit-protocol@code-audit-protocol
v1.7.0 — measured, not asserted
Twenty-one commits since v1.0.0. Almost all of them came from running this
protocol against real codebases and watching where it failed, rather than from
reading it and deciding it could be better.
What changed, in order of how much it mattered
The plugin could not deliver its own fixes. The cache is keyed on version
and the version had never moved — nine content commits were unreachable to
anyone who had already installed. claude plugin update reported success and
changed nothing. Fixed, and CI now fails any payload change without a bump.
The skill did not fire. Measured three times across two models and two
languages: an agent asked to audit a change reviewed it by hand instead, while
the skill sat installed and unused. Its own words afterwards: "I should have
loaded it rather than improvising a review shape." The description now
instructs instead of describing, and closes that escape hatch by name.
Audits reported phases as passed that they could not run. An audit now
declares its evidence sources before selecting phases, and any phase needing a
source it lacks is reported PARTIAL — never passed, with the missing source
named. Verified in the wild: a refused test run and an absent deployed
environment both produced honest PARTIALs rather than quiet passes.
Overlays age, and nothing audited them. The document that makes an audit
specific to a project was the one document in the loop nobody checked. A
deferral whose reason has expired reads exactly like a current decision. Two
independent agents found this class on two unrelated codebases the same day.
The publication gate read only files. Publishing a repository also publishes
commit messages, ref names and authorship, and none of those appear in a diff.
The gate now reads all four surfaces, and checks authorship against an
allowlist rather than a denylist — the identity that leaks is the one nobody
thought to list.
The fail-open suite was itself fail-open. Three of four scan categories had
no test, a case named "untracked file is scanned" did not test untracked files,
and a failed mktemp made the suite report success with eight of nine cases
silently gone. Every check added since is mutation-tested before landing.
Also
Tier and scope are now documented as two separate dials, with worked commands
for each. HOWTO.md gained a fifth mistake. README states plainly that this
is not a Claude Code tool — it is one markdown file that any agent can read.
Install
claude plugin marketplace add sturec5/code-audit-protocol
claude plugin install audit-protocol@code-audit-protocol
Or skip all of that and put AUDIT_PROTOCOL.md in your repository.
v1.0.0 — first complete cut
54 phases with tiers, triage, and a finding standard; the overlay system with three worked examples and a template; HOWTO walkthrough; finding and status templates; the publication gate; Claude Code plugin wrapper. Versions match the plugin manifests.