Automatically detect and disable irrelevant Claude Code skills per project to save tokens and streamline your tech workflow.
SaferSkills independently audited skill-manager (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Analyze the current project's tech stack and disable irrelevant globally-installed skills by injecting a bounded section into the project's CLAUDE.md.
Run the Python analysis script if available, otherwise follow the manual workflow below.
Check for these files in the project root (current working directory):
| File | Stack Signal |
|---|---|
package.json | Node.js — read for framework (next, react, vue, angular, svelte, etc.) |
Podfile or *.xcodeproj | iOS/macOS native |
Package.swift | Swift Package (iOS/macOS) |
Cargo.toml | Rust |
go.mod | Go |
requirements.txt / pyproject.toml / setup.py | Python |
Gemfile | Ruby |
composer.json | PHP |
build.gradle / build.gradle.kts | Android/JVM |
pubspec.yaml | Flutter/Dart |
Dockerfile / docker-compose.yml | Containerized |
vercel.json / netlify.toml | Jamstack deployment |
tsconfig.json | TypeScript |
.swift files in root/Sources | Swift CLI/Server |
Read package.json dependencies to identify frameworks:
next -> Next.jsreact -> Reactvue -> Vue@angular/core -> Angularsvelte -> Sveltestripe -> Payment processingexpress / fastify / hono -> Node servertailwindcss -> Tailwind CSSremotion -> Video/media processingMonorepo detection: If the project has packages/, apps/, or a workspace config in package.json, scan subdirectories too and union all detected stacks.
Empty project: If no recognizable files are found, warn the user and keep all skills active.
Read ~/.agents/.skill-lock.json to get the list of all globally installed skills. For each skill, note:
name (the key)source (GitHub repo)skillPath (where the SKILL.md lives)Assign each skill to a tier based on the detected tech stack.
| Tier | Score Range | Meaning |
|---|---|---|
| essential | 80-100 | Directly relevant to detected stack |
| useful | 40-79 | Cross-platform utility, may be used |
| irrelevant | 0-39 | Wrong platform/domain entirely |
| universal | N/A | Never disabled regardless of stack |
find-skills, skill-creator, writing-skills, brainstorming,
writing-plans, test-driven-development, dispatching-parallel-agents,
subagent-driven-development, using-superpowers, agentation, skill-manageriOS/macOS Native Skills — essential when Swift/Xcode detected:
mobile-ios-design (iOS UI/SwiftUI)asc-xcode-build (Xcode build/archive)asc-metadata-sync (App Store metadata)asc-localize-metadata (App Store localization)asc-subscription-localization (IAP localization)asc-ppp-pricing (territory pricing)asc-shots-pipeline (screenshot automation)asc-notarization (macOS notarization)app-store-optimization (ASO)aso-full-audit, aso-optimize, aso-competitor, aso-prelaunch, asoWeb/SaaS Marketing Skills — essential when web framework detected:
page-cro, signup-flow-cro, onboarding-cro, popup-cro, form-crocopywriting, copy-editing, content-strategyseo-audit, programmatic-seo, schema-markupanalytics-tracking, ab-test-setupemail-sequence, social-contentmarketing-ideas, marketing-psychologyfree-tool-strategy, launch-strategypaid-ads, referral-programpricing-strategy, competitor-alternativesaudit-websitePayment Skills — essential when stripe/payment dependency detected:
stripe-integrationpaywall-upgrade-crochurn-preventionMedia/AI Generation Skills — essential when media dependencies detected:
fal-audio, fal-generate, fal-image-edit, fal-platform, fal-upscale, fal-workflowremotion-best-practicesIf .claude/skill-manager.json already exists, read the overrides section:
{
"overrides": {
"forceEnable": ["seo-audit"],
"forceDisable": ["fal-audio"]
}
}forceEnable: Move these skills to "essential" tier regardless of scoringforceDisable: Move these skills to "irrelevant" tier regardless of scoring.claude/skill-manager.jsonCreate the .claude/ directory if it doesn't exist. Write the analysis file:
{
"version": 1,
"generatedAt": "2026-02-23T12:00:00Z",
"detectedStack": {
"primary": "Next.js",
"languages": ["TypeScript", "JavaScript"],
"frameworks": ["Next.js", "React", "Tailwind CSS"],
"platforms": ["Web"],
"signals": {
"package.json": true,
"tsconfig.json": true,
"next.config.ts": true
}
},
"skills": {
"page-cro": { "tier": "essential", "score": 95, "reason": "Web CRO directly applicable" },
"mobile-ios-design": { "tier": "irrelevant", "score": 5, "reason": "No iOS stack detected" }
},
"disabled": ["mobile-ios-design", "asc-xcode-build"],
"enabled": ["page-cro", "stripe-integration"],
"universal": ["find-skills", "brainstorming"],
"overrides": {
"forceEnable": [],
"forceDisable": []
},
"stats": {
"total": 53,
"essential": 20,
"useful": 10,
"irrelevant": 12,
"universal": 11
}
}<!-- SKILL-MANAGER:START --> ... <!-- SKILL-MANAGER:END --> block from CLAUDE.md.claude/skill-manager.jsonBuild the injection block:
<!-- SKILL-MANAGER:START -->
## Disabled Skills
The following skills are **not relevant** to this project and should be **ignored** (do not invoke them):
- `mobile-ios-design` — No iOS stack detected
- `asc-xcode-build` — No Xcode project detected
- ...
**Stack**: Next.js / TypeScript / React / Tailwind CSS
**Last analyzed**: 2026-02-23
**Re-run**: Say "manage skills" or "/skill-manager" to re-analyze
**Re-enable all**: Say "re-enable all skills" to remove this section
<!-- SKILL-MANAGER:END --><!-- SKILL-MANAGER:START --> and <!-- SKILL-MANAGER:END --> (inclusive) with the new blockIMPORTANT: Do NOT modify any other content in CLAUDE.md. Only touch the bounded marker section.
If the detected stack suggests skills that aren't installed, mention them:
Based on your Next.js project, you might also want: -npx skills find nextjsfor Next.js-specific skills -npx skills find reactfor React patterns
Only suggest if there's a clear gap. Don't overwhelm with suggestions.
Print a summary table:
Skill Manager Analysis Complete
Stack: Next.js / TypeScript / React
Total skills: 53
Essential: 20 (kept active)
Useful: 10 (kept active)
Irrelevant: 12 (disabled in CLAUDE.md)
Universal: 11 (always active)
Disabled skills written to CLAUDE.md
Full analysis: .claude/skill-manager.jsonIf Python 3.9+ is available, you can run the analysis script for faster, deterministic results:
python3 skills/skill-manager/scripts/analyze_project.py --analyze "$(pwd)"Or just detect the stack:
python3 skills/skill-manager/scripts/analyze_project.py --detect-stack "$(pwd)"The script path is relative to where the skill is installed. Find it via:
# The skill is installed at ~/.agents/skills/skill-manager/
python3 ~/.agents/skills/skill-manager/scripts/analyze_project.py --analyze "$(pwd)"The script outputs JSON to stdout. Use the output to populate .claude/skill-manager.json and the CLAUDE.md injection block.
If Python is not available, follow the manual steps above — they produce the same result.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.