wtf.feature-to-tasks
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFeature to Tasks
Feature to Tasks
Break a Feature down into its full set of Tasks and create them one by one. Core value: proposes the complete task list upfront derived from the Feature's Acceptance Criteria, then walks through writing each Task with full user control.
将一个Feature拆分成完整的任务集,并逐一创建这些任务。核心价值:根据Feature的验收标准(Acceptance Criteria)预先提出完整的任务列表,然后在完全由用户掌控的前提下,逐步编写每个Task。
Process
流程
0. GitHub CLI setup
0. GitHub CLI 配置
Run the setup check from . Stop if is not installed or not authenticated. Note whether the extensions are available — this determines whether native sub-issue and dependency links are created downstream (via ).
../references/gh-setup.mdghwrite-taskSkip this step if gh-setup was already confirmed this session (e.g. when chained from or ).
write-featureepic-to-features运行中的配置检查。如果未安装或未完成认证,请停止操作。注意相关扩展是否可用——这将决定后续是否能通过创建原生子任务和依赖链接。
../references/gh-setup.mdghwrite-task如果本次会话已确认过gh-setup(例如从或链式调用而来),则跳过此步骤。
write-featureepic-to-features1. Identify the Feature
1. 确定目标Feature
If a Feature number was passed in as context, use it directly. Otherwise search for recent open issues with label to populate options and call with , , and pre-filled with 1–2 likely open Feature issue references inferred from GitHub search (e.g. recent open issues labeled ).
featureAskUserQuestionquestion: "Which Feature are you breaking into Tasks?"header: "Feature"optionsfeatureFetch the Feature, then find its parent Epic via the sub-issue hierarchy:
bash
gh issue view <feature_number> # ACs, edge cases, user stories
gh sub-issue list <feature_number> --relation parent # find parent Epic number
gh issue view <epic_number> # Goal, ContextExtract any existing Proposed Tasks checklist items (named, unnumbered items) from the Feature body. In Step 2, use these as the starting point for the proposal rather than generating from scratch.
List Features already created under the Epic — used in step 4 to identify the next Feature:
bash
gh sub-issue list <epic_number>如果上下文已传入Feature编号,直接使用该编号。否则搜索最近带有标签的未关闭议题,生成选项,然后调用,参数为:,,并预先填充1-2个从GitHub搜索推断出的可能的未关闭Feature议题参考(例如最近带有标签的未关闭议题)。
featureAskUserQuestionquestion: "要将哪个Feature拆分为Tasks?"header: "Feature"feature获取该Feature,然后通过子议题层级找到其父级Epic:
bash
gh issue view <feature_number> # 验收标准、边缘情况、用户故事
gh sub-issue list <feature_number> --relation parent # 查找父级Epic编号
gh issue view <epic_number> # 目标、背景信息从Feature正文中提取所有现有的“拟议任务”清单项(命名的无编号项)。在步骤2中,将这些内容作为提议的起点,而非从头生成。
列出该Epic下已创建的所有Feature——用于步骤4识别下一个Feature:
bash
gh sub-issue list <epic_number>2. Propose the full Task list
2. 提出完整任务列表
Based on the Feature's Acceptance Criteria, User Stories, and Edge Cases, derive a proposed list of Tasks. Each task should be a vertical slice — touching all layers needed for one observable, user-facing behavior.
Present the list as plain numbered text, for example:
Here are the Tasks I'd propose to implement this Feature:
- Add settlement status field to Payment Aggregate
- Expose settlement status on the payments API endpoint
- Display settlement status in the merchant dashboard UI
- Send settlement notification email when status changes
Then call with:
AskUserQuestion- : "Does this list look complete? You can add, remove, or rename any Task before we start."
question - : "Task list"
header - :
options[{label: "Looks good", description: "Proceed with this list"}, {label: "Make changes", description: "I want to add, remove, or rename a Task"}]
Wait for the user to confirm or adjust the list. Apply any changes.
根据Feature的验收标准、用户故事和边缘情况,推导拟议的任务列表。每个任务应是一个垂直切片——涵盖实现一个可观察的用户端行为所需的所有层面。
将列表以纯文本编号形式呈现,例如:
以下是我为实现此Feature提出的任务:
- 为Payment Aggregate添加结算状态字段
- 在支付API端点暴露结算状态
- 在商家仪表盘UI中显示结算状态
- 当状态变更时发送结算通知邮件
然后调用,参数为:
AskUserQuestion- : "这个列表是否完整?在开始之前,您可以添加、删除或重命名任何任务。"
question - : "任务列表"
header - :
options[{label: "看起来没问题", description: "继续使用此列表"}, {label: "需要修改", description: "我想添加、删除或重命名任务"}]
等待用户确认或调整列表,应用所有修改。
3. Walk through Tasks one by one
3. 逐一处理任务
For each Task in the confirmed list, in order:
- Announce: "Creating Task [N/total]: [task description]"
- Follow the process, passing:
write-task- The Feature number (skip step 1 of write-task — Feature already fetched)
- The task description as the pre-filled proposal in step 2 of write-task (user can confirm or adjust)
- Skip write-task clarification questions already answered by the loaded Feature context (ACs, user stories, edge cases). Only ask about scope or contract details that cannot be derived from the Feature.
- Before moving to the next Task, call with:
AskUserQuestion-
: "Task [N] created. Ready to continue to Task [N+1]: [next task description]?" (replace [N] and [N+1] with actual numbers and description)
question -
: "Continue?"
header -
:
options[{label: "Yes, continue", description: "Proceed to the next Task (default)"}, {label: "Pause here", description: "Exit — I'll continue later"}, {label: "Skip this task", description: "Mark as skipped and move on"}, {label: "Add a new task", description: "Insert a new task into the list before continuing"}] -
Yes, continue → continue.
-
Pause here → exit. Print a summary of which Tasks were created and which remain. Suggestbefore resuming.
/clear -
Skip this task → mark as skipped in the list and move to the next.
-
Add a new task → callwith
AskUserQuestion,question: "What is the new task?", andheader: "New task"pre-filled with 1–2 plausible tasks inferred from the remaining Feature ACs not yet covered. Add the confirmed task to the list, then continue.options
-
针对确认后的列表中的每个任务,按顺序执行:
- 通知:"正在创建任务 [N/总数量]: [任务描述]"
- 遵循流程,传入:
write-task- Feature编号(跳过write-task的步骤1——已获取Feature)
- 任务描述作为write-task步骤2中的预填充提议(用户可确认或调整)
- 跳过已由加载的Feature上下文(验收标准、用户故事、边缘情况)回答的write-task澄清问题。仅询问无法从Feature中推导的范围或合约细节。
- 在进入下一个任务之前,调用,参数为:
AskUserQuestion-
: "任务[N]已创建。是否准备继续处理任务[N+1]: [下一个任务描述]?"(将[N]和[N+1]替换为实际数字和描述)
question -
: "是否继续?"
header -
:
options[{label: "是,继续", description: "进入下一个任务(默认选项)"}, {label: "在此暂停", description: "退出——稍后再继续"}, {label: "跳过此任务", description: "标记为已跳过,继续下一个"}, {label: "添加新任务", description: "在继续前向列表中插入一个新任务"}] -
是,继续 → 继续执行。
-
在此暂停 → 退出。打印已创建任务和剩余任务的摘要。建议在恢复前使用。
/clear -
跳过此任务 → 将其标记为已跳过,进入下一个任务。
-
添加新任务 → 调用,参数为
AskUserQuestion,question: "新任务内容是什么?",并预先填充1-2个从Feature未覆盖的验收标准推断出的合理任务。将确认后的任务添加到列表中,然后继续。header: "新任务"
-
4. Completion
4. 完成阶段
When all Tasks have been created (or skipped), print a summary:
"Feature #<feature_number> Task breakdown complete. Created: [list with issue numbers] Skipped: [list if any]"
Then call with:
AskUserQuestion-
: "What's next?"
question -
: "Next step"
header -
:
options[{label: "Implement first Task", description: "Start implementing the first created Task (default)"}, {label: "Tasks for next Feature", description: "Plan Tasks for the next Feature in the Epic"}, {label: "Stop here", description: "Exit — no further action"}] -
Implement first Task → follow theprocess with the first created Task number.
implement-task -
Tasks for next Feature → follow theprocess with the next Feature from the
feature-to-tasksresult fetched in step 1 that does not yet have child tasks.gh sub-issue list -
Stop here → exit.
Suggestbefore continuing if the conversation has grown long./clear
当所有任务已创建(或已跳过)时,打印摘要:
"Feature #<feature_number> 任务拆分完成。 已创建:[带议题编号的列表] 已跳过:[如有则列出]"
然后调用,参数为:
AskUserQuestion-
: "下一步做什么?"
question -
: "下一步"
header -
:
options[{label: "开始实现第一个任务", description: "开始实现第一个已创建的任务(默认选项)"}, {label: "下一个Feature的任务", description: "为Epic中的下一个Feature规划任务"}, {label: "在此停止", description: "退出——无需进一步操作"}] -
开始实现第一个任务 → 使用第一个已创建的任务编号,遵循流程。
implement-task -
下一个Feature的任务 → 使用步骤1中获取的结果里的下一个尚未有子任务的Feature,遵循
gh sub-issue list流程。feature-to-tasks -
在此停止 → 退出。
如果对话已较长,建议在继续前使用。/clear