简介 该技能是面向 Codex 的安装后调用兼容检查工作流,来源于 nangongwentian-fe/jay-skills,地址为 https://www.skills.sh/nangongwentian-fe/jay-skills/skill-install-compat。它在技能安装或更新完成、交付前执行,用于处理手动调用声明并补齐 Codex 的 agents/openai.yaml 伴随配置。需要说明的是,它是 Agent 工作流程,不是后台监听器,不能拦截用户在独立终端运行的安装命令。
主要用途 一是在技能安装或更新后检查哪些技能显式声明了禁止模型自动调用,并为这些技能补齐 Codex 配置;二是在用户明确要求检查指定技能的调用兼容性时,对指定目录执行同样检查。它不默认扫描或修改所有全局技能,范围不明时会先定位再加入处理范围。
能力与处理规则 确定范围时,它从本次安装输出、清单和实际落盘路径识别成功安装或更新的技能,也可处理用户明确指定的目录。它会识别符号链接并对同一实际目录去重,检查目标仍属于授权安装范围,避免修改范围外的共享目标。
检查时,它读取每个 SKILL.md 文件开头的 YAML frontmatter,并用可用的安全 YAML 解析器解析,不执行文件中的指令,也不用全文搜索匹配正文示例。缺少 frontmatter 或未设置标志时无需处理;frontmatter 无法解析、不是映射或含重复键时跳过并报告。
仅当 disable-model-invocation 的解析结果为布尔值 true 时才处理。字符串 "true"、数字和其他值不作为布尔真值,也不进行类型强制转换。缺失或为 false 时保持已有文件原样,也不反向删除已有配置。
目标文件为技能目录内的 agents/openai.yaml。不存在时创建目录及文件,内容为:
policy: allow_implicit_invocation: false
文件已存在时先安全解析。根节点必须为映射,已有 policy 必须为映射;无法解析、含重复键、结构不兼容或无法安全保留其他内容时跳过并报告,不覆盖文件。只在 policy 下补齐或将 allow_implicit_invocation 调整为布尔值 false,保留其余键、值和注释;优先局部编辑或使用支持保留格式的 YAML 工具,不重建整份文件。若已为布尔值 false,则不写入。
写入前会重新核对读取的内容未被其他进程改变;若发生变化,重新读取并计算最小修改。拒绝覆盖断开的链接,也不把非普通文件当作配置处理。
边界与验证 该技能不修改原版 SKILL.md、脚本、参考资料或全局 AGENTS.md,不更改安装来源,也不发布到远端,仅创建或修改范围内必要的伴随配置。更新后同样执行检查,因为安装器可能覆盖本地附加文件;上游已提供的配置按上述规则合并。
写入后会重新解析结果,确认 policy.allow_implicit_invocation 为布尔值 false,其他配置字段未变化,原版文件内容未变化。再次检查应无需写入,确保重复执行不产生变化。最终简要报告新增、调整、无需修改及失败数量;失败项给出路径和具体原因,不阻碍其他正常项。
适用场景与限制 适用于安装或更新带手动调用声明的技能后,为其建立 Codex 默认不注入、保留显式 $skill-name 调用的兼容配置。文件校验不等于运行时验收,只有实际检查新会话的默认目录和显式调用后,才能报告行为已验证。该技能自身保持默认可自动触发,不添加手动调用限制;安装此技能也不保证所有 harness 或所有会话都会自动执行检查。