Task Master 的 parse-prd 命令:从 PRD 文档到结构化开发任务的智能解析指南
【免费下载链接】claude-task-masterAn AI-powered task-management system you can drop into Cursor, Lovable, Windsurf, Roo, and others.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-task-master
Parse PRD 是 Task Master 项目中最核心的“需求转任务”能力:它读取一份产品需求文档(PRD),交给 AI 模型分析后,自动生成一份带编号、依赖关系、优先级与验收策略的结构化任务清单。本文基于 parse-prd.md 展开,结合 parse-prd.js、parse-prd.json、commands.js 等源码,完整讲解命令用法、解析流程、参数选项、底层实现原理与后续扩展工作流,读完即可在自己的项目中用一份 PRD 快速落地可执行的任务看板。
命令概述与基本用法
parse-prd接受一个必选参数:PRD 文件路径(支持.txt、.md等纯文本格式)。其核心定位是:分析你的需求文档并生成完整的任务拆解("Analyzes your requirements document and generates a complete task breakdown")。
最基础的一条命令:
task-master parse-prd --input=$ARGUMENTS其中$ARGUMENTS即 PRD 文件路径。也可以使用位置参数直接传入:
task-master parse-prd requirements.txt从 commands.js 可以看到,该命令通过programInstance.command('parse-prd')注册,PRD 路径的解析逻辑为options.input || file,即--input选项优先于位置参数。执行时会先初始化 TaskMaster(initTaskMaster),随后调用底层parsePRD函数完成解析。
智能解析流程
parse-prd的解析过程分为三个阶段,每一阶段都有对应的源码实现支撑。
1. 文档分析(Document Analysis)
AI 模型对 PRD 内容进行四方面的分析:
- 提取关键需求(Extract key requirements):识别产品必须交付的核心功能点;
- 识别技术组件(Identify technical components):判断实现所需的技术栈、模块与组件;
- 检测依赖关系(Detect dependencies):梳理功能之间的先后顺序与耦合关系;
- 评估复杂度(Estimate complexity):据此决定任务拆分粒度。
在实现层面,readPrdContent(见 parse-prd-helpers.js)会同步读取 PRD 文件并校验内容非空,空文件会抛出Input file ... is empty or could not be read错误。随后 buildPrompts 调用promptManager.loadPrompt('parse-prd', ...),将 parse-prd.json 中定义的 Handlebars 模板渲染成发给模型的 system/user 提示词。
2. 任务生成(Task Generation)
模型按提示词约束输出 JSON 格式的任务数组,默认生成10–15 个任务(具体数量受--num-tasks影响),且保证:
- 包含实现类任务(implementation tasks);
- 补充测试类任务(testing tasks);
- 覆盖文档类任务(documentation tasks);
- 为任务设置逻辑依赖(logical dependencies)。
提示词中的输出 JSON 结构(见 parse-prd.json)每个任务对象包含:
{ "id": 1, "title": "任务标题", "description": "任务描述", "status": "pending", "dependencies": [], "priority": "medium", "details": "实现细节", "testStrategy": "验证方案" }服务端返回后,processTasks 会执行两遍处理:
- 第一遍:将 AI 返回的相对 ID 重映射为从
nextId(即已有任务最大 ID + 1)开始的连续 ID,并为status、priority、dependencies、subtasks等字段补默认值; - 第二遍:将
dependencies中的旧 ID 映射为新 ID,并过滤掉“指向自身或更高 ID”的非法依赖(依赖只能指向更小 ID 的任务)。
同时 validateSequentialTaskIds 会在运行时校验 AI 返回的 ID 必须是从 1 开始的连续正整数序列,从源头杜绝脏数据写入tasks.json。
3. 智能增强(Smart Enhancements)
- 功能分组(Group related functionality):将相近需求聚合为原子任务;
- 优先级设置(Set appropriate priorities):按关键程度与依赖顺序分配
high/medium/low,默认值为medium; - 验收标准(Add acceptance criteria):写入
testStrategy字段; - 测试策略(Include test strategies):每个任务都附带可执行的验证方案。
提示词中的 11 条 Guideline(见 parse-prd.json)进一步约束:任务必须原子化、按依赖与实现顺序排序、早期任务先做基础搭建与核心功能、优先级基于关键性和依赖顺序、PRD 中明确的技术栈/数据库/框架要求必须严格保留不得丢弃。
选项参数详解
parse-prd支持多个修饰参数,除了文档中提到的三种快捷写法,CLI 还提供完整的命名选项(见 commands.js)。
参数数量:数字后缀 →--num-tasks
| 参数 | 说明 |
|---|---|
-n, --num-tasks <number> | 生成任务的数量,默认值由getDefaultNumTasks()决定(默认为 10) |
- 文件名后直接跟数字:
task-master parse-prd requirements.txt 15等价于--num-tasks 15; - 显式写法:
task-master parse-prd requirements.txt --num-tasks 15; - 设为
0时让模型根据 PRD 复杂度自行决定任务数量(MCP 工具parse_prd的numTasks参数明确支持该行为,见 parse-prd.js); - 建议不要超过 50,避免超出模型上下文窗口。
研究模式:research→--research
-r, --research启用研究模式,文档原话为使用 Perplexity AI 提供“research-backed”的任务生成。在提示词层面(见 parse-prd.json 的{{#if research}}分支),模型在拆解任务前会先完成六步动作:
- 调研适用于该项目的最新技术栈、库、框架与最佳实践;
- 识别 PRD 中未明说的技术挑战、安全隐患与扩展性问题;
- 结合行业标准与趋势(旨在缓解 LLM 因训练数据截止导致的信息过期与幻觉);
- 评估多种实现路径并推荐最直接的方案;
- 给出具体的库版本、API 与落地指引;
- 始终坚持最直接实现路径,避免过度工程。
task-master parse-prd requirements.txt --research注意:--research需要配置对应的 AI API Key,且会显著增加 token 消耗。
全面模式:comprehensive→ 生成更多任务
文档中的comprehensive修饰符用于请求生成更全面、更多的任务,对应到提示词层面即numTasks数值偏大时,模型会“除非复杂度需要更多,否则恰好生成 N 个任务”(见 parse-prd.json Guideline 1)。
其他 CLI 选项
| 选项 | 说明 |
|---|---|
-i, --input <file> | PRD 文件路径,优先于位置参数 |
-o, --output <file> | 输出文件路径(默认tasks.json) |
-f, --force | 跳过覆盖确认,直接覆盖已有任务 |
--append | 追加到已有任务而不是覆盖 |
--tag <tag> | 指定任务操作的 tag 上下文(默认master) |
覆盖保护机制:当目标 tag 中已存在任务时,若未加--force或--append,CLI 会弹出确认(confirmOverwriteIfNeeded,见 commands.js),确认后内部将useForce置为true;在底层validateFileOperations(见 parse-prd-helpers.js)中,非 MCP 场景下未授权覆盖会直接process.exit(1)终止。
底层执行链:流式与非流式
从 parse-prd.js 可以看到完整的执行链设计:
parsePRD(prdPath, tasksPath, numTasks, options) └─ PrdParseConfig 构造配置对象 ├─ useStreaming = true → parsePRDWithStreaming → parsePRDCore(handleStreamingService) └─ useStreaming = false → parsePRDWithoutStreaming → parsePRDCore(handleNonStreamingService)parsePRDCore统一完成六步公共流程:加载已有任务(loadExistingTasks)→ 校验文件操作(validateFileOperations)→ 读取 PRD(readPrdContent)→ 构建提示词(buildPrompts)→ 调用 AI 服务(serviceHandler)→ 处理并保存任务(processTasks+saveTasksToFile)。
值得注意的实现细节:
- 流式失败自动回退:
useStreaming分支捕获到StreamingError或超时错误(TimeoutManager.isTimeoutError)时,会打印黄色警告并自动降级到非流式模式重试(parse-prd.js); - 超时控制:
streamingTimeout默认 180 秒(Duration.seconds(180).milliseconds,见 parse-prd-config.js); - 流式功能开关:源码中
ENABLE_STREAMING常量当前为false,即当前版本默认走generateObject非流式路径(注释说明待问题解决后重新启用,见 parse-prd-config.js)。
输出结果与后续工作流
任务文件结构
解析结果保存到tasks.json,采用tag 维度组织(saveTasksToFile,见 parse-prd-helpers.js),仅更新目标 tag 而不影响其他 tag 的任务,并附带created/updated时间戳与描述元数据:
{ "master": { "tasks": [ /* 任务数组 */ ], "metadata": { "created": "2026-09-11T00:00:00.000Z", "updated": "2026-09-11T00:00:00.000Z", "description": "Tasks for master context" } } }解析完成后的下一步
文档建议解析完成后依次执行:
- 展示任务摘要:CLI 会通过
displayParsePrdSummary(见 src/ui/parse-prd.js)输出总任务数、优先级分布、PRD 路径、输出路径、耗时与生成的任务文件范围,并附带 token 用量与费用统计(displayAiUsageSummary); - 查看依赖图:运行
task-master list查看全部任务及其依赖关系; - 对复杂任务进行展开:运行
task-master expand --id=<id>将单个任务拆解为子任务(该提示也由displayNonStreamingCliOutput直接输出,见 parse-prd-helpers.js); - 推荐冲刺规划:结合优先级与依赖链安排迭代顺序。
准备一份高质量的 PRD
解析质量直接取决于 PRD 的结构化程度。仓库提供了 example_prd.txt 作为推荐模板,建议按以下区块组织内容:
- Overview:产品解决什么问题、面向谁、价值何在;
- Core Features:每个功能做什么、为什么重要、高层如何工作;
- User Experience:用户画像、关键流程、UI/UX 考量;
- Technical Architecture:系统组件、数据模型、API 与集成、基础设施需求;
- Development Roadmap:按阶段拆分 MVP 与增强项,只关注范围与细节而非时间线;
- Logical Dependency Chain:先建什么(地基)、如何最快到达可用的前端、如何让每个功能原子化且可持续迭代;
- Risks and Mitigations:技术挑战、MVP 界定、风险应对方案。
提示词同时要求模型填补 PRD 未完全指定的空白,但严禁丢弃 PRD 中任何显式要求(见 parse-prd.json Guideline 9-10),因此模板中的占位符都应替换为具体内容,越明确越好。
在 MCP 与 Claude Code 插件中使用
除了 CLI,parse-prd还以 MCP 工具的形式暴露为parse_prd(见 parse-prd.js),参数与 CLI 一一对应:input(默认docs/prd.txt)、projectRoot(必填绝对路径)、tag、output、numTasks(默认 10)、force、research、append。Agent 可据此在对话中直接调用,无需手动执行命令。
本文所述命令与参数均以当前仓库 commands.js、parse-prd.js、parse-prd.json 的实现为准。从一份 PRD 到一张可执行的任务清单,parse-prd打通了产品需求与工程执行的最后一公里——配合 expand 命令、list与set-task-status等命令,即可形成完整的“解析 → 拆解 → 排期 → 执行 → 流转”闭环。
【免费下载链接】claude-task-masterAn AI-powered task-management system you can drop into Cursor, Lovable, Windsurf, Roo, and others.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-task-master
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考