Skip to content

feat: migrate VS Code extension to native customization model#301

Merged
lossyrob merged 4 commits into
mainfrom
feature/vscode-customization-migration
Apr 8, 2026
Merged

feat: migrate VS Code extension to native customization model#301
lossyrob merged 4 commits into
mainfrom
feature/vscode-customization-migration

Conversation

@lossyrob
Copy link
Copy Markdown
Owner

@lossyrob lossyrob commented Apr 8, 2026

Summary

Migrates the VS Code extension from the legacy User/prompts installation model to the current Copilot customization model. This fixes the release bug where the extension installed successfully but agents did not appear in Copilot Chat.

Closes #240

What changed

Agent installation

  • Agents now install to ~/.copilot/agents (configurable via paw.agentDirectory)
  • Legacy User/prompts installs are cleaned up automatically during upgrade
  • Cleanup is resilient to missing or incomplete prior installation state
  • WSL override paths are normalized from Windows to POSIX format
  • paw.promptDirectory retained as deprecated fallback

Native prompt and skill delivery

  • Prompt files contributed natively via chatPromptFiles
  • Skills contributed natively via chatSkills with build-time conditional rendering
  • Skills rendered to vscode-assets/skills/ (stable extension-root path, not out/)
  • processConditionalBlocks extracted to shared src/utils/conditionalBlocks.ts
  • Removed paw_get_skill / paw_get_skills tool bridge and all associated code

Developer workflow

  • npm run watch now rerenders VS Code skill assets when skills/ files change
  • VS Code engine floor bumped to ^1.109.0

Test harness improvements

  • Activation dependency seam enables tests to drive activate() with safe install
  • Tests verify installed agent payloads contain no legacy tool references or raw conditionals
  • VSIX packaging test builds the archive and asserts contributed assets are present
  • .paw/** excluded from packaged VSIX
  • Legacy cleanup tested with missing state, incomplete state, and default paths
  • WSL normalization and missing-home error paths covered

Documentation

  • Updated user guide, architecture docs, and review spec for new model
  • Downgrade behavior documented as unvalidated (manual cleanup recommended)

Validation

  • npm run compile
  • npm run lint
  • npm test — 130 passing ✅
  • npm run package
  • mkdocs build --strict
  • Watch-mode skill rerender smoke test ✅

Files changed

  • 34 files changed: +1563 / −2165 (net −602 lines)
  • 7 files deleted (obsolete skill/prompt bridge code and their tests)
  • 5 files created (skill renderer, watch script, shared util, asset test, render script)

Migrate agent installation from legacy User/prompts to ~/.copilot/agents,
contribute prompt files natively via chatPromptFiles, contribute skills
natively via chatSkills with build-time conditional rendering, and remove
the obsolete paw_get_skill/paw_get_skills tool bridge.

Key changes:
- Agents install to ~/.copilot/agents (paw.agentDirectory override available)
- Skills rendered to vscode-assets/skills/ at build time (postcompile)
- npm run watch now rerenders skill assets on skills/ changes
- Legacy cleanup runs unconditionally across all known install paths
- WSL override paths normalized from Windows to POSIX format
- Activation seam added for testable install-through-activate flow
- VSIX packaging test validates archive contents end-to-end
- .paw/** excluded from packaged VSIX
- Downgrade docs updated to reflect unvalidated pre-migration rollback
- processConditionalBlocks extracted to src/utils/conditionalBlocks.ts
- Engine floor bumped to VS Code ^1.109.0

Closes #240

Co-authored-by: Copilot <[email protected]>
@lossyrob lossyrob added the enhancement New feature or request label Apr 8, 2026
lossyrob and others added 3 commits April 8, 2026 01:42
Both the CLI (which normalizes spaces to hyphens during build) and the
VS Code extension now install agents to ~/.copilot/agents. Using the same
hyphenated filename prevents duplicate agent files from appearing.

- Rename agents/PAW Review.agent.md → agents/PAW-Review.agent.md
- Update prompt file agent reference to PAW-Review
- Update handoff tool AgentName type and package.json enum
- Add old spaced filename to legacy cleanup candidates
- Update docs and test references

Co-authored-by: Copilot <[email protected]>
The New PAW Workflow command was sending only the initialization
parameters to the agent without the instruction to load and execute the
paw-workflow skill. Previously the prompt system injected this
automatically, but with native chatPromptFiles the programmatic path
needs to include it explicitly.

Co-authored-by: Copilot <[email protected]>
@lossyrob lossyrob merged commit 9d112ad into main Apr 8, 2026
1 check passed
@lossyrob lossyrob deleted the feature/vscode-customization-migration branch April 8, 2026 12:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

VS Code extension: Use chatSkills contribution point for skill delivery

1 participant