claude-code - 💡(How to fix) Fix [FEATURE] per-project skill allowlist in settings.json [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#58790Fetched 2026-05-14 03:39:27
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Timeline (top)
labeled ×2commented ×1

Fix Action

Fix / Workaround

The workaround today is adding a ## Skill Policy block to the project CLAUDE.md telling Claude to ignore specific skills — but that's fragile (it's an instruction, not enforcement) and requires manually updating it every time a new global skill is installed.

Code Example

{
     "allowed_skills": ["career-ops"]
 }

---

{
    "allowedSkills": ["career-ops"],
    "blockedSkills": ["gstack", "review", "ship"]
  }
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • This is a single feature request (not multiple features)

Problem Statement

When skills are installed globally (~/.claude/skills/), they load in every project regardless of relevance. Projects with their own skill (e.g. career-ops) get interference from unrelated global skills — overlapping triggers, context bloat, and global CLAUDE.md instructions overriding project-level behavior.

Requested: Add an allowed_skills (or blocked_skills) field to project .claude/settings.json:

{
  "allowed_skills": ["career-ops"]
}

This would let projects opt out of global skills they don't need.

Proposed Solution

Two additions to the project .claude/settings.json:

  {
    "allowedSkills": ["career-ops"],
    "blockedSkills": ["gstack", "review", "ship"]
  }

Behavior:

  • If allowedSkills is set, Claude only activates skills in that list — all other globally-installed skills are invisible for that session
  • If blockedSkills is set, those skills are excluded but everything else remains available
  • Both are optional; omitting them keeps current behavior (all global skills load)

Why this matters UX-wise:

  1. I install a job search skill (career-ops) in my project. I also have gstack installed globally for my dev projects. When I open career-ops, gstack's /browse instruction in ~/.claude/CLAUDE.md overrides career-ops' own web verification logic — silently, with no way to prevent it short of editing the global CLAUDE.md manually.
  2. Each globally installed skill adds preamble context at session start. With 5+ skill packs, unrelated skills consume context budget in every project that doesn't need them.

Alternative Solutions

The workaround today is adding a ## Skill Policy block to the project CLAUDE.md telling Claude to ignore specific skills — but that's fragile (it's an instruction, not enforcement) and requires manually updating it every time a new global skill is installed.

A settings-level allowlist would be enforced by the runtime, not by Claude's interpretation of prose instructions.

Priority

Medium - Would be very helpful

Feature Category

Configuration and settings

Use Case Example

No response

Additional Context

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING