ワンクリックで
speckit-clarify
// Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
// Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
Fetch a Jira Epic and format its content as spec input ready for /speckit-specify
Push User Stories + tasks from spec.md / tasks.md to Jira as Stories and Sub-tasks under an existing Epic
Generate a custom checklist for the current feature based on user requirements.
Download frames from a Figma file URL into the feature designs/ folder
Create a GitHub Pull Request for the active feature branch using spec.md as source for title and body
Convert all Markdown files in the current feature directory to self-contained HTML
| name | speckit-clarify |
| description | Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec. |
| argument-hint | Optional areas to clarify in the spec |
| compatibility | Requires spec-kit project structure with .specify/ directory |
| metadata | {"author":"github-spec-kit","source":"templates/commands/clarify.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 clarification):
.specify/extensions.yml exists in the project root.hooks.before_clarify keyenabled is explicitly false. Treat hooks without an enabled field as enabled by default.condition expressions:
condition field, or it is null/empty, treat the hook as executablecondition, skip the hook and leave condition evaluation to the HookExecutor implementation.) with hyphens (-). For example, speckit.git.commit → /speckit-git-commit.optional flag:
optional: true):
## Extension Hooks
**Optional Pre-Hook**: {extension}
Command: `/{command}`
Description: {description}
Prompt: {prompt}
To execute: `/{command}`
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.
.specify/extensions.yml does not exist, skip silentlyGoal: Detect and reduce ambiguity or missing decision points in the active feature specification and record the clarifications directly in the spec file.
Note: This clarification workflow is expected to run (and be completed) BEFORE invoking /speckit-plan. If the user explicitly states they are skipping clarification (e.g., exploratory spike), you may proceed, but must warn that downstream rework risk increases.
Execution steps:
Run .specify/scripts/bash/check-prerequisites.sh --json --paths-only from repo root once (combined --json --paths-only mode / -Json -PathsOnly). Parse minimal JSON payload fields:
FEATURE_DIRFEATURE_SPECIMPL_PLAN, TASKS for future chained flows.)/speckit-specify or verify feature branch environment.Load the current spec file. Perform a structured ambiguity & coverage scan using this taxonomy. For each category, mark status: Clear / Partial / Missing. Produce an internal coverage map used for prioritization (do not output raw map unless no questions will be asked).
Functional Scope & Behavior:
Domain & Data Model:
Interaction & UX Flow:
Non-Functional Quality Attributes:
Integration & External Dependencies:
Edge Cases & Failure Handling:
Constraints & Tradeoffs:
Terminology & Consistency:
Completion Signals:
Misc / Placeholders:
For each category with Partial or Missing status, add a candidate question opportunity unless:
Generate (internally) a prioritized queue of candidate clarification questions (maximum 5). Do NOT output them all at once. Apply these constraints:
Blocking classification: For each candidate question, internally tag it as blocking: true if leaving it unanswered would make it impossible to produce a correct data model, API contract, or system architecture — i.e., the downstream plan would have to make an arbitrary guess on a structural decision. Typical blocking categories:
Sequential questioning loop (interactive):
Present EXACTLY ONE question at a time.
For multiple‑choice questions:
**Recommended:** Option [X] - <reasoning>| Option | Description |
|---|---|
| A | |
| B | |
| C | (add D/E as needed up to 5) |
| Short | Provide a different short answer (<=5 words) (Include only if free-form alternative is appropriate) |
You can reply with the option letter (e.g., "A"), accept the recommendation by saying "yes" or "recommended", or provide your own short answer.For short‑answer style (no meaningful discrete options):
**Suggested:** <your proposed answer> - <brief reasoning>Format: Short answer (<=5 words). You can accept the suggestion by saying "yes" or "suggested", or provide your own answer.After the user answers:
Stop asking further questions when:
Never reveal future queued questions in advance.
If no valid questions exist at start, immediately report no critical ambiguities.
Integration after EACH accepted answer (incremental update approach):
## Clarifications section exists (create it just after the highest-level contextual/overview section per the spec template if missing).### Session YYYY-MM-DD subheading for today.- Q: <question> → A: <final answer>.(formerly referred to as "X") once.Validation (performed after EACH write plus final pass):
## Clarifications, ### Session YYYY-MM-DD.Write the updated spec back to FEATURE_SPEC.
Report completion (after questioning loop ends or early termination):
Number of questions asked & answered.
Path to updated spec.
Sections touched (list names).
Coverage summary table listing each taxonomy category with the following columns:
blocking: true in step 3)Example:
| Category | Status | Blocking | Notes |
|---|---|---|---|
| Domain & Data Model | Deferred | ⛔ YES | Team ownership model (Modelo A/B) unresolved — blocks data model design |
| Non-Functional Quality | Clear | — | Performance targets defined in SC-002 |
Blocking Warning: If ANY item has Blocking: ⛔ YES AND Status: Deferred or Status: Outstanding, output this block prominently BEFORE the suggested next command:
⛔ BLOCKING DECISIONS UNRESOLVED
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The following deferred items will block /speckit-plan from producing
a correct data model or architecture. Resolve them before planning:
• [category]: [one-line description of the unresolved decision]
Options:
A) Escalate to PO/stakeholders → add to Open Questions in spec.md
B) Run /speckit-clarify again once decision is available
C) Proceed anyway → plan will contain explicit TODO placeholders
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
If any Outstanding or Deferred remain (non-blocking), recommend whether to proceed to /speckit-plan or run /speckit-clarify again later post-plan.
Suggested next command.
Behavior rules:
/speckit-specify first (do not create a new spec here).Context for prioritization: $ARGUMENTS
Check for extension hooks (after clarification):
Check if .specify/extensions.yml exists in the project root.
hooks.after_clarify keyenabled is explicitly false. Treat hooks without an enabled field as enabled by default.condition expressions:
condition field, or it is null/empty, treat the hook as executablecondition, skip the hook and leave condition evaluation to the HookExecutor implementation.) with hyphens (-). For example, speckit.git.commit → /speckit-git-commit.optional flag:
optional: true):
## Extension Hooks
**Optional Hook**: {extension}
Command: `/{command}`
Description: {description}
Prompt: {prompt}
To execute: `/{command}`
optional: false):
## Extension Hooks
**Automatic Hook**: {extension}
Executing: `/{command}`
EXECUTE_COMMAND: {command}
.specify/extensions.yml does not exist, skip silently