Default skill installation strips executable bits and breaks the curated Playwright launcher

Open Beginner friendly
#61,436 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
62/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python, rust, shell
Domain
tooling

Research direction

Start with the installer at codex-rs/skills/src/assets/samples/skill-installer/scripts/install-skill-from-github.py, specifically the ZIP extraction around lines 108-116 where ZipFile.extractall is used. Reproduce with the shell steps in the issue, comparing modes of playwright/scripts/playwright_cli.sh between the auto and git destinations. Done when the downloaded wrapper has the executable bit (755) matching the Git install, with a check that the two install paths give the same modes.

Written by the indexing model from the issue text.

Description

bug CLI skills

The bundled skill installer reports that the Playwright skill installed successfully, but the wrapper in its quick start cannot be executed. The same upstream script remains executable when the installer uses Git.

Steps to reproduce On Linux x86_64 with Python 3.12.14, from the Codex repository root at de83e7674a69b9ae18544dd1fbf53f31bfe8c640:

dest=$(mktemp -d)
script=codex-rs/skills/src/assets/samples/skill-installer/scripts/install-skill-from-github.py
skill=skills/.curated/playwright
wrapper=playwright/scripts/playwright_cli.sh

python3 "$script" --repo openai/skills --path "$skill" --method auto --dest "$dest/auto"
python3 "$script" --repo openai/skills --path "$skill" --method git --dest "$dest/git"
cmp "$dest/auto/$wrapper" "$dest/git/$wrapper"
stat -c '%a %n' "$dest/auto/$wrapper" "$dest/git/$wrapper"
"$dest/auto/$wrapper" --help

Observed Both installs exit 0 and the two scripts have identical contents. Their modes are 644 (default download path) and 755 (Git). Directly invoking the downloaded script returns Permission denied before Playwright starts. The openai/skills revision used was 49f948faa9258a0c61caceaf225e179651397431.

Expected A tracked executable should remain executable through either install method. The skill's quick start invokes this wrapper directly. Playwright usage

Suggested fix Restore the Git executable bits for regular files when extracting the archive and test mode parity between the download and Git installation paths. The ZIP path currently delegates extraction to ZipFile.extractall. Archive extraction

Dominant language
Rust
Stars
135k
Forks
21.4k
Avg merge
1m
Merged PRs (30d)
997

Getting set up

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.