浏览 AI 使用教程
操作教程

Codex Skill输入输出:文章打包的完整成功与缺料契约

以文章打包为例定义必填材料、可缺封面、输出文件和三种状态;给出正常、待补与阻断结果,避免缺材料时生成占位成稿。

Codex项目开发与自动化工作流主视觉
本文目录 · 跳到当前步骤

契约的作用是让调用方知道“生成了什么、缺了什么、现在能否继续”。只规定成功文件名,会把缺正文与缺封面误当成同一种情况。

同一个打包任务的输入

练习不操作公众号,只在本地形成稿件包。提供 request.json 和 body.md;输出目录必须是本次新建目录,已有同名成品时停止以免覆盖。

json
{"title":"设备借用提醒","bodyPath":"body.md","platform":"wechat-draft","coverPath":null,"outputDir":"output/package-01"}

body.md 内容为:“请在借用设备前填写设备编号、用途和借还日期。设备状态由管理员确认。”这是完整教学正文;platform 是本练习的目标标识,不表示具备平台发布权限。

输出不只是一篇正文

文件/字段 固定含义
article.md 标题与原正文;不得填入模型编造事实
manifest.json status、files、missing、errors;路径相对输出目录
status=ready 所需材料齐全,完成本地打包,不等于已发布
status=needs_material 正文有效,允许保留草稿,但缺封面等可补材料
status=blocked 标题/正文/目标缺失或路径不可读,未生成成稿

这是一份设计约定,不是 JSON 字段一写好就会自动执行的验证器。应把相同规则放进 Skill 正文或实现脚本,再验证各分支。

本例实际应该得到哪种状态

因 coverPath 为空,教学预期 article.md 保留原文,manifest.json 为:

json
{"status":"needs_material","files":["article.md"],"missing":["cover"],"errors":[]}

补齐并核对存在的封面后,可输出 ready。若 body.md 是空文件,结果必须改为:

json
{"status":"blocked","files":[],"missing":[],"errors":[{"field":"bodyPath","reason":"empty-body"}]}

blocked 时不能留下一篇由标题扩写的假正文,也不能把旧输出目录中的 article.md 当作本次成功产物。

可直接放进流程的执行要求

text
先验证request.json必填字段,解析所有实际路径,并检查正文非空。
缺必填材料:只报告blocked及具体字段;不生成article.md。
正文有效但封面缺失:生成本地草稿并标needs_material。
材料齐全:生成文件清单,逐个确认存在后标ready。
在任何状态下都不上传、不发布,不虚构已授权或已审核。

至少用本例、空正文和已有输出目录三种输入检查。若调用结果声称ready却找不到清单中的文件,输出契约仍未兑现。

下一步

继续阅读与你当前问题相关的教程: