Install
$ agentstack add skill-khaledsaeed18-dotclaude-create-command ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Create a slash command: a prompt the user invokes by typing /. Make it do one well-scoped action, accept its arguments cleanly, and read like a tight instruction set. Then regenerate the derived files and validate.
Source layout is commands///COMMAND.md. Commands are file-layout: the folder must contain only COMMAND.md, because it installs as the single file .claude/commands/.md. The / the user types comes from that filename. The category is the folder; registry.json and the README catalog are generated by pnpm gen. Never hand-edit generated files.
Hard rules: never break these
- One command, one action. A command is something the user deliberately triggers (
/write-tests,/deploy). Keep it to a single, well-scoped job. - File layout: only
COMMAND.md. No companion files;pnpm genrejects extras because the command installs as one file. - Gate side effects. If the command commits, pushes, deploys, deletes, or sends anything, state exactly what will happen and confirm before doing it. Consider
disable-model-invocation: trueso only the user can fire it. nameis globally unique and equals the folder name, kebab-case.- Never hand-write
registry.jsonor the README catalog. Runpnpm gen. - No AI/co-author mentions anywhere in the command or its output.
Step 1: Define the command
- The one action it performs, in a sentence.
- The arguments it takes, if any, and what each means.
- Who invokes it. User-only (set
disable-model-invocation: true) for anything with side effects or timing you want to control; both you and Claude for safe, read-only helpers.
Step 2: Scaffold it
From the repo root:
pnpm new --type command --category --name --description ""
Current command category: testing. Reuse it or add a new folder if a different family is justified. The scaffolder enforces kebab-case and global name uniqueness and regenerates the registry.
Step 3: Write the frontmatter
Required: name, description. Useful optional fields:
| Field | Purpose | | -------------------------- | ------------------------------------------------------------------------------------------------ | | argument-hint | Autocomplete hint for expected args, e.g. [file] or [issue-number] [format]. Omit if none. | | allowed-tools | Tools the command may use without a permission prompt while active. Space/comma string or list. | | disable-model-invocation | true so only the user can run it (Claude won't auto-trigger). Use for side-effecting commands. | | model | Pin a model for this command. Defaults to the session model. |
Write description third person, leading with the action; avoid a : (it is YAML).
Step 4: Write the body with arguments
The markdown body is the prompt that runs when the command is invoked. Address the agent, imperative. Wire in input:
$ARGUMENTSexpands to everything the user typed after the command.$1,$2, … expand to positional arguments.- A leading
!line runs a shell command and inlines its output (needsallowed-tools), e.g. `!git diff --stat` to ground the prompt in live state. @path/to/filepulls a file's contents into the prompt.
If the command takes arguments but the body omits $ARGUMENTS, Claude Code appends what the user typed automatically, but referencing it explicitly reads better.
Step 5: Regenerate and validate
pnpm gen
pnpm validate
Fix the source COMMAND.md if validation complains; never patch generated output.
Step 6: Review against the bar
- Invoking
/does the one action cleanly, with arguments handled. - Side effects are gated and, where appropriate,
disable-model-invocation: trueis set. - The folder contains only
COMMAND.md. pnpm validatepasses and the README catalog shows the new row.
Report the command's path, category, how it's invoked, and the validation result. Leave committing to the user.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: KhaledSaeed18
- Source: KhaledSaeed18/dotclaude
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.