Dev & Engineering ✓ Microsoft · Official component-fixturesscreenshot-testingvisual-regression-testingshadow-domdependency-injectionvite

Component Fixtures for Screenshot Testing

Create stable, theme-aware VS Code component fixtures for isolated screenshot testing.

FollowSkills review · FSRS-2.0
Not recommended
53/ 100 5-point scale 2.7 / 5
Trust17 / 25 · 3.4/5

The skill scopes activity to creating, updating, and screenshot-testing component fixtures and directs access through named tools; no malicious or destructive behavior is evident, so a relatively high score is justified. It does not explain tool permissions, screenshot data flow, sensitive-data handling, user confirmation, external effects, or rollback, and source attribution is supported only by repository context; 8 points are deducted.

Reliability8 / 20 · 2.0/5

It documents server startup, fixture listing, screenshots, and several rendering patterns, making the main happy path plausible and earning 8 points. Static evidence lacks fixture-specific tests, validation, abnormal-input handling, and diagnostic failure guidance beyond tool unavailability; the phrase “inform the user to them on” is also visibly malformed, so 2 points are deducted.

Adaptability9 / 15 · 3.0/5

The front matter and sections identify users, scenarios, locations, naming, and trigger conditions, covering themes, services, asynchronous rendering, and CSS concerns, earning 9 points. Non-fit boundaries, input/output contracts, false-trigger limits, Chinese support, and mainland-China reachability are not addressed; the core screenshot flow depends on potentially unavailable MCP tools, so 6 points are deducted.

Convention8 / 15 · 2.7/5

The document has clear information architecture, progressive examples, a service table, pitfalls, and design recommendations. Repository context supplies MIT licensing and Microsoft attribution, supporting 8 points. The skill itself lacks versioning, changelog, explicit maintenance ownership, update path, installation notes, and a complete tool setup explanation, so 7 points are deducted.

Effectiveness7 / 15 · 2.3/5

The guidance is directly useful for structuring fixtures, registering services, handling themes, and preventing screenshot instability; the core task is plausibly supported, earning the static maximum of 7. No representative fixture output, screenshot baseline, or third-party execution evidence is included, and users must still start the environment and invoke tools themselves, so completeness and direct usability remain unverified; 8 points are deducted.

Verifiability4 / 10 · 2.0/5

The instructions contain auditable paths and API names, and package.json corroborates the component-explorer dependency, earning 4 points. There is no skill-specific test suite, CI coverage, screenshot baseline, or third-party execution evidence; conclusions therefore rely mainly on documentation claims, so 6 points are deducted.

Evidence confidence:Low Reviewed Jul 20, 2026 Reviewed revision 5b3e1be7be9e
Before you use it
  • Before use, verify that mcp_component-exp_* tools are installed and accessible, and confirm that screenshot data will not expose sensitive UI content.
  • Failure recovery, rollback, and dependency-version pinning are undocumented; unavailable tools or explorer setup may shift troubleshooting to the user.
  • Chinese-language workflow support and mainland-China network reachability are unspecified and should be checked separately.
See the full review method →

What it does & when to use it

This skill helps VS Code contributors create or update component fixtures and design UI components that are easy to fixture. It defines the expected fixture location, file pattern, theme variants, service setup, CSS scoping, and asynchronous rendering practices. Fixtures render isolated components through the component explorer, with MCP tools available for listing fixtures and capturing screenshots. It is a good fit for VS Code UI work that needs visual state coverage, provided the Component Explorer Server and matching MCP tools are available.

It guides the agent to create .fixture.ts files under src/vs/workbench/test/browser/componentFixtures/ and define them with defineThemedFixtureGroup, defineComponentFixture, and createEditorServices. It explains how to register additional or mocked services, create text models, apply Dark and Light themes, render inside shadow DOM, and recreate ancestor DOM structures required by production CSS selectors. It also covers preventing flicker from asynchronous DOM reparenting, exposing a component's domNode, and adding options for disabling autofocus or initializing directly in a completed state. At runtime, it instructs the user to start the Component Explorer Server task, call mcp_component-exp_list_fixtures to list fixtures and URLs, and call mcp_component-exp_screenshot to capture screenshots.

  1. A VS Code frontend developer needs Dark and Light screenshot fixtures for a new UI component and wants to follow the repository's standard structure.
  2. A component maintainer finds that production CSS depends on deeply nested ancestor selectors and needs to reproduce or refactor that structure for fixture rendering.
  3. A test author needs to isolate a component's external dependencies and register real implementations or mock service instances through dependency injection.
  4. A developer performing visual regression checks wants to list component fixtures and capture screenshots programmatically after starting the component explorer.
  5. An engineer designing a new component wants it to be easy to fixture by avoiding construction-time layout reads, allowing autofocus to be disabled, and exposing a mountable DOM node.

Pros & cons

Pros
  • Covers fixture structure, theming, service registration, CSS scoping, asynchronous rendering, and screenshot stability pitfalls.
  • Documents the purpose of the `fixtureUtils.ts` helpers and provides reusable TypeScript patterns.
  • Encourages testing the real component code and lifecycle instead of copying or manually recomposing components inside fixtures.
  • Supports automatic Dark and Light variants through `defineThemedFixtureGroup`.
