跳到内容

Instructor 采用 Cursor 规则

AI 辅助编程正在改变我们使用版本控制的方式。许多开发者现在使用我称之为“氛围编程”——即借助 AI 进行编程。这给 Git 带来了新的挑战。今天我将分享我们在 Instructor 中如何使用 Cursor 规则来解决这些问题。

使用 AI 编程时的 Git 问题

在我的博客文章 氛围程序员的版本控制(第一部分) 中,我写到了这个问题

“想象一下:你打开 Cursor,让它以 YOLO 模式构建一个功能,然后放手让它去跑。你看着代码生成感觉很棒...直到你意识到你还没有进行任何一次提交,你的分支一团糟,而且你不知道如何组织这些更改以便进行审查。”

这种情况经常发生。当使用像 Cursor 这样的 AI 工具时,我们专注于快速创建代码,但却忘记了版本控制。这导致提交庞大而混乱,难以审查。

Cursor 规则如何提供帮助

我们在 Instructor 中添加了 Cursor 规则。这些规则有助于规范 Cursor 内的 Git 工作流程。这些规则是位于 .cursor/rules 目录中的简单 markdown 文件,用于指导 Cursor 处理你的代码。

正如我在 氛围程序员的版本控制(第二部分) 中所写:

“将规则添加到 .cursor/rules 中,以便清晰、重复地指导 Cursor... 使用 Git 取得成功的真正关键要简单得多:进行小而频繁的提交... 让 Cursor 处理其余部分。”

这平衡了快速的 AI 编程与良好的团队协作实践。

我们的 Cursor 规则如何帮助贡献者

如果你想为 Instructor 做贡献,我们的 Cursor 规则将使其变得更容易。以下是具体方法:

1. 更好的分支和提交

这些规则帮助 Cursor 建议良好的 Git 实践。在构建新功能时,Cursor 将帮助你:

  • 创建命名规范的分支
  • 进行信息清晰的小提交
  • 正确格式化 PR 描述

2. 更简单的 PR 流程

我们的规则定义了如何创建和管理拉取请求(Pull Request):

  • 格式化 PR 描述
  • 添加正确的评审者
  • 对大型功能使用堆叠 PR(正如我在我的第二部分博客文章中所解释的)

3. 保持文档更新

这些规则提醒你在代码更改时更新文档,这有助于保持我们的项目文档准确。

入门

如果你是 Instructor 或 Cursor 的新手,以下是如何使用这些规则:

  1. 安装 Cursor: 从 cursor.sh 下载
  2. 克隆 Instructor: git clone https://github.com/instructor-ai/instructor.git
  3. 在 Cursor 中打开: .cursor/rules 将自动加载
  4. 进行更改: 让 Cursor 指导你的 Git 工作流程
  5. 创建 PR: 遵循 Cursor 的建议

你不需要记住所有的 Git 命令。规则将帮助 Cursor 建议正确的步骤。

针对大型功能的堆叠 PR

我们规则中的一个关键实践是堆叠 PR。正如我所解释的:

“堆叠拉取请求(Stacked pull requests)是一种强大的工作流程,用于渐进地构建复杂功能。你不是创建一个巨大的 PR,而是创建一系列相互依赖的小型 PR,它们层层叠加。”

这对 Instructor 有帮助,因为它允许:

  • 聚焦的代码审查
  • 更容易合并更改
  • 更好地组织大型功能
  • 清晰地记录决策

这些规则会告诉你如何清晰地创建和管理堆叠 PR。

保留人工参与

Cursor 规则的一个重要好处是让人始终处于流程的中心。虽然 AI 帮助编写代码,但规则确保:

  • 代码更改保持清晰且可审查
  • 文档保持最新
  • 提交历史讲述了一个清晰的故事
  • 贡献者的工作得到认可

试一试

我邀请你向 Instructor 提交一个包含少量更改的 PR。通过 Cursor 规则使用 AI 辅助编程结合 Git,会让贡献变得更容易、更有趣。

从小处着手——修复一个错别字或向 Cookbook 添加一个示例。在 Cursor 中打开仓库,让规则指导你完成一个清晰的 PR。这样你就可以专注于编写好的代码,而不是纠结于 Git 命令。

记住:“最重要的 Git 技能是进行规律的、小的提交。其他一切——二分查找、堆叠 PR、复杂的 rebase——这些都只是 Cursor 可以为你处理的工具。”

有了 Cursor 规则,你可以获得快速的 AI 编程,同时保持良好的团队实践。

如果你想将 Cursor 规则添加到你自己的开源项目中,我可以提供帮助!请在 Twitter 上通过 @jxnlco 联系我,我会分享我们所学到的经验。

编程愉快!