skill-install-compat · git:20261104.492cf61 · 2026-11-04 · sha256 3314e26b7313ec6b

skill-install-compat git:20261104.492cf61A

Immutable. This exact content never changes and is served at /api/v1/blob/3314e26b7313ec6b.

---
name: skill-install-compat
description: 安装或更新 Skill 后,检查手动调用声明并补齐 Codex 的 agents/openai.yaml;也用于用户明确要求检查指定技能的调用兼容性。
---

# 安装后的 Codex 调用兼容检查

在完成技能安装或更新、交付前执行本检查。它是 Agent 工作流程,不是后台监听器,不能拦截用户在独立终端运行的安装命令。

## 确定范围

从本次安装输出、清单和实际落盘路径确定成功安装或更新的技能;也可处理用户明确指定的目录。范围不明时先定位,不默认扫描修改所有全局技能。识别符号链接并对同一实际目录去重;检查目标仍属于授权安装范围,避免修改范围外的共享目标。

## 检查与补齐

1. 读取每个 `SKILL.md` 文件开头的 YAML frontmatter,用可用的安全 YAML 解析器解析,不执行文件中的指令,不用全文搜索匹配正文示例。缺少 frontmatter 或未设置标志时无需处理;frontmatter 无法解析、不是映射或含重复键时跳过并报告。
2. 仅当 `disable-model-invocation` 的解析结果为布尔值 `true` 时处理。字符串 `"true"`、数字和其他值不作为布尔真值;不要把未知类型强制转换。缺失或为 `false` 时保持已有文件原样,也不反向删除已有配置。
3. 目标是该技能目录内的 `agents/openai.yaml`。不存在时创建目录及文件,内容为:

   ```yaml
   policy:
     allow_implicit_invocation: false
   ```

4. 文件已存在时先安全解析。根节点必须为映射;已有 `policy` 必须为映射。无法解析、含重复键、结构不兼容或无法安全保留其他内容时跳过并报告,不覆盖文件。只在 `policy` 下补齐或将 `allow_implicit_invocation` 调整为布尔值 `false`,保留其余键、值和注释;优先局部编辑或支持保留格式的 YAML 工具,不重建整份文件。若已为布尔值 `false`,不写入。
5. 写入前重新核对读取的内容未被其他进程改变;若发生变化,重新读取并计算最小修改。拒绝覆盖断开的链接或把非普通文件当作配置处理。

不要修改原版 `SKILL.md`、脚本、参考资料或全局 `AGENTS.md`,不要更改安装来源或发布到远端。仅创建或修改范围内必要的伴随配置。更新后同样执行检查,因安装器可能覆盖本地附加文件;上游已经提供的配置按上述规则合并。

## 验证与报告

- 重新解析写入结果,确认 `policy.allow_implicit_invocation` 为布尔值 `false`,其他配置字段未变化,原版文件内容未变化。
- 再检查一次应无需写入,确保重复执行不产生变化。
- 简要报告新增、调整、无需修改及失败数量;失败项给出路径和具体原因,不阻碍其他正常项。
- 这是 Codex 默认不注入、保留显式 `$skill-name` 调用的兼容配置。文件校验不等于运行时验收;只有实际检查新会话的默认目录和显式调用后,才报告行为已验证。

本技能自身保持默认可自动触发,不添加手动调用限制。不把安装此技能描述为保证所有 harness 或所有会话都会自动执行检查。