跳转至

A2 — 让 CLI agent 每次都按同一套方法做事

← A1 — 安全完成第一个 CLI 任务 · Track A: CLI Power User 第 2 站 · 下一站:Stage 5 的 Track A 核心

这一站只解决一个问题:怎么让 CLI agent 下次进入同一个 repo 时,还记得同一套做事方法?

你会把每次都要知道的规则写进 Project instructions,把经常重复的步骤做成 Skill,临时任务则留在 One-off prompt 里。这就像把“每天都要重新交代”改成“墙上有守则,工具箱里有操作卡”。

🧩 先认识三个核心词

核心词 它是什么、像什么 A2 怎么用 不是什么
Project instructions(项目规则) 每次进入工作室都要看的守则 放项目用途、禁止事项、测试指令和交付格式 不放只用一次的任务或长篇参考资料
Skill(操作卡) 需要时才拿出的可复用操作卡 放 review、release、整理文档等重复流程 不是每家 CLI 都使用相同路径、权限或 frontmatter
One-off prompt(单次提示) 只交代今天这一件事的便签 放本次任务、范围、输入和成功条件 不用它重复粘贴每次都相同的项目规则

📌 学习目标

  • 用四个字段写出一份短而清楚的项目规则。
  • 把重复的 review 流程做成一个只读 Skill。
  • 分清哪些内容可以共用,哪些文件名、权限和命令要根据工具调整。
展开时间、先备条件、环境和费用
  • 时间:先完成 CLI-5、CLI-6;CLI-7、CLI-8 可以之后再做,不必一次完成。
  • 先备条件:完成 A1,会看 git status、git diff,并有一个不含秘密、可恢复的 demo repo。
  • 环境:选一个主要使用的 CLI agent。Claude Code、Codex、Gemini CLI、OpenCode 的文件名不完全相同,下方有对照。
  • 费用:写项目规则文件和 Skill 不会产生模型费用;请 CLI 测试时可能使用额度或 API token。以当天官方 usage/pricing 页面为准。

还没完成 A1 时,先回去跑一次“只读检查 → 看计划 → 小改动 → git diff → 恢复”。

📚 必读

  1. 先看你主要使用的工具的 project-instructions 官方文档:Codex 看 AGENTS.md、Claude Code 看 CLAUDE.md、Gemini CLI 看 GEMINI.md、OpenCode 看 AGENTS.md。
  2. 再看你所用工具的 Skill 文档:Codex/ChatGPT、Claude Code、Gemini CLI、OpenCode。
  3. 最后回看 Stage 2 — Prompt 设计,把“任务、范围、成功条件”补进单次 prompt。
展开四个 CLI 的项目规则文件和 Skill 位置

官方资料查核日:2026-08-30 UTC。

工具 项目规则 Project Skill 要注意什么
Codex AGENTS.md .agents/skills/<name>/SKILL.md 规则会按目录分层;较近的规则较晚加载
Claude Code CLAUDE.md .claude/skills/<name>/SKILL.md 旧的 .claude/commands/ 仍兼容,但新流程优先使用 Skill
Gemini CLI GEMINI.md .agents/skills/<name>/SKILL.md 或 .gemini/skills/… 启用 Skill 时会要求同意;不要把秘密放进 Skill
OpenCode AGENTS.md 优先;无此文件时用 CLAUDE.md .opencode/skills/…、.agents/skills/… 或 .claude/skills/… 先查 rules、skills 与 permission 设置

共同的是“要交代哪些事”;不同的是文件名、搜索位置、权限和额外设置。不要把一个工具的专属功能当成所有 CLI 都有。

🛠 动手练习

动手练习 CLI-5:做一张最小项目规则卡

成果: CLI agent 每次进入 repo,都知道这个项目做什么、不能碰什么、怎么验证,以及完成时要回报什么。

先从上方对照表中选出属于你所用工具的项目规则文件,再放入这四件事:

# 项目规则

- 用途:这是一个练习用文档 repo。
- 不可做:不要删文件、不要读取秘密、不要自动 commit 或 push。
- 验证:修改后执行 `git diff --check`。
- 回报:说明改了什么、验证结果,以及仍未处理的事。

这张卡只放“每次都要知道”的事。长篇教程、API 参考和偶尔才用的流程不要塞进来。

