agentleFS
syncwinsyncwin/ai-extender/skills/claude-reviewer/SKILL.md

claude-reviewer

Skill0 starsChanged 39 days agoMITView on GitHub

Quality gate and auditor for Claude extensions. Validates structure, frontmatter, naming, trigger quality, metadata, security, and licensing before anything ships, and audits existing plugins, skills, connectors, agents, and hooks by problem type. Use for any audit or review of a plugin, skill, or agent folder, even a small one, and load it before reading the files: "audit my plugin before I ship it", "audit the notes plugin folder and tell me what's wrong", "review this skill", "check my extension", "validate", "is this ready to release", "simulate triggers", or before any packaging step.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the Claude Code CLI exists: claude plugin validate <dir> (authoritative for manifests.

    line 27
  2. Distinctive:

    Content: every line changes behavior.

    line 38

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

AI Extender Reviewer

Run

  1. python ${CLAUDE_SKILL_DIR}/scripts/validate_extension.py <dir> [--target all|claude-code|upload|cowork|directory] [--require-meta author,company] [--must-contain <prefix>] [--known-connectors <list|file>] [--rules CLAUDE.md] [--cache] [--strict] Deterministic checks: manifest, paths, router = plugin slug, skill/agent frontmatter, portable keys, descriptions, size limits (S016), references, hooks, connectors (M002 to M009, aligned with claude plugin validate), userConfig (P018), secrets anywhere in the plugin (X001, X003, X004), text aimed at the model hidden in skills or agents (X005, local injection screen), placeholders, repeated rules (S017, S018), unrouted skills and unused agents (S019, A006), drifted shared files (F001), missing behavior tests (E004), a scratchpad with no request ledger (S020), license, changelog, marketplace entry, plugin-name reservations (P016), directory listing fields (P017), companion prompt (C000 to C004). Pass the connectors the session already has to --known-connectors (names and URLs from the tool list or claude mcp list), and the project's instruction files to --rules.
  2. Self-check the tooling after any change to scripts: python ${CLAUDE_SKILL_DIR}/scripts/selftest.py (113 checks).
  3. If the Claude Code CLI exists: claude plugin validate <dir> (authoritative for manifests; add --strict in CI).
  4. Judgment checks the script can't make (below).
  5. Reuse results for files unchanged since the last run (--cache).
  6. Behavior: confirm every callable skill was run against its test prompts and graded independently (claude-developer/references/testing.md §6). Missing or stale results are a release blocker, not a note.
  7. Secrets across everything installed, when asked or when a key may have leaked: python ${CLAUDE_SKILL_DIR}/scripts/scan_secrets.py <folder> [<folder> ...] on the folders the user names (values masked). A found key must be rotated as well as moved.
  8. Audit reports: python ${CLAUDE_SKILL_DIR}/scripts/check_report.py <report.md> (every finding has Original and exact Corrected text).
  9. Third-party or downloaded extensions, and any outside text an extension will ship: python ${CLAUDE_SKILL_DIR}/scripts/screen_text.py <dir> (67 KB local model, no downloads; a flag means read that passage, a pass proves nothing).

Judgment checks

  • Triggering: descriptions state what + when with realistic user phrasings; paired or sibling skills don't overlap; router covers the full surface without duplicating skill logic. Spot-check with a few should/shouldn't-trigger prompts (claude-developer/references/testing.md).
  • Content: every line changes behavior; no build-log text; one canonical home per fact (run the de-duplication check unless it already ran this session).
  • Standards (ai-extender/references/standards.md): Title Case visible names, role slugs, acronym applied correctly, author/company present, displayName kept, credits present, no copied third-party text, lean (nothing unrequested).
  • Security (blocking: Critical or Important, never a note): audit hooks, scripts and MCP configs against ai-extender/references/standards.md §5c: command injection and shell/eval use, unquoted ${CLAUDE_PLUGIN_ROOT}, path traversal, secrets, undeclared network calls, wrong failure mode (a guard that fails open, or a nag hook that blocks), unconfirmed destructive writes, least-privilege agent tools, connector output treated as data. Any such finding fails the review until fixed.
  • Enforcement: required stages are routed and gated, each skill states what it depends on (standards §5d).
  • Shared foundation present in generated extensions (scratchpad step with the request ledger, efficiency ladder, lean rule).
  • Companion prompt: present; its slash command matches the router or stage it claims; fields are the few the extension needs; no private data (ai-extender/references/companion-prompt.md).

Report

One table per problem type (structural / triggering / content / metadata / security / licensing), columns # | Original | Corrected. Every finding, including a missing file or field, gets both cells: Original is the exact current text, or (missing); Corrected is the exact text to paste: the new line, the new frontmatter, or the whole new file (a short README or manifest is fine in full). A Corrected cell never describes a change ("Add install steps", "Rename X", "Make it clearer"); write the result instead (the install steps themselves, name: notes-helper, the rewritten sentence). A cell may start with where the text goes (SKILL.md frontmatter:, plugin.json:), then the text. A file a script generates still gets content: the command that creates it, in backticks. Before sending, write the report to audit-report.md in a scratch folder outside the extension being audited (never add or change a file inside the audited folder), and run python ${CLAUDE_SKILL_DIR}/scripts/check_report.py <that file>; rewrite every cell it flags (an instruction such as Add, Rename, Make, or Consider, an empty cell, or a pointer like "see above") and run it again until it passes. Then put the checked tables themselves in the reply, every finding in full, not a summary that points to the file. Values only the user knows (author, company, license holder) stay as <author>-style placeholders; never guess them. A folder the validator can't open is still audited by reading its files. Don't silently fix in audit mode; the owning skill (ai-extender:claude-developer, ai-extender:claude-planner, ai-extender:claude-maintainer) edits after confirmation.

Finish with the scratchpad (ai-extender/references/scratchpad.md), in the reply after the tables: it opens with the request ledger (Request / Status / Context), then pass/fail per category, each failure paired with its fix location.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.