chat-customizations-editor

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

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @playwright/cli.

What problem does it solve? Working on the Chat Customizations editor requires coordinating harness descriptors, section overrides, extension API layers, and component fixtures across core and sessions codebases, and this Skill consolidates the ownership contracts, interface chains, and testing patterns needed to make changes safely. ## Core Features & Use Cases - Interface Contract Guidance: Documents IHarnessDescriptor, ISectionOverride, and ICustomizationItemProvider so widgets stay harness-agnostic and descriptor-driven. - Extension API Sync Chain: Maps the five layers (proposed .d.ts, IPC DTO, ExtHost, MainThread, internal interface) that must be updated together when adding fields to ICustomizationItem. - Component Fixture Testing: Explains how to screenshot specific editor tabs, populate mock data per customization type, exercise built-in grouping, and gate layout regressions in CI with blocksCi fixtures. - Live Product Debugging: Provides Playwright CLI workflows for inspecting list widget layout, diagnosing reflow timing issues, and reproducing bugs that fixtures cannot catch. - Use Case: When adding a new customization tab, follow the fixture variant pattern, mock the required services, and add blocksCi gating so layout regressions fail CI automatically. ## Quick Start Ask the AI to add a new section to the Chat Customizations management editor and create a screenshot fixture with CI regression gating for it.

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 extension API?▼

Update all five layers in sync: the proposed vscode.proposed.chatSessionCustomizationProvider.d.ts, the IChatSessionCustomizationItemDto in extHost.protocol.ts, the ExtHost mapping in extHostChatAgents2.ts, the MainThread callback in mainThreadChatAgents2.ts, and ICustomizationItem in customizationHarnessService.ts. New optional fields are backward-compatible and need no version bump.

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

Use the aiCustomizationManagementEditor fixture with the selectedSection option, which calls selectSectionById after setInput. Each tab has Dark and Light variants generated by defineThemedFixtureGroup, addressable via fixture IDs like chat/aiCustomizations/aiCustomizationManagementEditor/McpServersTab/Dark.

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

Built-in regrouping requires three conditions: BUILTIN_STORAGE in the harness descriptor's visible sources, a mocked IProductService.defaultChatAgent.chatExtensionId, and mock items carrying matching extensionId provenance. Missing any one silently disables regrouping.

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

The list layout call bails out when offsetHeight returns 0 during a display:none to visible transition, which fixtures with fixed containers never reproduce. Defer layout using requestAnimationFrame from the widget's window so it runs after reflow.

When should I add blocksCi to a component fixture?▼

Add blocksCi only to fixtures covering critical layout paths such as the default view, a section with list plus footer, or narrow viewports. Gating too many fixtures creates noisy CI since any screenshot change fails the status check.