Cursor:为什么 IDE agent 需要 paths、rules migration 和文件作用域
Cursor 的 skill 设计带着明显的 IDE 语义。它支持 Agent Skills,但它不是从零开始的纯 skill runtime:Cursor 原本就有 Rules、代码库索引、Agent/Ask/Manual 模式、MCP、终端、文件编辑和 slash command 体验。
所以 Cursor skill 的关键问题不是“如何写一份 Markdown”,而是:在 IDE 里,什么时候应该把一段 procedural workflow 交给 skill,什么时候仍然应该用 always-on rule。
它解决的 runtime 问题
Cursor 要回答的是:IDE agent 怎样把可复用 workflow 与文件上下文、代码库范围、rules 和用户手动调用结合起来。
这解释了 paths 的重要性。某些 skill 只应该在特定文件 glob 下出现:例如 Rails migration、Next.js app router、Terraform module、iOS project。IDE 能看到文件结构,所以它可以按路径 scope skill。这个能力很适合 Cursor,但不该进入 portable core。
Cursor 还支持 disable-model-invocation 一类语义:skill 可以出现在 slash menu 或设置中,但不自动进入模型可选列表。原因也很 IDE-native:有些 workflow 适合用户手动触发,不适合模型靠描述自动猜。
Rules migration 也说明了边界:Rules 更适合长期、声明式、常驻的项目约束;Skills 更适合按需加载的 procedural how-to。把二者混在一起,会让项目上下文过重。
为什么这样设计合理
IDE agent 的最大优势是知道你在哪个项目、哪个文件、哪个编辑上下文里工作。Cursor 因此可以做比 terminal 更细的 scope:不是“这个 skill 是否存在”,而是“在当前文件/目录/模式下,它是否应该被看见”。
这也是 Cursor 与 OpenCode 的差异:OpenCode 的核心是 terminal session + skill tool + permission;Cursor 的核心是 IDE context + file scoping + rules/skills 协同。
迁移时要剥离什么
.cursor/skills、Cursor user/global skill 路径。paths、manual invocation、IDE slash menu。.cursor/rules/*.mdc、team dashboard、rules migration。- Cursor Agent/Ask/Manual/Custom mode 的工具差异。
- 对代码库索引和当前编辑文件的隐式依赖。
Adapter 应该写什么
Cursor adapter 应该写哪些文件路径触发这个 skill,哪些内容仍应留在 Rules,是否允许模型自动调用,是否只作为 slash command,是否需要 MCP/terminal/edit 工具,以及在 IDE 中如何呈现验收证据。portable core 只保留任务判断。