generate-tasks
Skill: Generate Task List from PRD
Overview
Guide AI in creating detailed, step-by-step task list in Markdown format based on existing PRD. The task list should guide a developer through implementation with built-in quality checkpoints.
Use When: PRD created, ready to plan implementation 4D Phase: Develop (planning implementation steps)
Prerequisites
✅ Before using this skill:
- PRD exists in
.claude/tasks/NNNN-prd-feature-name.md - PRD reviewed and approved by user
CLAUDE.mdexists (or will be created during this process)- Current codebase reviewed for context
Process Overview
Two-Phase Approach
Phase 1: Generate parent tasks → Present to user → Wait for "Go" Phase 2: Generate detailed sub-tasks → Save file → Inform user
This ensures high-level plan approved before diving into details.
Phase 1: Analysis & High-Level Planning
Step 1: Receive PRD Reference
User points AI to specific PRD file.
Example:
"Generate tasks for @.claude/tasks/0001-prd-user-authentication.md using @.claude/skills/generate-tasks/SKILL.md"
Step 2: Read PRD
AI reads and analyzes:
- Functional requirements
- User stories
- Technical considerations
- Guardrails affected
- Success metrics
Step 3: Assess Current State
CRITICAL: Review existing codebase before planning.
AI must:
-
Check
CLAUDE.mdfor:- Tech stack and framework choices
- Existing architecture patterns
- Testing framework and conventions
- Deployment configuration
-
Scan codebase for:
- Existing directory structure
- Similar features (auth, API routes, etc.)
- Naming conventions
- Test file patterns
- Component organization
-
Identify reusable components:
- Existing utilities that can be leveraged
- UI components from design system
- Database connection patterns
- Error handling patterns
- Validation utilities
-
Check guardrails compliance:
- Current file lengths (don't add to files approaching limits)
- Existing test coverage patterns
- Security patterns in use
- Performance considerations
Output: Brief summary for user review before generating tasks.
Example:
## Current State Assessment
**Existing Infrastructure:**
- Express.js backend with TypeScript
- Prisma ORM with PostgreSQL
- Jest for testing (78% coverage currently)
- React frontend with Tailwind CSS
**Reusable Components:**
- `lib/validation.ts` - Input validation utilities (use Zod)
- `components/Form.tsx` - Form component (reuse for auth forms)
- `lib/errors.ts` - Centralized error handling (extend for auth errors)
**Patterns to Follow:**
- API routes in `src/api/<feature>/` structure
- Tests alongside code (`*.test.ts`)
- Repository pattern for data access
- Environment variables via `.env` with fallbacks
**Guardrails Note:**
- `src/api/user/user.controller.ts` is 285 lines (near 300 limit - don't modify)
- Create new auth module instead of extending user module
Step 4: Generate Parent Tasks
Based on PRD and current state, create high-level tasks.
Guidelines:
- Typically 4-7 parent tasks
- Each parent = logical phase of implementation
- Order by dependency (database → backend → frontend → tests)
- Include setup, implementation, testing, documentation
Save to: .claude/tasks/tasks-NNNN-prd-feature-name.md
Present to user in this format:
## High-Level Tasks
- [ ] 1.0 Database Schema & Migrations
- [ ] 2.0 Backend Authentication Service
- [ ] 3.0 API Routes & Middleware
- [ ] 4.0 Frontend Auth Components
- [ ] 5.0 OAuth Integration
- [ ] 6.0 Testing & Validation
- [ ] 7.0 Documentation & Deployment
**Relevant Files** (identified):
- `src/db/schemas/user.schema.ts` - Create
- `src/auth/auth.service.ts` - Create
- `src/api/auth/auth.controller.ts` - Create
... (full list in task file)
Then inform user:
"High-level tasks generated. Review the task structure above.
Ready to generate detailed sub-tasks? Respond with 'Go' to proceed."
Step 5: Wait for User Confirmation
PAUSE - Do not proceed until user responds with "Go" or equivalent.
This checkpoint ensures high-level plan aligns with expectations before diving into details.
Phase 2: Detailed Task Breakdown
Step 6: Generate Sub-Tasks
Once user confirms "Go", break down each parent task into actionable sub-tasks.
Sub-task Guidelines:
- Granularity: Each sub-task = 30-60 min of work (3,000-6,000 tokens)
- Atomicity: Complete in one session, one commit
- Testability: Each sub-task includes verification step
- Dependency: Clear which sub-tasks depend on others
- Guardrails: Each task validates against relevant guardrails
Sub-task Naming Convention:
- Use present tense verbs: "Create", "Implement", "Add", "Update", "Test"
- Be specific: "Create user schema" not "Setup database"
- Include success criterion: "Create user schema (with email, password_hash, created_at fields)"
Example Parent → Sub-tasks:
- [ ] 1.0 Database Schema & Migrations
- [ ] 1.1 Create user schema with Prisma (email, password_hash, oauth_provider, created_at, updated_at)
- [ ] 1.2 Create session schema with Prisma (user_id FK, token, expires_at, created_at)
- [ ] 1.3 Generate and run Prisma migration for user and session tables
- [ ] 1.4 Verify schema in PostgreSQL (check indexes, constraints)
- [ ] 1.5 Update .env.example with DATABASE_URL placeholder
Step 7: Add Guardrail Validation Per Task
For each sub-task, identify which guardrails must be validated.
Format: Add guardrail checklist as comment under relevant tasks.
Example:
- [ ] 2.3 Implement password hashing service (bcrypt, cost factor 12)
<!-- Guardrails:
✓ All environment variables have secure defaults (BCRYPT_ROUNDS=12)
✓ All exported functions have type signatures and JSDoc
✓ Function ≤50 lines (hash, verify, validate strength as separate functions)
✓ Edge cases tested (null, empty, too short, invalid chars)
-->
Step 8: Add Complexity Estimates
For each sub-task, estimate complexity in tokens (not time).
Complexity Levels:
- Simple: <2,000 tokens (single function, straightforward logic)
- Medium: 2,000-5,000 tokens (multiple functions, some complexity)
- Complex: 5,000-10,000 tokens (multiple files, integration, edge cases)
Example:
- [ ] 2.3 Implement password hashing service [~3,000 tokens - Medium]
Step 9: Identify Relevant Files
List all files that will be created or modified, including tests.
Format: See references/process.md for detailed file listing format.
Step 10: Add Implementation Notes
Provide guidance for each task section.
Include:
- Testing requirements specific to this feature
- Performance considerations
- Security reminders
- Integration points
- Common pitfalls to avoid
Example:
## Implementation Notes
### Testing Requirements
- All auth logic must have >95% coverage (business-critical)
- Test files alongside code (e.g., `auth.service.ts` + `auth.service.test.ts`)
- Use `npm test src/auth` to run auth module tests only
- Integration tests must test actual JWT validation, not mocks
### Security Checklist (verify before each commit)
- [ ] All passwords hashed (never store plain text)
- [ ] All JWT secrets from environment variables
- [ ] All inputs validated with Zod schemas
- [ ] All SQL queries parameterized (use Prisma)
- [ ] Rate limiting on login/register endpoints
- [ ] Authentication events logged
### Performance Targets
- Login/register: <200ms (p95)
- JWT validation: <50ms (p95)
- Password hashing: 100-300ms (bcrypt cost 12)
### Common Pitfalls
- ❌ Don't validate JWT in database query (use middleware)
- ❌ Don't store tokens in localStorage (use httpOnly cookies)
- ❌ Don't return sensitive data in error messages
- ❌ Don't skip rate limiting (prevents brute force)
Step 11: Generate Final Output
Combine all sections into final task list structure.
See references/process.md for complete output format template.
Output Location
File: .claude/tasks/tasks-NNNN-prd-feature-name.md
Format: Markdown
Naming: Match PRD filename (e.g., PRD is 0001-prd-user-auth.md → tasks are tasks-0001-prd-user-auth.md)
Implementation Workflow
During Implementation
User will say: "Start on task 1.1" or "Continue with next task"
AI should:
- Implement the specific sub-task
- Write tests alongside code
- Validate against guardrails in task comment
- Run tests
- Verify success criteria
- Commit with message:
feat(auth): task 1.1 - create user schema - Mark task complete in task list file
- Ask: "Task 1.1 complete. Review changes? Or continue with 1.2?"
Guardrails Integration
For each sub-task, identify which of CLAUDE.md's 30+ guardrails apply.
Common guardrails per task type:
Database Schema Tasks
- ✓ All environment variables have secure defaults
- ✓ Parameterized queries (Prisma enforces this)
Service/Logic Tasks
- ✓ No function exceeds 50 lines
- ✓ Cyclomatic complexity ≤10 per function
- ✓ All exported functions have type signatures and JSDoc
- ✓ All user inputs validated before processing
API/Route Tasks
- ✓ All API boundaries have input validation (Zod schemas)
- ✓ All async operations have timeout/cancellation
- ✓ API responses <200ms for simple queries
Test Tasks
- ✓ Coverage targets: >95% for auth (business-critical)
- ✓ All public APIs have unit tests
- ✓ Edge cases tested (null, empty, boundary values)
- ✓ No test interdependencies
Security Tasks (Auth-related)
- ✓ All user inputs validated before processing
- ✓ All database queries parameterized
- ✓ All environment variables have secure defaults
- ✓ Dependencies checked for vulnerabilities
Final Instructions
For AI Assistant:
Phase 1 (High-Level):
- ✅ Read PRD thoroughly
- ✅ Assess current codebase (scan for existing patterns)
- ✅ Generate 4-7 parent tasks
- ✅ Identify all relevant files
- ✅ Present to user
- ❌ WAIT for "Go" before Phase 2
Phase 2 (Detailed):
- ✅ Break each parent into 3-8 sub-tasks
- ✅ Add guardrail validation per task
- ✅ Add complexity estimates
- ✅ Add implementation notes
- ✅ Save task list file
- ✅ Inform user: "Task list ready at [path]. Ready to start task 1.1?"
During Implementation:
- ✅ Implement one sub-task at a time
- ✅ Validate guardrails for that specific task
- ✅ Write tests alongside code
- ✅ Commit after each task (atomic commits)
- ✅ Update task list (mark completed)
- ✅ Ask user to review before continuing
Target Audience
Primary: Junior developer with AI assistance Assumption: Developer knows fundamentals but needs clear guidance on:
- Where to create files
- What patterns to follow
- Which guardrails to validate
- How to test properly
References
See references/process.md for:
- Complete output format template
- Detailed file listing examples
- Extended implementation notes
- Full task breakdown examples
Remember: Good task breakdown = clear roadmap. Each sub-task should be:
- Atomic: Complete in one session
- Testable: Has clear success criterion
- Guarded: Validates specific guardrails
- Estimated: Complexity known upfront
- Dependent: Dependencies clear (order matters)
Autonomous Execution (Optional)
If the project uses autonomous AI coding loops (Ralph Wiggum methodology), the generated task list can be converted to machine-readable format for unattended execution.
After generating the markdown task list:
samuel auto init --prd .claude/tasks/NNNN-prd-feature.md
This converts the PRD and task list into .claude/auto/prd.json and
generates the loop orchestration files. See .claude/skills/auto/SKILL.md
for the full autonomous workflow.