展开 CLI-5 的建立和验证步骤
  1. 在干净的 demo repo 建立你主要使用的工具的项目规则文件。先执行 git status --short,不要覆盖别人的未完成修改。
  2. 把上面的四个字段换成这个 demo repo 的真实内容。指令必须可以复制执行;不要写“把格式弄好”这种看不出成功与否的句子。
  3. 开一个新的 CLI session,请它只读规则并用自己的话重述。如果它找不到文件,先查官方的文件名和加载范围。
  4. 给一个会碰到禁止事项的测试,例如“直接 commit 这个改动”。正确结果是 agent 停下或先询问,而不是自行 commit。
  5. 先用 git status --short -- <规则文件路径> 看它是旧文件还是新文件。
  6. 旧文件:用 git diff -- <规则文件路径> 检查。只有确认开始前该文件干净,才用 git restore -- <规则文件路径> 恢复。
  7. 新文件:Git 会显示 ??;git restore 不能移除它。你可以保留它作为练习成果。如果不要,先核对完整路径,再用文件管理器只删除这一个文件,最后重新运行 git status --short -- <规则文件路径>。

没有任何行数能保证规则一定好。只保留会改变行为的内容;某段只在特定任务中使用时,把它移到 Skill 或其他按需文档。

动手练习 CLI-6:把重复 review 做成 Skill

成果: 你能让 agent 执行同一套只读 review,输出 PASS 或具体问题,不会自己 commit、push 或部署。

Claude Code 使用 .claude/skills/review-changes/SKILL.md;Codex、Gemini CLI、OpenCode 可以使用 .agents/skills/review-changes/SKILL.md。建立文件后放入:

---
name: review-changes
description: Review the current git diff and report concrete risks. Use when the user asks to review local changes.
---

1. Read `git diff --no-ext-diff HEAD` without changing files.
2. Check for secrets, unsafe commands, broken links, and missing verification.
3. Report `PASS` when no problem is found; otherwise list each problem with its file and reason.
4. Do not edit, commit, push, deploy, or send messages.

name 是操作卡名称;description 告诉 agent 什么时候拿这张卡。正文才是要遵循的步骤。

展开 CLI-6 的测试、权限和兼容说明
  1. 先完整读完 SKILL.md,确认没有下载陌生程序、读取秘密或改变外部系统的步骤。
  2. 在 demo repo 做一个小文档改动,但不要 commit。请 agent“review my local changes”,观察它是否找到 Skill;也可以按照工具文档手动启用。
  3. 对照 git diff 检查回报。测试后执行 git status --short,确认 Skill 没有偷偷改文件。
  4. 想在多个 CLI 共用时,先共用上面的核心内容,再根据每个工具调整文件夹、权限和工具专属 frontmatter。未知字段可能会被忽略,不要假设每个设置在所有地方都有效。

Claude Code 的 .claude/commands/<name>.md 目前仍能建立同名 /name,但 Skills 已包含 custom commands,并支持附加文件和按需加载。本教程使用 Skill;只有维护旧项目时才需要理解 legacy command。

动手练习 CLI-7:把大任务拆成看得见的小步骤

成果: 你能把一个可恢复的文档任务拆成“盘点 → 计划 → 修改 → 验证”,每一步都有看得见的结果。

展开 CLI-7 的比较练习和 multi-agent 延伸

选一个小任务,例如“给两份 README 补上同一个运行指令”。第一次先请 agent 提计划,不改文件;第二次请它依次盘点两份文件、列出差异、修改、运行 git diff --check,最后回报仍未处理的事。

比较两次结果时,只问:有没有漏文件、能不能恢复、验证是否真的执行。不要为了让流程看起来厉害,就把每个小步骤都分派给不同 agent。如果任务需要互相等待、会修改同一批文件,或者你还说不清成功条件,先用单一 agent。

完整的 subagent、agent team、后台工作和审查流程放在 Stage 5.5。A2 只练习把工作拆清楚。

动手练习 CLI-8:做一张 portable prompt 对照卡

成果: 你能保留同一个任务核心,并清楚标出换工具时要修改的文件名、权限、命令和启用方式。

展开 CLI-8 的跨工具测试步骤
  1. 共用核心只写四个字段:任务、范围、禁止事项、成功条件。
  2. 在第一个 CLI 的干净 demo repo 中运行一次,记录 CLI 版本、模型/provider、权限设置和 git diff。
  3. 恢复后再换第二个 CLI。不要让两个会写文件的 session 同时操作同一个目录。
  4. 另外记下差异:project-instructions 文件名、Skill 位置、shell/sandbox 权限、工具名称、登录和费用。

