About feature-generator
A skill for turning a project’s `spec.md` into a dependency-ordered `features.md` for AI agent implementation, and keeping the files aligned when changes are requested. It also specifies feature sections with user flows and UI overviews.
Key features
- 01Checks for `spec.md` before starting
- 02Extracts discrete functionality from specs
- 03Orders features by implementation dependencies
- 04Defines user flows and UI overviews
- 05Syncs relevant changes between files
Use cases
- 01Create an implementation plan from a project spec
- 02Reorder features based on dependencies
- 03Update features after a spec change
- 04Reflect feature edits back into the spec
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ unlearndev/ skills --skill feature-generatorAfter installing, type/feature-generatorin Claude Code to confirm it loaded.
Details
From the project READMEFeature Generator Skill
Expand a spec.md into a detailed features.md, ordered by the sequence an AI agent would most successfully implement them (dependency order). Keep both files in sync when either is modified.
Step 1: Check for spec.md
Before doing anything, check whether spec.md exists in the current context or has been provided by the user.
If spec.md does not exist: Tell the user: "There's no spec.md yet — you'll need to create one first. If you have the spec-generator skill enabled, I can kick that off for you now. Would you like to do that?"
Do not proceed until spec.md is available.
Step 2: Generating features.md
Read spec.md fully. Extract every discrete piece of functionality implied by the spec — from user roles, core features, and technical stack. Then produce features.md following the format below.
Ordering rules
Order features by implementation dependency — what must exist before something else can be built. Think like an AI agent working top to bottom through the file:
- Foundation first — database, auth, core models
- Then the simplest user-facing flows that depend on nothing else
- Then features that build on those
- Admin/internal features after customer-facing equivalents
- Cross-cutting concerns (notifications, rate limiting, etc.) last
features.md format
Each feature follows this exact structure:
# [Product Name] — Features
---
## [N]. [Feature Name]
[One sentence describing what this feature does and who it's for.]
**User flow**
1. [Step]
2. [Step]
3. [Step]
**UI overview**
[2–4 sentences describing the key UI elements involved.]
---
Rules:
- Every feature gets a number, a user flow, and a UI overview — no exceptions
- User flows are written from the perspective of the actor (customer, team member, visitor)
- UI overview describes what the user sees and interacts with, not implementation detail
- No sub-bullets inside user flows — numbered steps only
- Horizontal rules (
---) between every feature and after the title
Step 3: Syncing changes
When the user modifies either spec.md or features.md and asks to sync:
If spec.md was modified:
- Identify what changed (new features added, features removed, features altered)
- Update only the relevant features in
features.mdto reflect those changes - Add new features in the correct dependency order position
- Remove features that no longer exist in the spec
- Do not touch features that are unaffected
If features.md was modified:
- Identify what changed (features added, removed, or substantially altered)
- Update only the relevant sections of
spec.mdto reflect those changes - Preserve all other spec content exactly as-is
- Do not rewrite or reformat untouched sections
Always confirm with the user what changed before syncing, so they can verify the right things are being updated.
Output
Save features.md to /mnt/user-data/outputs/features.md and present it using present_files.
If syncing changes to spec.md, save the updated version to /mnt/user-data/outputs/spec.md and present both files.