feat(server): expose Grok skills in provider snapshots - #5960
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 Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
ApprovabilityVerdict: Needs human review This PR introduces a new feature that exposes Grok skills in provider snapshots, adding new discovery logic and integrating it into the provider system. New features that add user-facing capabilities warrant human review. You can customize Macroscope's approvability policy. Learn more. |
There was a problem hiding this comment.
Reviewed the extracted skill-discovery helper and the Grok wiring against the Effect service conventions. Imports, Effect.fn.Return requirements, and dependency acquisition (yield* FileSystem.FileSystem / yield* Path.Path, no ManagedRuntime/runPromise, no fake service injection) all look correct. Two change-discipline findings on the extracted module.
Posted via Macroscope — Effect Service Conventions
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 4540e88. Configure here.
4540e88 to
485b477
Compare

What Changed
Grok provider snapshots did not include filesystem skills, leaving the existing
$picker empty when Grok was selected.discoverSkillsFromRoots, with best-effort frontmatter parsing and later-root collision precedence..agents/skillsand.grok/skills.Why
Grok can use skills from these standard filesystem locations, but T3 only exposed Claude's discovered skills to clients. Sharing the scan keeps the parsing and override behavior consistent while leaving provider-specific root resolution at the adapter boundary.
UI Changes
No client UI code changed. The existing
$picker now receives Grok skills through the provider snapshot contract.Verification
Checklist
Implemented with GPT-5.6 Codex in the T3 Code harness.
Note
Low Risk
Best-effort filesystem reads with no auth or data-model changes; Claude behavior is preserved via delegation to the shared scanner.
Overview
Grok provider snapshots now include filesystem-discovered skills, so the existing
$picker can list Grok skills the same way it does for Claude.Skill scanning is factored into shared
discoverSkillsFromRootsinProviderSkills.ts(YAML frontmatter parsing, skip malformed entries, later roots win on name collisions). Claude delegates to that helper instead of inline logic. Grok addsdiscoverGrokSkills, resolving user/project roots underHOME/USERPROFILE,GROK_HOME, and.agents/.grokskill directories.checkGrokProviderStatusruns discovery with servercwdand attachesskillson every snapshot path—including when ACP model discovery fails or times out.GrokDriverwiresFileSystem,Path, andcwdinto the status probe. Tests cover the shared scanner, Grok root order, and snapshot behavior.Reviewed by Cursor Bugbot for commit 9b3d161. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Expose Grok skills in provider snapshots via shared skill discovery
discoverGrokSkillsin GrokSkills.ts that resolves skill roots from~/.agents/skills,$GROK_HOME/skills, and optional project-level.agents/skills/.grok/skillsdirectories, with platform-aware home detection (USERPROFILEon Windows).discoverSkillsFromRootsandparseSkillFrontmatterin ProviderSkills.ts; later roots override earlier ones on name collision, malformedSKILL.mdfiles are skipped, and results are name-sorted.checkGrokProviderStatusin GrokProvider.ts now callsdiscoverGrokSkillsand includes discovered skills in all provider snapshot cases (error, timeout, success).discoverClaudeSkillsin ClaudeSkills.ts to delegate to the shareddiscoverSkillsFromRoots, removing its local YAML frontmatter parser.---but lack a closing delimiter, rather than treating them as valid.Macroscope summarized 9b3d161.