“Portable”代表核心意思容易迁移,不代表整段文字和设置可以零修改复制。如果第二个工具没有同名功能,就回到成功条件,选择它真正支持的方法。

🎯 精选 Projects

下面按用途分成五组。同一组只显示一次分类栏,避免重复文字把表格撑乱。

类型资源先看什么适合什么时候使用推荐度来源
官方项目规则Codex AGENTS.md分层加载和优先顺序为 Codex 编写 repo 规则⭐⭐⭐⭐⭐官方文档
Claude Code CLAUDE.md什么时候放规则、什么时候移到 Skill为 Claude Code 编写持续规则⭐⭐⭐⭐⭐官方文档
Gemini CLI GEMINI.md目录范围和加载方式为 Gemini CLI 放项目 context⭐⭐⭐⭐⭐官方文档
OpenCode AGENTS.mdrules 加载、合并与 fallback为 OpenCode 编写规则⭐⭐⭐⭐⭐官方文档
官方 Skill 文档Codex/ChatGPT Build skillsSKILL.md 结构和加载位置制作 Codex 可复用流程⭐⭐⭐⭐⭐官方文档
Claude Code Skills按需加载、legacy commands、权限制作 Claude Code Skill⭐⭐⭐⭐⭐官方文档
Gemini CLI Agent Skillsdiscovery、安装同意和启用同意管理 Gemini CLI Skill⭐⭐⭐⭐⭐官方文档
OpenCode Agent Skills支持位置、frontmatter、permission制作 OpenCode Skill⭐⭐⭐⭐⭐官方文档
标准和易读范例Agent Skills specification共用格式的最低要求让核心内容更容易跨工具使用⭐⭐⭐⭐标准
anthropics/claude-plugins-official官方 plugin 内的 Skills 和 commands查看 Skill 如何被打包分享⭐⭐⭐⭐⭐GitHub repo
mattpocock/skills工程工作中使用的短 Skill 范例比较不同写法⭐⭐⭐⭐GitHub repo
obra/superpowers真实 workflow 如何拆成 Skills完成第一个 Skill 后再看⭐⭐⭐⭐GitHub repo
索引和 prompt 练习hesreallyhim/awesome-claude-code按类型查找 Claude Code 资源已经知道需求、想找更多范例时⭐⭐⭐GitHub repo
anthropics/prompt-eng-interactive-tutorial一步一步比较 prompt 写法CLI-8 的共用核心不清楚时⭐⭐⭐⭐官方 GitHub repo
Repo context 工具yamadashy/repomix生成一次性的 codebase 快照需要把 repo 内容整理给 agent 时⭐⭐⭐⭐⭐GitHub repo
langchain-ai/openwiki建立可持续更新的 repo wiki大型 repo 需要按需查文档时⭐⭐⭐⭐GitHub repo

✅ 进入 Stage 5 前的自我检查

  • 我能用自己的话分清项目规则、Skill、单次 prompt。
  • 我的项目规则卡有用途、禁止事项、验证指令、交付格式,而且 agent 能读到。
  • 我的 review Skill 只读取变更,测试后 git status --short 没有多出非预期修改。
  • 我知道“共用核心”不等于“所有 CLI 的文件名和权限都一样”。

四项都做到,就进入 Stage 5 的 Track A 核心,先读 5.1–5.4,再前往 A3。如果还没做到,先回 demo repo 重跑 CLI-5 或 CLI-6,不必先读完所有补充资料。

展开常见问题和修正方式
  • 规则写很多,agent 还是漏掉:先删掉背景故事和重复句,只保留可以观察的行为。必须每次固定执行的安全检查,应使用工具提供的 hook/policy,而不是只靠文字提醒。
  • Skill 没出现:检查文件夹、SKILL.md 大小写、YAML frontmatter 和工具支持的位置,再按照官方方式 reload 或重开 session。
  • Skill 自己做了危险动作:把 deploy、send、commit、push 改为只能由用户明确启用,并先用只读版本测试。第三方 Skill 要先读完内容和 scripts。
  • 同一份 Skill 在另一个 CLI 中坏掉:保留共同的目标和步骤,重新对照那个工具承认的 frontmatter、permission 和 tool 名称;不要靠猜。
  • 项目资料太多:项目规则只当地图,细节放在 docs/、Skill 的 references/ 或其他按需文档。规则越长不代表越可靠。

安全底线:规则和 Skill 都是文字指令,不是绝对防护。不要放 API key、token 或个人数据;任何会写文件、commit、push、部署或调用外部服务的流程,都要有看得见的权限边界和验证步骤。