tasks
Convert a PRD markdown file to prd.json for execution. Triggers on: convert prd, create tasks, prd to json, generate tasks from prd.
Install
mkdir -p .claude/skills/tasks && curl -L -o skill.zip "https://mcp.directory/api/skills/download/2485" && unzip -o skill.zip -d .claude/skills/tasks && rm skill.zipInstalls to .claude/skills/tasks
About this skill
Tasks - Convert PRD to JSON Format
Converts a PRD markdown document into the prd.json format for the execution loop.
The Job
- Read the PRD markdown file
- Extract tasks (from Tasks section or User Stories)
- Explode each task into granular, machine-verifiable sub-tasks
- Order by dependencies (schema → backend → UI → tests)
- Output to the specified prd.json location
Autonomous mode: Do not ask questions. Use the PRD content and any provided context (branch name, output path) to generate prd.json immediately.
Critical: Agent-Testable Tasks
Every task must be autonomously verifiable by an AI agent without human intervention.
The Golden Rule
Each acceptance criterion must be a boolean check that an agent can definitively pass or fail:
❌ BAD - Vague/subjective:
- "Works correctly"
- "Review the configuration"
- "Document the findings"
- "Identify the issue"
- "Verify it looks good"
✅ GOOD - Machine-verifiable:
- "Run
npm run typecheck- exits with code 0" - "Navigate to /signup - page loads without console errors"
- "Click submit button - form submits and redirects to /dashboard"
- "File
src/auth/config.tscontainsredirectUrl: '/onboarding'" - "API response status is 200 and body contains
{ success: true }"
Acceptance Criteria Patterns
Use these patterns for agent-testable criteria:
| Type | Pattern | Example |
|---|---|---|
| Command | "Run [cmd] - exits with code 0" | "Run npm test - exits with code 0" |
| File check | "File [path] contains [string]" | "File middleware.ts contains clerkMiddleware" |
| Browser nav | "agent-browser: open [url] - [expected result]" | "agent-browser: open /login - SignIn component renders" |
| Browser action | "agent-browser: click [element] - [expected result]" | "agent-browser: click 'Submit' button - redirects to /dashboard" |
| Console check | "agent-browser: console shows no errors" | |
| API check | "GET/POST [url] returns [status] with [body]" | "POST /api/signup returns 200" |
| Screenshot | "agent-browser: screenshot shows [element] visible" | "agent-browser: screenshot shows CTA button above fold" |
Browser Testing with agent-browser
All browser-based acceptance criteria MUST use agent-browser.
agent-browser commands:
agent-browser open <url> # Navigate to URL
agent-browser snapshot -i # Get interactive elements with refs
agent-browser click @ref # Click element by ref
agent-browser fill @ref "value" # Fill input field
agent-browser screenshot <path> # Save screenshot
agent-browser wait --load networkidle # Wait for page load
agent-browser console # Check console for errors
Example browser acceptance criteria:
{
"acceptanceCriteria": [
"agent-browser: open http://localhost:3000/signup - page loads",
"agent-browser: snapshot -i - find email input field ref",
"agent-browser: fill @email 'test@example.com' - value entered",
"agent-browser: fill @password 'TestPass123!' - value entered",
"agent-browser: click @submit - form submits",
"agent-browser: wait --load networkidle - page settles",
"agent-browser: screenshot tmp/signup-result.png - capture result",
"agent-browser: console - no errors logged"
]
}
Input
A PRD file created by the prd skill, typically at tasks/prd-[feature-name].md.
Output Format
Create prd.json:
{
"project": "Project Name",
"branchName": "compound/[feature-name]",
"description": "[One-line description from PRD]",
"tasks": [
{
"id": "T-001",
"title": "[Specific action verb] [specific target]",
"description": "[1-2 sentences: what to do and why]",
"acceptanceCriteria": [
"Specific machine-verifiable criterion with expected outcome",
"Another criterion with pass/fail condition",
"Run `npm run typecheck` - exits with code 0"
],
"priority": 1,
"passes": false,
"notes": ""
}
]
}
Task Granularity Rules
Target: 8-15 tasks per PRD
PRDs should typically generate 8-15 granular tasks. If you have fewer than 6, you probably need to split tasks further.
Split Multi-Step Tasks
❌ TOO BIG:
{
"title": "Test signup flow and fix issues",
"acceptanceCriteria": [
"Test the signup flow",
"Identify any issues",
"Fix the issues",
"Verify the fix works"
]
}
✅ PROPERLY SPLIT:
[
{
"id": "T-001",
"title": "Navigate to signup page and capture baseline",
"acceptanceCriteria": [
"Navigate to /signup - page loads successfully",
"Screenshot saved to tmp/signup-baseline.png",
"Browser console errors logged to tmp/signup-console.log"
]
},
{
"id": "T-002",
"title": "Test email input field validation",
"acceptanceCriteria": [
"Enter 'invalid-email' in email field - error message appears",
"Enter 'valid@example.com' - error message disappears",
"Field has aria-invalid='true' when invalid"
]
},
{
"id": "T-003",
"title": "Test form submission with valid data",
"acceptanceCriteria": [
"Fill email: 'test@example.com', password: 'TestPass123!'",
"Click submit button - loading state appears",
"After submit - redirects to /onboarding OR error message appears"
]
}
]
One Concern Per Task
Each task should do ONE thing:
| Concern | Separate Task |
|---|---|
| Navigate to page | T-001 |
| Check for errors | T-002 |
| Test input validation | T-003 |
| Test form submission | T-004 |
| Verify redirect | T-005 |
| Test mobile viewport | T-006 |
| Implement fix | T-007 |
| Verify fix on desktop | T-008 |
| Verify fix on mobile | T-009 |
Investigation vs Implementation
Never combine "find the problem" with "fix the problem" in one task.
[
{
"id": "T-001",
"title": "Check Clerk SignUp component configuration",
"description": "Verify the Clerk SignUp component props match expected values",
"acceptanceCriteria": [
"File app/(public)/free-trial/page.tsx exists",
"File contains <SignUp component",
"SignUp has routing prop (log value to notes)",
"SignUp has forceRedirectUrl prop (log value to notes)",
"Run `npm run typecheck` - exits with code 0"
]
},
{
"id": "T-002",
"title": "Check middleware auth configuration",
"description": "Verify middleware doesn't block signup routes",
"acceptanceCriteria": [
"File middleware.ts exists",
"Log public routes configuration to notes",
"/free-trial is in public routes OR not blocked by auth",
"Run `npm run typecheck` - exits with code 0"
]
}
]
Task Sizing
Each task must be completable in ONE iteration (~one context window).
Right-sized tasks:
- Check one configuration file for specific values
- Test one user interaction (click, type, submit)
- Verify one redirect or navigation
- Change one prop or configuration value
- Add one CSS rule or style change
- Test one viewport size
Too big (split these):
- "Test the entire signup flow" → Split into: load page, test inputs, test submit, test redirect, test mobile
- "Fix the bug" → Split into: identify file, make change, verify change, test regression
- "Add authentication" → Split into: schema, middleware, login UI, session handling
Priority Ordering
Set priority based on dependencies:
- Investigation tasks - priority 1-3 (understand before changing)
- Schema/database changes - priority 4-5
- Backend logic changes - priority 6-7
- UI component changes - priority 8-9
- Verification tasks - priority 10+
Lower priority number = executed first.
Process
Step 1: Read the PRD
Read the PRD file the user specified
Step 2: Extract High-Level Tasks
Look for:
- Tasks (T-001, T-002, etc.)
- User Stories (US-001, US-002, etc.)
- Functional Requirements (FR-1, FR-2, etc.)
- Any numbered/bulleted work items
Step 3: Explode Into Granular Tasks
For each high-level task:
- List every distinct action required
- Separate investigation from implementation
- Separate each verification concern
- Ensure each has boolean pass/fail criteria
Step 4: Order by Dependencies
Determine logical order:
- What needs to be understood first? (investigation)
- What needs to exist first? (database schema)
- What depends on that? (backend logic)
- What depends on that? (UI components)
- What verifies everything? (browser tests)
Step 5: Generate prd.json
Create the JSON file with all tasks having passes: false.
Step 6: Save and Summarize
Save the file immediately, then output a brief summary:
- Number of tasks created
- Task order with priorities
- Branch name
- File path saved to
Do NOT wait for user confirmation. Save the file and proceed.
Example: Debugging a Broken Page
PRD Task:
### T-001: Fix signup page with 0% conversion
- Test the signup flow
- Identify the bug
- Fix it
- Verify on mobile and desktop
Exploded to prd.json (10 tasks):
{
"project": "MyProject",
"branchName": "compound/fix-signup",
"description": "Fix broken signup page",
"tasks": [
{
"id": "T-001",
"title": "Load signup page and check for errors",
"acceptanceCriteria": [
"Navigate to /signup - page loads (status 200)",
"Screenshot saved to tmp/signup-desktop.png",
"Console errors saved to notes field (or 'none' if clean)"
],
"priority": 1,
"passes": false,
"notes": ""
},
{
"id": "T-002",
"title": "Test signup page on mobile viewport",
"acceptanceCriteria": [
"Set viewport to 375x812 (iPhone)",
"Navigate to /signup - page loads",
"Screenshot saved t
---
*Content truncated.*
More by snarktank
View all skills by snarktank →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversEasily convert markdown to PDF using Markitdown MCP server. Supports HTTP, STDIO, and SSE for fast converting markdown t
Convert files easily with File Format Converter (Pandoc): transform PDF, HTML, Markdown, HEIC to JPG, JPG to PDF, and mo
Easily download videos or convert YouTube to MP3/MP4 with our YouTube downloader for quick content analysis using yt-dlp
Ask Human adds human-in-the-loop responses to AI, preventing errors on sensitive tasks like passwords and API endpoints.
Sub-Agents delegates tasks to specialized AI assistants, automating workflow orchestration with performance monitoring a
Tasks offers project tracking software and time management tools using the Eisenhower Matrix across Markdown, JSON, and
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.