Files
vscode/.github/skills/chat-customizations-editor/SKILL.md
Josh Spicer 9541d49335 chat customizations: component fixtures, developer skill, spec updates (#303309)
* component explorer fixture for chat customization tabs

* chat customizations: full editor fixture + developer skill

* Refine AI customization management editor fixtures

* fix: update DOM element creation to use shorthand syntax

---------

Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
2026-03-20 00:37:36 +00:00

2.1 KiB

name, description
name description
chat-customizations-editor Use when working on the Chat Customizations editor — the management UI for agents, skills, instructions, hooks, prompts, MCP servers, and plugins.

Chat Customizations Editor

Split-view management pane for AI customization items across workspace, user, extension, and plugin storage. Supports harness-based filtering (Local, Copilot CLI, Claude).

Spec

src/vs/sessions/AI_CUSTOMIZATIONS.md — always read before making changes, always update after.

Key Folders

Folder What
src/vs/workbench/contrib/chat/common/ ICustomizationHarnessService, ISectionOverride, IStorageSourceFilter — shared interfaces and filter helpers
src/vs/workbench/contrib/chat/browser/aiCustomization/ Management editor, list widgets (prompts, MCP, plugins), harness service registration
src/vs/sessions/contrib/chat/browser/ Sessions-window overrides (harness service, workspace service)
src/vs/sessions/contrib/sessions/browser/ Sessions tree view counts and toolbar

When changing harness descriptor interfaces or factory functions, verify both core and sessions registrations compile.

Key Interfaces

  • IHarnessDescriptor — drives all UI behavior declaratively (hidden sections, button overrides, file filters, agent gating). See spec for full field reference.
  • ISectionOverride — per-section button customization (command invocation, root file creation, type labels, file extensions).
  • IStorageSourceFilter — controls which storage sources and user roots are visible per harness/type.

Principle: the UI widgets read everything from the descriptor — no harness-specific conditionals in widget code.

Testing

Component explorer fixtures (see component-fixtures skill): aiCustomizationListWidget.fixture.ts, aiCustomizationManagementEditor.fixture.ts under src/vs/workbench/test/browser/componentFixtures/.

./scripts/test.sh --grep "applyStorageSourceFilter|customizationCounts"
npm run compile-check-ts-native && npm run valid-layers-check

See the sessions skill for sessions-window specific guidance.