gsd-build/get-shit-done
GitHub: gsd-build/get-shit-done
一个面向 Claude Code 等 AI 编程助手的元提示和上下文工程系统,通过规范驱动开发和多代理编排解决上下文腐烂导致的代码质量退化问题。
Stars: 23060 | Forks: 1984
# GET SHIT DONE
**一个轻量且强大的元提示、上下文工程和规范驱动开发系统,适用于 Claude Code、OpenCode、Gemini CLI 和 Codex。**
**解决上下文腐烂——即当 Claude 填满其上下文窗口时发生的质量退化问题。**
[](https://www.npmjs.com/package/get-shit-done-cc)
[](https://www.npmjs.com/package/get-shit-done-cc)
[](https://github.com/glittercowboy/get-shit-done/actions/workflows/test.yml)
[](https://discord.gg/gsd)
[](https://x.com/gsd_foundation)
[](https://dexscreener.com/solana/dwudwjvan7bzkw9zwlbyv6kspdlvhwzrqy6ebk8xzxkv)
[](https://github.com/glittercowboy/get-shit-done)
[](LICENSE)
```
npx get-shit-done-cc@latest
```
**适用于 Mac、Windows 和 Linux。**

*"如果你清楚自己想要什么,它真的会为你构建出来。绝不废话。"*
*"我试过 SpecKit、OpenSpec 和 Taskmaster——这对我来说效果最好。"*
*"迄今为止为我 Claude Code 增添的最强大工具。没有过度设计。真的就是搞定事情。"*
**受 Amazon、Google、Shopify 和 Webflow 工程师信赖。**
[我为什么构建它](#why-i-built-this) · [工作原理](#how-it-works) · [命令](#commands) · [为何有效](#why-it-works) · [用户指南](docs/USER-GUIDE.md)
## 我为什么构建它
我是一名独立开发者。我不写代码——代码都是 Claude Code 写的。
市面上存在其他规范驱动开发工具;BMAD、Speckit……但它们似乎把事情搞得比实际需要的复杂得多(冲刺会议、故事点、利益相关者同步、回顾、Jira 工作流),或者对你要构建的东西缺乏真正的大局观理解。我不是一家 50 人的软件公司。我不想搞企业剧场。我只是个试图构建可行优秀产品的创意人士。
所以我构建了 GSD。复杂性在于系统内部,而不在你的工作流中。幕后运作的是:上下文工程、XML 提示格式化、子代理编排、状态管理。你看到的只是:几个命令,简单好用。
系统给 Claude 提供了它工作所需的一切,*以及*验证工作的能力。我信任这个工作流。它确实做得很好。
这就是它的本质。没有企业角色扮演的废话。只是一个极其有效的系统,用于使用 Claude Code 持续构建很酷的东西。
— **TÂCHES**
Vibecoding 名声不太好。你描述想要什么,AI 生成代码,然后你得到的是不一致的垃圾代码,规模一大就散架。
GSD 修复了这个问题。它是让 Claude Code 变得可靠的上下文工程层。描述你的想法,让系统提取它需要知道的一切,然后让 Claude Code 开始工作。
## 适用人群
那些希望描述自己想要什么并让其被正确构建的人——而不需要假装自己在运营一个 50 人的工程组织。
## 开始使用
```
npx get-shit-done-cc@latest
```
安装程序会提示你选择:
1. **运行时** — Claude Code、OpenCode、Gemini、Codex 或全部
2. **位置** — 全局(所有项目)或本地(仅当前项目)
验证方式:
- Claude Code / Gemini: `/gsd:help`
- OpenCode: `/gsd-help`
- Codex: `$gsd-help`
### 保持更新
GSD 演进很快。定期更新:
```
npx get-shit-done-cc@latest
```
非交互式安装
```
# Claude Code
npx get-shit-done-cc --claude --global # Install to ~/.claude/
npx get-shit-done-cc --claude --local # Install to ./.claude/
# OpenCode (开源,免费模型)
npx get-shit-done-cc --opencode --global # Install to ~/.config/opencode/
# Gemini CLI
npx get-shit-done-cc --gemini --global # Install to ~/.gemini/
# Codex (技能优先)
npx get-shit-done-cc --codex --global # Install to ~/.codex/
npx get-shit-done-cc --codex --local # Install to ./.codex/
# 所有运行时
npx get-shit-done-cc --all --global # Install to all directories
```
使用 `--global` (`-g`) 或 `--local` (`-l`) 跳过位置提示。
使用 `--claude`、`--opencode`、`--gemini`、`--codex` 或 `--all` 跳过运行时提示。
开发安装
克隆仓库并在本地运行安装程序:
```
git clone https://github.com/glittercowboy/get-shit-done.git
cd get-shit-done
node bin/install.js --claude --local
```
安装到 `./.claude/` 以便在贡献之前测试修改。
### 推荐:跳过权限模式
GSD 专为无摩擦自动化而设计。使用以下命令运行 Claude Code:
```
claude --dangerously-skip-permissions
```
替代方案:细粒度权限
如果你不想使用该标志,请将此添加到项目的 `.claude/settings.json`:
```
{
"permissions": {
"allow": [
"Bash(date:*)",
"Bash(echo:*)",
"Bash(cat:*)",
"Bash(ls:*)",
"Bash(mkdir:*)",
"Bash(wc:*)",
"Bash(head:*)",
"Bash(tail:*)",
"Bash(sort:*)",
"Bash(grep:*)",
"Bash(tr:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git status:*)",
"Bash(git log:*)",
"Bash(git diff:*)",
"Bash(git tag:*)"
]
}
}
```
## 工作原理
### 1. 初始化项目
```
/gsd:new-project
```
一个命令,一个流程。系统会:
1. **提问** — 持续询问直到完全理解你的想法(目标、约束、技术偏好、边缘情况)
2. **研究** — 生成并行代理来调查领域(可选但推荐)
3. **需求** — 提取什么是 v1、v2 和范围外的内容
4. **路线图** — 创建映射到需求的阶段
你批准路线图。现在你可以开始构建了。
**创建:** `PROJECT.md`、`REQUIREMENTS.md`、`ROADMAP.md`、`STATE.md`、`.planning/research/`
### 2. 讨论阶段
```
/gsd:discuss-phase 1
```
**这是你塑造实现方式的地方。**
你的路线图每个阶段只有一两句话。这不足以按照*你*想象的方式构建东西。此步骤在研究或规划之前捕获你的偏好。
系统分析阶段并根据正在构建的内容识别灰色区域:
- **视觉功能** → 布局、密度、交互、空状态
- **APIs/CLIs** → 响应格式、标志、错误处理、详细程度
- **内容系统** → 结构、语气、深度、流程
- **组织任务** → 分组标准、命名、重复项、例外
对于你选择的每个区域,它会询问直到你满意为止。输出 —— `CONTEXT.md` —— 直接输入到接下来的两个步骤:
1. **研究员阅读它** — 知道要调查什么模式("用户想要卡片布局" → 研究卡片组件库)
2. **规划师阅读它** — 知道哪些决定已锁定("已决定无限滚动" → 计划包含滚动处理)
你在这里挖得越深,系统就越能构建你真正想要的东西。跳过它,你会得到合理的默认值。使用它,你会得到*你的*愿景。
**创建:** `{phase_num}-CONTEXT.md`
### 3. 规划阶段
```
/gsd:plan-phase 1
```
系统会:
1. **研究** — 在你的 CONTEXT.md 决策指导下,调查如何实现此阶段
2. **规划** — 使用 XML 结构创建 2-3 个原子任务计划
3. **验证** — 根据需求检查计划,循环直到通过
每个计划都足够小,可以在全新的上下文窗口中执行。没有退化,没有"我现在会更简洁"。
**创建:** `{phase_num}-RESEARCH.md`、`{phase_num}-{N}-PLAN.md`
### 4. 执行阶段
```
/gsd:execute-phase 1
```
系统会:
1. **分波运行计划** — 在可能的情况下并行,有依赖关系时顺序执行
2. **每个计划使用全新上下文** — 200k token 纯用于实现,零累积垃圾
3. **每个任务提交** — 每个任务都有自己的原子提交
4. **根据目标验证** — 检查代码库是否交付了阶段承诺的内容
离开,回来时工作已完成,git 历史记录干净。
**波次执行如何工作:**
计划根据依赖关系分组为"波次"。在每个波次内,计划并行运行。波次顺序执行。
```
┌─────────────────────────────────────────────────────────────────────┐
│ PHASE EXECUTION │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ WAVE 1 (parallel) WAVE 2 (parallel) WAVE 3 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Plan 01 │ │ Plan 02 │ → │ Plan 03 │ │ Plan 04 │ → │ Plan 05 │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ User │ │ Product │ │ Orders │ │ Cart │ │ Checkout│ │
│ │ Model │ │ Model │ │ API │ │ API │ │ UI │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │ │ ↑ ↑ ↑ │
│ └───────────┴──────────────┴───────────┘ │ │
│ Dependencies: Plan 03 needs Plan 01 │ │
│ Plan 04 needs Plan 02 │ │
│ Plan 05 needs Plans 03 + 04 │ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
**为什么波次很重要:**
- 独立计划 → 同一波次 → 并行运行
- 依赖计划 → 后续波次 → 等待依赖项
- 文件冲突 → 顺序计划或同一计划
这就是为什么"垂直切片"(计划 01:用户功能端到端)比"水平层"(计划 01:所有模型,计划 02:所有 API)更容易并行化。
**创建:** `{phase_num}-{N}-SUMMARY.md`、`{phase_num}-VERIFICATION.md`
### 5. 验证工作
```
/gsd:verify-work 1
```
**这是你确认它确实有效的地方。**
自动化验证检查代码是否存在以及测试是否通过。但功能是否按你预期的方式*工作*?这是你使用它的机会。
系统会:
1. **提取可测试的交付物** — 你现在应该能够做什么
2. **逐一引导你** — "你能用电子邮件登录吗?" 是/否,或描述有什么问题
3. **自动诊断故障** — 生成调试代理以查找根本原因
4. **创建经验证的修复计划** — 准备立即重新执行
如果一切通过,你继续。如果有东西坏了,你不需要手动调试——你只需使用它创建的修复计划再次运行 `/gsd:execute-phase`。
**创建:** `{phase_num}-UAT.md`、如果发现问题则创建修复计划
### 6. 循环 → 完成 → 下一个里程碑
```
/gsd:discuss-phase 2
/gsd:plan-phase 2
/gsd:execute-phase 2
/gsd:verify-work 2
...
/gsd:complete-milestone
/gsd:new-milestone
```
循环 **讨论 → 规划 → 执行 → 验证** 直到里程碑完成。
每个阶段都获得你的输入(讨论)、适当的研究(规划)、干净的执行(执行)和人工验证(验证)。上下文保持新鲜。质量保持高位。
当所有阶段完成后,`/gsd:complete-milestone` 归档里程碑并标记发布。
然后 `/gsd:new-milestone` 启动下一个版本——与 `new-project` 流程相同,但针对你现有的代码库。你描述接下来要构建的内容,系统研究该领域,你确定需求范围,它创建新的路线图。每个里程碑都是一个干净的周期:定义 → 构建 → 发布。
### 快速模式
```
/gsd:quick
```
**用于不需要完整规划的临时任务。**
快速模式为你提供 GSD 保证(原子提交、状态跟踪)以及更快的路径:
- **相同的代理** — 规划师 + 执行者,质量不变
- **跳过可选步骤** — 无研究、无计划检查器、无验证器
- **独立跟踪** — 位于 `.planning/quick/`,而非阶段
适用于:错误修复、小功能、配置更改、一次性任务。
```
/gsd:quick
> What do you want to do? "Add dark mode toggle to settings"
```
**创建:** `.planning/quick/001-add-dark-mode-toggle/PLAN.md`、`SUMMARY.md`
## 为何有效
### 上下文工程
Claude Code 非常强大,*前提是*你给它所需的上下文。大多数人做不到。
GSD 为你处理:
| 文件 | 作用 |
|------|--------------|
| `PROJECT.md` | 项目愿景,始终加载 |
| `research/` | 生态系统知识(技术栈、功能、架构、陷阱) |
| `REQUIREMENTS.md` | 范围化的 v1/v2 需求,具有阶段可追溯性 |
| `ROADMAP.md` | 方向,已完成内容 |
| `STATE.md` | 决策、阻塞项、位置——跨会话记忆 |
| `PLAN.md` | 具有 XML 结构的原子任务,验证步骤 |
| `SUMMARY.md` | 发生了什么,更改了什么,已提交到历史 |
| `todos/` | 为后续工作捕获的想法和任务 |
基于 Claude 质量退化的位置设置大小限制。保持在限制之下,获得一致的卓越表现。
### XML 提示格式化
每个计划都是为 Claude 优化的结构化 XML:
```
Create login endpoint
src/app/api/auth/login/route.ts
Use jose for JWT (not jsonwebtoken - CommonJS issues).
Validate credentials against users table.
Return httpOnly cookie on success.
curl -X POST localhost:3000/api/auth/login returns 200 + Set-Cookie
Valid credentials return cookie, invalid return 401
```
精确的指令。没有猜测。内置验证。
### 多代理编排
每个阶段都使用相同的模式:一个轻量编排器生成专业代理,收集结果,并路由到下一步。
| 阶段 | 编排器职责 | 代理职责 |
|-------|------------------|-----------|
| 研究 | 协调、展示发现 | 4 个并行研究员调查技术栈、功能、架构、陷阱 |
| 规划 | 验证、管理迭代 | 规划师创建计划,检查器验证,循环直到通过 |
| 执行 | 分组为波次、跟踪进度 | 执行者并行实现,每个都有全新的 200k 上下文 |
| 验证 | 展示结果、路由下一步 | 验证器根据目标检查代码库,调试器诊断故障 |
编排器从不做繁重工作。它生成代理,等待,整合结果。
**结果:** 你可以运行整个阶段——深度研究、创建和验证多个计划、跨并行执行者编写数千行代码、根据目标进行自动化验证——而你的主上下文窗口保持在 30-40%。工作在全新的子代理上下文中进行。你的会话保持快速和响应。
### 原子 Git 提交
每个任务在完成后立即获得自己的提交:
```
abc123f docs(08-02): complete user registration plan
def456g feat(08-02): add email confirmation flow
hij789k feat(08-02): implement password hashing
lmn012o feat(08-02): create registration endpoint
```
每个提交都是精确的、可追溯的、有意义的。
### 模块化设计
- 向当前里程碑添加阶段
- 在阶段之间插入工作
- 完成里程碑并重新开始
- 调整计划而无需重建所有内容
你永远不会被锁定。系统会适应。
## 命令
### 核心工作流
| 命令 | 作用 |
|---------|--------------|
| `/gsd:new-project [--auto]` | 完整初始化:提问 → 研究 → 需求 → 路线图 |
| `/gsd:discuss-phase [N] [--auto]` | 在规划之前捕获实现决策 |
| `/gsd:plan-phase [N] [--auto]` | 阶段的研究 + 规划 + 验证 |
| `/gsd:execute-phase
` | 以并行波次执行所有计划,完成时验证 |
| `/gsd:verify-work [N]` | 人工用户验收测试 ¹ |
| `/gsd:audit-milestone` | 验证里程碑是否达到其完成定义 |
| `/gsd:complete-milestone` | 归档里程碑,标记发布 |
| `/gsd:new-milestone [name]` | 启动下一个版本:提问 → 研究 → 需求 → 路线图 |
### 导航
| 命令 | 作用 |
|---------|--------------|
| `/gsd:progress` | 我在哪里?下一步是什么? |
| `/gsd:help` | 显示所有命令和使用指南 |
| `/gsd:update` | 更新 GSD 并预览变更日志 |
| `/gsd:join-discord` | 加入 GSD Discord 社区 |
### 棕地项目
| 命令 | 作用 |
|---------|--------------|
| `/gsd:map-codebase` | 在 new-project 之前分析现有代码库 |
### 阶段管理
| 命令 | 作用 |
|---------|--------------|
| `/gsd:add-phase` | 将阶段追加到路线图 |
| `/gsd:insert-phase [N]` | 在阶段之间插入紧急工作 |
| `/gsd:remove-phase [N]` | 移除未来阶段,重新编号 |
| `/gsd:list-phase-assumptions [N]` | 在规划之前查看 Claude 的预期方法 |
| `/gsd:plan-milestone-gaps` | 创建阶段以填补审计发现的差距 |
### 会话
| 命令 | 作用 |
|---------|--------------|
| `/gsd:pause-work` | 在阶段中途停止时创建交接 |
| `/gsd:resume-work` | 从上次会话恢复 |
### 实用工具
| 命令 | 作用 |
|---------|--------------|
| `/gsd:settings` | 配置模型配置文件和工作流代理 |
| `/gsd:set-profile ` | 切换模型配置文件 (quality/balanced/budget) |
| `/gsd:add-todo [desc]` | 捕获想法以备后用 |
| `/gsd:check-todos` | 列出待处理事项 |
| `/gsd:debug [desc]` | 具有持久状态的系统化调试 |
| `/gsd:quick [--full]` | 执行具有 GSD 保证的临时任务(`--full` 添加计划检查和验证) |
| `/gsd:health [--repair]` | 验证 `.planning/` 目录完整性,使用 `--repair` 自动修复 |
¹ 由 reddit 用户 OracleGreyBeard 贡献
## 配置
GSD 将项目设置存储在 `.planning/config.json` 中。在 `/gsd:new-project` 期间配置或稍后使用 `/gsd:settings` 更新。有关完整配置模式、工作流切换、git 分支选项和每个代理的模型细分,请参阅 [用户指南](docs/USER-GUIDE.md#configuration-reference)。
### 核心设置
| 设置 | 选项 | 默认值 | 控制内容 |
|---------|---------|---------|------------------|
| `mode` | `yolo`、`interactive` | `interactive` | 自动批准 vs 每步确认 |
| `depth` | `quick`、`standard`、`comprehensive` | `standard` | 规划彻底性(阶段 × 计划) |
### 模型配置文件
控制每个代理使用哪个 Claude 模型。平衡质量与 token 消耗。
| 配置文件 | 规划 | 执行 | 验证 |
|---------|----------|-----------|--------------|
| `quality` | Opus | Opus | Sonnet |
| `balanced`(默认) | Opus | Sonnet | Sonnet |
| `budget` | Sonnet | Sonnet | Haiku |
切换配置文件:
```
/gsd:set-profile budget
```
或通过 `/gsd:settings` 配置。
### 工作流代理
这些在规划/执行期间生成额外代理。它们提高质量但增加 token 和时间。
| 设置 | 默认值 | 作用 |
|---------|---------|--------------|
| `workflow.research` | `true` | 在规划每个阶段之前研究领域 |
| `workflow.plan_check` | `true` | 在执行之前验证计划是否达到阶段目标 |
| `workflow.verifier` | `true` | 在执行后确认必须项是否已交付 |
| `workflow.auto_advance` | `false` | 自动链接 讨论 → 规划 → 执行 而不停止 |
使用 `/gsd:settings` 切换这些,或在每次调用时覆盖:
- `/gsd:plan-phase --skip-research`
- `/gsd:plan-phase --skip-verify`
### 执行
| 设置 | 默认值 | 控制内容 |
|---------|---------|------------------|
| `parallelization.enabled` | `true` | 同时运行独立计划 |
| `planning.commit_docs` | `true` | 在 git 中跟踪 `.planning/` |
### Git 分支
控制 GSD 在执行期间如何处理分支。
| 设置 | 选项 | 默认值 | 作用 |
|---------|---------|---------|------------------|
| `git.branching_strategy` | `none`、`phase`、`milestone` | `none` | 分支创建策略 |
| `git.phase_branch_template` | 字符串 | `gsd/phase-{phase}-{slug}` | 阶段分支模板 |
| `git.milestone_branch_template` | 字符串 | `gsd/{milestone}-{slug}` | 里程碑分支模板 |
**策略:**
- **`none`** — 提交到当前分支(默认 GSD 行为)
- **`phase`** — 每个阶段创建一个分支,在阶段完成时合并
- **`milestone`** — 为整个里程碑创建一个分支,在完成时合并
在里程碑完成时,GSD 提供 squash 合并(推荐)或带历史记录的合并。
## 安全
### 保护敏感文件
GSD 的代码库映射和分析命令通过读取文件来理解你的项目。**通过将包含机密的文件添加到 Claude Code 的拒绝列表来保护它们**:
1. 打开 Claude Code 设置(`.claude/settings.json` 或全局)
2. 将敏感文件模式添加到拒绝列表:
```
{
"permissions": {
"deny": [
"Read(.env)",
"Read(.env.*)",
"Read(**/secrets/*)",
"Read(**/*credential*)",
"Read(**/*.pem)",
"Read(**/*.key)"
]
}
}
```
这可以完全阻止 Claude 读取这些文件,无论你运行什么命令。
## 故障排除
**安装后找不到命令?**
- 重启你的运行时以重新加载命令/技能
- 验证文件是否存在于 `~/.claude/commands/gsd/`(全局)或 `./.claude/commands/gsd/`(本地)
- 对于 Codex,验证技能是否存在于 `~/.codex/skills/gsd-*/SKILL.md`(全局)或 `./.codex/skills/gsd-*/SKILL.md`(本地)
**命令不如预期工作?**
- 运行 `/gsd:help` 验证安装
- 重新运行 `npx get-shit-done-cc` 重新安装
**更新到最新版本?**
```
npx get-shit-done-cc@latest
```
**使用 Docker 或容器化环境?**
如果使用波浪号路径(`~/.claude/...`)读取文件失败,请在安装前设置 `CLAUDE_CONFIG_DIR`:
```
CLAUDE_CONFIG_DIR=/home/youruser/.claude npx get-shit-done-cc --global
```
这确保使用绝对路径而不是 `~`,后者在容器中可能无法正确展开。
### 卸载
要完全移除 GSD:
```
# 全局安装
npx get-shit-done-cc --claude --global --uninstall
npx get-shit-done-cc --opencode --global --uninstall
npx get-shit-done-cc --codex --global --uninstall
# 本地安装 (当前项目)
npx get-shit-done-cc --claude --local --uninstall
npx get-shit-done-cc --opencode --local --uninstall
npx get-shit-done-cc --codex --local --uninstall
```
这将移除所有 GSD 命令、代理、挂钩和设置,同时保留你的其他配置。
## 社区移植
OpenCode、Gemini CLI 和 Codex 现在通过 `npx get-shit-done-cc` 原生支持。
这些社区移植开创了多运行时支持的先河:
| 项目 | 平台 | 描述 |
|---------|----------|-------------|
| [gsd-opencode](https://github.com/rokicool/gsd-opencode) | OpenCode | 原始 OpenCode 适配 |
| gsd-gemini (已归档) | Gemini CLI | uberfuzzy 制作的原始 Gemini 适配 |
## 星标历史
## 许可证
MIT 许可证。详情见 [LICENSE](LICENSE)。
**Claude Code 很强大。GSD 让它变得可靠。**
标签:AI编程, Claude, Codex, CVE检测, DLL 劫持, Gemini, LLM开发工具, Mac, MITM代理, NPM包, OpenCode, OSV-Scalibr, 上下文工程, 上下文管理, 人工智能辅助, 代码生成, 元提示, 大语言模型, 工作流优化, 开发效率, 提示词工程, 渗透测试工具, 策略决策点, 网络可观测性, 网络调试, 自动化, 自定义脚本, 自定义脚本, 规范驱动开发