port-vscode-extension

Migrate existing VSCode extensions to Universe Editor with API compatibility assessment.

Updated May 13, 2026
One-click install
npx skills add https://github.com/lovebirdsx/universe-editor --skill port-vscode-extension-lovebirdsx
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: port-vscode-extension
Source: https://github.com/lovebirdsx/universe-editor/tree/main/apps/editor/resources/agent-skills/.claude/skills/port-vscode-extension
Command: npx skills add https://github.com/lovebirdsx/universe-editor --skill port-vscode-extension-lovebirdsx

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Porting a VSCode extension to Universe Editor without checking API compatibility first often fails midway, because the Universe extension API is highly isomorphic to VSCode but not a complete superset. This Skill enforces a feasibility-first workflow so you never start rewriting code before knowing exactly which APIs exist, differ, or are missing. ## Core Features & Use Cases - Four-Tier API Compatibility Assessment: Scans the source extension's package.json contributions and vscode.* API usage, then classifies each API as directly portable, semantically different, downgradable, or missing, with a report you confirm before any code is written. - License Compliance Check: Reviews the source repository's LICENSE, requires attribution for permissive licenses, and flags GPL/LGPL or unlicensed code so you can decide between rewriting or abandoning the port. - Guided Migration with Compat Layer: Provides a mechanical replacement table (imports, engines, ESM packaging, uex CLI, category mapping) plus a ready-made vscode-shaped compatibility template covering Position/Range/Selection, document wrapping, and synchronous config caching. - Gap Reports: When core features hit missing APIs, generates a structured gap report for repository maintainers with missing API signatures, call sites, and implementation suggestions. - Use Case: A user asks to port the rainbow_csv VSCode extension. The Skill clones the repo, inventories its API usage, confirms scope and license with the user, produces a tiered feasibility report, then scaffolds, migrates, and validates the extension end to end. ## Quick Start Port the VSCode extension at this repository URL to Universe Editor and first tell me whether its features are feasible.

Frequently Asked Questions about port-vscode-extension

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I port a VSCode extension to Universe Editor?

Provide the extension's repository URL, then confirm the porting scope and whether it is for personal use or marketplace release. The workflow clones the source, inventories its vscode API usage, runs a four-tier compatibility assessment for your approval, then scaffolds and migrates the code.

How is VSCode API compatibility assessed before porting?

Each API used by the source extension is classified into four tiers: directly portable, semantically different, downgradable via alternative APIs, or missing entirely. The migration-from-vscode.md namespace tables are the reference, with the extension-api .d.ts files as the final authority.

Which VSCode APIs are not supported in Universe Editor?

Entire capability domains such as tasks, debug, notebooks, authentication, and ExtensionContext.secrets are missing. Some activation events like workspaceContains, onFileSystem, and onUri are also unsupported, though they can usually degrade to onStartupFinished plus a workspace self-check.

Can I port a GPL-licensed VSCode extension?

GPL or LGPL code carries derivative-work license obligations, and code with no LICENSE cannot be copied at all. The workflow surfaces these constraints so you choose between rewriting the implementation from scratch or abandoning the port; permissive licenses require attribution in the README.

Why does my ported extension compile but misbehave at runtime?

Semantically different APIs that became Promise-based silently return Promise objects when not awaited, and passing tests do not guarantee a clean runtime. Always check the extension host log for unhandled rejections and verify the esbuild entry still points at your migrated code.

What happens when a core feature hits a missing API?

The port stops and you choose among cutting the feature, finding an alternative implementation path, or abandoning the migration. You can also request a gap report documenting the missing APIs, call sites, and suggested signatures for repository maintainers.