Full markdown reading view
大多数开发者用了 10 年 git,从没用过 worktree。
大多数开发者用了 10 年 git,从没用过 worktree。
因为以前根本没必要——同时开 5 个分支?谁会这么干?
AI 编程代理出现之后,这一切变了。
───
现在我同时跑 5-10
来源: https://x.com/chenchengpro/status/2032411474703053012
缓存文件: /mnt/ramdisk/test/@chenchengpro_status_2032411474703053012.session.json
抓取时间: 2026-03-13T14:24:05.109Z
正文
作者: @chenchengpro (陈成)
时间: Fri Mar 13 11:00:30 +0000 2026
链接: https://x.com/chenchengpro/status/2032411474703053012
大多数开发者用了 10 年 git,从没用过 worktree。
因为以前根本没必要——同时开 5 个分支?谁会这么干?
AI 编程代理出现之后,这一切变了。
───
现在我同时跑 5-10 个 Claude Code / Codex session,每个代理处理一个任务。但问题来了:每个代理都需要独立的工作目录,不能互相踩文件。
解法:git worktree + pnpm 全局虚拟存储。
一个 bare 仓库作为中心,每个代理一个 worktree:
git clone --bare https://t.co/LjNchNLUGW你的/仓库.git repo
cd repo
git worktree add ./main main
git worktree add ./feat-a feat/task-a ← Agent A
git worktree add ./fix-b fix/task-b ← Agent B
git 对象只有一份,分支却全部同时 checkout。
───
但 node_modules 怎么办?每个 worktree 都要装一遍,几百 MB 乘以 10 个代理?
pnpm 的 enableGlobalVirtualStore 解决了这个:
pnpm-workspace.yaml
enableGlobalVirtualStore: true
开启之后,每个 worktree 的 node_modules 里只有符号链接,指向磁盘上同一份内容寻址存储。
第一次 pnpm install 下载包,后面每个新 worktree 的安装几乎是瞬时的。
10 个代理,磁盘开销接近于 1 个。
───
pnpm 自己的仓库就是这套配置,还封装了辅助命令:
pnpm worktree:new feat/my-feature # 新建 worktree
pnpm worktree:new 10834 # 直接拉 PR,支持 fork
分支名的斜杠自动转成目录名,.claude 配置全局共享,省去重复设置。
───
AI 代理时代的并行开发工作流,不是多开几个终端那么简单。
每个代理需要真正的隔离:独立文件、独立分支、独立依赖树。
git worktree + pnpm virtualstore,是目前最轻量的答案。
───
如果觉得有用,可以直接去看 pnpm 11.x 的文档:https://t.co/gDAedQE8Pq
评论 (12)
评论 点赞 312
作者: @chenchengpro (陈成)
时间: Fri Mar 13 00:07:51 +0000 2026
链接: https://x.com/chenchengpro/status/2032247228317028524
Augment Code 重写了工程师招聘标准,读完很有感触。
他们的结论:写代码不再是核心竞争力。
Agent 已经能承担大部分实现工作。现在最值钱的工程师,是那些能做判断、定义正确问题、驾驭 AI 的人。
他们总结了 6 个新维度:
-
产品感和结果品味
在动手之前,能搞清楚「做什么」比「怎么做」更重要。代码越来越便宜,做错事的成本反而更高了。 -
系统与架构判断力
AI 能写出跑得动的代码,但判断系统长期是否健康,仍然需要人。“It works” 容易,“It will keep working in production” 难。 -
Agent 杠杆能力
不是「用 AI 帮我写」,而是「把问题拆解好,让 Agent 高效执行,然后发现它在哪里飘偏了」。你的 AI 下属跑得极快,但偶尔会非常自信地犯错。 -
沟通与协作
实现变快之后,瓶颈转移到了「达成共识」。最快的团队不是写代码最快的,是最快把事情想清楚的。 -
主人翁精神
不只是执行,是端到端负责。看到问题就管,哪怕不在自己职责范围内。 -
学习速度和实验心态
今天的工具三个月后可能就换了。能持续实验、快速迭代、果断放弃——才是真正的护城河。
───
有意思的是,这 6 个维度正在反哺他们的绩效评估和晋升体系。
招聘标准变了,意味着对「优秀工程师」的定义也在变。
你觉得自己在这 6 个维度里,哪个最弱?
评论 点赞 261
作者: @shao__meng (meng shao)
时间: Fri Mar 13 00:32:06 +0000 2026
链接: https://x.com/shao__meng/status/2032253333747220690
重读 OpenClaw 背后的 Agent 框架「pi」,作者 @badlogicgames 对主流 Coding Agent 的反思还是太超前了,pi 的极简设计即使现在带着上帝视角往回看,仍然是精妙,不得不佩服!
https://t.co/mChSOHZHI8
可复制学习的经验
即使你不使用 pi,这些经验也适用于其他 Agents:
- 保持系统提示简洁:模型已理解 Coding Agents 模式,冗长的提示反而有害
- 最小化工具集:四个基本工具(读、写、改、执行)已足够
- 文件化状态管理:使用文件而非内置功能管理 TODO、计划等状态
- 追求可观察性:选择能让你看到完整交互过程的工具
- 上下文工程优先:精确控制进入模型的上下文比工具数量更重要
为什么自建 pi?
· Mario 曾使用 Claude Code,但随着时间推移,该工具变得臃肿(80% 的功能他用不到)
· 系统提示和工具在每个版本中都会变化,破坏了他的工作流程
· 现有工具缺乏可见性(无法查看与模型的交互细节)
· 自托管模型支持不佳
pi 的三层技术架构
-
pi-ai(统一的 LLM API)
解决的关键问题:
· 多提供商兼容:统一支持 OpenAI、Anthropic、Google、xAI 等四种 API 格式
· 上下文切换:可以在会话中切换模型(如从 Claude 切换到 GPT),保留完整对话历史
· 工具调用分割:将工具结果分为 LLM 可见部分和 UI 展示部分
· 中断请求支持:支持 AbortController 中止请求并返回部分结果 -
pi-tui(终端 UI 框架)
设计选择:
· 采用追加模式:不同于全屏 TUIs(如 Amp、opencode),pi 采用类似 Claude Code 的追加输出模式
· 保留滚动历史:不接管终端视口,保留原生滚动和搜索功能
· 差异渲染:只重绘变化的行,配合同步输出转义码实现无闪烁更新 -
pi-coding-agent(核心 CLI)
· 关键特性:极简系统提示词(仅约 1000 tokens)
· 仅有 4 个核心工具:read、write、edit、bash
· 支持项目上下文文件(AGENTS.md)分层加载
设计哲学与反常规选择
-
YOLO 模式(默认开放权限)
· 他认为其他工具的安全措施是"安全剧场"
· 既然 Agent 可以写代码和执行代码,真正的安全防护实际上是不可能的
· 默认赋予文件系统和命令执行的完整权限 -
不做内置 TODO 功能
· 他认为 TODO 列表往往会让模型更困惑
· 替代方案:直接写入 TODO.md 文件,用复选框标记进度 -
不做计划模式
· 可以通过 --tools read,grep,find,ls 启动只读模式来实现类似功能
· 持久化计划应写入文件(如 PLAN.md),跨会话可见 -
不支持 MCP
· 认为 MCP 服务器会占用过多上下文空间(如 Playwright MCP 占 13.7k tokens)
· 替代方案:构建简单的 CLI 工具 + README,按需读取 -
没有后台 Bash
· 使用 tmux 替代后台进程管理
· 提供更好的可观察性,且用户可以主动进入会话 -
没有 Sub-agents
· 其他工具的 Sub-agents 是"黑盒中的黑盒"
· 解决方案:通过 bash 直接调用 pi 自身,获得完整输出可见性
媒体链接:
评论 点赞 189
作者: @HiTw93 (Tw93)
时间: Fri Mar 13 11:09:39 +0000 2026
链接: https://x.com/HiTw93/status/2032413776398766429
这篇 7 千字的文章,其实就等于这行命令
npx skills add tw93/claude-health,运行 /health 即可~
评论 点赞 169
作者: @QingQ77 (Geek Lite)
时间: Fri Mar 13 11:21:00 +0000 2026
链接: https://x.com/QingQ77/status/2032416632308691238
24小时不到,3K+ GitHub……
gstack 是 Garry Tan(Y Combinator 总裁兼 CEO)做的一套 Claude Code 工作流技能集合:
就 6 个斜杠命令,但风格很“opinionated”。它要做的事其实很直白:别把 ClaudeCode 当成一个什么都能问的通用助手,而是把它拆成“随叫随到的专业队”,你需要哪个角色/打法,就切到哪个命令。
这是一个面向 Claude Code 重度用户的"AI 工作流操作系统",在技术生态中处于 AI 辅助编程工具链的增强层。它不是给初学者的提示词包,而是为"认真交付软件的人"设计的高严谨度工作流系统,通过显式的"认知模式切换"解决 AI助手"把所有模式混在一起导致平庸输出"的问题。
评论 点赞 5
作者: @NoodleItalia (noodle crazy)
时间: Fri Mar 13 13:35:26 +0000 2026
链接: https://x.com/NoodleItalia/status/2032450462813925843
@chenchengpro 这是超级高效大佬
评论 点赞 6
作者: @codingzx (晓)
时间: Fri Mar 13 14:12:44 +0000 2026
链接: https://x.com/codingzx/status/2032459850446414187
@chenchengpro 学习了,有帮助
评论 点赞 7
作者: @chrislu1985 (One)
时间: Fri Mar 13 13:15:24 +0000 2026
链接: https://x.com/chrislu1985/status/2032445422405620102
@chenchengpro bun 有解吗
评论 点赞 8
作者: @yigekaifazhe (一个开发者)
时间: Fri Mar 13 12:15:52 +0000 2026
链接: https://x.com/yigekaifazhe/status/2032430440565588241
@chenchengpro 学习了大佬
评论 点赞 9
作者: @quanyuqn27902 (gacha cheng)
时间: Fri Mar 13 14:22:38 +0000 2026
链接: https://x.com/quanyuqn27902/status/2032462343377191064
@chenchengpro +1 ,说起来惭愧。我也是被 AI 教会了怎么用 worktree、怎么用 rebase
甚至是在接触 vibe coding 前,都没听说过 worktree。。。
评论 点赞 10
作者: @fineandthx (荧光蛙(GlowFrog))
时间: Fri Mar 13 12:00:38 +0000 2026
链接: https://x.com/fineandthx/status/2032426606145511842
@chenchengpro worktree 真是被低估了 多开几个 agent 不隔离目录很快就互相踩文件
pnpm 这招也很实用 10 个分支装一次依赖就够了
评论 点赞 11
作者: @0xYaCo (YaCo)
时间: Fri Mar 13 13:58:47 +0000 2026
链接: https://x.com/0xYaCo/status/2032456342469054910
@chenchengpro 有没有教程,我现在就遇到这个问题,不知道怎么解决
评论 点赞 12
作者: @zangjiaao (zangjiaao)
时间: Fri Mar 13 12:03:48 +0000 2026
链接: https://x.com/zangjiaao/status/2032427403356848330
@chenchengpro 边界要确定好,要不一会冲突要处理
Capture Diagnostics
{
"mode": "thread",
"started_at": "2026-03-13T14:23:06.327Z",
"ended_at": "2026-03-13T14:24:05.107Z",
"rounds_executed": 21,
"expand_clicks": 0,
"last_visible_expand_buttons": 0,
"termination_reason": "stable_idle",
"incomplete": false,
"likely_incomplete": false,
"error_code": null,
"resumed_from_cache": false,
"imported_tweets": 0,
"imported_users": 0,
"cache_path": "/mnt/ramdisk/test/@chenchengpro_status_2032411474703053012.session.json",
"cache_age_ms": null,
"cache_prior_likely_incomplete": false,
"cache_expired": false,
"newly_captured_tweets": 13,
"last_expand_button_texts": [],
"clicked_expand_button_texts": []
}