tool-rename-deprecation

Preserves backward compatibility when renaming VS Code language model tool reference names.

Updated Aug 30, 2026
One-click install
npx skills add https://github.com/Tyrizx/Tyrizx --skill tool-rename-deprecation-tyrizx
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: tool-rename-deprecation
Source: https://github.com/Tyrizx/Tyrizx/tree/main/.github/skills/tool-rename-deprecation
Command: npx skills add https://github.com/Tyrizx/Tyrizx --skill tool-rename-deprecation-tyrizx

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Renaming a built-in tool's toolReferenceName or a tool set's referenceName silently breaks existing prompt files, tool configurations, and auto-approval settings that reference the old name. This Skill ensures every rename adds the old name to the legacy arrays so saved references keep resolving. ## Core Features & Use Cases - Legacy Name Registration: Guides adding old names to legacyToolReferenceFullNames for tools and legacyFullNames for tool sets, including toolSet/toolName paths for moved tools. - Stable ID Protection: Flags changes to the package.json name field or TypeScript id field, which must never change since they drive activation events and tool invocation. - Consumer Verification: Checks that prompt file resolution, tool enablement maps, and auto-approval settings all respect legacy names after a rename. - Use Case: When reviewing a PR that renames a tool from 'todos' to 'todo', run this Skill to confirm 'todos' was added to legacyToolReferenceFullNames and that no legacy entries were removed. ## Quick Start Review this pull request that renames a built-in tool and verify the old reference name was added to the legacy names array.

Frequently Asked Questions about tool-rename-deprecation

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

FAQPage Schema
How do I rename a VS Code language model tool without breaking existing prompts?▼

Change only the toolReferenceName field and add the previous value to legacyToolReferenceFullNames on the IToolData object. The legacy array lets prompt files and tool configurations using the old name continue to resolve.

How do I rename a tool set referenceName in VS Code?▼

Pass the old name in the legacyFullNames option when calling createToolSet with the new referenceName. If a tool moved between tool sets, add the full old toolSet/toolName path to the tool's legacyToolReferenceFullNames.

Can I change the name field of an extension-contributed tool in package.json?▼

No, the name field in package.json becomes the tool's stable id via the languageModelTools contribution mapping and drives activation events like onLanguageModelTool. Only rename toolReferenceName and record the old value in legacyToolReferenceFullNames.

Why do auto-approval settings stop working after a tool rename?▼

The chat.tools.eligibleForAutoApproval setting matches tools by reference name, so a rename orphans user restrictions unless the check also inspects legacyToolReferenceFullNames. Verify isToolEligibleForAutoApproval and per-tool checks like RunInTerminalTool iterate legacy names.

What should I check when reviewing a PR that touches tool registration?▼

Confirm every changed toolReferenceName or referenceName has its previous value added to the corresponding legacy array, no legacy entries were removed, and the stable id or package.json name field was not modified. Also verify all name consumers respect legacy aliases.