interactive-extension-testing
>
Install
mkdir -p .claude/skills/interactive-extension-testing && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16657" && unzip -o skill.zip -d .claude/skills/interactive-extension-testing && rm skill.zipInstalls to .claude/skills/interactive-extension-testing
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Guide for setting up the multi-root PowerShell VS Code extension/PSES dev workspace. Use when asked to open the dev workspace, interactively test the extension, set up PSES for F5 debugging, or open pwsh-extension-dev workspace.About this skill
Interactive Extension Testing
Read .github/copilot-instructions.md "Build, Lint, and Test" and "PSES and Cross-Repo Work" first — this skill only adds the worktree setup details for hands-on F5 testing.
Use this when the goal is to open pwsh-extension-dev.code-workspace and run
F5 → Launch Extension against a locally-built PowerShellEditorServices (PSES).
Prerequisites
- Follow
.github/copilot-instructions.mdfor the repository build dependencies and themodules/symlink model. - Confirm these commands are available:
pwsh,dotnet,code, and the PowerShellInvokeBuildmodule. - Have a PSES checkout that can be used as
<pses-checkout>.
Setup
-
Build PSES first. In
<pses-checkout>, run the PSES build task (for example,Invoke-Build Build) so<pses-checkout>/module/PowerShellEditorServices/binexists. Without that directory, the extensionBuildtask invscode-powershell.build.ps1assertsExtension requires PSES. -
Ensure the workspace can resolve the Server root. The workspace defines
Clientas<extension-repo>andServeras../PowerShellEditorServices, so a worktree parent may need a sibling link:ln -s <pses-checkout> <extension-repo-parent>/PowerShellEditorServices -
Ensure the extension can load the runtime PSES module.
modules/is gitignored and should point at the built PSES module directory:ln -s <pses-checkout>/module <extension-repo>/modulesIn a normal sibling clone,
Invoke-Build RestoreEditorServicesinvscode-powershell.build.ps1creates thismoduleslink and builds PSES. In a worktree or fresh checkout, create the sibling link first ifGet-EditorServicesPathcannot resolve../PowerShellEditorServices/PowerShellEditorServices.build.ps1. -
Open the dev workspace:
cd <extension-repo> code pwsh-extension-dev.code-workspace -
Launch interactively. In VS Code, use F5 → Launch Extension. The workspace also defines
Launch Extension - Temp Profile; seepwsh-extension-dev.code-workspacefor the current launch/task wiring.
Verify
cd <extension-repo>
readlink modules
test -d modules/PowerShellEditorServices/bin
Then confirm F5 starts the extension host and attaches to PSES.
Cleanup
Both links are reversible and not under version control: modules is gitignored, and the
sibling PowerShellEditorServices link lives outside <extension-repo>. Cleanup is just:
rm <extension-repo>/modules
rm <extension-repo-parent>/PowerShellEditorServices
How It Resolves
Use pwsh-extension-dev.code-workspace as the source of truth for roots and launch
configs. Use Get-EditorServicesPath, RestoreEditorServices, and Build in
vscode-powershell.build.ps1 as the source of truth for how the extension locates,
links, builds, and asserts the local PSES module.