spec
SkillDev toolsGenerate a feature spec with user stories directly from conversation context and codebase exploration — no interview needed. Use this when the user has already described what they want (in the current conversation, a doc, or a plan) and just needs it formalized into a spec. Also use when the user says "write a spec", "create a spec", "spec this out", or similar.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the spec skill
What this skill tells your AI
The instructions your AI receives, as published by jvm-skills/jvm-skills in .junie/skills/spec/SKILL.md and read by ahel’s review.
Generate a comprehensive feature spec with user stories by synthesizing information already available in context — conversation history, referenced documents, and codebase exploration. Skip any interview or Q&A phase.
How to gather information
Instead of asking the user questions, proactively resolve unknowns by:
- Mining the conversation: Extract every detail the user has already shared — requirements, constraints, examples, preferences, edge cases mentioned in passing.
- Exploring the codebase: Look at existing patterns, related features, navigation structure, roles, and state management to fill gaps. Check controllers, services, templates/views, and domain logic relevant to the feature.
- Reading project docs: Check
docs/for architecture docs, onboarding flows, and existing specs that inform the design. - Making reasonable assumptions: Where information is genuinely missing and can't be inferred from codebase/docs, state your assumption explicitly in the spec (mark with "Assumption:").
Required coverage
The spec must address all of these, even if the user didn't mention them explicitly — infer from codebase patterns:
- Entry points: Where does the user navigate FROM? What existing page/nav/button changes?
- User journey: Complete flow from discovery → interaction → completion → return
- Roles: Which roles interact? Identify all user roles from the codebase (or check
references/project.md). - Edge cases: Error states, empty states, concurrent access, mobile vs desktop
- State transitions across roles: Which roles see each change? How (real-time — SSE/websockets, polling, refresh)? What does each role's screen show before/after?
- Terminal states: What does the user do next at every end-state? Every screen must have a forward action. URL params, cookies, or tokens needed?
Output format
Write the spec to docs/dev/YYYY-MM-DD-hh-mm_spec-<feature-name>.md and open it with idea (or your editor).
The spec must end with a structured ## User Stories section:
## User Stories
- **US-1**: As a [role], I [action] so that [outcome].
- **US-2**: As a [role], I [action] so that [outcome].
...
Rules for user stories:
- Every user role that interacts with the feature must have at least one story
- Navigation/entry point stories come FIRST
- Cover the happy path, key error states, and edge cases
- Stories must be specific enough to verify — "I can use the feature" is too vague
- Number them (US-1, US-2, ...) so the plan can reference them
Project Customization
Read references/project.md in this skill's directory if it exists. It provides project-specific context:
- User roles and their permissions
- View layer technology (e.g. ViewComponents, Thymeleaf, JSP, React)
- Real-time transport preference (SSE, websockets, polling)
- Output directory conventions
- Any other project-specific patterns
Signals
- GitHub stars
- 138
- Forks
- 26
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
spec-jvm-skills- Source
- github.com/jvm-skills/jvm-skills