feat: slash commands and skills from local repo#3757
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Tested codex, opencode, and claude |
ApprovabilityVerdict: Needs human review 7 blocking correctness issues found. This PR introduces a significant new feature (project-scoped slash commands and skills) with changes across mobile, web, and server. Multiple high-severity unresolved review comments identify bugs including the Cursor probe ignoring its cwd parameter and missing timeouts that could cause indefinite hangs. You can customize Macroscope's approvability policy. Learn more. |
c7aa04b to
74319e0
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 74319e0. Configure here.
There was a problem hiding this comment.
Effect service review: one error-modeling convention violation found in the new ProviderProjectCapabilitiesError.
Posted via Macroscope — Effect Service Conventions
|
When I started, this was a very small change. But it grew quite a lot. I'll work on making smaller PRs |
|
Closed in favor of #3787 |

Why
I use skills to organize my projects, having the ability to access them easier inside t3 would be a game changer.
Why am I doing it? I saw the issue, thought it would be a quick fix; it actually is, and started using my fork; it improved my experience, so I thought it would be a good PR.
Closes #3576
What Changed
Adds project-scoped provider skills and slash-commands discovery.
Code Changes
providers.projectCapabilitiesRPC with shared contract schemas.Testing
vp run typecheckvp checkUI Changes
For context, here is a test skill:

Current nightly app on a repo with multiple skills and commands, in opencode:

Same repo, nightly, in codex:

My pr, same repo, in opencode:


same repo, in codex:


Checklist
Note
Medium Risk
Touches provider drivers, registry, and WS RPC with subprocess/SDK probes per cwd; failures are surfaced but composer behavior depends on new async fetches across web and mobile.
Overview
Project-scoped composer capabilities replace reading skills and slash commands from the global provider snapshot. Composers now load them for the active thread/worktree
cwdand selected provider instance.A new
providers.projectCapabilitiesRPC and shareduseProviderProjectCapabilitieshook (web + mobile) fetch skills/commands on demand. Client query building skips disabled, uninstalled, or unavailable providers and preserves exactcwdstrings.Server:
ProviderRegistry.listProjectCapabilitiesdelegates to optional per-drivercomposerCapabilities.listwith per-cwdcaching (~30s). Claude, Codex, Cursor, and OpenCode probe project-local data (init IPC, app-server skills, ACP commands, OpenCode SDK). Probe failures surface asProviderProjectCapabilitiesErrorinstead of silently empty lists.UI: Command popovers stay open while loading, show loading/error empty states, and use thread
cwdwhere applicable; feed/editor skill highlighting follows the same project-scoped skills.Reviewed by Cursor Bugbot for commit 74319e0. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add project-scoped slash commands and skills from local repo for each provider
composerCapabilities.listmethod to Claude, Codex, Cursor, and OpenCode provider drivers that probe per-project slash commands and skills for a givencwd, with a 30s TTL cache (capacity 64) and optionalforceReload.providers.projectCapabilitiesWebSocket RPC backed byProviderRegistry.listProjectCapabilities, which delegates to the driver or returns empty capabilities for unavailable/disabled instances.useProviderProjectCapabilitieshooks in web and mobile that query project-scoped capabilities; composer UIs on both platforms now source slash commands and skills from this hook instead of from the static provider status.buildProviderProjectCapabilitiesQueryTargetinclient-runtimeto validate query targets before issuing RPC calls, returning null for blankcwd, missing providers, or non-queryable states.Macroscope summarized 74319e0.