Skip to main content
Glama
hnaymyh123-henry

skills-compat-manager


Why You'll Want This

You've built (or downloaded) a bunch of AI agent skills. They work on your machine β€” until they don't.

"It worked in Claude Code but Cursor can't run it." "The agent started the task, then died on ModuleNotFoundError: pandas." "I set OPENAI_API_KEY locally but the agent still returned an empty string."

Skills Compat Manager fixes this in two moves:

πŸ—‚οΈ One library, every agent. Drop your skills into a single folder. Claude Code, Cursor, Codex CLI, OpenCode β€” they all read from the same place via MCP. No more copy-pasting skills across tool configs.

πŸ›‘οΈ Pre-flight check before execution. Every time an agent loads a skill, we scan your environment against the skill's declared dependencies (packages Β· CLI tools Β· env vars Β· platform capabilities) and inject a hard compatibility protocol at the top. Missing pandas? The agent stops and asks before burning 10k tokens.

Think of it as package.json + a lockfile checker β€” but for AI agent skills.


See It In Action

Agent: loading skill "pdf-tools" via MCP...

⚠ COMPATIBILITY DELTA β€” pdf-tools @ claude_code
Status: BLOCKED

Code Dependencies:
  - pandas: missing β†’ pip install pandas
  - pypdf: available (4.0.1)

External Services:
  - OPENAI_API_KEY: missing

─── AGENT PROTOCOL ───
If Status is BLOCKED:
  1. DO NOT execute the skill body below.
  2. Report the missing dependencies to the user, verbatim.
  3. Ask the user how to proceed.

Agent (to you): Before I run pdf-tools, I need two things installed:
  1. pandas (pip install pandas)
  2. OPENAI_API_KEY environment variable
How would you like to proceed?

The agent knows what's missing before it writes a single line of code.


What This Tool Does β€” and Doesn't

Does

  • Detects presence of Python packages, CLI binaries, environment variables, and declared platform capabilities

  • Surfaces missing deps to the agent before skill execution via a structured Delta

  • Provides a standardized, agent-readable compatibility protocol (OK / DEGRADED / BLOCKED)

  • Generates COMPAT.yaml via AI inference or static rules

Doesn't (yet)

  • Validate package versions unless explicitly declared in COMPAT.yaml

  • Verify API keys are valid, active, or have quota remaining

  • Runtime-test platform capabilities β€” it trusts the platform's declared caps

  • Prevent a non-compliant agent from ignoring the compatibility block

This is an advisory layer with a hard protocol, not a sandbox.


The Problem, In Detail

AI agent "skills" are reusable instruction files (SKILL.md) that tell an agent how to perform a task β€” parse a PDF, manage an Obsidian vault, generate a frontend design.

A skill can silently depend on things that aren't always there:

Dimension

Example

What goes wrong

Python packages

pandas, python-docx

ModuleNotFoundError mid-task

CLI tools

pdftotext, ffmpeg

Agent generates a command that doesn't exist

Env variables

VAULT_PATH, OPENAI_API_KEY

Silent empty-string fallback, corrupted output

Platform capabilities

bash, web_search

Agent tries to use a tool the platform doesn't have

Without a pre-flight check, the agent loads the skill, starts working, and fails halfway through β€” wasting tokens, time, and user trust.


The Solution

Skills Compat Manager scans your skills before the agent runs them, computes a structured Delta (gap analysis), and injects it into the skill content at load time.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Agent loads "pdf" skill via MCP β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚  Scanner checks COMPAT.yaml β”‚
   β”‚  against runtime environment β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚  ⚠ Compatibility Delta β€” pdf @ claude_code  β”‚
   β”‚                                              β”‚
   β”‚  Code Deps:                                  β”‚
   β”‚    βœ“ pypdf ........ installed (4.0.1)        β”‚
   β”‚    βœ— camelot-py ... missing [optional]       β”‚
   β”‚      β†’ pip install camelot-py                β”‚
   β”‚                                              β”‚
   β”‚  System Tools:                               β”‚
   β”‚    βœ— pdftotext .... missing [optional]       β”‚
   β”‚      β†’ brew install poppler                  β”‚
   β”‚                                              β”‚
   β”‚  Status: DEGRADED                            β”‚
   β”‚  Proceed with caution β€” optional deps missingβ”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚  Agent sees the Delta BEFORE β”‚
   β”‚  the skill content begins    β”‚
   β”‚  β†’ adapts or warns the user  β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The agent now knows what's missing before it writes a single line of code.


