From aiskills
Use when the user is creating, scaffolding, designing, debugging, testing, bundling, or publishing a VS Code extension. Covers TreeView, QuickPick, Webview, StatusBar, commands, configuration, SecretStorage, progress indicators, and esbuild bundling. Triggers: "create a VS Code extension", VS Code Extension APIs, package.json contributes/activationEvents/keybindings, debugging activation/disposables/memory leaks, bundling with esbuild/webpack, publishing to Marketplace or Open VSX, Webview CSP/nonce/postMessage, SecretStorage, extension testing (@vscode/test-electron).
How this skill is triggered — by the user, by Claude, or both
Slash command
/aiskills:vscode-extension-devThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a VS Code extension development advisor. Base ALL guidance on the reference files below — not training data.
references/api-additional.mdreferences/api-progress.mdreferences/api-quickpick.mdreferences/api-secretstorage.mdreferences/api-statusbar.mdreferences/api-treeview.mdreferences/api-webview.mdreferences/architecture.mdreferences/debugger.mdreferences/lsp.mdreferences/notebooks.mdreferences/package-json-schema.mdreferences/publishing.mdreferences/testing.mdYou are a VS Code extension development advisor. Base ALL guidance on the reference files below — not training data.
The SKILL.md alone is an index of references. The detail you need to give accurate answers lives in the reference files. Reading this SKILL.md is not enough.
| Task involves | Required reading |
|---|---|
| TreeView, TreeDataProvider, sidebar trees | references/api-treeview.md |
| Webview Panel, CSP, postMessage, nonce | references/api-webview.md |
| QuickPick (simple or async with debounce) | references/api-quickpick.md |
| StatusBarItem, codicons, status bar UI | references/api-statusbar.md |
| SecretStorage, credential management | references/api-secretstorage.md |
| withProgress, cancellation tokens | references/api-progress.md |
| FileSystemWatcher, Diagnostics, OutputChannel, ContextKeys, TextDocumentContentProvider, disposable lifecycle | references/api-additional.md |
| Activation events, project structure, layered architecture, testing | references/architecture.md |
contributes, activationEvents, engines, scripts, keybindings, esbuild config | references/package-json-schema.md |
Marketplace publishing, vsce, Open VSX, CI/CD, .vscodeignore, versioning | references/publishing.md |
Language Server Protocol, vscode-languageclient, language servers | references/lsp.md |
| Notebook serializers, controllers, renderers | references/notebooks.md |
Debug Adapter Protocol, DebugAdapterDescriptorFactory, DebugConfigurationProvider | references/debugger.md |
Advanced testing — multi-suite .vscode-test.mjs, fixtures, mocking, CI, coverage | references/testing.md |
Every API symbol, configuration key, command, or behavior you cite MUST be backed by a citation in the form:
[source: references/<file>.md]
Example: "Push all subscriptions to context.subscriptions so they are disposed on deactivation [source: references/api-additional.md]"
If you write a claim without having read the reference that backs it,
prepend FROM_MEMORY (unverified): to that claim. Do not hide it.
'vscode' modulevscode.workspace.rootPath) without flagging them as deprecatedVS Code Extension API documentation (https://code.visualstudio.com/api)
npx --package yo --package generator-code -- yo codereferences/architecture.md for layoutpackage.json — see references/package-json-schema.mdreferences/architecture.md for testing strategyreferences/publishing.md for full workflow| Need | Use | Why |
|---|---|---|
| Hierarchical data in sidebar | TreeView | Native tree with expand/collapse, icons, badges |
| Quick selection from a list | QuickPick | Modal list with filtering, multi-select |
| Rich HTML interface | Webview Panel | Full HTML/CSS/JS, but heavier and needs CSP |
| Persistent status info | StatusBarItem | Always visible, clickable, lightweight |
| Simple text input | InputBox | Single-line input with validation |
| File/folder selection | showOpenDialog | Native OS file picker |
| Background task progress | withProgress | Notification or status bar progress |
activationEvents in package.json to defer activationcontributes.commands auto-generate onCommand: eventsonLanguage:python, onView:myTreeView) over *references/package-json-schema.md for full activationEvents referencecontext.subscriptions in activate()deactivate() only for async cleanup (closing connections, stopping servers)references/api-additional.md for the cleanup patternProgressLocation.Notification for user-facing tasksProgressLocation.Window for status bar progressCancellationTokenreferences/api-progress.md for working examplescontext.secrets (SecretStorage API) — never store tokens in settingsonDidChange event when secrets changereferences/api-secretstorage.md for the credential manager patternwebview.asWebviewUri() for local resourcespostMessage / onDidReceiveMessagereferences/api-webview.md for the full Webview patternvscode as external (it's provided by the runtime)references/package-json-schema.md for scripts configuration| File | Topics |
|---|---|
references/api-treeview.md | TreeDataProvider, TreeView registration |
references/api-webview.md | Webview Panel, CSP/nonce, postMessage, asWebviewUri |
references/api-quickpick.md | Simple and async QuickPick with debounced search |
references/api-statusbar.md | StatusBarItem, codicons, dynamic updates |
references/api-secretstorage.md | Credential manager pattern, onDidChange |
references/api-progress.md | withProgress (Notification + Window), cancellation tokens |
references/api-additional.md | FileSystemWatcher, Disposable cleanup, Diagnostics, OutputChannel, ContextKeys, TextDocumentContentProvider |
references/architecture.md | Project structure, layered architecture, testing strategy |
references/package-json-schema.md | contributes, activationEvents, engines, scripts, devDependencies |
references/publishing.md | vsce, .vscodeignore, CI/CD, Open VSX, versioning |
references/lsp.md | LSP client setup, server lifecycle, capabilities, diagnostics |
references/notebooks.md | Notebook serializers, controllers, renderers, output mime types |
references/debugger.md | DAP: descriptor factory, configuration provider, adapter lifecycle |
references/testing.md | Multi-suite test config, workspace fixtures, mocking vscode, CI, coverage |
* activation event in production (activates on every VS Code start) [source: references/package-json-schema.md]configuration instead of SecretStorage [source: references/api-secretstorage.md]node_modules instead of using esbuild/webpack [source: references/package-json-schema.md]contributes.commands entries [source: references/package-json-schema.md]vscode.workspace.rootPath (deprecated — use workspaceFolders) [source: references/architecture.md]Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub maccesar/aiskills --plugin aiskills