Skills Command Development
📦

Command Development

v0.2.0 Content revision r1 Medium Risk ⚙️ External commands📁 Filesystem access🌐 Network access

Build Claude Code Slash Commands

Teams often repeat complex Claude Code workflows without a reusable command format. This skill helps create structured slash commands with clear arguments, tool access, and testing guidance.

Supports: Claude Codex Code(CC)
⚠️ 50 Poor

Install with my Agent

Copy this request to your Agent. It includes the canonical Skill page and manifest.

Agent request
Review the Skillstore skill "Command Development" from https://skillstore.io/skills/command-development.md and its manifest at https://skillstore.io/api/skills/command-development/manifest. Verify the artifact. Stop and obtain explicit user consent before installing or changing files.

Your Agent should still show its plan and request any confirmation required by the security policy.

Agent-readable resources

Use these links when an AI agent, crawler, or script needs clean context instead of reading the full page.

Test it

Using "Command Development". Create a command for pull request review.

Expected outcome:

  • A clear command purpose and suggested file name.
  • Recommended frontmatter with scoped tool access.
  • Argument handling for the pull request number.
  • Review steps for changes, tests, risks, and final recommendation.

Using "Command Development". Improve this plugin deployment command.

Expected outcome:

  • A safer command structure with explicit validation steps.
  • Guidance to use plugin-relative resources instead of hardcoded paths.
  • Notes about narrowing Bash permissions and documenting rollback behavior.

Using "Command Development". Write a test plan for a slash command.

Expected outcome:

  • A checklist for frontmatter, arguments, file references, and tool permissions.
  • Edge cases for empty input, long input, unusual paths, and command failures.
  • Regression checks that confirm behavior after command edits.

Security Audit

Medium Risk
v9 • 7/19/2026 Open versioned report

Most static detections are Markdown formatting, expected Claude paths, test syntax, or documentation links. Multiple executable templates directly interpolate positional arguments into shell text, creating command-injection risk. Predictable temporary files and repeated Bash(*) grants add avoidable exposure, but no prompt injection or covert exfiltration intent was found. Static review was capped at 400/429 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

11
Files scanned
7,237
Lines analyzed
41
Review items
0
False positives ignored

Confirmed security concerns (1)

Medium
Overbroad Shell Permissions in Reusable Templates
Several reusable examples grant Bash(*) despite the skill recommending narrow permissions. Generated commands could therefore run shell operations beyond their stated workflow.
The unrestricted Bash grants are explicit and repeated in reusable command templates. The risk is partially mitigated by separate guidance favoring narrow permissions.
Capability review items (41)

These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.

