fix(codex): support current skill invocation syntax - #633
Merged
andrasbacsai merged 4 commits intoAug 3, 2026
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates Jean’s Codex skill UX and plumbing to match Codex’s current $skill-name invocation pattern while keeping / reserved for slash commands, and extends Codex skill discovery to include user/project .agents/skills directories (plus legacy locations). It also threads the active worktree path through the frontend query layer and the web transport so project-scoped Codex skills can be listed correctly.
Changes:
- Add a worktree-scoped Codex skills query key and pass
worktreePathto thelist_codex_skillsinvoke call. - Extend the chat input/popover UX to support
$as a “skills” trigger and/as a “commands” trigger (with improved empty-state messaging). - Update the Rust backend to discover Codex skills from
~/.agents/skillsand<worktree>/.agents/skills, and acceptworktree_pathover web dispatch.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
src/services/skills.ts |
Makes Codex skills cache keys worktree-aware and forwards worktreePath into the Codex skill listing invoke call. |
src/services/skills.test.ts |
Updates query-key test coverage for the new worktree-scoped Codex key shape. |
src/components/chat/SlashPopover.tsx |
Adds triggerKind to filter commands vs skills, updates empty-state messaging, and displays $ for skills vs / for commands. |
src/components/chat/ChatInput.tsx |
Detects $ as a skills trigger and wires triggerKind into the popover. |
src/components/chat/ChatInput.test.tsx |
Adds a unit test asserting $ opens the picker in a Codex session and forwards triggerKind='skill'. |
jean-core/src/projects/commands.rs |
Adds .agents/skills user+project discovery for Codex skills and a regression test for the new search roots. |
jean-core/src/http_server/dispatch.rs |
Updates list_codex_skills web dispatch to accept an optional worktree path argument. |
Allow Codex to read skills from .agents, legacy .codex, and Jean-managed skill dirs when attaching badges. List project .codex skills, show Codex skills with $ in the slash popover, and cover triggerKind filtering in tests.
Member
|
Thank you for the PR! 💜 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
$skill-namemention syntax while keeping slash commands under/.agents/skillsdirectories, retaining legacy Jean/Codex locationsTest plan
$lists Codex skills and/lists/goalQuality gate note
bun run check:allreachesrust:fmt:checkbut the repository currently contains pre-existing rustfmt differences outside this change. The changed files pass targeted checks andgit diff --check.