admindatosgobes/laboratorio-de-datos/speckit-specify
Claude Code and agent skill by admindatosgobes/laboratorio-de-datos
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
Create or update the feature specification from a natural language feature description.
Install
npx vskill@latest install admindatosgobes/laboratorio-de-datos/speckit-specifySemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
User Input
You MUST consider the user input before proceeding (if not empty).
Pre-Execution Checks
Check for extension hooks (before specification):
- Check if
.specify/extensions.ymlexists in the project root. - If it exists, read it and look for entries under the
hooks.before_specifykey - If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
- Filter out hooks where
enabledis explicitlyfalse. Treat hooks without anenabledfield as enabled by default. - For each remaining hook, do not attempt to interpret or evaluate hook
conditionexpressions: - If the hook has no
conditionfield, or it is null/empty, treat the hook as executable - If the hook defines a non-empty
condition, skip the hook and leave condition evaluation to the HookExecutor implementation - For each executable hook, output the following based on its
optionalflag: - Optional hook (
optional: true):
``` ## Extension Hooks
Optional Pre-Hook: {extension} Command: /{command} Description: {description}
Prompt: {prompt} To execute: /{command} ```
- Mandatory hook (
optional: false):
``` ## Extension Hooks
Automatic Pre-Hook: {extension} Executing: /{command} EXECUTE_COMMAND: {command}
Wait for the result of the hook command before proceeding to the Outline. ```
- If no hooks are registered or
.specify/extensions.ymldoes not exist, skip silently
Outline
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:
- Generate a concise short name (2-4 words) for the feature:
- Analyze the feature description and extract the most meaningful keywords
- Create a 2-4 word short name that captures the essence of the feature
- Use action-noun format when possible (e.g., "add-user-auth", "fix-payment-bug")
- Preserve technical terms and acronyms (OAuth2, API, JWT, etc.)
- Keep it concise but descriptive enough to understand the feature at a glance
- Examples:
- "I want to add user authentication" → "user-auth"
- "Implement OAuth2 integration for the API" → "oauth2-api-integration"
- "Create a dashboard for analytics" → "analytics-dashboard"
- "Fix payment processing timeout bug" → "fix-payment-timeout"
- 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).
- 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`:
- If the user explicitly provided
SPECIFY_FEATURE_DIRECTORY(e.g., via environment variable, argument, or configuration), use it as-is - Otherwise, auto-generate it under
specs/:
- Check
.specify/init-options.jsonforbranch_numbering - If
"timestamp": prefix isYYYYMMDD-HHMMSS(current timestamp) - If
"sequential"or absent: prefix isNNN(next available 3-digit number after scanning existing directories inspecs/) - Construct the directory name:
<prefix>-<short-name>(e.g.,003-user-author20260319-143022-user-auth) - Set
SPECIFY_FEATURE_DIRECTORYtospecs/<directory-name>
Create the directory and spec file:
mkdir -p SPECIFY_FEATURE_DIRECTORY- Copy
.specify/templates/spec-template.mdtoSPECIFY_FEATURE_DIRECTORY/spec.mdas the starting point - Set
SPEC_FILEtoSPECIFY_FEATURE_DIRECTORY/spec.md - Persist the resolved path to
.specify/feature.json:
``json { "feature_directory": "<resolved feature dir>" } ` Write the actual resolved directory path value (for example, specs/003-user-auth), not the literal string SPECIFY_FEATURE_DIRECTORY. This allows downstream commands (/speckit.plan, /speckit.tasks`, etc.) to locate the feature directory without relying on git branch name conventions.
IMPORTANT:
- You must only create one feature per
/speckit.specifyinvocation - The spec directory name and the git branch name are independent — they may be the same but that is the user's choice
- The spec directory and file are always created by this command, never by the hook
- Load
.specify/templates/spec-template.mdto understand required sections.
- Follow this execution flow:
- Parse user description from arguments
If empty: ERROR "No feature description provided"
- Extract key concepts from description
Identify: actors, actions, data, constraints
- For unclear aspects:
- Make informed guesses based on context and industry standards
- Only mark with [NEEDS CLARIFICATION: specific question] if:
- The choice significantly impacts feature scope or user experience
- Multiple reasonable interpretations exist with different implications
- No reasonable default exists
- LIMIT: Maximum 3 [NEEDS CLARIFICATION] markers total
- Prioritize clarifications by impact: scope > security/privacy > user experience > technical details
- Fill User Scenarios & Testing section
If no clear user flow: ERROR "Cannot determine user scenarios"
- Generate Functional Requirements
Each requirement must be testable Use reasonable defaults for unspecified details (document assumptions in Assumptions section)
- Define Success Criteria
Create measurable, technology-agnostic outcomes Include both quantitative metrics (time, performance, volume) and qualitative measures (user satisfaction, task completion) Each criterion must be verifiable without implementation details
- Identify Key Entities (if data involved)
- Return: SUCCESS (spec ready for planning)
- Write the specification to SPEC_FILE using the template structure, replacing placeholders with concrete details derived from the feature description (arguments) while preserving section order and headings.
- Specification Quality Validation: After writing the initial spec, validate it against quality criteria:
a. Create Spec Quality Checklist: Generate a checklist file at SPECIFY_FEATURE_DIRECTORY/checklists/requirements.md using the checklist template structure with these validation items:
```markdown # Specification Quality Checklist: [FEATURE NAME]
Purpose: Validate specification completeness and quality before proceeding to planning Created: [DATE] Feature: [Link to spec.md]
## Content Quality
- [ ] No implementation details (languages, frameworks, APIs)
- [ ] Focused on user value and business needs
- [ ] Written for non-technical stakeholders
- [ ] All mandatory sections completed
## Requirement Completeness
- [ ] No [NEEDS CLARIFICATION] markers remain
- [ ] Requirements are testable and unambiguous
- [ ] Success criteria are measurable
- [ ] Success criteria are technology-agnostic (no implementation details)
- [ ] All acceptance scenarios are defined
- [ ] Edge cases are identified
- [ ] Scope is clearly bounded
- [ ] Dependencies and assumptions identified
## Feature Readiness
- [ ] All functional requirements have clear acceptance criteria
- [ ] User scenarios cover primary flows
- [ ] Feature meets measurable outcomes defined in Success Criteria
- [ ] No implementation details leak into specification
## Notes
- Items marked incomplete require spec updates before
/speckit.clarifyor/speckit.plan
```
b. Run Validation Check: Review the spec against each checklist item:
- For each item, determine if it passes or fails
- Document specific issues found (quote relevant spec sections)
c. Handle Validation Results:
- If all items pass: Mark checklist complete and proceed to step 7
- If items fail (excluding [NEEDS CLARIFICATION]):
- List the failing items and specific issues
- Update the spec to address each issue
- Re-run validation until all items pass (max 3 iterations)
- If still failing after 3 iterations, document remaining issues in checklist notes and warn user
- If [NEEDS CLARIFICATION] markers remain:
- Extract all [NEEDS CLARIFICATION: ...] markers from the spec
- LIMIT CHECK: If more than 3 markers exist, keep only the 3 most critical (by scope/security/UX impact) and make informed guesses for the rest
- For each clarification needed (max 3), present options to user in this format:
```markdown ## Question [N]: [Topic]
Context: [Quote relevant spec section]
What we need to know: [Specific question from NEEDS CLARIFICATION marker]
Suggested Answers:
| Option | Answer | Implications | |
|---|---|---|---|
| A | [First suggested answer] | [What this means for the feature] | |
| B | [Second suggested answer] | [What this means for the feature] | |
| C | [Third suggested answer] | [What this means for the feature] | |
| Custom | Provide your own answer | [Explain how to provide custom input] |
Your choice: _[Wait for user response]_ ```
- CRITICAL - Table Formatting: Ensure markdown tables are properly formatted:
- Use consistent spacing with pipes aligned
- Each cell should have spaces around content:
| Content |not|Content| - Header separator must have at least 3 dashes:
|--------| - Test that the table renders correctly in markdown preview
- Number questions sequentially (Q1, Q2, Q3 - max 3 total)
- Present all questions together before waiting for responses
- Wait for user to respond with their choices for all questions (e.g., "Q1: A, Q2: Custom - [details], Q3: B")
- Update the spec by replacing each [NEEDS CLARIFICATION] marker with the user's selected or provided answer
- Re-run validation after all clarifications are resolved
d. Update Checklist: After each validation iteration, update the checklist file with current pass/fail status
- Report completion to the user with:
SPECIFY_FEATURE_DIRECTORY— the feature directory pathSPEC_FILE— the spec file path- Checklist results summary
- Readiness for the next phase (
/speckit.clarifyor/speckit.plan)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingData Science/Análisis de precios de carburantes con GenAI como copiloto/.claude/skills/speckit-specify/SKILL.md
Popularity
- Repository stars
- 69
- Repository forks
- 72
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/admindatosgobes/laboratorio-de-datos/speckit-specify)