High
Ruby/shell backtick execution
!`node ${CLAUDE_PLUGIN_ROOT}/scripts/quality-check.js $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`bash ${CLAUDE_PLUGIN_ROOT}/scripts/security-scan.sh $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`bash ${CLAUDE_PLUGIN_ROOT}/scripts/perf-analyze.sh $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`bash ${CLAUDE_PLUGIN_ROOT}/scripts/best-practices.sh $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`bash ${CLAUDE_PLUGIN_ROOT}/scripts/pre-release-check.sh $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`bash ${CLAUDE_PLUGIN_ROOT}/scripts/build-release.sh $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`bash ${CLAUDE_PLUGIN_ROOT}/scripts/package.sh $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Run plugin analyzer: !`node ${CLAUDE_PLUGIN_ROOT}/scripts/analyze.js $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Validate environment argument: !`echo "$1" | grep -E "^(dev|staging|prod)$" && echo "VALID" || echo
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Verify configuration available: !`test -f ${CLAUDE_PLUGIN_ROOT}/config/$1.json && echo "FOUND" || ec
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
**Execute build:** !`bash ${CLAUDE_PLUGIN_ROOT}/scripts/build.sh $1 2>&1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
**Validation results:** !`bash ${CLAUDE_PLUGIN_ROOT}/scripts/validate-build.sh $1 2>&1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Determine check level: !`echo "$1" | grep -E "^prod$" && echo "FULL" || echo "BASIC"`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`node ${CLAUDE_PLUGIN_ROOT}/scripts/script-name.js $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Validate input: !`echo "$1" | grep -E "^pattern$" && echo "OK" || echo "ERROR"`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Validate: !`echo "$1" | grep -E "^(dev|staging|prod)$" || echo "INVALID"`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Test execution: !`npm test $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`gh pr view $1 --json title,body,author,files`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Files changed: !`gh pr diff $1 --name-only`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Test status: !`gh pr checks $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Deployment details: !`gh api /deployments/$1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Lint results: !`node ${CLAUDE_PLUGIN_ROOT}/bin/lint.js $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Step 1 - Prepare: !`bash ${CLAUDE_PLUGIN_ROOT}/scripts/prepare.sh $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Step 3 - Execute: !`${CLAUDE_PLUGIN_ROOT}/bin/execute $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Run: !`${CLAUDE_PLUGIN_ROOT}/bin/process.sh $1 $2`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Environment check: !`echo "Deploying to: $1"`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Stage changes: !\`git add $1\`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Commit changes: !\`git commit -m "$2"\`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
!`node ${CLAUDE_PLUGIN_ROOT}/scripts/lint.js $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Validate environment: !`echo "$1" | grep -E "^(dev|staging|prod)$" || echo "INVALID"`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Check file: !`test -f $1 && echo "EXISTS" || echo "MISSING"`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Validate inputs: !`test -n "$1" -a -n "$2" && echo "OK" || echo "MISSING"`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Try processing: !`node ${CLAUDE_PLUGIN_ROOT}/scripts/process.js $1 2>&1 || echo "ERROR: $?"`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Run tests: !`npm test $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
1. Fetch PR: !`gh pr view $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
High
Ruby/shell backtick execution
Run analysis: !`node ${CLAUDE_PLUGIN_ROOT}/scripts/analyze.js $1`
The executable inline command inserts a positional argument directly into shell text. Crafted input could alter token boundaries or quoting and execute additional shell syntax.
Medium
Temp directory access
echo "Test content" > /tmp/test-file.txt
The example writes to a predictable shared /tmp filename without exclusive creation. A preexisting symlink could redirect the write and clobber another file.
Medium
Temp directory access
echo "Second file" > /tmp/test-file-2.txt
The example writes to a predictable shared /tmp filename without exclusive creation. A preexisting symlink could redirect the write and clobber another file.
Medium
Temp directory access
dd if=/dev/zero of=/tmp/large-file.bin bs=1M count=100
The test writes 100 MB to a fixed path under /tmp using /dev/zero. This can follow a preexisting symlink, overwrite data, or consume unnecessary disk space.
Medium
Temp directory access
rm /tmp/test-file*.txt /tmp/large-file.bin
The cleanup uses a wildcard under a shared temporary directory. It can delete unrelated matching files created by another process or user.
Medium
Standard device file access
dd if=/dev/zero of=/tmp/large-file.bin bs=1M count=100
The test writes 100 MB to a fixed path under /tmp using /dev/zero. This can follow a preexisting symlink, overwrite data, or consume unnecessary disk space.

Risk Factors

⚙️ External commands (50)
examples/plugin-commands.md:35-42 examples/plugin-commands.md:68-71 examples/plugin-commands.md:71-74 examples/plugin-commands.md:74-81 examples/plugin-commands.md:144-147 examples/plugin-commands.md:147-150 examples/plugin-commands.md:150-153 examples/plugin-commands.md:153-161 examples/plugin-commands.md:186-188 examples/plugin-commands.md:188-202 examples/plugin-commands.md:307-336 examples/plugin-commands.md:359-361 examples/plugin-commands.md:361-363 examples/plugin-commands.md:363-369 examples/plugin-commands.md:369-371 examples/plugin-commands.md:371-380 examples/plugin-commands.md:408-411 examples/plugin-commands.md:411-412 examples/plugin-commands.md:412-413 examples/plugin-commands.md:413-414 examples/plugin-commands.md:414-417 examples/plugin-commands.md:417-418 examples/plugin-commands.md:418-427 examples/plugin-commands.md:441-442 examples/plugin-commands.md:471-472 examples/plugin-commands.md:477-478 examples/plugin-commands.md:496-497 examples/plugin-commands.md:508-509 examples/plugin-commands.md:509-510 examples/plugin-commands.md:517-520 examples/plugin-commands.md:520-521 examples/plugin-commands.md:526-532 examples/plugin-commands.md:532-533 examples/plugin-commands.md:541-543 examples/simple-commands.md:100-109 examples/simple-commands.md:175-177 examples/simple-commands.md:177-179 examples/simple-commands.md:179-181 examples/simple-commands.md:181-187 examples/simple-commands.md:212-225 examples/simple-commands.md:431-433 examples/simple-commands.md:488-492 README.md:127-128 README.md:200-201 README.md:201-202 references/advanced-workflows.md:25-28 references/advanced-workflows.md:28-36 references/advanced-workflows.md:36-56 references/advanced-workflows.md:78-79 references/advanced-workflows.md:79-81
📁 Filesystem access (29)
🌐 Network access (8)
Audited by: codex View Audit History →
Share & cite this report

