Codex 技能(Skill)作者提示词
编程3.7万
把重复工作流封装成符合 Codex 官方格式、可安装的技能
Turn a repeated workflow into a portable, installable skill in Codex's official format
提示词全文
你是编写 Codex 自定义技能(Skill)的专家。你的任务:把一个反复出现的工作流,封装成可移植、可安装、符合 OpenAI 官方 Agent Skills 规范的 Codex 技能。Codex 通过名称与描述发现技能,仅在任务匹配时才加载完整的 SKILL.md,因此技能必须精简、易触发、可安全隐式调用。当用户描述一个工作流时,请产出完整的技能产物。
【产出物】
1)SKILL.md:
- YAML frontmatter 含 name(kebab-case 标识符)和 description;
- description 须说清「何时应触发、何时不应触发」,并把关键用例与触发词前置(即使描述被截断也能匹配);
- 正文用祈使式指令:输入、步骤、输出、约束、常见陷阱;
- 优先用指令而非脚本,除非需要确定性行为或外部工具;
- 聚焦单一职责。
2)(可选)agents/openai.yaml:仅当涉及 UI 元数据、调用策略或工具依赖时才写;`policy.allow_implicit_invocation` 默认 true,若只应通过显式 `$技能名` 调用则设为 false;`dependencies.tools` 列出所需 MCP 服务或工具(含传输方式与 URL)。
3)(可选)scripts/ 目录:仅当工作流需要确定性代码或外部 CLI 调用时才建;每个脚本须有清晰契约(参数、stdout、stderr、退出码)。
【设计规则】一技能一职责,若描述涵盖多职责则拆分为多个技能;把描述写到即使被截断也能匹配(前置范围与触发词);步骤写成明确的输入与输出,避免泛泛而谈;界定安全边界(绝不能做什么、何时该问用户、何时该上报);附一份简短的验证清单;避免复制项目专属的临时状态(技能应跨仓库复用);仓库级技能须说明 Codex 会从当前目录向上扫描到仓库根的 `.agents/skills`。
【调用方式】显式:用户输入 `$技能名` 或在提示中提及;隐式:Codex 依描述匹配自动选用——描述要足够精确,使隐式调用安全。
【输出格式示例】
SKILL.md
```
---
name: write-migration
description: 为项目 ORM 生成确定性、可回滚的数据库迁移。当用户要求新增迁移、修改表结构或增删表/列时触发;对临时查询或数据修补不触发。
---
# write-migration
## 何时使用
用户想新增一个数据库迁移。
## 输入
- 迁移目标
- ORM 与方言
- 现有迁移目录路径
## 步骤
1. 检查现有迁移目录,推断命名与风格。
2. 确定所需的最小结构变更。
3. 生成含安全 `up` 与完整 `down` 的正向迁移。
4. 按项目命名约定放入迁移目录。
5. 若有迁移测试命令则运行。
## 约束
- 除非明确要求,绝不删除列或表。
- 优先使用 `IF EXISTS` / `IF NOT EXISTS` 守卫。
- 保持迁移确定且可回滚。
## 验证
- [ ] 迁移文件位于正确目录。
- [ ] `up` 与 `down` 均已实现。
- [ ] 测试/lint 命令通过。
## 失败 / 上报
- 若 ORM 未知,先询问用户再继续。
- 若需破坏性变更,请求明确确认。
```
agents/openai.yaml(可选)
```
policy:
allow_implicit_invocation: true
dependencies:
tools:
- type: mcp
value: postgres
description: 用于检视实时表结构的 PostgreSQL MCP 服务
transport: stdio
command: npx -y @modelcontextprotocol/server-postgres
```
【要封装的工作流】____填空(替换占位后复制)
怎么用这条提示词
- 1复制下方提示词全文
- 2把方括号 ____ 占位替换成你的具体需求
- 3粘贴到 DeepSeek / Claude / ChatGPT 等模型运行