Generate dependency-ordered user stories and tasks from plan. Use after creating plan. Triggers on: create tasks, generate user stories, break down implementation.
Generate actionable, dependency-ordered user stories from technical plans.
Important: tasks.md contains the actual user stories that convert to prd.json!
This skill is Step 3 of 5 in the Relentless workflow:
specify → plan → tasks → analyze → implement
↓
(optional: checklist)
This skill now auto-runs convert at the end, generating prd.json. Manual convert is only needed if tasks.md is edited manually. Checklist is optional but recommended for complex features.
Find the current feature directory and verify:
spec.md existsplan.md existsrelentless/features/NNN-feature/Read:
relentless/constitution.md - Testing and quality requirementsrelentless/features/NNN-feature/spec.md - User requirementsrelentless/features/NNN-feature/plan.md - Technical designExtract Routing Preference from spec.md or plan.md (if present) and include it near the top of tasks.md so it can be carried into prd.json.
From spec.md, identify distinct user stories:
User Story Format:
### US-001: [Title]
**Description:** As a [user], I want [goal] so that [benefit].
**Acceptance Criteria:**
- [ ] Criterion 1 (testable, specific)
- [ ] Criterion 2
- [ ] Criterion 3
- [ ] Typecheck passes
- [ ] Tests pass
**Dependencies:** (if any)
**Phase:** Foundation / Stories / Polish
For each user story, create implementation tasks using format:
## User Stories
### US-001: Create User Registration Endpoint
**Description:** As a new user, I want to register with email/password so that I can create an account.
**Acceptance Criteria:**
- [ ] POST /api/auth/register endpoint exists
- [ ] Email validation works
- [ ] Password requirements enforced (min 8 chars)
- [ ] Password is hashed before storage
- [ ] Confirmation email sent
- [ ] Returns 201 with user ID
- [ ] Returns 400 for invalid input
- [ ] Typecheck passes
- [ ] Unit tests pass
- [ ] Integration test passes
**Dependencies:** None
**Phase:** Foundation
**Priority:** 1
---
### US-002: Create User Login Endpoint
**Description:** As a registered user, I want to log in with email/password so that I can access my account.
**Acceptance Criteria:**
- [ ] POST /api/auth/login endpoint exists
- [ ] Validates credentials against database
- [ ] Returns JWT token on success
- [ ] Returns 401 for invalid credentials
- [ ] Returns 403 for unconfirmed accounts
- [ ] Token expires after 24 hours
- [ ] Typecheck passes
- [ ] Unit tests pass
- [ ] Integration test passes
**Dependencies:** US-001
**Phase:** Stories
**Priority:** 2
---
### US-003: Email Confirmation Flow
**Description:** As a new user, I want to confirm my email so that my account is activated.
**Acceptance Criteria:**
- [ ] Confirmation email sent on registration
- [ ] Email contains confirmation link
- [ ] GET /api/auth/confirm/:token endpoint exists
- [ ] Token validates and marks account as confirmed
- [ ] Expired tokens return appropriate error
- [ ] Confirmed users can log in
- [ ] Typecheck passes
- [ ] E2E test passes
**Dependencies:** US-001
**Phase:** Stories
**Priority:** 3
If you have any doubts or suggestions about any specific task, interview the user about them to improve your execution.
Ensure user stories are ordered so dependencies come first:
Mark parallel stories with:
**Parallel:** Yes
Check that:
Before saving and converting, validate the format manually:
Story ID Format:
US-XXX format (e.g., US-001, not Story 1)Acceptance Criteria Format:
src/queue/types.ts contains Zod schemas")`src/file.ts`Dependencies Format:
US-XXX with dashes, not underscores**Dependencies:** US-001, US-002 (correct)**Dependencies:** US_001 (incorrect - will warn)Common Mistakes to Avoid:
- [ ] \src/file.ts`` (file path only - will be filtered)- [ ] \src/file.ts` contains the queue interface`**Files:** inside acceptance criteria (will end criteria parsing)relentless/features/NNN-feature/tasks.md.claude/skills/validators/scripts/validate-tasks.sh "relentless/features/NNN-feature/tasks.md"
CRITICAL: You MUST execute the CLI command below. Do NOT generate prd.json manually.
After tasks.md is saved, run this command to convert to prd.json with routing:
relentless convert relentless/features/NNN-feature/tasks.md --feature <feature-name>
⚠️ IMPORTANT: Execute this bash command using the Bash tool. Do NOT:
The CLI will:
After running the command, report:
Optional but Recommended: /relentless.checklist
Next Step: /relentless.analyze (or /relentless.checklist first if desired)
Every user story MUST include test acceptance criteria:
The Relentless agent will verify:
Every story acceptance criteria should include:
User Story Size:
Acceptance Criteria:
Dependencies:
relentless convertGoogle Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity