Dev & Engineering ✓ Microsoft · Official performance-testingmemory-leak-detectionchat-renderingplaywrightelectronci-benchmarking

VS Code Chat Performance Lab

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

FollowSkills review · FSRS-2.0
Use with care
53/ 100 5-point scale 2.7 / 5
1 2 3 4 5 6
1Trust14 / 25 · 2.8/5

The documentation discloses flows involving local builds, published versions, GitHub Actions, Playwright, build artifacts, and diagnostic files, but it does not define user confirmation, credential handling, response/telemetry treatment, or network-download security boundaries. --verbose can print response content, and CI deletes temporary and diagnostic files. Permissions are not narrowly specified, so points are deducted.

2Reliability8 / 20 · 2.0/5

Commands, script paths, flags, statistical methods, exit codes, and some failure feedback are documented, with supporting CI workflow evidence. However, the key scripts, scenario definitions, configuration, and lockfiles are not supplied, so the core path cannot be reproduced statically. The skill also describes scheduled daily CI while the supplied workflow declares only workflow_dispatch, creating a consistency concern. Static limits and uncertainty require deductions.

3Adaptability9 / 15 · 3.0/5

The audience, triggers, and scenarios for chat rendering, streaming responses, and lifecycle changes are clear, with support for local builds, versions, and CI. However, non-fit boundaries, platform differences, Chinese-language usage, and mainland-China network reachability are not addressed. Core flows depend on npm, Playwright, VS Code downloads, and GitHub CLI/Actions, so points are deducted.

4Convention10 / 15 · 3.3/5

The skill has useful layering, quick-start commands, flag tables, scenario categories, metric explanations, leak interpretation, CI artifact guidance, and related-skill links. It lacks explicit installation prerequisites, standalone dependency notes, versioning policy, changelog, named maintenance responsibility, and a clear update path; the default baseline may also become stale as the repository evolves. Points are deducted.

5Effectiveness7 / 15 · 2.3/5

The skill clearly targets performance regression testing, memory-leak checks, baseline comparison, and CI gating, and its examples and metrics are directly actionable. Static evidence contains no representative real results, while execution is costly and depends on builds and downloads, so result usability cannot be confirmed. The score therefore remains at the static-calibration ceiling of 7.

6Verifiability5 / 10 · 2.5/5

Script names, workflow configuration, commands, statistical procedures, raw-run tables, and artifact-retention details provide useful audit trails. No actual run results, committed key-path test coverage, or cross-source corroboration are supplied, and no commands were executed in this review, so the score is capped at 5.

Evidence confidence:Low Reviewed Jul 20, 2026 Reviewed revision 5b3e1be7be9e
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
Before you use it
  • Execution downloads external resources such as versioned VS Code builds, Electron, and Playwright, and may use GitHub credentials; confirm network, credential, and organization scopes first.
  • --verbose may expose mock response content; avoid using it directly in environments containing sensitive data.
  • The documented default baseline and CI-trigger description may diverge from the supplied workflow; verify the actual scripts and configuration at the same revision.
  • CI cleanup deletes temporary directories, production builds, and some diagnostics; confirm artifacts are uploaded and retained before relying on them for investigation.
  • Mainland-China reachability is not documented; npm, Playwright, VS Code downloads, and GitHub services may make core flows unavailable or slow.
See the full review method →

What does this skill do, and when should you use it?

chat-perf is an Agent Skill in the microsoft/vscode repository for testing VS Code chat performance and memory growth. It launches a local development build, production build, published version, or another local build through Playwright Electron and runs simulated LLM responses across chat scenarios. Performance runs support baseline comparison, statistical significance checks, heap snapshots, and CI summaries, while leak checks estimate heap and DOM growth per message after forced GC. It is a focused validation tool for chat changes rather than a general VS Code performance suite.

It runs npm run perf:chat to launch VS Code, open the chat panel, and measure simulated responses across content-only, tool-call, and multi-turn scenarios. It records time to first token, completion and render completion, layout and style metrics, forced reflows, long tasks, heap data, and extension-host memory; it can compare a test build with a local path, version, or saved JSON baseline and produce results, traces, CPU profiles, heap snapshots, and CI Markdown summaries. npm run perf:chat-leak sends a configurable number of sequential messages in one session, forces GC between messages, and uses linear regression to calculate heap and DOM-node growth per message.

  1. A VS Code developer changes chatListRenderer.ts, chatInputPart.ts, or Markdown rendering and wants to check for chat rendering regressions.
  2. An engineer changes streaming response or SSE processing and needs to compare a local build with a VS Code release or another local build.
  3. A maintainer changes disposable or lifecycle handling in chat components and wants to check for sustained heap or DOM growth.
  4. A CI workflow needs performance gating and leak checks for changes that touch the chat UI.
  5. An engineer sees a threshold breach that may be noise and needs to resume the run with more samples or inspect historic CI summaries.

What are this skill's strengths and limitations?

Pros
  • Covers streaming content, tool-call, and multi-turn user scenarios.
  • Compares development builds, production builds, published versions, and two local builds.
  • Uses IQR outlier removal, medians, and Welch's t-test instead of treating a single noisy run as a regression.
  • Combines performance regression testing with heap- and DOM-growth leak checks.
  • Supports CI mode plus diagnostic artifacts such as traces, CPU profiles, heap snapshots, and historic summaries.
Limitations
  • A release baseline may need to be downloaded, so network access can be required; local-path baselines are not cached.
  • Memory and heap measurements are noisy for single-request benchmarks and are informational rather than CI-gating metrics.
  • The supplied material does not provide a standalone installation procedure or state the supported operating systems for the chat scripts.
  • Running the benchmarks requires npm, Playwright Electron, and a VS Code build environment, so a bare model API cannot execute them without an attached shell and filesystem.
  • Machine-readable perf-summary artifacts are retained for only one day; longer historical analysis relies on other result artifacts or summaries retained for 30 days.

How do you install this skill?

The Skill is located at .github/skills/chat-perf/SKILL.md in the VS Code source repository; the supplied material does not document a standalone package or dedicated installation command. You can obtain the repository with git clone https://github.com/microsoft/vscode.git and use the Skill from the repository. Specific dependency-installation steps are not documented in the supplied material.

How do you use this skill?

From a VS Code repository containing the Skill, run npm run perf:chat -- --scenario text-only --runs 3. To measure only the current build, run npm run perf:chat -- --no-baseline --runs 3; to compare releases, run npm run perf:chat -- --build 1.110.0 --baseline-build 1.115.0 --runs 5; to check leaks, run npm run perf:chat-leak -- --messages 20 --verbose. A suitable Agent request is: “Run chat-perf against VS Code 1.115.0 and report statistically significant regressions for the text-only scenario.” Use --gc-object-stats only for GC deep dives, not benchmarking, because it corrupts timing metrics.

FAQ

Does the Skill modify VS Code source code or use real chat data?
The supplied description says it launches a build, sends simulated messages, and collects performance and memory data. It does not say that it modifies source code or uses a real chat service.
Is downloading a baseline required?
No. --no-baseline measures only the test build and skips baseline download and benchmarking, but it does not produce a regression comparison verdict.
When does the performance command fail?
It exits with code 1 when it detects a statistically significant regression or when all runs fail. A threshold exceedance that is not statistically significant still exits with code 0. Different build modes can also prompt for confirmation unless --force or --ci is used.
Can it identify the exact objects responsible for a leak?
No. This Skill estimates heap and DOM growth slopes. Its documentation points to the related heap-snapshot-analysis Skill for tracing retained objects after abnormal memory growth is found.

More skills from this repository

All from microsoft/vscode

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 Performance Investigation Workflow

Automate repeatable VS Code scenarios and collect performance and memory evidence.

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 Chat Customizations Editor Skill

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

Dev & Engineering ✓ Microsoft · Official

VS Code Insiders UI Automation

Automate VS Code Insiders and Copilot Chat through Playwright and CDP.

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 Integration Test Runner

Run and filter VS Code repository integration tests with the correct platform scripts.

Dev & Engineering ✓ Microsoft · Official

VS Code Smoke Test Failure Diagnosis

Diagnose and validate intermittent VS Code Electron smoke-test failures in Azure DevOps.

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

Code OSS Development Log Viewer

Locate and inspect the latest Code OSS development logs.

Dev & Engineering ✓ Microsoft · Official

CPU Profile Analyzer

Find performance bottlenecks in V8 and DevTools performance files.

Dev & Engineering ✓ Microsoft · Official

Memory Leak Audit

Systematically find and fix listener, lifecycle, and disposable leaks in VS Code code.

Dev & Engineering ✓ Microsoft · Official

CI Check Fixer

Diagnose failed CI checks from their annotations and output, then repair the current session’s code.

Dev & Engineering ✓ Microsoft · Official

CI Component Screenshot Baseline Investigator

Investigate component screenshot differences from CI comments and captured artifacts.

Dev & Engineering ✓ Microsoft · Official

Copilot Chat OpenTelemetry Instrumentation

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

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

Component Fixtures for Screenshot Testing

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

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

VS Code Telemetry Error Fix Guide

Trace unhandled telemetry errors to invalid-data producers instead of masking the crash site.

Dev & Engineering ✓ Microsoft · Official

Session Code Review

Review the current session's code changes and place actionable findings directly on the relevant lines.

Related skills