name: ms description: 创建、更新或重构此仓库中的Codex技能,包括SKILL.md、frontmatter触发文本、agents/openai.yaml以及scripts/references/assets。当被要求创建或改进技能、根据使用证据(例如通过$seq)收紧触发描述、重新生成/验证agents/openai.yaml或调整技能元数据/工作流时使用。
ms
概述
以最小差异创建和更新Codex技能。直接在技能文件夹中工作(无外部注册表),保持技能简洁。
硬约束
- 最小差异:仅更改满足新需求所需的内容。
- 无额外文档:不添加README/INSTALL/CHANGELOG类型的文件。
- Frontmatter:
- 默认:仅
name和description。 - 更新系统技能时保留现有允许的键(例如
metadata、license、allowed-tools)。 name必须是连字符格式(<=64字符)并与文件夹名匹配。description是触发表面:包含“何时使用”提示;无尖括号;<=1024字符。
- 默认:仅
- SKILL.md正文:
- 使用祈使语气。
- 保持在500行以下;将详细细节放入
references/。 - 不要在正文中放置触发指导;将其放在frontmatter
description中。
agents/openai.yaml(如果存在/需要):- 优先通过
generate_openai_yaml.py生成。 short_description必须在25-64字符之间。default_prompt必须是一个短句并提及$skill-name。
- 优先通过
- 完成证明(必需):
- 记录
agents/openai.yaml处理状态为:regenerated、verified unchanged或not present。 - 在最终摘要中包含使用的确切
quick_validate.py命令及其通过/失败结果。
- 记录
- 在宣布完成之前始终运行
quick_validate.py。- 推荐(无全局安装):
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/quick_validate.py <path/to/skill>
- 注意:skill-creator脚本需要PyYAML(
import yaml)。
- 推荐(无全局安装):
工作流决策树
- 如果匹配技能已存在:运行更新工作流。
- 如果没有匹配技能:运行创建工作流。
- 如果名称、位置或触发不明确:询问1-3个针对性问题,然后继续。
- 如果改进
ms本身:首先运行Seq反馈循环,并使用该证据选择最小的更新集。
创建工作流
- 去重:搜索已覆盖意图的现有技能;优先更新而非创建近重复项。
- 发现和定义:收集2-3个具体用户提示,然后编写:
- 问题陈述(1行)
- 成功标准(我们如何知道它工作)
- 规划可重用资产:决定是否需要
scripts/、references/或assets/;仅创建必要的内容。 - 初始化(脚手架):
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/init_skill.py <skill-name> --path codex/skills- 仅在需要时添加
--resources scripts,references,assets。 - 如果现在需要UI元数据,传递
--interface key=value(可重复)。
- 编写
SKILL.md:- 更新frontmatter
description以包含具体触发(文件类型、工具、任务、关键短语)。 - 保持正文过程化和可组合(决策树 + 步骤 + 指向
references/的指针)。
- 更新frontmatter
- 同步UI元数据(可选但推荐用于新技能):
- 生成或重新生成:
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/generate_openai_yaml.py codex/skills/<skill-name> --interface key=value - 如果技能已有
default_prompt,在覆盖中再次包含它(生成器不推断它)。 - 对于字段约束,阅读
codex/skills/.system/skill-creator/references/openai_yaml.md。
- 生成或重新生成:
- 验证:
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/quick_validate.py codex/skills/<skill-name>
- 与用户迭代:收紧触发、移除冗余,并将可重复代码提升到
scripts/。
更新工作流(原地)
- 在
codex/skills中定位目标技能文件夹(或codex/skills/.system用于系统技能)。 - 阅读当前
SKILL.md和资源以识别所需的最小更改集。 - 原地编辑:
- 如果触发更改,更新frontmatter
description。 - 以最小差异调整工作流、任务或引用(无格式变动)。
- 仅当创建真实重用时添加或移除资源文件夹。
- 如果触发更改,更新frontmatter
- 同步UI元数据:
- 如果
agents/openai.yaml存在,保持其与技能一致并在过时时重新生成。 - 如果缺失且需要UI元数据,使用
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/generate_openai_yaml.py <path/to/skill> --interface key=value创建。
- 如果
- 使用
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/quick_validate.py <path/to/skill>验证。 - 总结更改和下一步。
- 包括
openai_yaml: regenerated|verified unchanged|not present。 - 包括
quick_validate: <exact command> -> <result>。
- 包括
Seq反馈循环(用于改进ms)
当目标技能是ms时,编辑前挖掘最近会话:
- 收集提到
$ms的助手输出:uv run codex/skills/seq/scripts/seq.py query --root ~/.codex/sessions --spec '{"dataset":"messages","where":[{"field":"role","op":"eq","value":"assistant"},{"field":"text","op":"contains","value":"$ms"}],"select":["path","timestamp","text"],"sort":["timestamp"],"format":"jsonl"}'
- 计算必需证明标记的遵守率:
quick_validate.pyuv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/quick_validate.pyagents/openai.yamlgenerate_openai_yaml.py
- 将重复的失误提升为最小切口的SKILL.md约束/工作流编辑。
触发示例
- “创建一个技能来管理OpenAPI规范并生成SDK。”
- “更新技能X以包括新工作流并重新生成agents/openai.yaml。”
- “重构此技能的SKILL.md并为模式添加references/。”
- “重构此技能的SKILL.md,将详细细节移动到references/,并保持在500行以下。”