create-task-files
Create Task Files Skill
Export planning tasks into structured, trackable markdown files organized by type (epic, user-story, bug, issue) in a tasks/ directory. Integrates with git-based workflows for team collaboration.
When to Use This Skill
Use this skill when:
- User wants to export TodoWrite tasks to files
- After completing
/plan-featureand user wants task tracking - User mentions "create tasks", "export tasks", "epic", "user story"
- Setting up project tracking in markdown files
- Need to track bugs or issues in files
Task Types
This skill supports four task types:
| Type | Purpose | Example |
|---|---|---|
| epic | Large feature or initiative spanning multiple stories | "User Authentication System" |
| user-story | Single deliverable piece of functionality | "User can login with email/password" |
| bug | Defect or issue to fix | "Login form doesn't validate email format" |
| issue | General task, chore, or technical debt | "Refactor authentication controller" |
Instructions
Follow these steps when creating task files:
Step 1: Determine Task Source
Check if there are active TodoWrite tasks:
- Ask the user: "I can create task files from your current todo list or from a feature description. Which would you prefer?"
- If using todo list, analyze the current tasks
- If using feature description, ask for the feature details
Step 2: Gather Task Configuration
Use AskUserQuestion to ask:
Question 1: Task Types
- Which task types to create?
- Options: "All types (epic + stories)", "User stories only", "Custom selection"
Question 2: Grouping Strategy
- How to group tasks?
- Options: "By implementation layer (DB, Logic, UI, Tests)", "By feature area", "Chronological order"
Question 3: Metadata
- What additional metadata?
- Options: "Priority + Labels", "Just basics", "Full metadata (assignee, estimates)"
Step 3: Create Tasks Directory
Create the directory structure:
mkdir -p tasks
Check if tasks/README.md exists. If not, create it with:
# Project Tasks
This directory contains structured task tracking files for features, bugs, and issues.
## Task Types
- **epic-XXX**: Large features or initiatives
- **story-XXX**: User stories and deliverable functionality
- **bug-XXX**: Defects and issues to fix
- **issue-XXX**: General tasks, chores, technical debt
## Workflow
1. Tasks are created from feature planning
2. Update task status as work progresses
3. Check off acceptance criteria when complete
4. Link related tasks using task IDs
## Status Values
- `todo`: Not started
- `in-progress`: Currently being worked on
- `blocked`: Waiting on dependency
- `review`: Ready for review
- `done`: Completed
## File Naming
Format: `{type}-{number}-{slug}.md`
Examples:
- `epic-001-user-authentication.md`
- `story-001-login-form.md`
- `bug-001-email-validation.md`
Step 4: Analyze and Structure Tasks
Based on the source (TodoWrite or description):
- Identify the Epic: The main feature/initiative
- Break into User Stories: Discrete deliverable pieces
- Identify Dependencies: Which tasks block others
- Assign Priorities: Based on dependencies and importance
Example breakdown:
Epic: Blog Post Commenting System
├── Story 1: Comment model and database
├── Story 2: Comment controller and routes
├── Story 3: Comment form UI with Turbo
├── Story 4: Comment listing with nested replies
└── Story 5: Email notifications for replies
Step 5: Generate Task Files
Create files using the templates (see templates/ directory).
Naming convention: {type}-{number}-{slug}.md
Numbering:
- Check existing tasks:
ls tasks/{type}-* 2>/dev/null | wc -l - Increment from highest existing number
- Pad with zeros:
001,002, etc.
Slug generation:
- Lowercase title
- Replace spaces with hyphens
- Remove special characters
- Max 50 characters
Step 6: Create Task Files
For each task, create a markdown file using the templates in the templates/ directory.
Available templates:
- templates/epic.md - For large features/initiatives
- templates/user-story.md - For deliverable functionality
- templates/bug.md - For defects and bugs
- templates/issue.md - For chores and technical debt
Template usage:
- Read the appropriate template file from
templates/directory - Replace placeholder values:
{number},{Epic Title},{YYYY-MM-DD}, etc. - Use Write tool to create the task file in
tasks/directory
For full template details, see the files in templates/ directory.
Step 7: Create Task Index
After creating all task files, update or create tasks/INDEX.md:
# Task Index
Generated: {YYYY-MM-DD HH:MM}
## Epics
- [epic-001](epic-001-slug.md) - {Title} `[status]`
## User Stories
- [story-001](story-001-slug.md) - {Title} `[status]` (epic-001)
- [story-002](story-002-slug.md) - {Title} `[status]` (epic-001)
## Bugs
- [bug-001](bug-001-slug.md) - {Title} `[status]`
## Issues
- [issue-001](issue-001-slug.md) - {Title} `[status]`
## By Status
### Todo
- story-001, bug-001
### In Progress
- story-002
### Done
- issue-001
Step 8: Present Summary
Show the user what was created:
## Task Files Created
Created {N} task files in tasks/ directory:
### Epic
- tasks/epic-001-feature-name.md
### User Stories (5)
- tasks/story-001-database-setup.md
- tasks/story-002-business-logic.md
- tasks/story-003-ui-implementation.md
- tasks/story-004-testing.md
- tasks/story-005-polish.md
### Structure
tasks/
├── README.md
├── INDEX.md
├── epic-001-feature-name.md
└── story-001-database-setup.md
### Next Steps
1. Review task files and update priorities
2. Assign tasks to team members (update frontmatter)
3. Start with: tasks/story-001-database-setup.md
4. Update status as work progresses
5. Commit to git: git add tasks/ && git commit -m "Add tasks for {feature}"
Tasks are now tracked in markdown files and can be committed to version control.
Best Practices
Do:
- ✅ Create one epic per feature/initiative
- ✅ Break epics into 3-7 user stories
- ✅ Use clear, actionable titles
- ✅ Include acceptance criteria
- ✅ Link related tasks with IDs
- ✅ Update task status as work progresses
- ✅ Commit task files to git
Don't:
- ❌ Create too many task types (keep it simple)
- ❌ Make user stories too large (split them)
- ❌ Skip acceptance criteria
- ❌ Forget to update task status
- ❌ Duplicate tasks between TodoWrite and files
- ❌ Create tasks without clear ownership
Integration
With plan-feature skill:
After /plan-feature completes, it will suggest running this skill to export tasks to files.
With TodoWrite: Can read current TodoWrite tasks and convert them to structured files.
With Git: Task files are designed to be committed to version control for team collaboration.
File Structure
tasks/
├── README.md # Overview of task system
├── INDEX.md # Auto-generated index of all tasks
├── epic-001-user-auth.md # Epic for authentication
├── story-001-login-model.md # User story for login model
├── story-002-login-controller.md # User story for login controller
├── story-003-login-ui.md # User story for login UI
├── bug-001-email-validation.md # Bug fix task
└── issue-001-refactor-auth.md # Technical debt task
Example Usage
Scenario 1: After planning
/plan-feature "Add user authentication"
# ... planning completes ...
/create-task-files
# Creates epic + 5 user stories in tasks/
Scenario 2: Standalone
/create-task-files
# Asks: "Create tasks from todo list or feature description?"
# Creates structured task files based on input
Scenario 3: Bug tracking
/create-task-files
# Select: "Bug only"
# Creates bug-001-description.md with proper template
Output
Creates structured markdown files in tasks/ directory with:
- Proper frontmatter (YAML)
- Consistent formatting
- Clear acceptance criteria
- Dependency tracking
- Status management
- Git-friendly format
This enables team collaboration, progress tracking, and version-controlled project management.
More from shoebtamboli/rails_claude_skills
rails-debugging
Use when debugging Rails issues - provides Rails-specific debugging tools (logs, console, byebug, SQL logging) integrated with systematic debugging process
6rails-pagination-kaminari
Pagination for Ruby on Rails applications using Kaminari. Use when: (1) Implementing pagination for database records, (2) Building paginated API endpoints, (3) Customizing pagination UI with themes, (4) Handling large datasets efficiently, (5) Creating infinite scroll, (6) Paginating arrays or custom collections, (7) Adding SEO-friendly pagination URLs, (8) Internationalizing pagination labels
5plan-feature
Gather requirements, analyze codebase, and create structured task lists before starting Rails feature development. Use when planning new features, starting development work, breaking down requirements, or when the user mentions "plan", "requirements", "tasks", or "kickoff".
4rails-models
ActiveRecord patterns, migrations, validations, callbacks, associations
4