我如何在 Claude 的帮助下零努力保持代码最新
Source: Dev.to
(未提供需要翻译的正文内容,无法进行翻译。)
依赖地狱问题
和大多数开发者一样,我一直被庞大的依赖数量所困扰。一个典型的项目会有 50 – 100 个第三方库,而且它们不断在变化。你该如何跟踪所有这些依赖?
我曾经为此纠结不已,因为它占用了我大量的时间。最糟糕的情况是:当某个库落后太久,以至于它开始与所有你尝试引入的新东西冲突。
解决方案是什么?
每天手动检查并更新它们?当然……虽然有插件和工具,但当你在压力之下、处于活跃开发阶段或赶工实现功能时,维护根本不是你的第一、第二甚至第三优先级。
然后,有一天——砰!——你添加了一个简单的依赖,结果所有东西都变得不兼容。(怒火中烧的时刻。)
我是如何实际解决这个问题的
我在网上看到很多人使用 AI 来解决这类问题,老实说,我也想尝试一下。表面上看,这个任务很简单:检查一系列库,找出它们的新版本。这正是 AI 应该能够轻松处理的事情。
于是我决定用 Claude 试一试。
但一开始我就碰到了 LLM 实际工作方式的现实。只要让 AI 去找更新,它就会出现不存在的版本号——因为它的训练数据是静态的,可能已经过时。我尝试让它浏览网页,但它在旧文档和随机的 GitHub issue 中迷失了方向。
这时我意识到,对于专业级项目,我不能仅仅“问” AI……我必须围绕它构建一个合适的架构。
架构:我的零工作流管道
我决定使用全新的 Claude Routines(它们刚刚发布,且是个改变游戏规则的功能,因为它允许你在 即使电脑关机的情况下 设置循环任务)。我把它设为每周五上午触发的例程。
对于数据,我使用 Context7 作为我的唯一可信来源。(如果你不熟悉它,它是一个可以接入 Claude 的工具,充当最新库版本的实时仓库。) 与 Claude 的内部训练数据不同,Context7 会不断更新最新的发布版本。
我的设置如下

实现细节
-
提取依赖列表 – 我把依赖文件交给 Claude,让它转换成一个只有两列的干净 Markdown 表格:库名称 和 当前版本。
为什么? Claude 对结构化的 Markdown 表格的解析要比对混杂了配置、插件和样板代码的原始文件可靠得多。 -
将表格存放在专用仓库中 – 这样可以保持环境整洁,并确保代理只关注真正重要的数据。
最终结果如下所示:

-
在该仓库上设置 Claude Routines。我添加了 Context7,配置了调度器,并编写了一个能够真正交付的提示。
目标很简单:Claude 读取 Markdown 文件,使用 Context7 对每个库进行检查,并在同一仓库中打开一个 Pull Request,生成一个包含更新表格的(单独的)文件。新表格有四列:
- 库名称
- 当前版本
- 可用的新版本
- 状态
我遇到的挑战
- “懒惰代理”问题: Claude 只检查 8 – 10 个库后就停止,误以为任务已完成。
- 工具绕过: 有时它会忽略 Context7,尝试使用自己的陈旧数据或随意的网络搜索来查找版本。
经过大量的反复试验,我最终找到了正确的提示工程技巧,强制 Claude 按顺序处理完整列表,并严格使用 Context7 作为唯一的真实信息来源。
-
结果 – Claude 以当前日期命名新文件,并将其作为 PR 提交。

结论
现在它已经运行,我真的对结果感到满意。最棒的是什么?它完全不依赖于我。即使我的电脑关机,过程仍然会自行进行。星期五醒来看到工作已经完成的感觉真棒。
我只需要在文件准备好时检查它。(说实话,我甚至可能根本不需要检查它。)
在设置的过程中,我发现 Claude Routines 的触发器比我最初想象的要多得多。现在,我正致力于将此流水线扩展到其他维护任务,但那是另一个故事。
# Taking It to the Next Level
A setup where the libraries are updated directly in the code, fully automatically. I think I’ve already found a very solid solution for this.
I’ll share exactly how I did it as soon as the implementation is finished.
If you want to dive deeper or replicate this exact setup for your own projects, check out the full video I’ve posted on YouTube. I’ve put together a very simple, step‑by‑step guide there. If you follow along, you can have this entire system up and running in about **5 minutes**:
[Watch the video on YouTube → tscsoX‑Rvj0](https://www.youtube.com/watch?v=tscsoX-Rvj0)
*If you’ve already read the background and just want to dive into the implementation, feel free to skip the intro and start the video at **1:18**.*
Thanks for reading!