align: ChatGPT Codex 对齐第一批:技能包 + 对照表
对照用户提供的 ChatGPT Codex 工具目录,区分可对齐与 不照搬:核心编程工作流已对齐,ChatGPT 托管专属 (CUA、宠物、Docs/Sites 连接器、图片生成模型)不在 开源宿主编排层范围,不凭空宣称对齐。 第一批只补技能层,不改 worker、不改生产行为: - cloud/skills/live-info:天气/时区/股票/体育,查一级 来源、带来源和快照时间,绝不编数字。 - cloud/skills/document-tools:LaTeX/Word/PDF/表格/ 演示文稿,先核查工具、缺了明说、产出后重读验证。 - cloud/skills/image-workflow:已有图片处理 + 生成工具 已配置时才生成,未配置时明说、绝不顶替。 - docs/chatgpt-codex-alignment.md:逐项对照表与不照搬 的诚实边界,方向为自动化编程任务平台。 - cloud/tests/test_chatgpt_codex_skills.py:校验技能 frontmatter、名字与目录一致、正文非空、无密钥占位。 验证:新测试 2 项全过。播种进租户 codex-home、 worker 改动、CUA/连接器/图片模型均不在本批,另行评审。
This commit is contained in:
1 parent
6d4f87e286
commit
8a26d1973c
5 files changed
+272
No files matched your search
@@ -0,0 +1,55 @@
|
||||
---
|
||||
name: document-tools
|
||||
description: 创建或编译 LaTeX 项目,处理 Word、PDF、表格和演示文稿时使用。先核查本机工具有没有,缺工具就明说,绝不假装产出了文件。
|
||||
---
|
||||
|
||||
# document-tools:文档处理
|
||||
|
||||
## 何时用
|
||||
|
||||
用户要做 LaTeX 编译、Word(.docx)读写、PDF 读写、表格
|
||||
(.xlsx / .csv)处理、演示文稿(.pptx)制作时用。
|
||||
|
||||
## 何时不用
|
||||
|
||||
- 只是读一段纯文本、改代码、写 Markdown:不用本技能,
|
||||
直接用文件工具。
|
||||
- 用户没说要产出文档,只是问文档里写了什么:先读文件,
|
||||
不用走编译流程。
|
||||
|
||||
## 工具前提(先核查,不满足就明说)
|
||||
|
||||
在工作区 shell 里先查,缺什么就报什么,不要跳过核查直接写:
|
||||
|
||||
- LaTeX:`latexmk` / `pdflatex` / `xelatex` 是否存在。
|
||||
- 通用转换:`pandoc` 是否存在。
|
||||
- Python 库:`python3 -c "import docx, openpyxl, pptx, fitz"`,
|
||||
哪个 import 失败就说明哪个缺失。
|
||||
- PDF 阅读:`pdftotext` 或 Python 的 `fitz` / `pypdf`。
|
||||
|
||||
核查命令本身不产出文件,核查失败时回答里写清“缺 XX,
|
||||
本环境无法编译 / 无法处理该格式”,并给出可替代的方案
|
||||
(例如只产出 Markdown / CSV),不要伪造一个文件路径。
|
||||
|
||||
## 步骤
|
||||
|
||||
1. 先确认输入和输出:输入文件路径、输出格式、输出路径、
|
||||
语言(中文 LaTeX 优先 xelatex + CJK 字体,缺字体先报)。
|
||||
2. 选最小工具链:能用 pandoc 就不用手写 LaTeX 模板;
|
||||
能用 Python 库读写就不用先转格式。
|
||||
3. 编译 / 生成后必须验证产出:
|
||||
- 文件确实存在,大小不是 0。
|
||||
- LaTeX:编译日志无致命错误(error / Emergency stop),
|
||||
页数符合预期。
|
||||
- docx / xlsx / pptx:用对应库重新打开一次,能读回
|
||||
刚才写的内容(标题、表头、页数/幻灯片数)。
|
||||
- PDF:能用 `pdftotext` 或 `fitz` 读回文本,确认不是空白页。
|
||||
4. 验证失败时不要把半成品当成品交,先贴出报错,再修。
|
||||
|
||||
## 输出要求
|
||||
|
||||
- 交代产出文件的真实路径、页数 / 幻灯片数 / 表格行数,
|
||||
以及用哪条命令验证过。
|
||||
- 不要编造页数、字数、文件大小;写不出的就写“未验证”。
|
||||
- 涉及用户数据的文件不要写到工作区以外,不要上传到
|
||||
第三方服务,除非用户明确要求。
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
name: image-workflow
|
||||
description: 查看、裁剪、缩放、格式转换已有图片,或在图片生成工具已配置时按描述生成/编辑图片时使用。未配置生成工具时必须明说无法生成,绝不把已有图片或占位图当成生成结果。
|
||||
---
|
||||
|
||||
# image-workflow:图片查看与处理
|
||||
|
||||
## 何时用
|
||||
|
||||
- 查看已有图片、裁剪、缩放、转格式、读图片尺寸和格式。
|
||||
- 用户明确要求“按描述生成一张图”或“按描述改这张图”,
|
||||
且本环境已配置图片生成工具 / API 时。
|
||||
|
||||
## 何时不用
|
||||
|
||||
- 只是写代码、改文本、查文档:不用本技能。
|
||||
- 用户要生成图片,但本环境没有生成工具:不要硬做,
|
||||
走下面的“未配置”分支。
|
||||
|
||||
## 工具前提(先核查,不满足就明说)
|
||||
|
||||
1. 查看和处理已有图片:查 `python3 -c "import PIL"`,
|
||||
以及 `convert` / `magick`(ImageMagick)是否存在。
|
||||
有其一即可做裁剪、缩放、转格式;都没有就明说。
|
||||
2. 生成 / 编辑图片:先查任务环境里是否已配置图片生成
|
||||
工具或 MCP / API(包括需要什么 key、走哪个 endpoint)。
|
||||
没有配置时,回答必须是“本环境未配置图片生成工具,
|
||||
无法按描述生成”,并给出替代方案(例如用 shell 画示意图、
|
||||
或用户提供已有图片后做裁剪/缩放),绝不能:
|
||||
- 把网上找来的图、占位图、已有图片说成是刚生成的;
|
||||
- 编造一个图片路径或图片内容描述。
|
||||
|
||||
## 步骤(已有图片处理)
|
||||
|
||||
1. 先读原图信息:格式、尺寸、文件大小,确认输入路径存在。
|
||||
2. 按用户要求做裁剪 / 缩放 / 转格式,产出到用户指定的
|
||||
路径(未指定时用工作区内的新文件名,不覆盖原图)。
|
||||
3. 验证产出:重新打开产出图,确认格式、尺寸符合要求,
|
||||
文件大小不是 0。
|
||||
|
||||
## 步骤(生成 / 编辑,仅当工具已配置时)
|
||||
|
||||
1. 把用户描述原样记下来,不要自己加没说的元素。
|
||||
2. 调已配置的生成工具,记录工具名、提示词、产出路径。
|
||||
3. 验证产出图存在且能打开,再交给用户;失败时贴出
|
||||
工具报错,不要换一张别的图顶替。
|
||||
|
||||
## 输出要求
|
||||
|
||||
- 每个产出图都要给真实路径和尺寸,生成类还要给提示词。
|
||||
- 未配置时不要绕弯子说“已生成”,直接说缺什么、
|
||||
用户补什么才能生成。
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
name: live-info
|
||||
description: 查询天气、时区、股票价格、体育赛程等实时公开信息时使用。只用可查证的公开来源,绝不编造数字,回答必须带来源和快照时间。
|
||||
---
|
||||
|
||||
# live-info:实时公开信息查询
|
||||
|
||||
## 何时用
|
||||
|
||||
用户问天气、时区换算、某只股票的当前价、某场比赛的赛程或比分等
|
||||
“现在是多少”类问题时用。编程任务里需要查官方文档、发布说明、
|
||||
最新版本时,同样走本技能的查证流程,不要凭记忆给数字。
|
||||
|
||||
## 何时不用
|
||||
|
||||
- 用户只问概念、历史、代码怎么写:不用本技能。
|
||||
- 已经有任务内文件、数据库、日志能直接回答的:以任务内证据为准,
|
||||
不用再上网。
|
||||
|
||||
## 工具前提(先核查,不满足就明说)
|
||||
|
||||
1. 先确认本任务里是否有网页搜索工具(codex-app-server 里是
|
||||
websearch MCP 的 `web_search` / `web_fetch`,生产 worker 需
|
||||
带 `--websearch-mcp` 才播种)。没有搜索工具时,直接告诉用户
|
||||
“本环境无联网查询工具,无法核实实时数字”,不要编一个。
|
||||
2. 有搜索工具时,优先查官方或一级来源:气象部门、交易所、
|
||||
联赛/球队官网、时区数据库说明。聚合新闻、论坛、二手转载
|
||||
只能当线索,不能当唯一来源。
|
||||
|
||||
## 步骤
|
||||
|
||||
1. 把问题拆成可查的实体 + 时间 + 地点:例如“北京明天天气”
|
||||
→ 城市 = 北京,日期 = 明天(换算成具体日期并写出来),
|
||||
指标 = 气温/降水/风力。
|
||||
2. 用 `web_search` 查 1-2 个一级来源,打开来源页核对数字,
|
||||
不要只抄搜索摘要。
|
||||
3. 股票:只报快照价 + 涨跌 + 快照时间,并说明“快照价不是
|
||||
投资建议,盘中价格会变”。不要给买入/卖出建议。
|
||||
4. 时区:先写出两个时区的 UTC 偏移和夏令时状态,再换算,
|
||||
不要只给换算结果。
|
||||
5. 体育赛程:写清联赛、主客队、开赛时间(含时区)、比分
|
||||
是“已结束 / 进行中 / 未开始”哪一种。
|
||||
|
||||
## 输出要求
|
||||
|
||||
- 数字后面必须跟来源和时间,例如“来源:XX 官网,查询时间
|
||||
2026-10-30 00:00 CST”。
|
||||
- 查不到、来源冲突、或时间已过期时,明说查不到 / 冲突,
|
||||
不要选一个看起来顺眼的数字。
|
||||
- 不要把预测(天气预报、分析师目标价)写成事实。
|
||||
|
||||
## 校验
|
||||
|
||||
回答前自查:每个数字都有来源吗?时间写了吗?时区写了吗?
|
||||
有一项没有,就补查或删掉该数字。
|
||||
Reference in new issue
Block a user