VS Code linter validates SKILL.md frontmatter against DXT schema instead of skill schema

Resolved 💬 2 comments Opened Apr 1, 2026 by kim-em Closed May 7, 2026

Description

When editing a SKILL.md file in VS Code with the Claude Code extension (2.1.88), adding allowed-tools to the YAML frontmatter produces a linter warning:

Attribute 'allowed-tools' is not supported in skill files. Supported: argument-hint, compatibility, description, disable-model-invocation, license, metadata, name, user-invocable.

However, allowed-tools is a valid skill frontmatter field. The Claude Code CLI runtime parses and uses it:

allowedTools: RF(q["allowed-tools"])

Built-in skill examples and the skill-authoring template within the CLI also use allowed-tools.

Root cause

The "Supported" field list in the warning (argument-hint, compatibility, description, disable-model-invocation, license, metadata, name, user-invocable) includes DXT (Desktop Extension Toolkit) manifest fields like license, compatibility, and metadata — these are not skill frontmatter fields.

The VS Code extension appears to be validating SKILL.md frontmatter against the DXT manifest schema rather than the skill frontmatter schema. The skill schema should include allowed-tools, argument-hint, description, disable-model-invocation, name, user-invocable, and others that the runtime actually parses.

Steps to reproduce

  1. Create ~/.claude/skills/test/SKILL.md with:

``yaml
---
name: test
description: Test skill
allowed-tools: Read, Bash
---
# Test
``

  1. Open the file in VS Code with the Claude Code extension
  2. Observe the linter warning on allowed-tools

Expected behavior

No warning — allowed-tools is a valid skill field that the runtime uses.

Environment

  • Claude Code CLI: 2.1.87
  • Claude Code VS Code extension: 2.1.88
  • Platform: Linux (NixOS)

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