create-skill
Create a new Claude Code skill following the conventions of existing skills.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Create a new Claude Code skill following the conventions of existing skills.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Make a set of things (code, prose, config, docs) consistent along a dimension the user names, by picking a canonical form and conforming every member to it.
Remove illegal states from data structures by redesigning their types so the illegal states cannot be represented at all.
Remove unnecessary comments from code: tombstones, redundant restatements, and comments a well-named variable or function would replace.
Perform a task with a worker agent, critique it with an adversary agent, and apply the accepted critiques with a reconciler agent.
Replace jargon and imported metaphors in code and prose with concrete, domain-fitting terms a reader understands without translation.
Do an editorial review of a post or article and report findings ordered by importance.
| name | create-skill |
| description | Create a new Claude Code skill following the conventions of existing skills. |
| argument-hint | [what the skill should do] |
Create a new Claude Code skill following the conventions of existing skills.
ls ~/.claude/skills .claude/skills skills 2>/dev/null || true
$ARGUMENTS
$ARGUMENTS~/.claude/skills/<name>/SKILL.md if useful across projects<repo>/.claude/skills/<name>/SKILL.md if it encodes project-specific
procedures, scripts, or conventionsallowed-tools (see "Permissions")/refine-context on the skill file/strunkify on the skill filePick exactly one invocation model:
jj-split): Description is a one-sentence summary
of what the skill does, shown to the user in skill lists. Always add an
argument-hint (see "Other fields") and interpolate the arguments in the body
(see "Body"), since the user invokes it as a slash command and may pass
argumentsauthoring-tests): set user-invocable: false
plus paths globs so the skill loads when matching files are touched.
Description starts with "Use when..."Other fields:
name: kebab-case, matches the directory nameargument-hint: required for user-invoked skills. Text shown after the
command name, describing the expected arguments (e.g.
'[file path or text to review]'). Use [...] for optional arguments and
<...> for required onesarguments: declare named arguments, referenced as $<name> in the body. Use
named arguments ONLY when the skill is always invoked with one specific value
and has no conversation fallback (rare; no current skill needs them).
Otherwise omit and use $ARGUMENTS for free-form input that can also fall
back to the conversation!-fenced code blocks, which execute at
invocation time (e.g. jj show --git in jj-split). Use them for context the
skill always needs. If the workflow might short-circuit before using the
context, gather it in a workflow step instead of feeding tokens needlesslydisable-model-invocation: true) MUST interpolate its
arguments in the body, either $ARGUMENTS for free-form input or the named
$<name> placeholders, so input passed to the slash command isn't dropped.
Place it after the dynamic context and before the workflow so user input can
override the defaults. When later prose refers back to the input, label the
line Arguments: $ARGUMENTS and write "the arguments" thereafter, so a long
input isn't repeated; otherwise a bare $ARGUMENTS is fine# Goals or # Principles, then a numbered # Workflow,
then how-to and guideline sections the workflow references/authoring-tests". Verify the referenced skill existsjj split -i, git add -p).
Claude cannot respond to interactive prompts; use flag-driven alternativesA skill that transforms code or prose usually works on either an explicit target
or the current commit's changes. Standardize this with a # Target section that
interpolates jj show --git, then an Arguments: $ARGUMENTS line, then one
sentence fixing precedence: operate on the target named in the arguments if
given; otherwise the changes in the current commit shown above; otherwise, if
there are no arguments and the commit has no changes, ask the user what to
target and stop. See ../reuse/SKILL.md and ../stratify/SKILL.md.
!-fenced context blocks), WebFetch domains, and MCP tools~/.claude/settings.json (for project
skills, also check the project's .claude/settings.json)allowed-tools entries, scoped as narrowly as possible:
Bash(jj split *), not Bash(jj *)deny rule, flag the conflict to the
user: deny rules are evaluated before skill allowed-tools and block the
tool even while the skill is active