3.8 KiB
3.8 KiB
description, handoffs
| description | handoffs | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Create or update the feature specification from a natural-language feature description for the Rust MCP repository. |
|
User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Outline
The feature description is the text passed to /speckit.specify.
- Generate a concise short name (2-4 words) for the feature branch.
- Check existing branches/spec directories and run
.specify/scripts/bash/create-new-feature.sh --json ...exactly once.- This step is the source of truth for the feature lifecycle.
- It MUST create and checkout the git branch
NNN-short-namewhen git is available. - It MUST create
specs/NNN-short-name/and initializespec.mdthere. - Treat the returned
SPEC_FILEpath as authoritative and deriveFEATURE_DIRfrom it.
- Load these sources before writing the spec:
.specify/templates/spec-template.md.specify/templates/ux-reference-template.md.specify/memory/constitution.mdREADME.mddocs/SEMANTIC_PROTOCOL_COMPLIANCE.md- relevant
docs/adr/*when the feature clearly touches an existing architectural lane
- Create or update the following artifacts inside
FEATURE_DIRonly:spec.mdux_reference.mdchecklists/requirements.md
- Generate
ux_reference.mdas an interaction reference for MCP callers, CLI/operator flows, result envelopes, warnings, and recovery behavior. - Write
spec.mdfocused on what the user/operator needs and why, not how the Rust crate will implement it. - Validate the spec against a requirements-quality checklist and iterate until major issues are resolved.
Specification Rules
- Use domain language appropriate for this repository: MCP callers, tools, resources, runtime evidence, workspace flows, operator recovery, semantic contracts.
- Avoid leaking implementation details such as module names, crates, file-level refactors, or exact Rust APIs.
- Use
[NEEDS CLARIFICATION: ...]only for truly blocking product ambiguities. Maximum 3 markers. - Prefer informed defaults grounded in repository context over unnecessary clarification.
- Do not assume web-app, backend/frontend, or Svelte UI flows unless the feature actually introduces them.
- Do not write feature outputs to
.kilo/plans/,.kilo/reports/, or any path outsidespecs/<feature>/....
UX / Interaction Reference Rules
ux_reference.mdis mandatory, but for this repository it is usually an interaction-reference artifact rather than a screen-design artifact.- Capture:
- caller/operator persona
- happy-path invocation flow
- result envelope expectations
- warning/degraded states
- failure recovery guidance
- canonical terminology
- Only include UI-specific
@UX_*guidance when the feature truly has a user interface component.
Quality Validation
Generate FEATURE_DIR/checklists/requirements.md and ensure it validates:
- no implementation leakage into
spec.md - no stale Python/Svelte assumptions unless the feature explicitly needs them
- compatibility with the Rust MCP/task-shaped tool surface
- measurable success criteria
- explicit edge cases and recovery paths
- decision-memory readiness for downstream planning
If unresolved clarification markers remain, present them in a compact, high-impact format and stop for user input.
Completion Report
Report:
- branch name
- feature directory under
specs/ spec.mdpathux_reference.mdpath- checklist path and status
- readiness for
/speckit.clarifyor/speckit.plan