Bundled skill-creator documents direct script execution, but its scripts are not executable

Open Beginner friendly
#36,624 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
python
Domain
tooling

Research direction

Start with SKILL.md and the bundled scripts/init_skill.py and scripts/quick_validate.py under the skill-creator assets, then inspect how the files are packaged and installed. Reproduce the clean-install behavior and run the exact commands documented in SKILL.md. Done means those documented commands execute successfully without the undocumented workaround.

Written by the indexing model from the issue text.

Description

bug CLI skills

Summary

The bundled skill-creator instructs agents to invoke its Python helpers directly:

scripts/init_skill.py <skill-name> --path <output-directory>
scripts/quick_validate.py <path/to/skill-folder>

However, the scripts are committed upstream with mode 100644 and installed locally with mode 0644. Direct execution therefore fails with exit code 126 before Python starts.

Upstream source:

https://github.com/openai/codex/tree/main/codex-rs/skills/src/assets/samples/skill-creator

Environment

  • Codex CLI: 0.145.0
  • OS: Arch Linux, kernel 7.1.3-arch1-2, x86_64
  • Shell: Bash
  • Terminal: xterm-256color

Reproduction

cd ~/.codex/skills/.system/skill-creator

stat -c '%a %n' scripts/init_skill.py scripts/quick_validate.py

scripts/init_skill.py --help
echo $?

scripts/quick_validate.py /tmp/nonexistent-skill
echo $?

Observed output:

644 scripts/init_skill.py
644 scripts/quick_validate.py

bash: scripts/init_skill.py: Permission denied
126

bash: scripts/quick_validate.py: Permission denied
126

The corresponding files on the openai/codex main branch also have Git mode 100644, so this does not appear to be local permission drift.

Expected behavior

The commands documented by the bundled SKILL.md should work as written.

Either:

  1. the scripts should be committed and distributed as executable files; or
  2. SKILL.md should explicitly invoke them through the supported Python runtime, for example python3 scripts/init_skill.py ....

A packaging or clean-install test should execute the exact commands documented in SKILL.md.

Actual behavior

Agents must discover an undocumented workaround such as:

python3 scripts/init_skill.py ...

This affects a mandatory step in the skill-creation workflow and can lead agents to skip the provided initializer or validator.

Related issue

After invoking quick_validate.py through Python, a separate undeclared-PyYAML problem may occur. That dependency issue is already tracked in:

This report is specifically about the mismatch between the documented direct invocation and the distributed file modes.

Dominant language
Rust
Stars
125k
Forks
19.5k
Avg merge
1m
Merged PRs (30d)
1k

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.