我提交了一个 commit。两周后,有人为它写了 3300 字

2 阅读5分钟

不是"我的项目被报道了"。是一个我不认识的人,觉得我写的一个东西值得 3300 字的深度拆解。我两周后才知道。


我是怎么发现的

7 月 15 号晚上,朋友给我发了条消息,带了一个链接。

点开是一个叫 DataAgent 的技术博客。标题写着——"不讓 Claude 收工的 Stop hook:拆解 everything-claude-code 的 delivery-gate"。

我往下翻。

文章提到了我的 GitHub ID(YuhaoLin2005)。提到了具体的 commit hash(51bced9)。列出了我写的文件路径和行数。给出了完整的三道检查逻辑。分析了设计思路。指出了潜在风险。给了团队部署建议。

3300 字。全是关于我提交的一个功能。

问题是:这篇文章是 7 月 1 号发的。过了整整两周,我才知道它的存在。


我当时做了什么

6 月 30 号,我给一个叫 ECC(everything-claude-code)的开源项目提了一个 commit。

ECC 是 affaan-m 维护的一套 Claude Code 增强插件——60 多个 subagent、200 多个 skill。我贡献的东西叫 delivery-gate(交付门)。

思路很简单:

Claude Code 有一个叫 Stop hook 的机制。每次 Claude 准备"收工"的时候,可以插一段脚本——如果脚本 exit 2,Claude 就不能停,必须继续。

我写的 delivery-gate 在收工前跑三道检查:

1. 逃避话术检测。扫一遍对话记录,看 Claude 有没有说"这个测试先跳过"、"这是旧 bug 不关我事"之类的逃避话术。只警告,不拦截——因为这太容易误判。

2. 学习库时效检查。如果这一轮做了 ≥3 次 Edit/Write(复杂任务),但今天没更新 growth-log、decisions-log 等学习笔记——exit 2,硬挡。意思很明确:你刚干了件不简单的事,没留下任何可复用的笔记,就别想走。

3. 磁盘空间检查。低于 50GB 提醒、低于 30GB 警告、低于 15GB 硬挡。防止 agent 狂写 log 把盘写爆。

三道检查共用一个哲学:只用文件系统可以验证的事实,不靠 AI 判断 AI。脚本读文件时间戳、数字数、查磁盘大小——0 token 成本、0 误判可能。

提交完我就没多想。对我来说,这只是在解决自己实际遇到的问题——我的 Claude agent 经常在复杂任务后直接"收工",第二天我回来看,什么都没留下。


DataAgent 分析了什么

DataAgent 那篇文章做了一件我自己都没做的事:把代码拆开来给读者看

它分析了三道检查逻辑,指出了几个关键设计选择:

"只查可以用程式驗證的事實"。文章强调:delivery-gate 的检查对象全是文件系统上已经存在的信息——对话记录 JSONL、文件 mtime、磁盘空间。不需要任何一次额外的 LLM 调用。

"stop_hook_active 的无限回圈风险"。文章指出了我最应该加但没加的东西:如果 exit 2 挡人后 Claude 补做但条件仍不满足,就会无限循环。Claude Code 的 payload 里有个 stop_hook_active 字段,如果它是 true 代表这一轮已经被挡过一次,hook 应该直接放行。

"光有關卡沒方法論 → 逼出一堆空筆記"。文章把 delivery-gate 和同一天提交的 growth-log skill 放在一起看,指出两者是配套的:关卡管"有没有记",方法论管"记的东西有没有用"。这个连接我自己都没在文档里写清楚。


被"看见"意味着什么

说实话,这件事让我愣了几秒。

不是"被报道了很激动"那种愣。是那种——你写了一个东西,你觉得它解决了你自己的问题,然后你发现有个完全陌生的人认真读完了你的代码,理解了你的设计,指出了你没意识到的问题,然后写出来给更多人看。

你开始意识到:开源社区的"看见",不是点赞。是有人愿意花时间拆你的代码。

DataAgent 不是一个大众媒体。143 的阅读量在互联网上约等于零。但这 3300 字的质量,比 10 万阅读的标题党有价值得多。

因为这意味着:你的代码经过了行业观察者的审视,被认为有分享价值。


给其他学生开发者的建议

我自己就是个本科生。一台 RTX3060 笔记本。没有实验室,没有导师。我做的事总结下来就三句话:

从自己真正遇到的问题出发。 不要为了"做开源"而做开源。我的 delivery-gate 之所以看起来"有设计",是因为我确实被 Claude 的漂移折磨了 50 多个 session。问题够痛,解决方案自然有深度。

把设计思路也写下来。 DataAgent 能拆 3300 字,不是因为我的代码多厉害——是因为我的 SKILL.md 里写了设计哲学、三道检查的逻辑、适用条件和边界。如果我只扔一个 .py 文件上去,没人会写 3300 字拆它。

提交了就放下。 我是两周后偶然发现的。被看见是副产品,不是目标。如果你盯着 GitHub 通知等反馈,你会焦虑。如果你专注解决下一个问题,你会进步。



📎 delivery-gate 背后的技术思路

这个 commit 涉及的三个核心概念,我写成了系列文章:


💬 你有没有过"写的代码被陌生人认真分析"的经历?或者你发现自己的某个项目被引用时,已经过了很久?评论区聊聊。

👋 林宇浩 — FAFU 空间信息大三,找 2026 暑期实习。GitHub: @YuhaoLin2005