Architecture


The Four-Dimensional Framework

Every skill's dependencies are classified into four dimensions:

Example COMPAT.yaml:

schema_version: "2.0"
requires:
  code_deps:
    - name: pandas
      description: "Data manipulation and analysis"
      required: true
    - name: seaborn
      description: "Statistical visualization"
      required: false

  system_tools:
    - name: pdftotext
      required: false

  external_services:
    - name: VAULT_PATH
      description: "Obsidian vault location"
      required: true

  runtime_capabilities:
    - name: bash
      required: true
    - name: file_write
      required: true

Don't want to write this by hand? Run skills-compat infer <skill> and AI generates it from your SKILL.md.


Quick Start

Install

pip install git+https://github.com/hnaymyh123-henry/skills-compat-manager.git

# Optional: enable AI-powered COMPAT.yaml inference
pip install "git+https://github.com/hnaymyh123-henry/skills-compat-manager.git#egg=skills-compat[ai]"

Setup

# Auto-detect installed platforms (Claude Code, Cursor, etc.)
# and configure MCP server entries
skills-compat setup --skill-library ~/my-skills

Scan

# Scan a single skill
skills-compat scan pdf

# Scan all skills in your library
skills-compat scan

# JSON output for automation
skills-compat scan --json

Infer COMPAT.yaml with AI

# Let AI analyze your SKILL.md and generate COMPAT.yaml
skills-compat infer my-skill

# Infer for all skills that don't have COMPAT.yaml yet
skills-compat infer --all

# Choose AI provider: openai, claude, or rules (no API key needed)
skills-compat infer my-skill --provider rules

How It Works

For AI Agents (MCP Server)

The MCP server is the primary runtime interface. When an agent calls get_skill:

  1. Reads the original SKILL.md content

  2. Scans the runtime environment (installed packages, CLI tools, env vars)

  3. Computes a Delta against the platform's capability profile

  4. Injects the Delta block at the top of the skill content

  5. Returns the augmented content to the agent

The agent sees the compatibility status before the skill instructions begin, and can decide how to proceed.

For Developers (CLI)

The CLI is your setup and diagnostic tool:

skills-compat setup     β†’  Auto-detect platforms, configure MCP
skills-compat status    β†’  Overview of library health
skills-compat scan      β†’  Run Delta analysis, see what's missing
skills-compat verify    β†’  CI-friendly status check (exit code = status)
skills-compat infer     β†’  AI-generate COMPAT.yaml from SKILL.md
skills-compat fix       β†’  Interactive fix: suggest β†’ run β†’ re-verify
skills-compat serve     β†’  Start the MCP server manually
skills-compat config    β†’  View/update configuration

verify returns exit code 0 (OK), 1 (DEGRADED), 2 (BLOCKED), 3 (UNSCANNED), or 4 (error) β€” drop it into CI with skills-compat verify pdf && deploy.

fix closes the loop: for every missing dep it asks the LLM for 2–3 fix paths (each tagged SAFE/MANUAL + agent_or_user/user_only), runs the SAFE ones through a sandbox allowlist, re-scans, and prints the status transition (e.g. BLOCKED β†’ DEGRADED). Use --auto for CI, --yes to skip confirmation prompts.


MCP Server

Configuration

Add to your MCP client configuration:

Claude Code (~/.claude/settings.json):

