Valid repo skills are partially omitted from fresh session catalogs, including explicit skill invocation
Summary
Fresh Codex CLI 0.144.1 sessions partially omit valid repository skills from the model-visible Available skills catalog. An explicitly named $delegate skill was then reported unavailable, even though its valid repo symlink and SKILL.md were readable and the skill worked immediately after direct filesystem discovery.
Environment
- macOS
- Codex CLI 0.144.1
- ChatGPT authentication
- Fresh interactive TUI sessions launched at a trusted repository root
- Repo skills exposed as valid relative symlinked directories under
.agents/skills/
Reproduction
- Create ten repo skill directory symlinks under
.agents/skills/, each pointing to an in-repository skill directory containing validSKILL.mdfrontmatter. - Verify every symlink with
realpathand parse eachnameanddescription. - Start a fresh Codex TUI session from the repository root.
- Inspect the injected
Available skillscatalog. - Prompt:
Use the $delegate skill to give work to Codex subagents.
Actual behavior
Only two of the ten repo skills appeared in the injected catalog (linter and morning-brief). The catalog also contained several system/plugin skills, but omitted delegate and seven other valid repo skills. No skill-omission warning appeared.
The agent responded that $delegate was unavailable. After a follow-up instructed it to inspect local skill exposure, it found .agents/skills/delegate/SKILL.md, read it successfully, and used the workflow successfully. Multiple fresh sessions received the same partial repo-skill subset.
This is not a broken-symlink case: every repo skill target resolves inside the repository, metadata parses, and two sibling symlinked skills are discovered from the same directory.
Expected behavior
At least one of the following should occur:
- All valid repo skills in this small repo-scoped set appear in the initial catalog.
- An explicit
$skill-nameprompt resolves and loads that discovered skill even if the initial catalog was trimmed. - If skills are omitted due to a context budget or loader error, the session emits the documented warning and provides a reliable lookup path.
The model should not confidently report an explicitly named, valid repo skill as unavailable solely because the injected catalog omitted it.
Impact
Repository workflows and safety fallbacks can silently disappear from fresh sessions. In this case, omission of the delegation skill also hid required same-provider escalation guidance, causing a predictable failed nested Codex launch before the model eventually found the skill manually.
Related issues
- #16012 was closed after its reporter found an invalid nested symlink; this reproduction uses valid symlinks and partial discovery from the same directory.
- #11314 primarily concerns broken symlink diagnostics and does not cover valid sibling skills being selectively omitted.
No private paths, prompts, credentials, or full session logs are included in this report.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