GSD:把AI编程拽回工程化流水线的硬核系统

130 次阅读 0 点赞 0 评论 7 分钟原创开源项目

get-shit-done(GSD)通过上下文防衰减、多智能体协同、XML结构化任务契约三大机制,将AI编程从‘vibecoding’升级为可验证、可回滚、可协作的工程实践。支持Claude/OpenCode/Gemini,每task生成原子commit,真正实现AI原生GitOps。

#ai-programming #context-engineering #spec-driven #claude-code #ai-engineering
GSD:把AI编程拽回工程化流水线的硬核系统

嘿,各位摸鱼(划掉)高效开发者们,我是周小码——一个被Spring Boot自动配置折磨到给@ConditionalOnMissingBean写过三页注释的Java老兵。今天不聊JVM调优,也不扯分布式事务,来聊聊这个让我在凌晨两点拍大腿喊出‘这玩意儿怎么不早三年出来’的项目:get-shit-done(GSD)。别被名字骗了,它不是毒鸡汤,而是一套把AI编程从‘玄学碰运气’拽回‘工程化流水线’的硬核系统。

痛点引入:你写的不是代码,是AI的试错日志

上周我让Claude Code帮我写个带JWT刷新逻辑的Spring Security配置。前3次生成的代码里,SecurityFilterChainTokenService互相循环依赖;第4次终于跑通了,但/refresh接口返回的是200 OK加空body——连个error message都不给。这不是AI不聪明,是传统提示工程根本扛不住需求复杂度。你描述得再清楚,AI也像隔着毛玻璃看需求,上下文越堆越多,质量越滑越低。这就是典型的‘vibecoding’:人写prompt,AI猜意图,你debug,它再猜,循环往复,直到你怀疑人生。

解决方案:四个洁净厨房,拒绝上下文串味

GSD的核心解法,藏在README里那句轻描淡写的:‘Solves context rot — the quality degradation that happens as Claude fills its context window’。翻译成人话:它不让Claude在一个大杂烩窗口里反复煎炒烹炸,而是拆成‘研究厨房’‘计划厨房’‘执行厨房’‘验收厨房’四个独立洁净间,每个厨房只处理一道菜,用完即焚,绝不串味。

这套设计直接对应其底层架构:orchestrator指挥中心 + researcher/plan-checker/executor/verifier四类智能体协奏。每个智能体都在fresh 200k-token上下文中运行,彻底规避单体LLM会话的熵增定律——就像让每个程序员只负责一个微服务,主进程只做API网关路由。

核心代码解析:XML不是配置,是契约

GSD最狠的不是它用了什么模型,而是它如何定义‘任务’。每个phase的PLAN.md都用XML结构化,这不是自然语言提示词,而是可执行的契约文档

xml 复制代码
<task type="auto">
  <name>Create login endpoint</name>
  <files>src/app/api/auth/login/route.ts</files>
  <action>
    Use jose for JWT (not jsonwebtoken - CommonJS issues).
    Validate credentials against users table.
    Return httpOnly cookie on success.
  </action>
  <verify>curl -X POST localhost:3000/api/auth/login returns 200 + Set-Cookie</verify>
  <done>Valid credentials return cookie, invalid return 401</done>
</task>

逐行拆解:

  • <name> 是人类可读的任务标识,供团队对齐目标;
  • <files> 锁定影响范围,杜绝AI‘好心办坏事’式扩散修改;
  • <action> 是给executor的精确指令,明确技术选型(jose而非jsonwebtoken)、数据源(users table)、安全要求(httpOnly cookie);
  • <verify> 是自动化验收标准,可直接转为CI脚本或Postman测试集合;
  • <done> 是交付物边界定义,相当于SRE的SLO协议——它不关心你怎么实现,只声明‘必须满足什么’。

作为Java老狗,我立刻联想到Spring的@Valid + @Constraint组合:你不用教AI怎么校验,你只要声明‘这里必须满足什么’,框架(GSD)自动生成校验逻辑。

实战演示:5分钟跑通AI原生GitOps

安装?一行命令:

bash 复制代码
## 全局安装,无权限焦虑,无node_modules恐惧
npx get-shit-done-cc@latest

启动新项目:

bash 复制代码
## 在空目录下执行
/gsd:new-project

GSD会自动生成.planning/目录、初始化Git仓库,并创建首个里程碑。接着进入标准六步流:

  1. discuss-phase:researcher分析需求背景与约束
  2. plan-phaseplan-checker输出XML格式的PLAN.md
  3. execute-phase:executor基于PLAN.md生成代码并提交原子commit(如abc123f feat(08-02): add email confirmation flow
  4. verify-work:verifier执行<verify>字段定义的curl命令,失败则自动重试或报错
  5. complete-milestone:合并到main分支并更新进度图
  6. /gsd:progress:实时渲染里程碑甘特图

这意味着什么?当你发现某个功能崩了,git bisect能精准定位到是哪个AI生成的task引入的bug;当你想回滚,git revert abc123f就能撤销那个登录逻辑,而不影响前面的用户注册流程。这已经不是‘AI辅助编程’,这是‘AI原生GitOps’。

踩坑指南:现实水土问题不能回避

  • 安全敏感场景需加固:GSD强依赖Claude Code的--dangerously-skip-permissions模式。金融/医疗项目建议配合企业级代理层做prompt sanitization,或启用OpenCode本地部署模式。
  • .planning/目录默认提交:如果你的团队.gitignore习惯塞满*.log,记得手动加一条!.planning/**,否则PLAN.md不会进Git,失去可追溯性。
  • 非JS项目适配成本:虽然GSD表面是JS生态(npx驱动),但它生成的XML契约天然跨语言。我已将其接入Spring Boot脚手架:/gsd:new-project后,让它自动生成application.yml模板、Dockerfile分层构建策略、甚至pom.xmlspring-boot-maven-pluginjvmArguments优化配置——它不写业务代码,但它确保你写的每一行业务代码,都跑在最干净的环境里。

个人评价:值得所有被AI幻觉折磨过的开发者倒杯咖啡

GSD的价值不在它多炫技,而在它敢把GET SHIT DONE印在logo上,还真的做到了。当一个工具能把<verify>字段变成可执行的CI检查,把<files>变成Git diff范围,把<done>变成SLO协议,它就完成了从‘玩具’到‘生产级基础设施’的跃迁。

值不值得学?我建议你明天上午10点,关掉IDE,打开终端,敲下那行npx get-shit-done-cc@latest。如果5分钟内你没对着/gsd:progress输出的里程碑图傻笑,那我直播手写ThreadPoolExecutor源码解析。

最后更新:2026-02-15T10:01:34

评论 (0)

发表评论

blog.comments.form.loading
0/500
加载评论中...