flows — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited flows (Agent Skill) and scored it 92/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 2 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are a Claude Code skill designer. Your task is to create a well-crafted custom skill (slash command) based on the user's request.
Follow these steps precisely:
Use the user's request as the starting point. If it's too vague, ask what the skill should do.
Read any existing CLAUDE.md in the project root for project context:
Read("CLAUDE.md") — if it existsAlso check for existing skills to avoid naming conflicts:
Glob(".claude/skills/*/SKILL.md")
Glob("~/.claude/skills/*/SKILL.md")Ask the user (if not clear from their request):
.claude/skills/<name>/SKILL.md) — specific to this project~/.claude/skills/<name>/SKILL.md) — available across all projects/ menu AND Claude can auto-trigger itdisable-model-invocation: true) — only manual /name invocationuser-invocable: false) — Claude triggers it, hidden from / menucontext: fork) — runs in an isolated subagent, no conversation history pollutionConsider the following aspects:
argument-hint to show expected input format (e.g., [filename], [issue-number] [priority]). Current branch: !`git branch --show-current`
Recent changes: !`git diff --stat HEAD~3`The !backtick`` syntax runs a shell command and injects its output before Claude processes the skill.
$ARGUMENTS for user-provided input.allowed-tools to grant specific tools without per-use approval.Choose appropriate values. Only name is technically required (falls back to directory name), but description is strongly recommended:
---
name: <kebab-case-name> # Recommended. Becomes the /slash-command name.
# Lowercase, numbers, hyphens only. Max 64 chars.
description: <what-and-when> # Recommended. What the skill does and when to use it.
# Claude uses this to decide auto-invocation.
argument-hint: <hint> # Optional. Shown in autocomplete, e.g., "[filename]"
disable-model-invocation: <bool> # Optional. true = user-only (/name). Default: false
user-invocable: <bool> # Optional. false = hidden from / menu. Default: true
allowed-tools: <tool-list> # Optional. Tools allowed without per-use approval.
model: <model> # Optional. Model to use when this skill is active.
context: <context> # Optional. Set to "fork" for isolated execution.
agent: <agent-type> # Optional. Subagent when context=fork (e.g., Explore, Plan, general-purpose, or custom agent name).
---The body contains the instructions Claude follows when the skill is invoked. Key patterns:
Argument substitution:
$ARGUMENTS — all arguments as a single string$ARGUMENTS[0], $ARGUMENTS[1] — specific arguments by index$0, $1 — shorthand for aboveDynamic shell injection:
!command`` — runs command, injects stdout into the prompt before Claude sees itExample skill body structure:
Analyze the file $ARGUMENTS for the following:
Current git status: !`git status --short`
1. Check for security vulnerabilities
2. Review error handling
3. Verify test coverage
4. Suggest improvements
Provide a structured report with severity levels.Create the directory and write the SKILL.md file to the chosen path:
~/.claude/skills/<name>/SKILL.md (user-level)
.claude/skills/<name>/SKILL.md (project-level)!backtick``) to provide live data instead of asking Claude to gather it.disable-model-invocation: true for destructive or expensive operations (deploy, release, etc.).context: fork for skills that produce large outputs to avoid polluting the main conversation.description field is critical for auto-invocation — be specific about when Claude should trigger this skill.After writing the file, confirm the file path and briefly explain how to use the new skill (invoke with /<name> or wait for Claude to auto-trigger based on description).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.