Perform this check before delivery after completing skill installation or update. It is an Agent workflow, not a background listener, and cannot intercept installation commands run by the user in an independent terminal.
Determine scope
Determine the successfully installed or updated skills from this installation's output, manifest, and actual on-disk paths; also process directories explicitly specified by the user. When the scope is unclear, locate first; do not scan and modify all global skills by default. Identify symbolic links and deduplicate the same actual directory; check that the target still belongs to the authorized installation scope, avoiding modification of shared targets outside the scope.
Check and complete
-
Read the YAML frontmatter at the beginning of each
SKILL.mdfile, parse it with an available safe YAML parser, do not execute instructions in the file, and do not use full-text search to match examples in the body. If frontmatter is missing or the flag is not set, no processing is needed; if frontmatter cannot be parsed, is not a mapping, or contains duplicate keys, skip and report. -
Process only when the parsed result of
disable-model-invocationis the boolean valuetrue. Strings"true", numbers, and other values are not treated as boolean true; do not coerce unknown types. If missing orfalse, keep the existing file as is, and do not reversely delete existing configuration. -
The target is
agents/openai.yamlwithin the skill directory. If it does not exist, create the directory and file with the following content:policy: allow_implicit_invocation: false
- If the file already exists, parse it safely first. The root node must be a mapping; the existing
policymust be a mapping. If it cannot be parsed, contains duplicate keys, has an incompatible structure, or other content cannot be safely preserved, skip and report; do not overwrite the file. Only underpolicy, complete or adjustallow_implicit_invocationto the boolean valuefalse, preserving other keys, values, and comments; prefer local edits or YAML tools that preserve formatting, and do not rebuild the entire file. If it is already the boolean valuefalse, do not write. - Before writing, re-verify that the content read has not been changed by another process; if it has changed, re-read and compute the minimal modification. Refuse to overwrite broken links or treat non-regular files as configuration.
Do not modify the original SKILL.md, scripts, reference materials, or global AGENTS.md; do not change the installation source or publish to a remote. Only create or modify the necessary companion configuration within scope. Perform the check again after updating, because the installer may overwrite local additional files; configuration already provided upstream is merged according to the above rules.
Verification and reporting
- Re-parse the written result and confirm that
policy.allow_implicit_invocationis the boolean valuefalse, other configuration fields are unchanged, and the original file content is unchanged. - A second check should require no writing, ensuring repeated execution produces no changes.
- Briefly report the counts of added, adjusted, no-change-needed, and failed items; for failed items, give the path and specific reason, without blocking other normal items.
- This is a compatibility configuration for explicit
$skill-nameinvocation that Codex does not inject by default. File validation is not runtime acceptance; report behavior as verified only after actually checking the new session's default directory and explicit invocation.
This skill itself remains auto-triggerable by default and does not add a manual invocation restriction. Do not describe installing this skill as guaranteeing that all harnesses or all sessions will automatically perform the check.