{
  "mcpServers": {
    "skills-compat": {
      "command": "skills-compat",
      "args": ["serve"],
      "env": {
        "SKILL_LIBRARY": "/path/to/your/skills"
      }
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "skills-compat": {
      "command": "skills-compat",
      "args": ["serve"],
      "env": {
        "SKILL_LIBRARY": "/path/to/your/skills"
      }
    }
  }
}

Or let the CLI do it automatically:

skills-compat setup --skill-library /path/to/your/skills

Available Tools

Tool

Description

list_skills

List all skills in the library

get_skill

Load skill content with Delta block injected

scan_skills

Run compatibility scan across all skills

get_skill_info

Get metadata and COMPAT.yaml for a skill

search_skills

Search skills by keyword

suggest_fix

Get AI-powered fix suggestions (each path tagged with actor + safety)

apply_fix

Execute a SAFE fix command through a sandbox allowlist, then re-scan

refresh_runtime

Re-detect the runtime environment


Supported Platforms

Platform

Capabilities

Confidence

Auto-detected

Claude Code

bash file_read file_write web_search web_fetch python_runtime lsp notebook subagent monitor

verified

βœ“

Cursor

bash file_read file_write web_search

partial

βœ“

Codex CLI

bash file_read file_write python_runtime

verified

βœ“

OpenCode

bash file_read file_write web_search web_fetch python_runtime lsp

verified

βœ“

Claude Desktop

file_read file_write

partial

βœ“

Confidence levels reflect how well the capability list has been verified against official documentation (verified = sourced from official docs, partial = docs incomplete or inaccessible, unverified = best-effort estimate). See data/platform_profiles.yaml for sources and verification dates.

A few platform-specific notes worth knowing: Codex CLI has network blocked by default in all sandbox modes β€” there is no built-in web_search. Claude Desktop's native tool set is minimal; most capabilities (web, shell, full filesystem) come from user-installed MCP servers, not built-ins.

Platform detection happens automatically via the MCP handshake (clientInfo.name) β€” no manual configuration needed. Adding a new platform requires only editing data/platform_profiles.yaml. If your agent platform supports self-reporting via capabilities.experimental["skills-compat:platform-tools"] in the MCP initialize handshake, its capabilities are used directly and take priority over the static profile.


AI Features

Multi-Provider Inference

COMPAT.yaml inference supports three providers with automatic fallback:

OpenAI (gpt-4o) β†’ Anthropic Claude β†’ Rules-based (no API key)

The AI analyzes your SKILL.md content and produces a complete COMPAT.yaml with:

  • stdlib filtering β€” Python standard library modules are automatically excluded

  • PyPI name resolution β€” Import names are mapped to correct pip package names (yaml β†’ pyyaml, cv2 β†’ opencv-python)

  • required/optional classification β€” Each dependency is judged as required or optional based on its role in the skill

Fix Suggestions

When the scanner finds a missing dependency, suggest_fix generates 2–3 actionable solution paths. Every path is classified on two axes so the agent knows exactly what it can do autonomously:

Path A: Install                     [SAFE Β· agent_or_user Β· low effort]
  β†’ pip install camelot-py

Path B: Use alternative library    [MANUAL Β· user_only Β· medium effort]
  β†’ Edit SKILL.md to use tabula-py instead

Path C: Mark as optional            [MANUAL Β· user_only Β· low effort]
  β†’ Accept graceful degradation
  • SAFE + agent_or_user β†’ the agent may execute it via apply_fix (or skills-compat fix --auto), subject to the allowlist (pip/npm/yarn/mkdir/touch) and a hard denylist (sudo, rm, |sh, >/etc, &&rm, etc.).

  • MANUAL or user_only β†’ the agent surfaces the commands to the human, never runs them.


Project Structure

skills-compat-manager/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ cli.py                 # CLI entry point (9 commands)
β”‚   β”œβ”€β”€ mcp_server.py          # MCP stdio server (8 tools)
β”‚   β”œβ”€β”€ scanner.py             # Delta computation engine; reads COMPAT.yaml from central store
β”‚   β”œβ”€β”€ ai_engine.py           # AI inference (OpenAI / Claude / rules)
β”‚   β”œβ”€β”€ models.py              # Pydantic data models
β”‚   β”œβ”€β”€ config.py              # Settings & paths; loads platform profiles from data/
β”‚   β”œβ”€β”€ runtime_detector.py    # OS / pip / CLI / env detection
β”‚   β”œβ”€β”€ skill_manager.py       # Skill discovery; writes COMPAT.yaml to central store
β”‚   β”œβ”€β”€ platform_resolver.py   # MCP handshake resolution + experimental capability hook
β”‚   β”œβ”€β”€ platform_detector.py   # Installed platform detection
β”‚   β”œβ”€β”€ tool_registry.py       # MCP tool registry & platform capability lookup
β”‚   └── mcp_configurator.py    # Auto-configure MCP entries for detected platforms
β”œβ”€β”€ data/
β”‚   └── platform_profiles.yaml # Platform capability definitions β€” edit to add/update platforms
└── tests/
    β”œβ”€β”€ test_scanner.py
    β”œβ”€β”€ test_mcp_server.py
    β”œβ”€β”€ test_ai_engine.py
    └── test_cli.py
A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

–Maintainers
<1hResponse time
–Release cycle
1Releases (12mo)
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hnaymyh123-henry/skills-compat-manager'

If you have feedback or need assistance with the MCP directory API, please join our Discord server