gsdl
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGSD — Get Shit Done Orchestrator
GSD — 高效落地编排器
Coordinates the full project pipeline across five phases. Phases 0–2 and Phase 4 run inline (interactive, in this context). Phase 3 (implementation) spawns one subagent per parent task to keep context fresh.
可协调覆盖5个阶段的完整项目管线,阶段0-2和阶段4内联执行(在当前上下文下交互运行),阶段3(功能实现)会为每个父任务创建独立子Agent以保证上下文新鲜准确。
Pipeline Overview
管线概览
Phase 0: Setup → gsdl-setup-project SKILL.md (inline)
Phase 1: PRD → gsdl-create-prd SKILL.md (inline, interactive Q&A)
Phase 2: Task List → gsdl-create-plan SKILL.md (inline, two-phase with "Go")
Phase 3: Implement → gsdl-execute-plan SKILL.md (subagent per parent task)
Phase 4: Document → gsdl-document-decisions SKILL.md (inline, optional publish to Slite/Notion)Phase 0: 项目初始化 → gsdl-setup-project SKILL.md (内联执行)
Phase 1: PRD输出 → gsdl-create-prd SKILL.md (内联执行,交互式问答)
Phase 2: 任务清单生成 → gsdl-create-plan SKILL.md (内联执行,用户确认"Go"后进入下一环节)
Phase 3: 功能实现 → gsdl-execute-plan SKILL.md (每个父任务对应一个子Agent)
Phase 4: 文档归档 → gsdl-document-decisions SKILL.md (内联执行,支持可选发布到Slite/Notion)Step 0: Detect Source URL (Pre-flight)
步骤0:检测源URL(启动前检查)
Before resolving the project name, check if the user's message contains a URL argument.
Recognized patterns:
/gsdl linear https://linear.app/.../gsdl notion https://notion.so/.../gsdl slite https://slite.com/...- (source auto-detected from URL)
/gsdl https://linear.app/... /gsdl https://notion.so/.../gsdl https://notion.site/.../gsdl https://slite.com/...
If a URL is detected:
- Read and follow the skill (resolve path per the Skill Path Resolution section below).
gsdl-fetch-source - Pass the URL and optional source-type hint to the skill.
- The skill returns:
- A suggested project name (kebab-case, derived from the fetched title)
- Seed content (pre-formatted Markdown for )
seed.md - A source summary (one-line description of what was fetched)
- Present the suggested project name to the user and confirm: "I fetched the content from [source summary]. I'll use as the project name — does that work, or would you like a different name?"
[suggested-name] - Once confirmed (or adjusted), store both the project name and seed content in context.
- Proceed to Step 2: Detect Current Phase — the seed content will be written to during Phase 0 setup (overriding the normal "describe your idea" prompt).
seed.md
If no URL is detected, skip this step entirely and proceed to Step 1.
在确定项目名之前,先检查用户消息中是否包含URL参数。
可识别的格式:
/gsdl linear https://linear.app/.../gsdl notion https://notion.so/.../gsdl slite https://slite.com/...- (自动从URL识别来源)
/gsdl https://linear.app/... /gsdl https://notion.so/.../gsdl https://notion.site/.../gsdl https://slite.com/...
如果检测到URL:
- 读取并遵循技能的要求(按下方技能路径解析规则查找对应文件)。
gsdl-fetch-source - 将URL和可选的来源类型提示传入该技能。
- 技能会返回:
- 推荐项目名(kebab-case格式,从抓取的标题派生)
- 种子内容(预格式化的Markdown内容,用于写入)
seed.md - 来源摘要(抓取内容的一行描述)
- 向用户展示推荐的项目名并确认:"我已经从[来源摘要]抓取了对应内容,将使用作为项目名,是否可行?或者你可以提供其他名称。"
[推荐名称] - 获得确认(或调整为用户提供的名称)后,将项目名和种子内容存储到上下文中。
- 进入步骤2:检测当前阶段——种子内容会在阶段0初始化时写入(替换默认的「描述你的想法」提示)。
seed.md
如果未检测到URL,直接跳过本步骤进入步骤1。
Step 1: Resolve Project Name
步骤1:确定项目名
- Check the user's message for a project name argument. If the user typed , the project name is
/gsdl my-project. Use it directly — do not ask.my-project - If a source URL was provided in Step 0, the project name was already resolved there — use it.
- If no project name was provided and no URL was given, ask: "What's the project name?"
- Normalize to kebab-case.
- 检查用户消息中的项目名参数,如果用户输入,则项目名直接为
/gsdl my-project,无需额外询问。my-project - 如果步骤0中提供了源URL,项目名已经在步骤0中确定,直接使用即可。
- 如果未提供项目名也没有URL,询问用户:"请问项目名是什么?"
- 将项目名统一格式化为kebab-case。
Step 2: Detect Current Phase
步骤2:检测当前阶段
Read if it exists — this is the fastest way to resume.
.planning/[project-name]/progress.mdIf exists, extract:
progress.md- — last recorded phase (0–4 or "done")
phase - — path to the active PRD file
prd - — path to the active task file
tasks
Then verify the recorded files still exist on disk before trusting them. If a file is missing, fall back to the filesystem scan below.
If does not exist (or a recorded file is missing), scan the filesystem:
progress.md| Condition | Start at |
|---|---|
No | Phase 0 |
| Phase 1 |
| Phase 2 |
| Phase 3 |
All tasks | Phase 4 |
| Done |
If multiple PRD or task files exist, use the path recorded in (if available); otherwise ask the user which one to use.
progress.mdAfter determining the active phase and files, write (or update) — see the Progress File section below.
progress.mdAnnounce which phase you're starting from and why before proceeding.
如果存在则优先读取该文件——这是恢复项目进度最快的方式。
.planning/[项目名]/progress.md如果存在,提取以下信息:
progress.md- — 上次记录的阶段(0-4或"done")
phase - — 生效的PRD文件路径
prd - — 生效的任务文件路径
tasks
在使用这些信息前验证记录的文件是否仍存在于磁盘中,如果文件丢失,按下方文件系统扫描规则降级处理。
如果不存在(或记录的文件丢失),扫描文件系统判断阶段:
progress.md| 判定条件 | 起始阶段 |
|---|---|
不存在 | 阶段0 |
存在 | 阶段1 |
存在 | 阶段2 |
存在 | 阶段3 |
所有任务已勾选 | 阶段4 |
存在 | 已完成 |
如果存在多个PRD或任务文件,优先使用中记录的路径(如果存在);否则询问用户要使用哪个文件。
progress.md确定当前生效的阶段和文件后,写入(或更新)——参考下方进度文件章节的规则。
progress.md在继续执行前先告知用户当前从哪个阶段开始,以及对应的判定原因。
Step 3: Run Each Phase
步骤3:逐阶段执行
Skill Path Resolution
技能路径解析规则
When reading a sub-skill, resolve its path using this priority order:
- — installed via npx (preferred)
~/.agents/skills/[skill-name]/SKILL.md - — legacy/manual install
~/.cursor/skills/[skill-name]/SKILL.md
Use whichever path exists. If both exist, prefer .
~/.agents/skills/Sub-skills used by this orchestrator:
- — fetches content from Linear, Notion, or Slite (Step 0)
gsdl-fetch-source - — creates folder structure and seed.md (Phase 0)
gsdl-setup-project - — generates the PRD (Phase 1)
gsdl-create-prd - — generates the task list (Phase 2)
gsdl-create-plan - — implements sub-tasks (Phase 3)
gsdl-execute-plan - — captures decisions & architecture changes, optionally publishes to Slite or Notion (Phase 4)
gsdl-document-decisions
读取子技能时,按以下优先级解析路径:
- — 通过npx安装的路径(优先)
~/.agents/skills/[技能名]/SKILL.md - — 旧版本/手动安装路径
~/.cursor/skills/[技能名]/SKILL.md
使用存在的路径即可,如果两个路径都存在,优先使用下的文件。
~/.agents/skills/本编排器使用的子技能:
- — 从Linear、Notion或Slite抓取内容(步骤0使用)
gsdl-fetch-source - — 创建文件夹结构和seed.md(阶段0使用)
gsdl-setup-project - — 生成PRD(阶段1使用)
gsdl-create-prd - — 生成任务清单(阶段2使用)
gsdl-create-plan - — 实现子任务(阶段3使用)
gsdl-execute-plan - — 记录决策和架构变更,支持可选发布到Slite或Notion(阶段4使用)
gsdl-document-decisions
Phase 0 — Project Setup (Inline)
阶段0 — 项目初始化(内联执行)
Read and follow the skill (resolve path per above).
gsdl-setup-projectComplete the full setup (folder, ):
seed.md- If seed content was pre-fetched in Step 0: Write the fetched seed content directly to instead of asking the user to describe their idea. Show the user what was written and let them know they can edit
seed.mdbefore continuing.seed.md - If no pre-fetched content: Follow the normal flow (prompt the user to describe their idea, populate
gsdl-setup-projectcollaboratively).seed.md
Then write the initial (phase 0), show the checkpoint, and wait for user confirmation before continuing to Phase 1.
progress.md读取并遵循技能的要求(按上述规则解析路径)。
gsdl-setup-project完成完整初始化流程(创建文件夹、生成):
seed.md- 如果步骤0中已经预抓取了种子内容:直接将抓取的种子内容写入,无需询问用户描述想法,向用户展示写入的内容并告知可以在继续前编辑
seed.md。seed.md - 如果没有预抓取内容:遵循标准的流程(提示用户描述想法,协作填充
gsdl-setup-project)。seed.md
然后写入初始的(阶段0),展示检查点,等待用户确认后再进入阶段1。
progress.mdPhase 1 — Create PRD (Inline)
阶段1 — 生成PRD(内联执行)
Read and follow the skill (resolve path per above).
gsdl-create-prdThis phase is interactive — ask clarifying questions, iterate on the PRD with the user, then save it to .
.planning/[project-name]/prd-[feature-name].mdAfter saving the PRD, update (phase 1, prd path). Show the checkpoint and wait for confirmation before Phase 2. Before proceeding to Phase 2, re-read the PRD from disk at its saved path — the user may have edited the file after reviewing it.
progress.md读取并遵循技能的要求(按上述规则解析路径)。
gsdl-create-prd本阶段为交互式:询问澄清问题,和用户迭代优化PRD,然后保存到。
.planning/[项目名]/prd-[功能名].md保存PRD后,更新(阶段1,记录PRD路径),展示检查点,等待用户确认后再进入阶段2。进入阶段2前,从磁盘重新读取保存的PRD文件——用户可能在审阅后编辑了文件。
progress.mdPhase 2 — Generate Task List (Inline)
阶段2 — 生成任务清单(内联执行)
Read and follow the skill (resolve path per above).
gsdl-create-planThis has two steps: show parent tasks → wait for user "Go" → generate sub-tasks and save to .
.planning/[project-name]/tasks-prd-[name].mdAfter saving the task file, update (phase 2, tasks path). Show the checkpoint and wait for confirmation before Phase 3. Before proceeding to Phase 3, re-read the task file from disk at its saved path — the user may have edited the file (reordering, rewording, or adding tasks) after reviewing it.
progress.md读取并遵循技能的要求(按上述规则解析路径)。
gsdl-create-plan本阶段分为两步:展示父任务 → 等待用户回复"Go"确认 → 生成子任务并保存到。
.planning/[项目名]/tasks-prd-[名称].md保存任务文件后,更新(阶段2,记录任务文件路径),展示检查点,等待用户确认后再进入阶段3。进入阶段3前,从磁盘重新读取保存的任务文件——用户可能在审阅后编辑了文件(调整顺序、修改描述、新增任务等)。
progress.mdPhase 3 — Implementation (Subagent per Parent Task)
阶段3 — 功能实现(每个父任务对应一个子Agent)
Update to phase 3 before starting.
progress.mdRe-read the task file from disk to identify all parent tasks (1.0, 2.0, 3.0, ...). Use the on-disk version as the source of truth, not any prior in-context copy.
For each parent task, in order:
- Read the task file to get the parent task title and its sub-tasks
- Spawn a subagent using the Task tool with this prompt (fill in all
generalPurpose):[placeholders]
Read and follow the skill at: ~/.agents/skills/gsdl-execute-plan/SKILL.md (if it exists, otherwise ~/.cursor/skills/gsdl-execute-plan/SKILL.md)
You are running in BATCH MODE. Complete ALL sub-tasks under the assigned parent task
without pausing for user approval between sub-tasks. Apply the full completion protocol
after each sub-task (mark [x], update task file, update Relevant Files), but immediately
continue to the next sub-task without waiting.
Project context:
- Project name: [project-name]
- Workspace root: [absolute path to workspace root]
- Task file: [absolute path to .planning/[project-name]/tasks-prd-*.md]
- Assigned parent task: [N.0] [Parent Task Title]
- Sub-tasks to complete: [N.1] [title], [N.2] [title], ... (list all)
When all sub-tasks under [N.0] are marked [x] and the parent is marked [x]:
- Return a summary: what was built, files created/modified, any issues or blockers
- Do NOT start the next parent task ([N+1].0)- After the subagent returns, show the user the summary
- Show the checkpoint and wait for confirmation before spawning the next subagent
开始前先将更新为阶段3。
progress.md从磁盘重新读取任务文件识别所有父任务(1.0、2.0、3.0...),以磁盘上的版本为准,不要使用上下文中的旧副本。
按顺序处理每个父任务:
- 读取任务文件获取父任务标题和对应的子任务
- 使用任务工具创建子Agent,传入以下提示(填充所有
generalPurpose):[占位符]
读取并遵循该路径下的技能要求:~/.agents/skills/gsdl-execute-plan/SKILL.md(如果不存在则使用~/.cursor/skills/gsdl-execute-plan/SKILL.md)
你当前运行在批处理模式下,完成分配的父任务下的所有子任务,子任务之间不需要暂停等待用户确认。每个子任务完成后执行完整的完成协议(标记为[x]、更新任务文件、更新相关文件),然后立即继续下一个子任务,无需等待。
项目上下文:
- 项目名:[项目名]
- 工作区根目录:[工作区根目录绝对路径]
- 任务文件:[.planning/[项目名]/tasks-prd-*.md的绝对路径]
- 分配的父任务:[N.0] [父任务标题]
- 待完成子任务:[N.1] [标题], [N.2] [标题], ... (列出所有子任务)
当[N.0]下的所有子任务都标记为[x]且父任务也标记为[x]后:
- 返回总结:实现的内容、创建/修改的文件、遇到的问题或阻塞点
- 不要开始下一个父任务([N+1].0)- 子Agent返回结果后,向用户展示执行总结
- 展示检查点,等待用户确认后再创建下一个子Agent
Phase 4 — Document Decisions (Inline)
阶段4 — 决策文档归档(内联执行)
After all parent tasks are complete, update to phase , then run this phase.
progress.md4Read and follow the skill (resolve path per above).
gsdl-document-decisionsPass the following context to the skill:
- : the current project name
PROJECT_NAME - : the absolute path to the workspace root
WORKSPACE_ROOT - : the PRD path recorded in
PRD_PATHprogress.md - : the tasks path recorded in
TASKS_PATHprogress.md
The skill will:
- Analyze git history and the PRD/task files
- Generate a structured decisions document at
.planning/[project-name]/decisions-[project-name].md - Ask the user if they want to publish it to Slite or Notion
- Handle publishing if the user provides a parent page URL
This phase runs inline (no subagent). After the decisions document is saved and the user has answered the publish prompt, update to , then show the final checkpoint:
progress.mddone🎉 Project '[project-name]' is complete.
Decisions document: .planning/[project-name]/decisions-[project-name].md
[If published: Published to [Slite/Notion]: [URL]]
Run /gsdl [project-name] again if you want to resume or extend this project.所有父任务完成后,将更新为阶段,然后运行本阶段。
progress.md4读取并遵循技能的要求(按上述规则解析路径)。
gsdl-document-decisions向技能传入以下上下文:
- :当前项目名
PROJECT_NAME - :工作区根目录绝对路径
WORKSPACE_ROOT - :
PRD_PATH中记录的PRD路径progress.md - :
TASKS_PATH中记录的任务文件路径progress.md
该技能会:
- 分析git历史、PRD和任务文件
- 在生成结构化的决策文档
.planning/[项目名]/decisions-[项目名].md - 询问用户是否需要发布到Slite或Notion
- 如果用户提供了父页面URL则执行发布操作
本阶段内联执行(不需要子Agent)。决策文档保存完成且用户回复发布选项后,将更新为,然后展示最终检查点:
progress.mddone🎉 项目'[项目名]'已完成。
决策文档路径:.planning/[项目名]/decisions-[项目名].md
[如果已发布:已发布到[Slite/Notion]:[URL]]
如果你想要恢复或扩展本项目,再次运行/gsdl [项目名]即可。Progress File
进度文件
Maintain throughout the pipeline. Write it after every phase transition and whenever the active files are first determined.
.planning/[project-name]/progress.md整个管线运行过程中维护文件,每次阶段切换、首次确定生效文件时都要更新该文件。
.planning/[项目名]/progress.mdFormat
格式
markdown
undefinedmarkdown
undefined[project-name] — GSDL Progress
[项目名] — GSDL 进度
State
状态
- Phase: [0 | 1 | 2 | 3 | 4 | done]
- Last Updated: [YYYY-MM-DD]
- 阶段:[0 | 1 | 2 | 3 | 4 | done]
- 上次更新:[YYYY-MM-DD]
Active Files
生效文件
- PRD: [relative path to active prd-*.md, or "none"]
- Tasks: [relative path to active tasks-prd-*.md, or "none"]
undefined- PRD:[生效prd-*.md的相对路径,或"none"]
- 任务文件:[生效tasks-prd-*.md的相对路径,或"none"]
undefinedWhen to write/update
更新时机
| Event | Phase value | PRD | Tasks |
|---|---|---|---|
| Phase 0 complete (setup done) | | | |
| PRD saved (Phase 1 complete) | | path to PRD | |
| Task file saved (Phase 2 complete) | | path to PRD | path to tasks |
| All tasks complete (Phase 3 done) | | path to PRD | path to tasks |
| Decisions document saved (Phase 4 done) | | path to PRD | path to tasks |
| 事件 | 阶段值 | PRD | 任务文件 |
|---|---|---|---|
| 阶段0完成(初始化完成) | | | |
| PRD保存完成(阶段1完成) | | PRD路径 | |
| 任务文件保存完成(阶段2完成) | | PRD路径 | 任务文件路径 |
| 所有任务完成(阶段3完成) | | PRD路径 | 任务文件路径 |
| 决策文档保存完成(阶段4完成) | | PRD路径 | 任务文件路径 |
Checkpoint Format
检查点格式
Show this between every phase transition and between every parent task in Phase 3:
✅ [Phase name / Task N.0 title] complete.
What was done: [1–3 sentence summary]
Files touched: [key files created or modified]
👉 Review the output file before continuing — you can edit it directly and your changes will be picked up automatically.
Ready to continue to [next phase / Task N+1.0]?
Type "yes" / "go" / "next" to continue, or tell me what to review or change first.Never proceed past a checkpoint without user confirmation. Always re-read the relevant artifact from disk after the user confirms, to pick up any edits they made during the review window.
每次阶段切换之间、阶段3的每个父任务完成后都展示以下检查点:
✅ [阶段名 / 任务N.0标题] 已完成。
完成内容:[1-3句话总结]
涉及文件:[创建或修改的核心文件]
👉 继续前请审阅输出文件,你可以直接编辑文件,修改会自动生效。
是否准备好进入[下一阶段 / 任务N+1.0]?
输入"yes" / "go" / "next"继续,或者告知我需要先审阅或修改的内容。没有用户确认绝对不要跳过检查点继续执行。用户确认后一定要从磁盘重新读取相关产物,以拉取用户审阅期间做的所有修改。
Resuming Mid-Pipeline
管线中途恢复
If GSD is triggered on a project that already has work done:
- Read (if present) → verify files on disk → fall back to filesystem scan if needed
progress.md - Skip completed phases
- Announce: "Project '[name]' is at Phase [N]. Resuming from [description]."
- For Phase 3, check which parent tasks are already and skip them
[x] - For Phase 4, if already exists, report the project is done — do not re-run Phase 4
decisions-[project-name].md
如果GSD被触发时项目已经有完成的内容:
- 读取(如果存在)→ 验证磁盘上的文件 → 必要时降级为文件系统扫描判断阶段
progress.md - 跳过已完成的阶段
- 告知用户:"项目'[名称]'当前处于阶段[N],从[描述]处恢复执行。"
- 对于阶段3,检查哪些父任务已经标记为,直接跳过这些任务
[x] - 对于阶段4,如果已经存在,告知用户项目已完成——不要重新运行阶段4
decisions-[项目名].md
Rules
规则
- Always show a checkpoint between phases and between parent tasks — never chain them automatically
- Phases 0–2 and Phase 4 are inline — do not spawn subagents for setup, PRD, task generation, or documentation
- Each Phase 3 subagent handles exactly one parent task — never assign two parent tasks to one subagent
- Surface blockers immediately — if a subagent reports an error or missing dependency, pause Phase 3 and resolve with the user before continuing
- All files stay within the project folder — never create files at workspace root
- Keep current — update it at every phase transition so
progress.mdalways resumes cleanly/gsdl [project-name] - Phase 4 is mandatory but publishing is optional — always generate the decisions document; only push to Slite/Notion if the user provides a parent URL
- 阶段之间、父任务之间必须展示检查点——绝对不要自动串联执行
- 阶段0-2和阶段4为内联执行——不要为初始化、PRD生成、任务清单生成、文档归档创建子Agent
- 阶段3的每个子Agent仅处理一个父任务——绝对不要给单个子Agent分配两个父任务
- 阻塞点立即暴露——如果子Agent报告错误或缺失依赖,暂停阶段3执行,和用户解决问题后再继续
- 所有文件都保存在项目文件夹内——绝对不要在工作区根目录创建文件
- 保持实时更新——每次阶段切换都要更新,保证
progress.md总能干净恢复/gsdl [项目名] - 阶段4是强制步骤但发布是可选的——必须生成决策文档;只有用户提供父URL时才推送到Slite/Notion