Use this skill when creating or working with feature specifications. Feature specs capture intent (WHAT and WHY) before implementation begins.
Creates feature specifications that capture WHAT and WHY before implementation begins.
/plugin marketplace add lefant/claude-code-plugins/plugin install lefant@lefant-claude-code-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
template.mdUse this skill when creating or working with feature specifications. Feature specs capture intent (WHAT and WHY) before implementation begins.
Access this skill with: /skill feature-specs
Feature specs define what a feature should do and why it matters, without prescribing how to implement it. They serve as contracts between stakeholders and developers, and as living documentation that evolves with the product.
Create a feature spec when:
Skip specs for:
Specs are stored in ./docs/specs/ at the project root. Create this directory on demand when writing the first spec.
<feature-name>.md - lowercase, dash-separated
Examples:
user-authentication.mdexport-to-csv.mdrate-limiting.mdSee template.md in this skill directory for the spec format.
Implementation decisions belong in ADRs, not specs.
GIVEN a user is logged in
WHEN they click "Export"
THEN a CSV file downloads containing their data
Include error scenarios:
GIVEN invalid credentials
WHEN user attempts login
THEN system displays error message without revealing which field is wrong
Open Questions are first-class citizens, not failures. It's better to document uncertainty than to guess:
## Open Questions
- [ ] Should rate limiting apply per-user or per-API-key?
- [ ] What's the acceptable latency for export operations?
Resolve questions before or during implementation, then update the spec.
Specs evolve. When reality diverges from the spec:
Changes are managed via git branches, not versioned filenames.
| Specs | ADRs |
|---|---|
| WHAT the system does | WHY we chose this approach |
| Behavior and intent | Implementation decisions |
| User-facing requirements | Technical tradeoffs |
| Living documents | Immutable records |
Cross-reference when relevant:
See: docs/decisions/2026-01-14_use-postgres-for-persistence.md
This skill activates when:
When activated, suggest running /spec_create to capture requirements.
Use the /spec_create command:
/spec_create "user authentication"
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.