关于 setup-env
setup-env 是用于统一配置多个编码 Agent 全局规则的技能,将单一规则源部署到不同 harness,并检查 CLI 与本机工具状态。它也可配置 Rust 编译缓存,但只在满足安全条件时修改 Cargo 配置。
主要功能
- 01跨 harness 链接或复制全局规则
- 02检查规则部署状态及 CLI 可用性
- 03区分 cargo-nextest 未安装与路径缺失
- 04安全配置 sccache 编译缓存
- 05备份并报告已有内容
适用场景
- 01为多个 Agent CLI 部署统一约定
- 02检查全局规则是否与源文件同步
- 03排查 cargo-nextest 在启动环境中不可见
- 04在共享工作树间配置 Rust 编译缓存
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gitbobobo/ skills --skill setup-env安装后在 Claude Code 中输入/setup-env确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
rules/AGENTS.mdscripts/setup-env.mjssetup-env.test.mjs详细介绍
来自项目 READMEsetup-env
把 rules/AGENTS.md(本技能目录下,唯一真源)链接到各 harness 的全局规则路径,让所有 CLI 代理在任何项目里都加载同一套约定;通用规则涵盖重命令遵守机器调度和单一最终验证负责人,具体编排流程留在对应技能。同步后仍以项目规则优先。同时报告各 harness CLI 与本机工具(如 cargo-nextest)是否可用——工具只报告不安装。cargo-nextest 不在 PATH 时再探测 CARGO_HOME 和默认 Cargo bin,区分「未安装」与「已安装但 PATH 不可见」;后者在实际代理启动环境补路径,再从新代理执行 cargo nextest --version 验证。装了 sccache 时,把它写进 $CARGO_HOME/config.toml 的 [build] rustc-wrapper,让多个工作树共享 Rust 编译缓存(已有别的 wrapper 或设置了 RUSTC_WRAPPER 时不覆盖;改写前先备份原文件);没装只报告。
步骤
- 体检:
node <技能目录>/scripts/setup-env.mjs --check,逐项看状态:已链接 / 副本一致 / 副本过期 / 有别的内容 / 缺失。 - 执行:
node <技能目录>/scripts/setup-env.mjs。Windows 或符号链接权限不足时用--copy。 - 核对备份:脚本对已有非空内容会先备份成
<文件>.bak-<时间戳>再替换。出现备份就提醒用户检查旧内容是否需要合并。 - 完成标准:脚本退出码为 0,且输出中每个 harness 显示「已链接」或「副本一致」。
覆盖的 harness
| harness | macOS / Linux | Windows |
|---|---|---|
| devin | ~/.config/devin/AGENTS.md | %APPDATA%\devin\AGENTS.md |
| codex | ~/.codex/AGENTS.md | ~/.codex/AGENTS.md |
| claude / claudeAgent | ~/.claude/CLAUDE.md | ~/.claude/CLAUDE.md |
| cursor | ~/.cursor/rules/global.mdc | ~\.cursor\rules\global.mdc |
| factory droid | ~/.factory/AGENTS.md | ~\.factory\AGENTS.md |
| pi | ~/.pi/agent/AGENTS.md | ~\.pi\agent\AGENTS.md |
新增 harness 时改 scripts/setup-env.mjs 里的 TARGETS。pi 的目录可被 PI_CODING_AGENT_DIR 覆盖,脚本也照这个变量取路径。
pi 备注:在 Windows 上,pi 只去 C 盘的 Program Files 找 Git Bash,找不到就用 PATH 上的 System32\bash.exe,也就是 WSL。Git 装在其他盘时,体检会报 pi:shell 待处理,并给出应写进 <agent-dir>/settings.json 的 "shellPath";照提示写入后重跑体检确认。
Factory Droid 备注:
- 官方文档确认
~/.factory/AGENTS.md是跨项目的个人指令层;Droid 还会检查~/.agents/、~/.agent/个人目录,本脚本取~/.factory为主落点。 - 优先级语义:项目
AGENTS.md优先于个人文件——个人层放与仓库无关的通用约定,不会覆盖项目规则。 - 逐次调用另可用
droid --append-system-prompt-file <path>追加提示词(仅当次进程生效,不是持久配置)。
Cursor 备注:
- cursor-agent 扫描
~/.cursor/rules/的.mdc文件;脚本写入带alwaysApply: truefrontmatter 的派生文件(不能符号链接,内容需要包裹),改了rules/AGENTS.md后所有机器都要重跑脚本。 - Cursor 设置 UI 里的 User Rules 存在账号上、由服务端下发(
getAllCursorRules),是另一条官方路径,可跨设备同步但只能手动维护,和本文件制互不妨碍。 - 已知上游怪癖:Agents Window 的 Settings 界面可能不列出
~/.cursor/rules下的文件级规则(论坛确认 bug),不影响 agent 运行时加载。
边界
- 全局规则是「会被加载」,不是「必定遵守」。跨 harness 委派(
delegate_task)时的硬性约束仍要原文写进任务 prompt 转述。 - 仓库级规则仍放各仓库的 AGENTS.md;本文件只放与仓库无关的通用约定。
- 改约定只改
rules/AGENTS.md。符号链接立即生效;--copy部署过的机器要重跑本脚本。 - 本技能只管全局规则和上述 cargo 全局配置,不装 CLI、不改项目。技能本身的安装走
docs/setup.md的npx skills流程。