智能体生成器
Skill: agents-generator
> [!WARNING]
> [仅限授权使用] 本技能会写入或更新目标项目中的 AGENTS.md、.agents/rules/、可选的平台指令文件以及带时间戳的备份文件。请先阅读检测到的输入和建议的输出,在修改目标文件前获得批准,且仅在用户预期的项目范围内使用。
何时使用
当用户希望实现以下目标时使用此技能:
- 创建一个完整的、项目特定的
AGENTS.md,而非通用的 Agent 规则;
- 为检测到的框架、测试、数据库、样式或单体仓库包生成配套规则;
- 创建精简版
AGENTS.md、在写入前预览更改,或在技术栈变更后更新现有指令。
不要在未检查目标项目的情况下凭空捏造规范,不要覆盖用户范围之外的指令,也不要将生成的指南视为人工审核的替代品。
该技能为目标项目生成量身定制的 AGENTS.md + .agents/rules/*.md —— 它不是带有占位符的模板,而是与项目实际工具链相匹配的动态文档。
你将获得什么
对于一个使用 Bun + Next.js 16 + Tailwind + Vitest + Server Actions 的项目,该技能将生成:
AGENTS.md
├── Setup commands: bun install, bun dev, bun run test:run, bun doctor
├── Verification Cycle: bunx tsc --noEmit → bun run lint → bun run test:run → bun doctor
├── Conventions: "Bun always. Plain TypeScript types + guards."
└── Architecture → .agents/rules/architecture.md
.agents/rules/
├── architecture.md ← 包含真实目录和精确版本的 ASCII 图表
├── frontend-patterns.md ← 组件规则、状态位置、信任边界
├── server-actions.md ← downloadVideo() 流程, DownloadResult 类型, 速率限制器
├── testing.md ← "5 个文件中的 74 个测试", vitest 命令, mock 模式
├── git-workflow.md ← Conventional commits, pre-commit 检查
└── sdd-workflow.md ← Preflight 默认值, post-apply 验证
不会生成的规则示例:backend.md(无 NestJS)、database.md(无 ORM)、i18n.md(硬编码西班牙语)、forms.md(手动输入)、styling.md(Tailwind 已包含在前端规则中)。
激活契约
为目标项目生成 AGENTS.md + .agents/rules/*.md。绝不猜测 —— 必须先阅读项目的实际文件。
模式选择
| 用户表述 | 模式 | 输出 |
|-----------|------|--------|
| "simple AGENTS.md", "just the basics", "minimal" | Minimal (精简) | 单个 AGENTS.md(约 30 行,无规则文件) |
| "full AGENTS. | Full (完整) | AGENTS.md + 完整的 .agents/rules/ 目录 |
| "md", "with rules", "complete" 或默认 | Full (完整) | AGENTS.md + .agents/rules/*.md |
| "update AGENTS.md", "refresh", "my stack changed" | Update (更新) | 对比现有内容,仅重新生成变更部分 |
Dry-run (试运行) 模式
如果用户要求 "preview" (预览)、"show what would change" (显示变更内容) 或 "dry-run" (试运行):执行所有检测但不要写入文件。显示检测摘要、将要创建的文件、跳过的规则以及输出示例。
硬性规则
- 先读后写,严禁读取密钥。 在生成任何内容前,先读取
package.json、非密钥配置文件和目录结构。绝不要打开.env、.env.local、凭据存储或类似的密钥文件。仅通过.env.example占位符和源代码引用(如process.env.NAME)来推断环境变量名称,不得读取或报告具体数值。
- 优先检测包管理器。 检查锁文件:
bun.lock$\rightarrow$ bun,pnpm-lock.yaml$\rightarrow$ pnpm,package-lock.json$\rightarrow$ npm,yarn.lock$\rightarrow$ yarn。绝不要默认使用 npm。所有命令必须使用检测到的包管理器。
- 仅生成适用内容。 纯前端项目不生成后端规则;没有 ORM 的项目不生成数据库规则。
- 默认不执行项目脚本。 包管理器脚本是受仓库控制的 Shell 入口。检测并记录候选的格式化/ Lint 命令,但除非用户在审查了具体脚本内容和调用工具后单独请求执行,否则不要运行它们。
- 验证命令。 输出中的每个命令必须在
package.json的 scripts 中存在。
- 禁止使用占位符。 扫描输出中是否包含
{{、TODO、add here、...。如果存在,则拒绝通过。
- 先备份。 如果文件已存在,将其复制到
.agents/backups/并加上时间戳。
执行步骤
通用步骤
1. git rev-parse --show-toplevel $\rightarrow$ 获取项目根目录。
2. 优先检测包管理器:检查锁文件。bun.lock $\rightarrow$ bun, pnpm-lock.yaml $\rightarrow$ pnpm, package-lock.json $\rightarrow$ npm, yarn.lock $\rightarrow$ yarn。绝不要默认使用 npm。
3. 读取 package.json(脚本、依赖、工作区)。保存脚本用于后续验证。
4. 读取非密钥配置文件并探索目录结构。排除除仅含占位符的 .env.example 以外的所有 .env* 文件;绝不读取密钥值。
5. 选择模式(如果含义模糊则询问用户)。
Full (完整) 模式
1. 读取 assets/agents-full.md —— 这是包含所有章节和填充规则的 AGENTS.md 结构。
2. 读取项目文件,用真实数据填充每个占位符。绝不使用通用文本。
3. 在项目根目录生成 AGENTS.md。将内容包裹在 <!-- AGENTS-GENERATED-START --> / <!-- AGENTS-GENERATED-END --> 之间。
4. 针对每个适用的规则类别,从 assets/ 读取相应模板并在 .agents/rules/ 中生成规则文件。
5. 如果检测到 Claude (.claude/ 或 CLAUDE.md):根据 assets/claude.md 生成精简的 CLAUDE.md。
6. 如果检测到平台文件:根据 assets/platform.md 生成。
Minimal (精简) 模式
1. 读取 assets/agents-minimal.md —— 30 行标准的 agents.md 格式。
2. 生成单个 AGENTS.md。
Update (更新) 模式
1. 备份现有文件。
2. 重新检测项目状态。
3. 对比新旧内容。仅重新生成发生变更的类别。
生成后处理
- 将检测到的
[format cmd]和[lint cmd]作为未执行的候选命令报告。不要自动运行;仅在用户单独授权且其具体的项目控制脚本内容经过审查后,才执行其中一个。
- 扫描
{{、TODO、...。修复所有发现的问题。
- 验证所有命令均存在于
package.json的 scripts 中。
- 如果
AGENTS.md超过 300 行,发出警告。如果超过 500 行,则进行迁移。
- 在宣布完成前,使用 Conventional Commit 格式总结所有变更。
- 报告:检测到、生成、跳过的内容以及置信度分数。
输出约定
返回:
- 使用的模式及其原因
- 创建/修改的文件
- 检测摘要(所有类别)
- 生成和跳过的规则(含原因)
- 置信度分数
局限性
- 生成的指令为建议方案,在采用或提交前需要人工审核。
- 命令验证仅限于目标项目中可见的脚本和文件;无法证明工具、服务或平台特定命令在所有环境中均能运行。
- 项目提供的包脚本为不可信的可执行代码。脚本的生成和文档化并不代表授权运行。
- 该技能不授权在预定项目范围之外进行写入,也不替代项目特定的安全、构建或部署审核。
参考资料
| 优先级 | 文件 | 用途 |
|----------|------|---------|
| 必须 | assets/agents-full.md | 包含所有 25+ 章节和填充规则的完整 AGENTS.md 模板 |
| 必须 | assets/agents-minimal.md | 30 行 agents.md 标准模板 |
| 全量模式 | assets/architecture.md | 架构规则模板 |
| 全量模式 | assets/frontend-patterns.md | 前端模式模板 |
| 全量模式 | assets/server-actions.md | Server actions / 后端模板 |
| 全量模式 | assets/testing.md | 测试策略模板 |
| 全量模式 | assets/git-workflow.md | Git 工作流模板 |
| 全量模式 | assets/sdd-workflow.md | SDD 工作流模板 |
| 全量模式 | assets/styling.md | 样式规则模板 |
| 全量模式 | assets/forms.md | 表单模式模板 |
| 全量模式 | assets/database.md | 数据库规则模板 |
| 全量模式 | assets/i18n.md | i18n 规则模板 |
| 全量模式 | assets/backend.md | 后端/NestJS 模板 |
| 条件触发 | assets/claude.md | CLAUDE.md — 仅在检测到 Claude 时使用 |
| 条件触发 | assets/platform.md | 多平台文件 |
| 条件触发 | assets/agents-nested.md | Monorepo 嵌套 AGENTS.md |
| 参考 | references/decision-matrix.md | 完整的检测逻辑和边缘情况 |
| 参考 | references/example-output/README.md | 质量基准 |
| 参考 | references/template-filling-guide.md | 占位符填充规则 |