gstack 把 Claude Code 升级成虚拟工程团队:30+ 个 Markdown 写的 slash 命令覆盖 think → plan → build → review → test → ship → reflect 的完整开发流程,外加一个用 Bun + Playwright 编译出来的常驻 Chromium 守护进程,让 AI 代理在浏览器里点击、截图、QA。作者是 YC 总裁 Garry Tan,MIT 协议,开源免费。
来源:README + package.json 查看 GitHub 仓库 →这是 Y Combinator 总裁 Garry Tan 把自己日常使用的 AI 编码工作流开源出来——他在 README 里给出了一个争议十足的数据:2026 年的人均代码产出约为 2013 年的 810 倍,靠的就是这套流程化、角色化的 Claude Code 增强层。和「再写一个 Claude Code 包装器」不同,gstack 的卖点是把软件工程过程本身做成了 skill 流水线:office-hours 像产品经理质询需求,plan-ceo-review 像 CEO 重审范围,plan-eng-review 锁架构,review/qa/cso 跑代码审查、浏览器 QA 与 OWASP+STRIDE 安全审计,ship 自动开 PR。23 个角色 + 8 个能力工具,全是 Markdown,无前端 UI,可以同时跑 10-15 个并行 sprint。仓库本身用了大量自我验证手段:实时 PTY E2E 测试、跨模型 benchmark、5 层 prompt injection 防御,工程感比绝大多数 AI agent 项目要硬。
来源:README + CHANGELOG/office-hours、/plan-ceo-review、/plan-eng-review、/plan-design-review、/plan-devex-review、/review、/investigate、/cso、/qa、/qa-only、/ship、/land-and-deploy、/canary、/benchmark、/retro、/learn、/autoplan 等命令以 Markdown SKILL.md 形式存在 ~/.claude/skills/gstack/,每个命令对应一个工程师角色,命令之间通过共享的设计文档(如 office-hours 写出的 design doc 被 plan-ceo-review 读取)形成显式的接力。
来源:README + 仓库 treebrowse/ 模块用 bun build --compile 出一个 ~58MB 单文件二进制,启动一个 Bun.serve() HTTP 服务包裹 Playwright 控制的 Chromium。首次调用 ~3 秒冷启动,后续每条命令通过 localhost HTTP POST 走 ~100-200ms,cookie/tab/localStorage 在多次命令间保持,30 分钟空闲后自动关闭。这是 /qa、/browse、/design-review 能在 SPA 上跑得动的关键基建。
来源:ARCHITECTURE.mdsnapshot -i 调用 Playwright page.accessibility.snapshot() 后给每个可交互元素分配 @e1/@e2 引用,AI 代理直接用 $B click @e3 操作页面。底层走 getByRole().nth() 的 Locator 而不是注入 data-ref 属性,能绕过 CSP、React 重渲染和 Shadow DOM 限制;导航后引用整体失效,resolveRef 还会异步 count() 检测 SPA 中的悬空引用,避免代理点错元素。
来源:ARCHITECTURE.md侧边栏 agent 暴露 Bash/Read/Glob/Grep/WebFetch 工具,是注入攻击的主要面。防御依次是:L1-L3 内容安全(datamarking、隐藏元素剥离、ARIA 正则、URL 黑名单 + 信任边界包装)、L4 ML 分类器(22MB 量化 BERT-small ONNX,本地无网;可选 721MB DeBERTa-v3 ensemble)、L4b Claude Haiku 转写检查、L5 系统提示词 canary token 跨流(text_delta/input_json_delta/工具参数/文件写入)泄漏检测、L6 verdict 组合器(要求两个分类器 ≥WARN 才 BLOCK,规避 Stack Overflow 误报)。
来源:ARCHITECTURE.mdpair-agent 让 Claude Code、OpenClaw、Hermes、Codex 等不同厂商的代理能在同一个浏览器里协作。本机用 setup-key 兑换 scoped token、各占独立 Tab;远程用 ngrok 隧道。安全上不依赖 header 推断,而是物理分离两个 HTTP 监听器(local 端口暴露 /health、/cookie-picker、/inspector 等,tunnel 端口仅暴露允许列表中的 /connect、/command、/sidebar-chat),从 socket 层面切断 root token 通过隧道泄漏的可能。
来源:ARCHITECTURE.mdSKILL.md.tmpl 包含人写的工作流提示,构建时 gen-skill-docs.ts 从 commands.ts、snapshot.ts 等源文件提取命令注册表、参数说明、preamble、设计/QA/测试方法学等占位符填充进去,生成最终 SKILL.md 提交进仓库。CI 通过 gen:skill-docs --dry-run 加 git diff --exit-code 阻止文档漂移,从结构上保证文档列出的命令一定存在。
来源:ARCHITECTURE.md + package.jsonhosts/ 目录下针对 claude、codex、cursor、factory、gbrain、hermes、kiro、openclaw、opencode、slate 各写一个 TypeScript 配置,./setup --host
v1.15.0.0 引入 654 行的 test/helpers/claude-pty-runner.ts,基于 Bun.spawn({terminal:}) 直接驱动真实 claude 二进制并解析渲染后的终端帧,用来测 AskUserQuestion 格式合规、计划模式 UI 检测、tool-budget 回归等以前结构上无法覆盖的行为。bin/gstack-model-benchmark 还能把同一个提示词跑过 Claude/GPT (via Codex CLI)/Gemini,对比延迟、token、成本,并可选 LLM-judge 评分。
来源:CHANGELOG + README整体是「Markdown 控制层 + Bun 二进制执行层」两层架构。控制层是 30+ 个独立目录(office-hours/、plan-ceo-review/、qa/ 等),每个目录里一个 SKILL.md 描述工作流、AskUserQuestion 模板和共享 preamble;Claude Code 在用户调用 slash 命令时直接读取这些 Markdown,等于把「工程 SOP」以提示词形式喂给 LLM。执行层主要是 browse/、design/、make-pdf/ 三个 Bun 项目,每个都用 bun build --compile 出独立二进制;其中 browse 最复杂——CLI(cli.ts)通过 .gstack/browse.json 状态文件找到守护进程端口和 bearer token,HTTP POST 到 Bun.serve() 服务,服务再用 Playwright 走 CDP 控制 Chromium,命令分 READ/WRITE/META 三类做 dispatch;ref 系统、3 个 50K 容量的环形缓冲日志、5 层 prompt injection 防御都集中在这里。版本一致性靠 git rev-parse HEAD 写入二进制的 .version 文件,CLI 调用时若发现版本漂移就 kill 旧 server 重启。设计上有几个明显的「不做」:不上 WebSocket、不用 MCP、不做多用户、不做 Linux/Windows 系统密钥库解密——团队明确把这些标成 intentionally not here,工程取舍清晰,不是常见的「先做了再说」。整体偏过度工程的部分主要在测试基建(PTY harness、3 层 eval tier、跨模型 benchmark)和安全(双监听器、ML 分类器、canary token、salted hash 攻击日志),但考虑到产品本身就是给 AI 代理用的高权限工具,这些复杂度有合理依据,不算设计冗余。
来源:ARCHITECTURE.md + tree + package.json中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成
playwright ^1.58.2(浏览器自动化)puppeteer-core ^24.40.0(备用 CDP 客户端)@huggingface/transformers ^4.1.0(本地 …@ngrok/ngrok ^1.7.0(pair-agent 远程隧道)@anthropic-ai/claude-agent-sdk 0.2.1…marked ^18.0.2(Markdown 解析,make-pdf 用)1. 个人开发者 / 独立创业者想用 Claude Code 提高产出但缺一套「想 → 评估 → 设计 → 写 → 审 → 测 → 发布」的固化流程,gstack 直接给出 23 个角色 slash 命令把 SOP 写死。2. 技术 Lead 或 Staff Engineer 在团队里推 AI 辅助开发,需要每个 PR 都过 review/qa/cso,gstack 的 ship、land-and-deploy、canary 提供 PR 级强制审查与上线后监控。3. 多项目并行的 AI 重度用户配合 Conductor 等多会话工具同时跑 10-15 个 sprint 时,gstack 的角色化命令避免 10 个 agent 变成 10 个混乱来源。4. 跨 AI 工具用户(同时用 Claude Code、Codex CLI、Cursor、OpenClaw 等)希望同一套工作流跨工具复用,gstack 通过 hosts/ 系统把 skill 软链接到各自的 skill 目录。私有化 / 本地部署场景:所有逻辑在本地跑,唯一可选的远程依赖是 Supabase(仅 telemetry,默认关闭)和 ngrok 隧道(仅 pair-agent 远程协作)。
来源:README + ARCHITECTUREVERSION 文件标注 1.15.0.0(2026-04-26),CHANGELOG 主题为「Real-PTY 测试基建」:新增 654 行 test/helpers/claude-pty-runner.ts 直接基于 Bun.spawn({terminal:}) 驱动真实 claude 二进制,新增 6 个真实 PTY E2E 测试(AskUserQuestion 格式合规、plan-design UI 检测、tool-budget 回归、plan-ceo 模式路由、ship 幂等性、autoplan 阶段链)+ 23 个单元测试;18 个 preamble 解析器整体压缩,每次 skill 调用减少 ~196K tokens(-25%),plan-ceo-review preamble 体积从 54KB 降到 31KB。GitHub Releases 接口返回空数组,作者通过 VERSION 文件 + CHANGELOG.md 管理版本,不走 GitHub Releases 流程。
来源:VERSION + CHANGELOG.md + GitHub Releases APIgstack 不是又一个 Claude Code 包装器,它把「如何用 AI 高效写软件」这个问题做成了一条带审计、带回归、带跨模型对照的工程流水线。23 个角色命令的接力设计 + 一个工程级浏览器守护进程 + 五层 prompt injection 防御,在 AI 工程辅助类项目里是少见的硬核组合,作者把自己每天用的 SOP 直接 MIT 开源了。建议这样使用:已经在用 Claude Code 的开发者先装上跑 /office-hours + /review + /qa 三件套体验整套质感,再决定是否切换到 team 模式给整个仓库强制 gstack;多项目并行的 AI 重度用户配合 Conductor 把并行 sprint 数推到 10-15 个时收益最大;技术 Lead 想给团队推 AI 辅助开发的工程纪律,可以拿 ship/cso/canary 当 PR 检查器。哪些情况建议先别用:项目是一次性脚本或玩具 demo(流程开销大于收益);团队还没用 Claude Code(gstack 不能凭空替代基础工具);对作者营销话术敏感的人(README 头部生产力数字争议较大,但代码本身确实硬)。短期最值得关注的演进方向是测试基建从 6 个 PTY 测试扩展到全 skill 覆盖,以及 hosts/ 适配层从软链接走向真正的协议适配。
来源:综合分析