[app/skills] Bundled artifact helper commands fail from the normal workspace directory

Open 💬 0 comments Opened Aug 15, 2026 by 100yenadmin

Installed versions

  • Codex Desktop app: 26.810.41047, bundle 6570, macOS arm64
  • Documents, Spreadsheets, and PDF skill bundles: 26.813.12317
  • Visualize skill bundle: 1.0.21

Reproduction

Start a normal Codex task whose workspace is /Users/m1/Codex and follow the bundled skill instructions verbatim.

Documents line 22, Spreadsheets line 33, and PDF line 20 all instruct:

node container_tools/mark_artifact_operation_started.mjs ...

From the normal task workspace this fails with:

Error: Cannot find module '/Users/m1/Codex/container_tools/mark_artifact_operation_started.mjs'

The helper exists only under each installed skill directory.

Documents also documents commands such as:

python scripts/google_docs_title_sanitize.py ...
python render_docx.py ...

Those paths are likewise absent from the normal task workspace and exist only under the Documents skill root.

Visualize lines 69 and 117 instruct:

python3 scripts/render.py ...

From /Users/m1/Codex, that fails with:

python3: cannot open file '/Users/m1/Codex/scripts/render.py': No such file or directory

The renderer exists under skills/visualize/scripts/render.py.

Expected behavior

A bundled skill command should work from the normal conversation workspace and should use the runtime returned by the workspace dependency loader where required.

Actual behavior

The commands assume the process current working directory is the skill directory, but the skill instructions also direct artifact work into a writable workspace or temporary directory. The mandatory marker/render steps therefore fail before the supported artifact workflow can run.

Proposed narrow fix

Resolve a stable skill root and invoke every bundled helper by its absolute skill-root-relative path. For Documents, Spreadsheets, and PDF, combine that with the loader-provided Node/Python executable rather than a system runtime. Do not change the user workspace cwd as an implicit workaround.

Acceptance test

For each affected skill:

  1. Start from a temporary conversation workspace that is not the skill directory.
  2. Load the documented workspace runtime.
  3. Resolve the helper from the installed skill root.
  4. Run a harmless help/dry-run or fixture invocation.
  5. Assert the helper is found and no path resolves through the conversation cwd.

This report does not request editing the managed cache; the fix belongs in the upstream bundle/package source.

View original on GitHub ↗