claude-command-convert…
Convert Claude Code commands (.claude/commands/*.md) to standard Agent Skills (skills/*/SKILL.md). Use when migrating slash…
Create or update the feature specification from a natural language feature description.
$ npx -y skills add dceoy/speckit-agent-skills --skill speckit-specify --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/speckit-specifyContext preview
The summary Claude sees to decide when to auto-load this skill.
Create or update the feature specification from a natural language feature description.
name: "speckit-specify" description: "Create or update the feature specification from a natural language feature description." argument-hint: "Describe the feature you want to specify" compatibility: "Requires spec-kit project structure with .specify/ directory" metadata: author: "github-spec-kit" source: "templates/commands/specify.md" user-invocable: true disable-model-invocation: false
$ARGUMENTS
You **MUST** consider the user input before proceeding (if not empty).
**Check for extension hooks (before specification)**:
## Extension Hooks
**Optional Pre-Hook**: {extension}
Command: `/{command}`
Description: {description}
Prompt: {prompt}
To execute: `/{command}` ## Extension Hooks
**Automatic Pre-Hook**: {extension}
Executing: `/{command}`
EXECUTE_COMMAND: {command}
Wait for the result of the hook command before proceeding to the Outline.After emitting the block above you MUST actually invoke the hook and wait for it to finish before continuing. Run it the same way you would run the command yourself in this agent/session (the invocation may differ from the literal `{command}` id shown above, e.g. a skills-mode agent runs it as `/skill:speckit-...` or `$speckit-...`). Emitting the block alone does not run the hook.
The text the user typed after `/speckit-specify` in the triggering message **is** the feature description. Assume you always have it available in this conversation even if `$ARGUMENTS` appears literally below. Do not ask the user to repeat it unless they provided an empty command.
Given that feature description, do this:
1. **Generate a concise short name** (2-4 words) for the feature:
2. **Branch creation** (optional, via hook):
If a `before_specify` hook ran successfully in the Pre-Execution Checks above, it will have created/switched to a git branch and output JSON containing `BRANCH_NAME` and `FEATURE_NUM`. Note these values for reference, but the branch name does **not** dictate the spec directory name.
If the user explicitly provided `GIT_BRANCH_NAME`, pass it through to the hook so the branch script uses the exact value as the branch name (bypassing all prefix/suffix generation).
3. **Create the spec feature directory**:
Specs live under the default `specs/` directory unless the user explicitly provides `SPECIFY_FEATURE_DIRECTORY`.
**Resolution order for `SPECIFY_FEATURE_DIRECTORY`**: 1. If the user explicitly provided `SPECIFY_FEATURE_DIRECTORY` (e.g., via environment variable, argument, or configuration), use it as-is 2. Otherwise, auto-generate it under `specs/`:
**Create the directory and spec file**:
{
"feature_directory": "<resolved feature dir>"
}W
Agent skills and generated runtime entry points for Spec Kit.
Convert Claude Code commands (.claude/commands/*.md) to standard Agent Skills (skills/*/SKILL.md). Use when migrating slash…
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task…
Generate feature specifications by analyzing existing source code.
Generate a custom checklist for the current feature based on user requirements.
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding…
Create or update the project constitution from interactive or provided principle inputs.