00:00:00YCombinator 的 CEO 为 Claude's code 打造了一套专属工具包,名为 GStack
00:00:06这是他在 7 天内疯狂处理近百个 PR 的秘诀,其中包含 9 个专业工作流
00:00:13包括使用 Playwright 的无头浏览器模式、Greptile 集成、支持差异识别的 QA 等等
00:00:18还有更多功能。
00:00:19但 Gary 最近关于代码未来的推文,却让很多开发者感到非常
00:00:24恼火。
00:00:25那么这对 GStack 的未来意味着什么呢?
00:00:28订阅频道,让我们一探究竟。
00:00:33Gary Tan 自 2023 年起担任 YCombinator 的 CEO,在那之前
00:00:39他在 2011 年联合创立了一家风险投资公司。
00:00:42因此,他在审阅项目计划书和发掘新技术独特价值方面
00:00:46拥有极其丰富的经验。
00:00:49他将这些知识全部融入到了他自己的 Claude's code 工具包中
00:00:53从他给许多工作流起的名称就能看出来。
00:00:57事实上,让我们来实际体验一下 GStack。
00:00:59要运行 GStack,你需要安装 Claude code 和 Bun,但是
00:01:03一旦你通过这段特定的提示词在 Claude's code 上正确安装
00:01:08或者直接下载技能,这些信息就会被添加到你的 Claude.md 文件中。
00:01:12我的文件原本是空的。
00:01:13所以这里只显示了这些内容,但如果你已经有了一些文字
00:01:17它就会被追加在后面。
00:01:18它还会将所有相关技能放入 skills 目录,方便你与团队成员共享
00:01:21并安装带有相应浏览器的 Playwright。
00:01:25现在我要使用 GStack 为这个 React Vite 应用添加一个功能
00:01:30让用户能够通过特定 URL 下载推文的图片。
00:01:34你可能在我之前的视频中见过我添加这个功能。
00:01:37如果你想看当时的结果,我会在描述栏放一个链接
00:01:41但我们来看看 GStack 是否能做得更好。
00:01:44首先我需要从规划(plan)模式开始,使用 plan CEO review 技能
00:01:49并向 GStack 提供有关该功能的一些信息。
00:01:51我要输入:添加一个功能,根据用户提供的 URL 截取推文截图。
00:01:56(此处为空或重复上一句含义)
00:01:57我还希望用户能自定义并下载图片,且要求 Claude 遵循现有的
00:02:02布局和样式。
00:02:03敲下回车后,GStack 首先检查该技能是否有更新
00:02:08并在继续之前检查 git 日志。
00:02:10这种模式会从创始人或 CEO 的视角重新思考问题
00:02:16尝试构思我们要构建的功能的最佳版本,并挑战
00:02:20关于范围和价值的假设。
00:02:21完成这些后,它会让我们选择要在多大程度上挑战原始范围。
00:02:26这里我选择“范围扩张”(scope expansion),因为它包含的功能最全。
00:02:27(此处为空或重复上一句含义)
00:02:30然后它让我们选择一个关键的架构决策。
00:02:33我选择推荐方案,因为它是最简单的。
00:02:36接着它又问了几个问题,我也同样都选择了
00:02:39推荐的方法。
00:02:40现在它完成了,生成了一个宏大的计划,显示了选定的范围模式
00:02:44以及在该范围内它将要执行的所有操作。
00:02:47它还写明了哪些内容不属于该功能的开发范围。
00:02:50下面是实现计划,其中包含架构图、
00:02:55关键决策和不同的执行步骤。
00:02:57这是一个非常详尽的计划,类似于我如果走同样路线
00:03:01从 Superpowers 得到的结果。
00:03:02注意,GStack 中还有一个 plan engineering review 技能
00:03:07它可以让 Claude 化身为工程经理或技术主管,负责绘制架构图
00:03:12确定技术栈、定义边缘情况等。
00:03:15但看起来 plan CEO review 技能已经提前完成了一部分工作。
00:03:20所以我们直接跳转到实现阶段。
00:03:22实现完成后,我们可以运行 review 斜杠命令来审查缺失的边缘情况
00:03:27查找那些可能绕过 CI 的 Bug,基本上能在上线前捕捉所有问题。
00:03:32同样,它会检查脚本内的更新,并检查 diff。
00:03:36现在它正在检查任务的完整性,然后给我们一个总结
00:03:40显示没有发现任何问题。
00:03:41现在我们可以运行 ship 斜杠命令,它会同步主分支、运行测试
00:03:46并解决任何存在的 Greptile 评审意见。
00:03:49这里我们可以看到,甚至不用我吩咐,它就已经创建了一个拉取请求(PR)。
00:03:54然后在这个阶段,我们可以运行 QA 斜杠命令
00:03:58它将仅根据 diff 测试我们所做的更改。
00:03:59我们可以看到它在本地启动了服务器,正在浏览网站
00:04:05利用截图等手段来测试刚刚实现的功能。
00:04:09它通过截图发现了一些 500 错误,并找到了一个 JSON 解析 Bug
00:04:15看起来它已经修复了。
00:04:16搞定。
00:04:17它验证并推送了修复补丁。
00:04:20现在它写了一份最终报告,列出了它解决的所有问题。
00:04:24这非常酷。
00:04:25好的。
00:04:26现在完工了。
00:04:27让我们去试试这个新功能。
00:04:28现在我们有了一个截图页面。
00:04:30让我们从 Tana 那里抓一条推文。
00:04:32就这一条,我把它粘贴到这里。
00:04:34这不是什么精彩的推文,只是为了测试是否可行。
00:04:37哇,好吧,这令人印象深刻。
00:04:40推文就在这里。
00:04:42我们可以选择明暗模式,它正在重新抓取。
00:04:44噢,哇。
00:04:45好的。
00:04:46我们有了亮色和暗色模式。
00:04:47看看它是否缓存了。
00:04:49缓存了,非常酷。
00:04:51我可以隐藏操作栏,瞧。
00:04:53我可以显示和隐藏图片,还可以更改背景。
00:04:58这真的太酷了。
00:04:59有 LinkedIn 风格、Twitter 风格、博客风格、紫色渐变
00:05:03我们甚至可以自定义它,或者改变渐变的角度。
00:05:07哇。
00:05:08这功能非常完备,我们还能更改长宽比。
00:05:11有 9:16、16:9、1:1 等等。
00:05:16现在让我们实际下载这张图片。
00:05:18好了。
00:05:19如果我点开这个,你们就能看到我所有的标签页了。
00:05:22图片在这里。
00:05:23我用预览打开它。
00:05:24就是它。
00:05:25这就是我刚才用 GStack 构建的功能所截取的图片
00:05:29效果惊人,但我们还能做更多事情
00:05:34因为如果我们回到 PR,可以看到 Greptile 有一份总结
00:05:40它发现了服务器资源耗尽、竞态条件、缺少缓存过期等问题。
00:05:42我不用让 Claude 一个个去查看并解决问题
00:05:47直接运行 review 斜杠命令即可。
00:05:49它找到了所有的评论。
00:05:50在下方给了我一些修复选项,我会过一遍。
00:05:53现在它修复了所有问题。
00:05:55除了一个误报,代码已推送,Greptile 看起来很满意。
00:06:00作为经常使用 Superpowers 的人,我已经能看到 GStack 的优势了
00:06:05尽管它的某些方面确实相当复杂。
00:06:08但 Gary 在 Twitter 上说“Markdown 是新的代码”,你怎么看?
00:06:13嗯,我大概能理解他的意思。
00:06:15我不认为他是说计算机学位的毕业生在浪费时间
00:06:20仅仅因为你可以写 Markdown 然后让它生成代码。
00:06:22我认为这更多是关于指令,因为新模型越来越擅长
00:06:27遵循 Markdown 指令。以前我可能需要一个
00:06:32Claude code 钩子,只为了确保它用 Bun 而不是 NPM 安装。
00:06:36但现在我可以把它写在 Claude.md 里,配合像 Opus 这样优秀的模型
00:06:42它 90% 到 95% 的时间都会听话。
00:06:44所以我觉得他想表达的是,如果你有一个足够详细、结构良好的
00:06:49Markdown 文件,模型就能根据这些指令创建出优质的软件。
00:06:55但并不是说 GStack 仅仅是一堆 Markdown 指令。
00:06:59每个技能都有自己的目录,甚至包括升级 GStack 的能力。
00:07:03如果我们关注一下 browse 技能,可以看到有一个模板文件
00:07:08以及实际的技能文件。
00:07:09这跟 Go 模板没有任何关系,不管 GitHub 页面上是怎么写的。
00:07:14它的工作原理是:如果我们进入 scripts 然后是 genskill
00:07:20TypeScript 文件会读取模板,并将占位符替换为实际的 Markdown。
00:07:26但我不会纠结于每一个具体的技能,因为它们非常详尽。
00:07:30我想强调的是,browse 技能不仅仅有一个技能 MD 文件
00:07:35因为它还有一个 test 目录,以及一个 source 目录
00:07:40里面包含浏览器管理的实际实现代码等内容。
00:07:42所以我们可以看到,这里的命令是非常复杂的。
00:07:46如果我们看一下更新日志,会发现一些非常有趣的功能
00:07:49比如端到端的可观测性、增量评估保存等,这些都用于应用开发。
00:07:55(此处为空或重复上一句含义)
00:07:56它以待办事项(to-do)的格式共享评审意见。
00:07:58它支持元素截图和区域裁剪,更不用说它与 Greptile 的集成
00:08:03以及它是考虑到 Conductor 而构建的这一事实。
00:08:07那么最关键的问题是,我个人会使用 GStack 吗?
00:08:11我的回答是,事实上我打算尝试使用 30 天。
00:08:15所以我准备删掉 Superpowers 插件,把 GStack 作为我主要的
00:08:21代码工具来开发功能和修复 Bug,看看效果如何。
00:08:23谁知道呢?
00:08:24说不定我会克隆下一个 Vercel 开源工具,然后在 Twitter 上引发更多争议。