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

43 lines
2.1 KiB
Markdown

---
name: chat-customizations-editor
description: 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/`.
```bash
./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.