福生无量摸鱼天尊

vibe coding系列:(二)GET SHIT DONE

2026/04/14
4
0

github link:https://github.com/gsd-build/get-shit-done/blob/main/README.zh-CN.md

安装命令:npx get-shit-done-cc@latest

更新包:npx get-shit-done-cc@latest

某种原因上来说GET SHIT DONE已经不是单纯的skills合计,它官方的说明是一个轻量但强大的元提示、上下文工程与规格驱动开发系统。

在安装的时候,是以skills的形式安装到code agent上的,也就是claude code、codex、cursor等等,都可以用。

安装后可这样验证:

  • Claude Code / Gemini / Copilot / Antigravity:/gsd-help

  • OpenCode / Kilo / Augment / Trae / CodeBuddy:/gsd-help

  • Codex:$gsd-help

  • Cline:GSD 通过 .clinerules 安装 — 检查 .clinerules 是否存在

这边推荐claude code和codex用,因为别的code agent已经用很重的提示词了,还用gsd的话,token止不住的同时,重点token也会被稀释。用这俩的时候,直接开codex --yoloclaude --allow-dangerously-skip-permissions ,能省去很多麻烦。

整个代码库都遵循SGD原则,目的就是对齐需求——更新文档——plan——dev。下面我们分别从0到1和1到100来分开说一下我是怎么用的。

从0到1

此时项目是空的,那么需要先new一下:

/gsd-new-project

注意,codex是$ 的,不是/ ,后面默认说是/ 了。

new的时候就会开始向你提问来梳理需求,构建路线图和文档。

然后就是三部曲,非常常用:

/gsd-discuss-phase 1
/gsd-plan-phase 1
/gsd-execute-phase 1
/gsd-verify-work 1

/gsd-discuss-phase 2
/gsd-plan-phase 2
/gsd-execute-phase 2
/gsd-verify-work 2
/gsd-ship 2                  # 从已验证的工作创建 PR
...
/gsd-complete-milestone      # 完成里程碑
/gsd-new-milestone [name]    # 开始下一个

可以看出,其实就是对phase进行讨论——plan——execute——验证,如果有多个plan,它会根据依赖关系来分wave,然后并行执行。

flowchart LR T["PHASE EXECUTION"] subgraph W1["Wave 1"] P1["Plan 01<br/>User Model"] P2["Plan 02<br/>Product Model"] end subgraph W2["Wave 2"] P3["Plan 03<br/>Orders API"] P4["Plan 04<br/>Cart API"] end subgraph W3["Wave 3"] P5["Plan 05<br/>Checkout UI"] end T --> P1 T --> P2 P1 --> P3 P2 --> P4 P3 --> P5 P4 --> P5

我更习惯的是,new完项目之后直接next:

/gsd-new-project 
/gsd-next                    # 自动检测并执行下一步

一路next即可,非常方便。

1到100

从1到100,之类拼的其实不是垂类的专业性,而是多分支的管理能力,假如说已经是一个现成的项目了,可以这样初始化:

/gsd-map-codebase	在 new-project 前分析现有代码库

对于代码的优化,通常一个项目需要多个人配合,所以gsd可以设置多个工作区:

命令

作用

/gsd-new-workspace

创建隔离工作区,包含仓库副本(worktree 或 clone)

/gsd-list-workspaces

显示所有 GSD 工作区及其状态

/gsd-remove-workspace

移除工作区并清理 worktree

创建了隔离工作区之后,可以并发多条执行流:

命令

作用

/gsd-workstreams list

显示所有工作流及其状态

/gsd-workstreams create <name>

创建命名空间工作流,用于并行里程碑工作

/gsd-workstreams switch <name>

切换当前活跃工作流

/gsd-workstreams complete <name>

完成并合并工作流

如果多人git,那么可能会分一下工作区隔离一下,但是如果就自己,那直接一个工作区,多条工作流即可。

我常规做法就是:

/gsd-workstreams create <name>	创建命名空间工作流,用于并行里程碑工作 
/gsd-new-project [--auto]	完整初始化:提问 → 研究 → 需求 → 路线图
/gsd-next
/gsd-next
...
/gsd-next
/gsd-complete-milestone	归档里程碑并打 release tag
/gsd-milestone-summary	从已完成的里程碑产物生成项目概览,用于团队上手
/gsd-new-milestone [name]	开始下一个版本:提问 → 研究 → 需求 → 路线图

我通常都会多开claude code和codex,每一个session去运行一条workstreams,非常的棒。这时候聪明的你要问了,哎要是换了个电脑dev,别人想一起github dev等等,我怎么办呢,其实有如下的命令:

/gsd-stats	显示项目统计——阶段、计划、需求、git 指标
/gsd-pause-work  停止work,保存状态
/gsd-resume-work	从上一次会话恢复
/gsd-session-report	生成会话摘要,包含已完成工作和结果
/gsd-progress	我现在在哪?下一步是什么?

所以推荐的过程是:

  1. A 创建自己的 branch / workstream / workspace
  2. A 在这个 branch 上做 GSD 流程
  3. A 中途停下前执行 /gsd-pause-work
  4. A push branch 到 GitHub
  5. B checkout 同一个 branch
  6. B 执行 /gsd-resume-work
  7. B 接着 plan / execute / verify

故此只需要A停止work:/gsd-pause-work ,然后就会有.planning/HANDOFF.json.continue-here.md 的交接文件的存储,它会记录:

  • 当前 phase / plan / task

  • 已完成什么

  • 剩余什么

  • 决策是什么

  • blocker 是什么

  • 哪些需要人工动作

  • 下一个具体动作是什么

B 拉下 A 的 branch 后,在那个分支上运行 /gsd-resume-work。命令会优先检查:

  • .planning/HANDOFF.json

  • .continue-here.md

  • 有没有 PLAN.md 没对应 SUMMARY.md

  • 有没有中断的 agent

  • STATE.md / PROJECT.md 当前状态

然后gsd直接告诉B:

  • 当前在第几 phase

  • 第几个 plan

  • 哪个 task 做到一半

  • blocker 是什么

  • 下一步最合理的动作是什么