Skip to content

feat(claude): add skills discovery and git action buttons for Claude sessions#312082

Merged
TylerLeonhardt merged 5 commits intomainfrom
tyler/empirical-walrus
Apr 23, 2026
Merged

feat(claude): add skills discovery and git action buttons for Claude sessions#312082
TylerLeonhardt merged 5 commits intomainfrom
tyler/empirical-walrus

Conversation

@TylerLeonhardt
Copy link
Copy Markdown
Member

@TylerLeonhardt TylerLeonhardt commented Apr 23, 2026

Summary

  • Skills & plugins discovery: Implements skill and plugin discovery for Claude sessions, extracting shared skillConfigLocations logic and reusing it across both Claude and CopilotCLI session types
  • Git action buttons: Registers commit, commitAndSync, sync, and initializeRepository commands for Claude sessions in the Changes view, driven by enriched session metadata (git repo state, branch info, upstream tracking, uncommitted change counts)
  • Shared slash commands: Extracts builtinSlashCommands to a shared module consumed by both Claude and CopilotCLI sessions

Test plan

  • Unit tests for skill config location resolution (skillConfigLocations.spec.ts)
  • Unit tests for Claude plugin service (claudePluginService.spec.ts)
  • Unit tests for session metadata enrichment and git command handlers (claudeChatSessionContentProvider.spec.ts)
  • Verify git action buttons appear in the Changes view for Claude sessions based on repo state
  • Verify commit/sync/initializeRepository commands dispatch correctly to the session

…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.
Copilot AI review requested due to automatic review settings April 23, 2026 05:01
@TylerLeonhardt TylerLeonhardt enabled auto-merge (squash) April 23, 2026 05:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread src/vs/sessions/contrib/changes/browser/changesView.ts
Comment thread extensions/copilot/src/extension/chatSessions/claude/node/claudeCodeAgent.ts Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 23, 2026

Screenshot Changes

Base: 4fb20b80 Current: e6ac7a76

Changed (1)

chat/aiCustomizations/aiCustomizationManagementEditor/McpBrowseMode/Light
Before After
before after

anthonykim1
anthonykim1 previously approved these changes Apr 23, 2026
@TylerLeonhardt TylerLeonhardt merged commit febc095 into main Apr 23, 2026
26 checks passed
@TylerLeonhardt TylerLeonhardt deleted the tyler/empirical-walrus branch April 23, 2026 06:16
@vs-code-engineering vs-code-engineering Bot added this to the 1.118.0 milestone Apr 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants