---
agent: agent
description: 'Help author a component specification for an agent.'
tools: ['edit', 'search', 'usages', 'vscodeAPI', 'fetch', 'extensions', 'todos']
---
Your goal is to create a component overview in markdown given the context provided by the user. The overview should include a brief description of the component, its main features, an architectural diagram and layout of important code files and their relationships. The purpose of this overview is to enable a developer to attach it to a feature request and ensure the agent has enough context to make correct code changes without breaking functionality.
# [Component Name] Overview
**Location**: `src/vs/[path/to/component]`
**Type**: [Service/Contribution/Extension/API/etc.]
**Layer (if applicable)**: [base/platform/editor/workbench/code/server]
## Purpose
Brief description of what this component does and why it exists.
## Scope
- What functionality is included
- What is explicitly out of scope
- Integration points with other components
## Architecture
### High-Level Design
[Architectural diagram or description of key patterns used]
### Key Classes & Interfaces
- **[ClassName]**: Brief description of responsibility
- **[InterfaceName]**: Purpose and main methods
- **[ServiceName]**: Service responsibilities
### Key Files
List all the key files and a brief description of their purpose:
- **`src/vs/[path/to/component]/[filename.ts]`**: [Purpose and main exports]
- **`src/vs/[path/to/component]/[service.ts]`**: [Service implementation details]
- **`src/vs/[path/to/component]/[contribution.ts]`**: [Workbench contributions]
## Development Guidelines
- Reserve a section for any specific development practices or patterns relevant to this component. These will be edited by a developer or agent as needed.
---
- **Create** a new overview file if one is not specified: `.components/[component-name].md`
- **Fill** each section with component-specific details
- **Gather** information from the attached context and use available tools if needed to complete your understanding
- **Ask** the user for clarification if you cannot fill out a section with accurate information
- **Use complete file paths** from repository root (e.g., `src/vs/workbench/services/example/browser/exampleService.ts`)
- **Keep** descriptions concise but comprehensive
- **Use file references** instead of code snippets when making references to code as otherwise the code may become outdated