chat-customizations-editor

Guides development and testing of the Chat Customizations management editor in Code OSS.

Updated Sep 3, 2026
One-click install
npx skills add https://github.com/az0512124155azz-sys/CodeForge --skill chat-customizations-editor-az0512124155azz-sys
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: chat-customizations-editor
Source: https://github.com/az0512124155azz-sys/CodeForge/tree/main/.github/skills/chat-customizations-editor
Command: npx skills add https://github.com/az0512124155azz-sys/CodeForge --skill chat-customizations-editor-az0512124155azz-sys

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @playwright/cli.

What problem does it solve? Working on the Chat Customizations editor requires navigating a multi-layer architecture spanning core workbench code, sessions-window overrides, an extension API chain, and component fixtures, where changes in one layer silently break others. ## Core Features & Use Cases - Architecture Map: Documents the harness descriptor pattern (IHarnessDescriptor, ISectionOverride, ICustomizationItemProvider) and the key folders for core, sessions, and tree-view code. - Extension API Sync Checklist: Lists all five layers (proposed .d.ts, IPC DTO, ExtHost, MainThread, internal interface) that must be updated together when adding fields to ICustomizationItem. - Testing & Debugging Playbook: Provides fixture IDs for screenshotting every editor tab, mock service requirements, CI regression gate guidance, and Playwright-based live debugging techniques for layout issues. - Use Case: When adding a new field to customization items, follow the five-layer sync table to update the proposed API, protocol DTO, both mapping layers, and the internal interface so nothing is missed. ## Quick Start Ask the AI to help modify the Chat Customizations editor, such as adding a new tab fixture or syncing a new field across the customization provider API layers.

Frequently Asked Questions about chat-customizations-editor

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new field to the chat session customization provider API?▼

Update all five layers in order: the proposed API `.d.ts` (`ChatSessionCustomizationItem`), the IPC DTO in `extHost.protocol.ts`, the ExtHost mapping in `extHostChatAgents2.ts`, the MainThread callback in `mainThreadChatAgents2.ts`, and the internal `ICustomizationItem` interface. New optional fields are backward-compatible and need no version bump.

How do I screenshot a specific tab of the customizations editor?▼

Use the component fixture IDs with the screenshot tool, following the pattern `chat/aiCustomizations/aiCustomizationManagementEditor/{TabName}/{Dark,Light}`. Tabs exist for Agents, Skills, Instructions, Hooks, Prompts, MCP Servers, and Plugins, plus harness variants.

Why does the built-in grouping not appear in my component fixture?▼

Built-in regrouping requires three things: `BUILTIN_STORAGE` in the harness descriptor's visible sources, a mocked `IProductService.defaultChatAgent.chatExtensionId`, and mock items whose `extensionId` matches that ID. Missing any one silently disables regrouping.

Why does the list widget show zero rows in the real product but work in fixtures?▼

The list's `layout()` likely ran while `offsetHeight` was 0 during a `display:none` to visible transition. Defer layout using `requestAnimationFrame` from the widget's window so it runs after the browser reflows.

Which fixtures should get the blocksCi label for CI regression gating?▼

Only add `blocksCi: true` to fixtures covering critical layout paths, such as the default view, a section with list plus footer, and narrow viewports. Gating too many fixtures creates noisy CI failures on every pull request.