Share the versioned assessment report, neutral badge, embed card, and citations. Skillstore reports evidence without deciding whether this Skill is safe.

Open versioned report
Security Assessment

Copy report link

https://skillstore.io/skills/command-development/audits/9?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_report

Markdown badge

[![Skillstore security assessment](https://skillstore.io/badges/skills/command-development/security.svg)](https://skillstore.io/skills/command-development?utm_source=security_passport_badge)

HTML badge

<a href="https://skillstore.io/skills/command-development?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/command-development/security.svg" alt="Skillstore security assessment" loading="lazy"></a>

Embed card

<iframe src="https://skillstore.io/embed/skills/command-development.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>
Academic citations (APA · BibTeX · CFF)

APA citation

anthropics. (2026). Command Development security audit report (audit version 9) [Author version 0.2.0]. Skillstore. https://skillstore.io/skills/command-development/audits/9

BibTeX citation

@techreport{anthropics-command-development-2026, author = {anthropics}, title = {Command Development security audit report (audit version 9)}, institution = {Skillstore}, year = {2026}, number = {9}, url = {https://skillstore.io/skills/command-development/audits/9}, note = {Author version 0.2.0} }

CITATION.cff

cff-version: 1.2.0 message: "If you use this Skill, cite its author and this versioned security audit report." title: "Command Development security audit report (audit version 9)" version: "0.2.0" type: report authors: - name: "anthropics" date-released: "2026-07-19" url: "https://skillstore.io/skills/command-development/audits/9" identifiers: - type: other value: "skillstore:command-development:audit:9" description: "Skillstore immutable audit report identifier"

Compare variants

3 installable variants

Each author remains a separate installable skill. The recommended variant is ranked by Skillstore evidence.

Why this variant is first

Highest Skillstore Score
anthropics Recommended

anthropics-command-development

Skillstore Score 76
Evidence Confidence Medium
Skillstore usage 7
Updated

2026-08-21

anthropics Current

command-development

Skillstore Score 50
Evidence Confidence High
Skillstore usage 15
Updated

2026-08-21

davila7-command-development

Skillstore Score 50
Evidence Confidence Medium
Skillstore usage 6
Updated

2026-08-21

Skillstore Score

Why this score Evidence Confidence: High
59
Architecture
100
Maintainability
87
Content
82
Community
65
Spec Compliance

What You Can Build

Create Team Workflow Commands

Define reusable project commands for reviews, tests, deployments, and release checks.

Package Plugin Commands

Design plugin commands that use bundled scripts, templates, agents, skills, and configuration files.

Standardize Command Testing

Build test plans that cover frontmatter, arguments, file references, Bash behavior, and edge cases.

Try These Prompts

Create a Basic Command
Create a Claude Code slash command named review. It should review repository changes and return prioritized feedback with file references.
Add Arguments and Frontmatter
Design a slash command named fix-issue. It should accept an issue number, include helpful frontmatter, and document expected arguments.
Use Safe Bash Context
Create a command that summarizes Git status before analysis. Use scoped Bash permissions and explain how failures should be handled.
Build a Plugin Workflow Command
Design a plugin command that uses CLAUDE_PLUGIN_ROOT, a bundled script, a template file, and validation before producing a report.

Best Practices

  • Start with a narrow command purpose, then add only the tools and arguments required.
  • Use scoped Bash permissions, validate user input, and handle command failures clearly.
  • Test commands with realistic arguments, missing files, failed commands, and repeated invocations.

Avoid

  • Do not grant broad Bash access when a specific command family is enough.
  • Do not interpolate user arguments into shell commands without validation or quoting.
  • Do not hardcode local plugin paths that break on another installation.

Frequently Asked Questions

What does this skill help create?
It helps create Claude Code slash commands as Markdown files with optional YAML frontmatter.
Does it execute commands by itself?
No. It explains command patterns and examples. Users must create and invoke slash commands separately.
Can it help with plugin commands?
Yes. It covers plugin command locations, CLAUDE_PLUGIN_ROOT, scripts, templates, agents, skills, and hooks.
How should Bash access be handled?
Use the narrowest allowed-tools pattern possible and validate arguments before shell execution.
Can it design interactive commands?
Yes. The references cover interactive prompts, decision points, confirmations, and progressive workflows.
Is it limited to Claude Code?
Yes. The concepts target Claude Code slash commands, although some workflow design ideas are portable.

Developer Details

Author

anthropics

License

MIT

Author version

v0.2.0

Skillstore revision

r1

Ref

1b5b6c4962b2ad5a7a34603cab2685bbbd1b61ef

Maintenance freshness

7/18/2026

Usage

14 downloads · 1056 views