-
Notifications
You must be signed in to change notification settings - Fork 38.9k
Skills: Scoped tool permissions (auto-approve tools declared by a skill) #293276
Description
Follow-up to #285172
With skills now invocable as /commands, a key gap remains: skills can declare tools they need, but the user still gets prompted for approval on each tool use. This friction undermines the "packaged workflow" value proposition of skills.
Problem
Today the tools frontmatter field lists which tools are available for a prompt, but does not affect approval behavior. A deployment skill that calls terminal, git, and file tools still triggers per-use confirmation dialogs — defeating the purpose of encoding a trusted workflow as a skill.
Proposed behavior
Add an allowed-tools frontmatter field (or extend the existing tools field with an approval modifier) that grants auto-approval for the listed tools only for the duration of that skill's execution.
Example SKILL.md:
---
name: safe-reader
description: Read and analyze files without making changes
allowed-tools: Read, Grep, Glob
---
Explore the codebase and report findings. Do not modify any files.When /safe-reader runs, the three listed tools execute without confirmation prompts. All other tools still require approval per the user's normal permission settings.
Key design considerations
- Scoped lifetime: Auto-approval applies only while the skill is active, not globally
- User override: Users should be able to revoke or restrict auto-approved tools via settings
- Audit trail: Tool invocations under auto-approval should still be visible in the chat/output
- Workspace trust: Auto-approval should be gated by workspace trust settings
- Granular syntax: Consider supporting tool arguments (e.g.,
Bash(git *)to only auto-approve git commands)
Prior art
- Claude Code
allowed-toolsfrontmatter field - Claude Code also supports permission rules like
Skill(name)/Skill(name *)for admin-level control over which skills can be invoked