Rosetta Stone:跨工具概念对照
同一个概念,每家叫法和放置位置都不同。换工具、多工具并用、或给团队写规范时用这张表。
2026-09-11 逐格复核:每个单元格的文字本身就是对应官方文档页的链接,点开即可验证。修正时请附官方链接提 PR。本轮复核(首轮 2026-08)修正了 Codex 侧四格与 Cursor/Copilot 侧四格的措辞或链接指向;只有单个来源无法覆盖的补充事实列在文末。
主对照表
2026-09 复核后的真实格局:收敛比想象快
核实过程推翻了”生态碎片化”的旧叙事——四家已在四个层面收敛:
- AGENTS.md 家族:Cursor 和 Copilot 都已原生读取
AGENTS.md(Copilot 连CLAUDE.md也读)。根级AGENTS.md做单一事实源的策略比一年前更成立。 - Skills 开放标准:四家全部基于 agentskills.io,且 Cursor/Copilot/Codex 互认对方的技能目录。跨三家的最大公约数是
.agents/skills/(Claude Code 目前仍只读.claude/skills/)。 - Hooks 全员到齐:确定性拦截(preToolUse 级 deny)四家都有官方实现,只是文件位置和事件名不同。
- OS 级沙箱全员到齐:macOS 清一色 Seatbelt,Linux 是 bubblewrap 或 Landlock+seccomp。
就近规则差异(monorepo 里最容易踩的坑)
同样是”就近优先”,四家语义不同:
| 工具 | 实际语义 |
|---|---|
| Claude Code | 从 cwd 向上收集每层 CLAUDE.md,全部拼接(根→cwd 顺序,越近越靠后);cwd 之下子目录的按需加载(memory) |
| Codex | 从项目根向下走到 cwd,每目录取一个,按 cwd 而不是被改文件——编辑 services/x.ts 不会加载 services/AGENTS.md,除非从那里启动(AGENTS.md discovery) |
| Cursor | 嵌套 AGENTS.md 合并,”更具体的优先”;CLI 额外读根级 CLAUDE.md(Rules · CLI) |
| Copilot | VS Code “最近的优先”(仓库指令);CLI 官方明确不定义优先级,只做发现与去重(CLI 指令) |
通用互操作层
- memory:根级
AGENTS.md单一事实源,CLAUDE.md软链过去(ln -s AGENTS.md CLAUDE.md)——四家全覆盖。 - skills:面向 Codex/Cursor/Copilot 的放
.agents/skills/;要同时喂 Claude Code 就在.claude/skills/放软链。 - hooks 与沙箱配置没有跨工具标准——这层按工具各写各的,也是这张表存在的意义。
复核补充:一格需要两个来源的事实(2026-09-11)
主对照表每格的文字本身就是它唯一的链接,因此把下面这些「一个来源不够」的事实单独列出:
- Cursor User Rules 不落盘:官方原文 “User rules are also not migrated since they are not stored on the file system.”(Cursor Skills)——表里那一格链接指向的是它「定义在 Customize → Rules」的另一半。
- Codex hooks 的事件清单一共 10 个:
SessionStart、SubagentStart、PreToolUse、PermissionRequest、PostToolUse、PreCompact、PostCompact、UserPromptSubmit、SubagentStop、Stop(Codex Hooks)。 - Copilot 的 cloud 审批与出网:cloud agent 由 GitHub Actions 驱动、防火墙只在该 Actions 环境内生效(Customize the firewall);PR 触发的 workflow 需有写权限的人批准,且 agent 不能直接推默认分支(Responsible use of Copilot agents)。
- Copilot 在 GitHub.com 上设置个人指令的位置:只在 Copilot Chat 内(Adding personal instructions)。