Spec
SkillProductivityUse when asked to spec, define, or write a ticket for a project or task
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 storyblok/monoblok in .agents/skills/spec/SKILL.md and read by ahel’s review.
Generate a spec for: $ARGUMENTS
Output instructions
IMPORTANT: Write the spec output to a markdown file, NOT to the terminal.
-
Extract an identifier from the arguments:
- For ticket IDs like
DX-237-> usedx-237 - For descriptions -> slugify the first few words (e.g., "CLI login flow" ->
cli-login-flow)
- For ticket IDs like
-
Create the output directory if it doesn't exist:
mkdir -p claude-output -
Determine the spec type based on scope:
- Project spec (multi-day, cross-cutting, new package/major feature): write to
claude-output/spec-<identifier>.md - Ticket spec (single deliverable, 1-3 days): write to
claude-output/ticket-<identifier>.md
- Project spec (multi-day, cross-cutting, new package/major feature): write to
-
After writing, confirm the output path to the user.
Instructions
- Understand the problem - What pain point does this solve? Who asked for it?
- Determine scope - Is this a project (multi-day, cross-cutting) or a ticket (single deliverable, 1-3 days)?
- Research - Read relevant code and context files, check storyrails for API contracts, look at existing patterns
- Write the spec - Use the appropriate template
What to include vs. leave to the developer
Specs define the user-facing contract, not internal architecture.
INCLUDE:
- Capabilities that must exist
- Target versions and platforms
- DX principles and patterns to follow
- Non-functional requirements (performance, reliability, coverage)
- Architectural constraints (e.g., "must compose on top of @storyblok/capi-client")
- Command syntax, config formats, file structures, output examples (these ARE the DX spec)
DO NOT INCLUDE:
- Internal function, method, or class names
- Internal file/folder structure or module organization
- Implementation approach (algorithms, data structures, internal flow)
Templates
Project specs
Use templates/project.md as the base. Adapt structure to the project:
- Open questions at the top when there are unresolved decisions
- Specs sub-sectioned by area for large projects (General, Features, Non-functional)
- Specs with bold labels for medium SDK projects (Features, Environments, DX)
- Specs by command with examples for CLI projects
- Milestones for phased delivery
- AC checkboxes when there are concrete verifiable endpoints
- Deliverables list when the outcome is "what ships"
Ticket specs
Use templates/ticket.md as the base. Adapt to complexity:
- Simple bugfix: Context + What to do + AC (skip Notes if none)
- Feature with ambiguity: add Out of scope, Proposed change, Notes
Reference
See guide.md for principles and examples/ for real project specs of different shapes and sizes.
Rules
- Scale structure to complexity
- No redundancy between sections
- Surface open questions prominently
- For CLI projects: include command syntax, file format examples, and note usage of logger/UI/config systems
- Keep ticket scope small (1-3 day effort max)
- All acceptance criteria must be checkboxes
- Never create GitHub issues - Write to
claude-output/as markdown for Linear
Signals
- GitHub stars
- 65
- Forks
- 44
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
spec-storyblok- Source
- github.com/storyblok/monoblok