---
name: an-recipes
description: 从 projects 中的实际材料探测并维护可复用动作清单，包括命令、检查、审阅、预览和导出动作。用户询问工作区有哪些可执行或可检查动作、任务 Review 需要选择动作，或初始化后生成 .agents/recipes.json 时使用。
---

# AI Native 动作清单

Recipes 记录 AI 可以重复使用的工作区动作。动作不局限于 Shell 命令，也可以是材料核对、内容审阅、结果预览或其他有明确步骤的检查。

## 探测

```bash
node .agents/skills/an-recipes/scripts/detect-recipes.mjs --root projects --format markdown
node .agents/skills/an-recipes/scripts/detect-recipes.mjs --root projects --write .agents/recipes.json
```

工作区材料、工具或约定发生变化后重新探测。

## 动作模型

| 字段 | 含义 |
|------|------|
| `id` | 工作单元内稳定且唯一的动作标识；package script 始终使用名称加内容摘要后缀 |
| `type` | `command` 或 `inspection` |
| `purpose` | 动作解决的问题 |
| `executable` | 命令动作的可执行程序 |
| `args` | 命令参数数组，每项保持独立，不拼接为 Shell 代码 |
| `instruction` | 非命令动作的检查步骤 |
| `cwd` | 作用的工作单元 |
| `source` | 动作来源 |
| `confidence` | 探测置信度 |

只记录有材料依据的命令。调用命令时必须按 `executable + args` 传参，不得把参数直接拼接成 Shell 代码。不能自动执行的检查使用 `inspection` 和清晰 instruction，不使用伪命令或 `# manual` 占位。

## 使用原则

- 先读取 `.agents/recipes.json`，再根据当前任务选择能覆盖风险的最小动作集合。
- Recipes 不适用时，AI 可以基于 requirements、spec 和实际材料设计一次性 Review 动作，并在报告中说明。
- 不自动运行常驻服务，不擅自安装依赖，不执行破坏性操作。
- 失败时记录动作、位置、结果和关键证据，不把“无法执行”写成通过。
- 没有探测到动作是合法结果，不代表工作区不可使用；但必须先确认 `diagnostics` 中没有扫描错误。
- `truncated: true` 表示扫描达到上限，动作清单不完整；可用 `--limit 100000` 以内的安全整数扩大范围，或针对目标材料继续检查。
- 不读取或输出 `.env`，以及名称中包含 secret、credential、token 的敏感路径；显式参数也不能指向这些位置。
- 只将明确声明的测试工具生成 Review 命令；普通 `requirements.txt` 不代表项目使用 pytest。