Limitations
  • Its scope is tied to the VS Code repository and its component explorer conventions; broader framework compatibility is not established by the source.
  • The screenshot workflow requires the Component Explorer Server task and `mcp_component-exp_*` tools, while their installation and configuration are not documented here.
  • The source provides no standalone test suite, platform coverage, or screenshot benchmark results.
  • The skill provides development guidance and an invocation workflow rather than a standalone fixture generator or screenshot runner.

How to install

This skill is part of the skill collection in the microsoft/vscode repository at .github/skills/component-fixtures/SKILL.md. Keep that file at the stated path; the source does not document a standalone installation command or a separate installation procedure for other clients. To use the full collection, obtain the repository from https://github.com/microsoft/vscode; the supplied source does not specify a repository acquisition command.

How to use

Give a request such as: Create a component fixture for MyWidget with themed variants, mocked services, and a stable screenshot layout. In the VS Code repository, create or update a .fixture.ts file under src/vs/workbench/test/browser/componentFixtures/ and default-export defineThemedFixtureGroup(...). Start the Component Explorer Server task, use mcp_component-exp_list_fixtures to inspect available fixtures and URLs, and use mcp_component-exp_screenshot to capture screenshots. If the MCP tools are not visible, enable them in the host environment first. The source does not document client-specific configuration steps.

FAQ

Does this skill cost anything?
The source places it in the `microsoft/vscode` repository, whose source code is licensed under MIT. It does not state whether the component explorer MCP tools or any runtime environment involve additional costs.
Can fixture files be placed in any directory?
The skill specifies `src/vs/workbench/test/browser/componentFixtures/` and says the Vite development server auto-discovers files through `src/**/*.fixture.ts`. The documented path and filename convention should be followed.
What causes flickering or unstable screenshots?
The skill identifies asynchronous DOM reparenting as a cause of layout recalculation, focus loss, and screenshots captured in an intermediate state. Build the final DOM structure before rendering and minimize DOM changes after the widget appears.
Does this replace the component explorer or screenshot tools?
No. It explains how to write and run fixtures and requires the Component Explorer Server plus `mcp_component-exp_list_fixtures` and `mcp_component-exp_screenshot`. The source does not say that the skill itself includes those runtime components.

More skills from this repository

All from microsoft/vscode

Dev & Engineering ✓ Microsoft · Official

Tool Rename Compatibility Check

Protect existing prompts and tool configurations when built-in tools are renamed.

Dev & Engineering ✓ Microsoft · Official

Copilot Chat OpenTelemetry Instrumentation

A repository-specific guide for consistent OpenTelemetry instrumentation in Copilot Chat.

Dev & Engineering ✓ Microsoft · Official

VS Code Configuration Policy Maintainer

Standardize VS Code policy registration, export, and validation.

Design & Frontend ✓ Microsoft · Official

VS Code Design Philosophy

Turn vague UI discomfort into concrete fixes using shared values, principles, and design moves.

Dev & Engineering ✓ Microsoft · Official

Agent Host E2E Test Assistant

Maintain VS Code Agent Host end-to-end tests with strict replay fixtures.

Dev & Engineering ✓ Microsoft · Official

VS Code Integrated Browser Architecture

A practical architecture guide for safely changing VS Code's cross-process integrated browser.

Dev & Engineering ✓ Microsoft · Official

VS Code Agents Window Sessions

Safely implement and repair VS Code Agents window features.

Dev & Engineering ✓ Microsoft · Official

Commit Assistant

Creates repository-style commit messages and safely commits code changes.

Dev & Engineering ✓ Microsoft · Official

Agent Host Log Investigator

Trace session, transport, and host failures in Agent Host debug exports.

Dev & Engineering ✓ Microsoft · Official

VS Code Unit Test Runner

Run VS Code repository unit tests by file, test name, or compiled-output glob.

Dev & Engineering ✓ Microsoft · Official

VS Code Agent Customization Assistant

Create, repair, and troubleshoot VS Code Agent customization files and their loading behavior.

Dev & Engineering ✓ Microsoft · Official

Code OSS Launch & Debug

Launch a built-from-source VS Code with isolated profiles, Playwright control, and multi-process debugging ports.

Dev & Engineering ✓ Microsoft · Official

VS Code Accessibility Development Guide

A practical specification for accessible interactive features in VS Code.

Design & Frontend ✓ Microsoft · Official

VS Code CSS Layout Standards

Build reliable VS Code-style CSS layouts and text truncation behavior

Dev & Engineering ✓ Microsoft · Official

VS Code Chat Performance Lab

Benchmark chat rendering and detect memory growth across VS Code builds.

Dev & Engineering ✓ Microsoft · Official

VS Code Smoke Test Assistant

Run, filter, and debug VS Code end-to-end smoke tests.

Dev & Engineering ✓ Microsoft · Official

VS Code Crash Dump Symbolicator

Turn native VS Code crash dumps into readable backtraces with method names.

Dev & Engineering ✓ Microsoft · Official

Local VS Code Web Workbench

Validate VS Code workbench and Agents window changes in a local vscode.dev instance.

Dev & Engineering ✓ Microsoft · Official

Feedback Action

Reads current-session feedback and applies the requested code changes.

Dev & Engineering ✓ Microsoft · Official

VS Code Chat Customizations Editor Skill

Guides developers through safe changes and testing for VS Code’s chat customization management UI.

Related skills