feat(claude): add skills discovery and git action buttons for Claude sessions#312082
Merged
TylerLeonhardt merged 5 commits intomainfrom Apr 23, 2026
Merged
feat(claude): add skills discovery and git action buttons for Claude sessions#312082TylerLeonhardt merged 5 commits intomainfrom
TylerLeonhardt merged 5 commits intomainfrom
Conversation
…ions This goes against the idea that Claude only cares about Claude, but it's important for the Agents app where skills are added in order to actually commit stuff. Maybe we can be granular in the future if people ask for it.
Registers commit, commitAndSync, sync, and initializeRepository commands for Claude sessions. Enriches session metadata with git repository state to drive when-clause visibility of action buttons in the Changes view. Extracts builtinSlashCommands to a shared module reused by both Claude and CopilotCLI sessions.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR extends the Sessions (Agents) experience for Claude Code sessions by adding shared skill/plugin discovery utilities and wiring up git action buttons (commit/sync/init) in the Changes view, aligning behavior with CopilotCLI sessions.
Changes:
- Added shared utilities for resolving skill config locations and built-in slash command constants, reused across Claude + CopilotCLI.
- Enriched Claude session item metadata with git repository state (branch/upstream/remote + change counts) and registered git-related commands for Claude sessions.
- Added Claude-focused plugin discovery service and documentation updates describing skills/plugins + git actions.
Show a summary per file
| File | Description |
|---|---|
| src/vs/sessions/contrib/changes/browser/changesView.ts | Adds Claude command IDs to Changes toolbar button configuration logic. |
| extensions/copilot/src/extension/chatSessions/vscode-node/claudeChatSessionContentProvider.ts | Builds git-enriched session metadata and registers Claude git action commands. |
| extensions/copilot/src/extension/chatSessions/vscode-node/test/claudeChatSessionContentProvider.spec.ts | Adds unit tests for metadata enrichment and command handlers. |
| extensions/copilot/src/extension/chatSessions/vscode-node/chatSessions.ts | Registers the new Claude plugin service in DI. |
| extensions/copilot/src/extension/chatSessions/claude/node/claudeCodeAgent.ts | Passes resolved plugin locations into the Claude SDK session options. |
| extensions/copilot/src/extension/chatSessions/claude/node/claudeSkills.ts | Implements Claude plugin root discovery (config + skills + plugins), with dedupe/filtering. |
| extensions/copilot/src/extension/chatSessions/common/skillConfigLocations.ts | New shared resolver for chat.agentSkillsLocations. |
| extensions/copilot/src/extension/chatSessions/common/builtinSlashCommands.ts | New shared constants for built-in slash commands. |
| extensions/copilot/src/extension/chatSessions/copilotcli/node/copilotCLISkills.ts | Reuses shared skill location resolver. |
| extensions/copilot/src/extension/chatSessions/copilotcli/node/copilotcliSession.ts | Re-exports shared slash command constants. |
| extensions/copilot/src/extension/chatSessions/claude/node/test/skillConfigLocations.spec.ts | Unit tests for shared skill location resolution. |
| extensions/copilot/src/extension/chatSessions/claude/node/test/claudePluginService.spec.ts | Unit tests for Claude plugin location resolution behavior. |
| extensions/copilot/src/extension/chatSessions/claude/CLAUDE_SESSION_USER_GUIDE.md | Documents git action buttons and skills/plugins discovery. |
| extensions/copilot/src/extension/chatSessions/claude/AGENTS.md | Updates internal docs describing new services and metadata/commands. |
| extensions/copilot/package.json | Contributes new Claude git commands + view/title actions visibility conditions. |
| extensions/copilot/package.nls.json | Adds localized command titles for the new Claude commands. |
Copilot's findings
- Files reviewed: 16/16 changed files
- Comments generated: 2
Contributor
anthonykim1
previously approved these changes
Apr 23, 2026
bpasero
approved these changes
Apr 23, 2026
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
skillConfigLocationslogic and reusing it across both Claude and CopilotCLI session typesbuiltinSlashCommandsto a shared module consumed by both Claude and CopilotCLI sessionsTest plan
skillConfigLocations.spec.ts)claudePluginService.spec.ts)claudeChatSessionContentProvider.spec.ts)